feat(WEB): 공정관리 드래그 순서변경, 수주서/출고증 리디자인, 체크리스트 관리 추가

- 공정관리: 드래그&드롭 순서 변경 기능 추가 (reorderProcesses API)
- 수주서(SalesOrderDocument): 기획서 D1.8 기준 리디자인, 출고증과 동일 자재 섹션 구조
- 출고증(ShipmentOrderDocument): 레이아웃 개선
- 체크리스트 관리 페이지 신규 추가 (master-data/checklist-management)
- QMS 품질감사: 타입 및 목데이터 수정
- menuRefresh 유틸 정리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
유병철
2026-02-09 17:52:43 +09:00
parent ce36101929
commit 3ea6a57a10
26 changed files with 3398 additions and 829 deletions

View File

@@ -91,7 +91,9 @@ export async function refreshMenus(): Promise<RefreshMenuResult> {
const data = await response.json();
if (!data.menus || !Array.isArray(data.menus)) {
// 백엔드 ApiResponse::success() 응답 형식: { success, message, data: [...] }
const apiMenus = data.data;
if (!apiMenus || !Array.isArray(apiMenus)) {
return {
success: false,
updated: false,
@@ -100,7 +102,7 @@ export async function refreshMenus(): Promise<RefreshMenuResult> {
}
// 3. 메뉴 변환
const transformedMenus = transformApiMenusToMenuItems(data.menus);
const transformedMenus = transformApiMenusToMenuItems(apiMenus);
const newHash = generateMenuHash(transformedMenus);
// 4. 변경 없으면 업데이트 스킵
@@ -159,7 +161,9 @@ export async function forceRefreshMenus(): Promise<RefreshMenuResult> {
const data = await response.json();
if (!data.menus || !Array.isArray(data.menus)) {
// 백엔드 ApiResponse::success() 응답 형식: { success, message, data: [...] }
const apiMenus = data.data;
if (!apiMenus || !Array.isArray(apiMenus)) {
return {
success: false,
updated: false,
@@ -167,7 +171,7 @@ export async function forceRefreshMenus(): Promise<RefreshMenuResult> {
};
}
const transformedMenus = transformApiMenusToMenuItems(data.menus);
const transformedMenus = transformApiMenusToMenuItems(apiMenus);
// localStorage 업데이트
const userData = localStorage.getItem('user');