Files
sam-manage/resources/views/bending/base/index.blade.php
강영보 d03c7ed870 feat: [bending] 절곡품 관리 MNG 화면
- 기초관리: 목록(13컬럼) + 폼(기본정보 + 케이스전용 + 절곡테이블 + 이미지)
- 절곡품: 가이드레일/케이스/하단마감재 타입별 목록 + 폼
- 부품 추가(기초관리 검색 모달) + 삭제 + 수량/품명/재질 편집
- 절곡테이블 inline 편집 + 재질별 폭합 자동계산
- 작업지시서 레거시 포맷 인쇄 모달
- 원본수정 버튼 sam_item_id 직접 링크
- DB 메뉴 등록 (기초관리 + 절곡품 + 케이스 + 하단마감재)
2026-03-19 21:08:57 +09:00

90 lines
4.2 KiB
PHP

@extends('layouts.app')
@section('title', '절곡 기초관리')
@section('content')
<div class="container-fluid px-4 py-3">
{{-- 헤더 --}}
<div class="flex items-center justify-between mb-6">
<h1 class="text-2xl font-bold text-gray-800">절곡 바라시 기초자료</h1>
<a href="{{ route('bending.base.create') }}" class="px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 text-sm">
+ 신규 등록
</a>
</div>
{{-- 필터 --}}
<form id="filterForm" class="flex flex-wrap gap-2 mb-4 items-center">
{{-- 대분류 (2 그룹버튼) --}}
<input type="hidden" name="item_sep" value="{{ request('item_sep') }}">
<div class="inline-flex rounded border border-gray-300 text-sm overflow-hidden">
<button type="button" onclick="setFilter('item_sep','')" class="px-3 py-1.5 {{ !request('item_sep') ? 'bg-gray-700 text-white' : 'bg-white hover:bg-gray-50' }}">전체</button>
@foreach(['스크린', '철재'] as $v)
<button type="button" onclick="setFilter('item_sep','{{ $v }}')" class="px-3 py-1.5 border-l {{ request('item_sep') == $v ? 'bg-gray-700 text-white' : 'bg-white hover:bg-gray-50' }}">{{ $v }}</button>
@endforeach
</div>
{{-- 인정/비인정 --}}
<input type="hidden" name="model_UA" value="{{ request('model_UA') }}">
<div class="inline-flex rounded border border-gray-300 text-sm overflow-hidden">
<button type="button" onclick="setFilter('model_UA','')" class="px-3 py-1.5 {{ !request('model_UA') ? 'bg-gray-700 text-white' : 'bg-white hover:bg-gray-50' }}">전체</button>
@foreach(['인정', '비인정'] as $v)
<button type="button" onclick="setFilter('model_UA','{{ $v }}')" class="px-3 py-1.5 border-l {{ request('model_UA') == $v ? 'bg-gray-700 text-white' : 'bg-white hover:bg-gray-50' }}">{{ $v }}</button>
@endforeach
</div>
{{-- 중분류(그룹) --}}
<select name="item_bending" class="border border-gray-300 rounded px-3 py-1.5 text-sm"
onchange="this.form.dispatchEvent(new Event('submit'))">
<option value="">전체(분류)</option>
@foreach(($filterOptions['item_bending'] ?? []) as $bending)
<option value="{{ $bending }}" {{ request('item_bending') == $bending ? 'selected' : '' }}>{{ $bending }}</option>
@endforeach
</select>
{{-- 재질 --}}
<select name="material" class="border border-gray-300 rounded px-3 py-1.5 text-sm"
onchange="this.form.dispatchEvent(new Event('submit'))">
<option value="">전체(재질)</option>
@foreach(($filterOptions['material'] ?? []) as $mat)
<option value="{{ $mat }}" {{ request('material') == $mat ? 'selected' : '' }}>{{ $mat }}</option>
@endforeach
</select>
{{-- 검색 --}}
<input type="text" name="search" value="{{ request('search') }}" placeholder="코드/이름/품명/규격 검색"
class="border border-gray-300 rounded px-3 py-1.5 text-sm" style="width: 200px;"
hx-get="{{ route('bending.base.index') }}" hx-target="#items-table" hx-include="#filterForm"
hx-trigger="keyup changed delay:400ms">
<button type="submit" class="px-3 py-1.5 bg-gray-700 text-white rounded text-sm"
hx-get="{{ route('bending.base.index') }}" hx-target="#items-table" hx-include="#filterForm">
검색
</button>
<span class="text-sm text-gray-500 ml-2"> {{ $items['total'] ?? count($items['data'] ?? []) }}</span>
</form>
{{-- 테이블 --}}
<div id="items-table">
@include('bending.base.partials.table', ['items' => $items])
</div>
</div>
@if(session('success'))
<script>
document.addEventListener('DOMContentLoaded', () => {
showToast("{{ session('success') }}", 'success');
});
</script>
@endif
@push('scripts')
<script>
function setFilter(name, value) {
const input = document.querySelector(`#filterForm input[name="${name}"]`);
if (input) input.value = value;
document.getElementById('filterForm').submit();
}
</script>
@endpush
@endsection