Merge branch 'dev' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management

This commit is contained in:
kjs
2025-09-05 10:25:40 +09:00
14 changed files with 663 additions and 64 deletions

View File

@@ -37,6 +37,7 @@ import {
import { GroupingToolbar } from "./GroupingToolbar";
import { screenApi, tableTypeApi } from "@/lib/api/screen";
import { toast } from "sonner";
import { MenuAssignmentModal } from "./MenuAssignmentModal";
import StyleEditor from "./StyleEditor";
import { RealtimePreview } from "./RealtimePreview";
@@ -133,6 +134,9 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD
});
const [isSaving, setIsSaving] = useState(false);
// 메뉴 할당 모달 상태
const [showMenuAssignmentModal, setShowMenuAssignmentModal] = useState(false);
// 해상도 설정 상태
const [screenResolution, setScreenResolution] = useState<ScreenResolution>(
SCREEN_RESOLUTIONS[0], // 기본값: Full HD
@@ -802,13 +806,16 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD
});
await screenApi.saveLayout(selectedScreen.screenId, layoutWithResolution);
toast.success("화면이 저장되었습니다.");
// 저장 성공 후 메뉴 할당 모달 열기
setShowMenuAssignmentModal(true);
} catch (error) {
console.error("저장 실패:", error);
toast.error("저장 중 오류가 발생했습니다.");
} finally {
setIsSaving(false);
}
}, [selectedScreen?.screenId, layout]);
}, [selectedScreen?.screenId, layout, screenResolution]);
// 템플릿 드래그 처리
const handleTemplateDrop = useCallback(
@@ -2989,6 +2996,18 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD
/>
</div>
)}
{/* 메뉴 할당 모달 */}
<MenuAssignmentModal
isOpen={showMenuAssignmentModal}
onClose={() => setShowMenuAssignmentModal(false)}
screenInfo={selectedScreen}
onAssignmentComplete={() => {
console.log("메뉴 할당 완료");
// 필요시 추가 작업 수행
}}
onBackToList={onBackToList}
/>
</div>
);
}