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
품목이 없습니다