- 기초관리: 목록(13컬럼) + 폼(기본정보 + 케이스전용 + 절곡테이블 + 이미지) - 절곡품: 가이드레일/케이스/하단마감재 타입별 목록 + 폼 - 부품 추가(기초관리 검색 모달) + 삭제 + 수량/품명/재질 편집 - 절곡테이블 inline 편집 + 재질별 폭합 자동계산 - 작업지시서 레거시 포맷 인쇄 모달 - 원본수정 버튼 sam_item_id 직접 링크 - DB 메뉴 등록 (기초관리 + 절곡품 + 케이스 + 하단마감재)
90 lines
4.2 KiB
PHP
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
|