feat: 모달에서 카테고리 조회 시 menuObjid 전달 기능 추가
카테고리 값을 메뉴별로 다르게 설정할 수 있도록 menuObjid를 모달 체인 전체에 전달합니다. 변경 내용: - InteractiveDataTable: 등록/수정 모달 열 때 menuObjid를 이벤트에 포함 - EditModal: menuObjid를 state에 저장하고 하위 컴포넌트에 전달 - SaveModal: menuObjid props를 받아서 DynamicComponentRenderer에 전달 - SelectBasicComponent: getCategoryValues API 호출 시 menuObjid 파라미터 전달 이를 통해 같은 테이블/컬럼이라도 메뉴에 따라 다른 카테고리 옵션을 표시할 수 있습니다. 카테고리 API를 호출할 때 menuObjid를 전달하여 메뉴별 필터링 적용 가능하게 변경
This commit is contained in:
@@ -33,6 +33,7 @@ interface EditModalState {
|
||||
dataflowConfig?: any;
|
||||
dataflowTiming?: string;
|
||||
}; // 🆕 모달 내부 저장 버튼의 제어로직 설정
|
||||
menuObjid?: number; // 🆕 메뉴 OBJID (카테고리 스코프용)
|
||||
}
|
||||
|
||||
interface EditModalProps {
|
||||
@@ -91,6 +92,7 @@ export const EditModal: React.FC<EditModalProps> = ({ className }) => {
|
||||
buttonConfig: undefined,
|
||||
buttonContext: undefined,
|
||||
saveButtonConfig: undefined,
|
||||
menuObjid: undefined,
|
||||
});
|
||||
|
||||
const [screenData, setScreenData] = useState<{
|
||||
@@ -234,7 +236,7 @@ export const EditModal: React.FC<EditModalProps> = ({ className }) => {
|
||||
// 전역 모달 이벤트 리스너
|
||||
useEffect(() => {
|
||||
const handleOpenEditModal = async (event: CustomEvent) => {
|
||||
const { screenId, title, description, modalSize, editData, onSave, groupByColumns, tableName, isCreateMode, buttonConfig, buttonContext } = event.detail;
|
||||
const { screenId, title, description, modalSize, editData, onSave, groupByColumns, tableName, isCreateMode, buttonConfig, buttonContext, menuObjid } = event.detail;
|
||||
|
||||
// 🆕 모달 내부 저장 버튼의 제어로직 설정 조회
|
||||
let saveButtonConfig: EditModalState["saveButtonConfig"] = undefined;
|
||||
@@ -258,6 +260,7 @@ export const EditModal: React.FC<EditModalProps> = ({ className }) => {
|
||||
buttonConfig, // 🆕 버튼 설정
|
||||
buttonContext, // 🆕 버튼 컨텍스트
|
||||
saveButtonConfig, // 🆕 모달 내부 저장 버튼의 제어로직 설정
|
||||
menuObjid, // 🆕 메뉴 OBJID (카테고리 스코프용)
|
||||
});
|
||||
|
||||
// 편집 데이터로 폼 데이터 초기화
|
||||
@@ -1079,6 +1082,8 @@ export const EditModal: React.FC<EditModalProps> = ({ className }) => {
|
||||
id: modalState.screenId!,
|
||||
tableName: screenData.screenInfo?.tableName,
|
||||
}}
|
||||
// 🆕 메뉴 OBJID 전달 (카테고리 스코프용)
|
||||
menuObjid={modalState.menuObjid}
|
||||
// 🆕 그룹 데이터가 있거나 UniversalFormModal이 없으면 EditModal.handleSave 사용
|
||||
// groupData가 있으면 일괄 저장을 위해 반드시 EditModal.handleSave 사용
|
||||
onSave={shouldUseEditModalSave ? handleSave : undefined}
|
||||
|
||||
Reference in New Issue
Block a user