From 26acd0e07ba67bfdfa21fc185477cec52962b76a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Thu, 12 Mar 2026 14:23:37 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20[pmis]=20=EC=9D=B8=EC=9B=90/=EC=9E=A5?= =?UTF-8?q?=EB=B9=84=EA=B4=80=EB=A6=AC=20=EB=9E=9C=EB=8D=A4=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=EC=B6=94=EA=B0=80=20=EB=B2=84=ED=8A=BC(?= =?UTF-8?q?=EB=B2=88=EA=B0=9C=20=EC=95=84=EC=9D=B4=EC=BD=98)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/views/juil/pmis-equipment.blade.php | 33 ++++++++++++++++++ resources/views/juil/pmis-workforce.blade.php | 34 +++++++++++++++++++ 2 files changed, 67 insertions(+) diff --git a/resources/views/juil/pmis-equipment.blade.php b/resources/views/juil/pmis-equipment.blade.php index adfccfa9..b12cf824 100644 --- a/resources/views/juil/pmis-equipment.blade.php +++ b/resources/views/juil/pmis-equipment.blade.php @@ -330,6 +330,36 @@ function handleSearch() { setPage(1); fetchEquipments(); } function handleAdd() { setEditEquip(null); setModalOpen(true); } function handleEdit(eq) { setEditEquip(eq); setModalOpen(true); } + function randomEquipData() { + const companies = ['(주)대림건설','(주)현대건설','(주)삼성물산','(주)GS건설','(주)포스코건설']; + const names = ['렌탈','굴삭기','지게차','크레인','덤프트럭','콘크리트펌프카','항타기','불도저','로더','롤러']; + const specs = ['2.5(M)*1.17(M)*2.36(M)','0.7m3','3톤','25톤','15톤','50m','12m','D6','1.5m3','10톤']; + const units = ['대','대','대','대','대','대','대','대','대','대']; + const pick = arr => arr[Math.floor(Math.random() * arr.length)]; + const idx = Math.floor(Math.random() * names.length); + const now = new Date(); + const insDate = new Date(now.getFullYear(), now.getMonth() + 1 + Math.floor(Math.random() * 12), Math.floor(Math.random() * 28) + 1); + const inspDate = new Date(now.getFullYear(), now.getMonth() + 1 + Math.floor(Math.random() * 12), Math.floor(Math.random() * 28) + 1); + return { + company_name: pick(companies), + equipment_code: 'Q' + String(100000 + Math.floor(Math.random() * 900000)), + equipment_name: names[idx], + specification: specs[idx], + unit: units[idx], + equipment_number: 'J' + String(1000 + Math.floor(Math.random() * 9000)), + operator: '', + inspection_end_date: inspDate.toISOString().slice(0, 10), + inspection_not_applicable: false, + insurance_end_date: insDate.toISOString().slice(0, 10), + insurance_not_applicable: false, + }; + } + + function handleQuickAdd() { + setEditEquip(randomEquipData()); + setModalOpen(true); + } + async function handleBulkDelete() { if (selected.size === 0) return; if (!confirm(`선택한 ${selected.size}건을 삭제하시겠습니까?`)) return; @@ -382,6 +412,9 @@ className="border border-gray-300 rounded px-3 py-1.5 text-sm" style={{width: 16 + {selected.size > 0 && ( + {selected.size > 0 && (