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:
@@ -161,6 +161,7 @@ export const MenuFormModal: React.FC<MenuFormModalProps> = ({
|
||||
setFormData((prev) => ({
|
||||
...prev,
|
||||
menuUrl: screenUrl,
|
||||
screenCode: screen.screenCode, // 화면 코드도 함께 저장
|
||||
}));
|
||||
|
||||
// console.log("🖥️ 화면 선택 완료:", {
|
||||
@@ -207,10 +208,11 @@ export const MenuFormModal: React.FC<MenuFormModalProps> = ({
|
||||
if (type === "direct") {
|
||||
// 직접 입력 모드로 변경 시 선택된 화면 초기화
|
||||
setSelectedScreen(null);
|
||||
// URL 필드도 초기화 (사용자가 직접 입력할 수 있도록)
|
||||
// URL 필드와 screenCode 초기화 (사용자가 직접 입력할 수 있도록)
|
||||
setFormData((prev) => ({
|
||||
...prev,
|
||||
menuUrl: "",
|
||||
screenCode: undefined, // 화면 코드도 함께 초기화
|
||||
}));
|
||||
} else {
|
||||
// 화면 할당 모드로 변경 시
|
||||
@@ -230,12 +232,14 @@ export const MenuFormModal: React.FC<MenuFormModalProps> = ({
|
||||
setFormData((prev) => ({
|
||||
...prev,
|
||||
menuUrl: screenUrl,
|
||||
screenCode: selectedScreen.screenCode, // 화면 코드도 함께 유지
|
||||
}));
|
||||
} else {
|
||||
// 선택된 화면이 없으면 URL만 초기화
|
||||
// 선택된 화면이 없으면 URL과 screenCode 초기화
|
||||
setFormData((prev) => ({
|
||||
...prev,
|
||||
menuUrl: "",
|
||||
screenCode: undefined,
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user