feat: 메뉴 관리에서 화면 할당 해제 기능 추가
## 문제점 - URL 직접 입력 모드에서 빈 값으로 저장 시 menu_url은 비워지지만 - screen_code는 기존 값이 남아있어 화면 할당이 해제되지 않음 ## 해결방법 ### 백엔드 (adminController.ts) - updateMenu: menu_url이 비어있으면 screen_code도 null로 자동 설정 - 로직: menuUrl ? screenCode : null ### 프론트엔드 (MenuFormModal.tsx, menu.ts) - 화면 선택 시 screenCode도 함께 formData에 저장 - URL 타입 변경 시 screenCode 초기화 - MenuFormData 인터페이스에 screenCode 필드 추가 ## 동작 방식 1. 화면 할당: menuUrl + screenCode 함께 저장 2. URL 직접 입력: menuUrl만 저장, screenCode는 undefined 3. 빈 값 저장: menuUrl = null, screenCode = null (자동) 이제 메뉴에서 화면 할당을 완전히 해제할 수 있습니다.
This commit is contained in:
@@ -1274,6 +1274,10 @@ export async function updateMenu(
|
||||
|
||||
const companyCode = requestCompanyCode;
|
||||
|
||||
// menu_url이 비어있으면 screen_code도 null로 설정
|
||||
const menuUrl = menuData.menuUrl || null;
|
||||
const screenCode = menuUrl ? menuData.screenCode || null : null;
|
||||
|
||||
// Raw Query를 사용한 메뉴 수정
|
||||
const [updatedMenu] = await query<any>(
|
||||
`UPDATE menu_info SET
|
||||
@@ -1288,8 +1292,9 @@ export async function updateMenu(
|
||||
system_name = $9,
|
||||
company_code = $10,
|
||||
lang_key = $11,
|
||||
lang_key_desc = $12
|
||||
WHERE objid = $13
|
||||
lang_key_desc = $12,
|
||||
screen_code = $13
|
||||
WHERE objid = $14
|
||||
RETURNING *`,
|
||||
[
|
||||
menuData.menuType ? Number(menuData.menuType) : null,
|
||||
@@ -1297,13 +1302,14 @@ export async function updateMenu(
|
||||
menuData.menuNameKor,
|
||||
menuData.menuNameEng || null,
|
||||
menuData.seq ? Number(menuData.seq) : null,
|
||||
menuData.menuUrl || null,
|
||||
menuUrl,
|
||||
menuData.menuDesc || null,
|
||||
menuData.status || "active",
|
||||
menuData.systemName || null,
|
||||
companyCode,
|
||||
menuData.langKey || null,
|
||||
menuData.langKeyDesc || null,
|
||||
screenCode,
|
||||
Number(menuId),
|
||||
]
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user