From 2976cad0a5f92481f1c0b902d7af7d10fbe75fa7 Mon Sep 17 00:00:00 2001 From: kjs Date: Tue, 17 Mar 2026 16:54:56 +0900 Subject: [PATCH] feat: enhance item routing modal configuration - Added new properties for configuring the item addition modal's maximum width and list height in the ItemRoutingConfig interface. - Updated the ColumnEditor component to include additional content for modal size settings, allowing users to specify width and height in pixels. - Adjusted the ItemRoutingComponent to apply the new configuration settings for the modal's dimensions, improving the user experience by providing more control over modal appearance. These changes aim to enhance the flexibility and usability of the item routing modal within the application. --- .../V2ItemRoutingConfigPanel.tsx | 29 +++++++++++++++++-- .../v2-item-routing/ItemRoutingComponent.tsx | 8 ++--- .../components/v2-item-routing/types.ts | 4 +++ 3 files changed, 34 insertions(+), 7 deletions(-) diff --git a/frontend/components/v2/config-panels/V2ItemRoutingConfigPanel.tsx b/frontend/components/v2/config-panels/V2ItemRoutingConfigPanel.tsx index 851d90fe..6b85429b 100644 --- a/frontend/components/v2/config-panels/V2ItemRoutingConfigPanel.tsx +++ b/frontend/components/v2/config-panels/V2ItemRoutingConfigPanel.tsx @@ -180,12 +180,13 @@ function ScreenCombobox({ value, onChange }: { value?: number; onChange: (v?: nu } // ─── 컬럼 편집 카드 (품목/모달/공정 공용) ─── -function ColumnEditor({ columns, onChange, tableName, title, icon }: { +function ColumnEditor({ columns, onChange, tableName, title, icon, extraContent }: { columns: ColumnDef[]; onChange: (cols: ColumnDef[]) => void; tableName: string; title: string; icon: React.ReactNode; + extraContent?: React.ReactNode; }) { const [open, setOpen] = useState(false); @@ -263,6 +264,7 @@ function ColumnEditor({ columns, onChange, tableName, title, icon }: { + {extraContent} @@ -378,13 +380,34 @@ export const V2ItemRoutingConfigPanel: React.FC = icon={} /> - {/* ─── 모달 표시 컬럼 (등록 모드에서만 의미 있지만 항상 설정 가능) ─── */} + {/* ─── 품목 추가 모달 (컬럼 + 크기 설정) ─── */} update({ modalDisplayColumns: cols })} tableName={config.dataSource.itemTable} - title="품목 추가 모달 컬럼" + title="품목 추가 모달" icon={} + extraContent={ +
+ 모달 크기 (px) +
+
+ 가로 (너비) + update({ addModalMaxWidth: `${e.target.value}px` })} + placeholder="600" className="h-7 text-xs" /> +
+
+ 세로 (목록 높이) + update({ addModalListMaxHeight: `${e.target.value}px` })} + placeholder="340" className="h-7 text-xs" /> +
+
+
+ } /> {/* ─── 품목 필터 조건 ─── */} diff --git a/frontend/lib/registry/components/v2-item-routing/ItemRoutingComponent.tsx b/frontend/lib/registry/components/v2-item-routing/ItemRoutingComponent.tsx index d0144d0b..53717003 100644 --- a/frontend/lib/registry/components/v2-item-routing/ItemRoutingComponent.tsx +++ b/frontend/lib/registry/components/v2-item-routing/ItemRoutingComponent.tsx @@ -458,7 +458,7 @@ export function ItemRoutingComponent({ {/* ════ 품목 추가 다이얼로그 (테이블 형태 + 검색) ════ */} - + 품목 추가 @@ -481,14 +481,14 @@ export function ItemRoutingComponent({ -
+
{allItems.length === 0 ? (

품목이 없습니다

) : ( - - +
+ {modalDisplayCols.map((col) => ( diff --git a/frontend/lib/registry/components/v2-item-routing/types.ts b/frontend/lib/registry/components/v2-item-routing/types.ts index 08fe73c2..23a3a39b 100644 --- a/frontend/lib/registry/components/v2-item-routing/types.ts +++ b/frontend/lib/registry/components/v2-item-routing/types.ts @@ -64,6 +64,10 @@ export interface ItemRoutingConfig { modalDisplayColumns?: ColumnDef[]; /** 품목 조회 시 사전 필터 조건 */ itemFilterConditions?: ItemFilterCondition[]; + /** 품목 추가 모달 최대 너비 (px 또는 vw, 기본: 600px) */ + addModalMaxWidth?: string; + /** 품목 추가 모달 목록 최대 높이 (px, 기본: 340px) */ + addModalListMaxHeight?: string; } // 컴포넌트 Props