From f160ba2a1bea4a3624f1999445271388fdf5420d Mon Sep 17 00:00:00 2001 From: kjs Date: Fri, 16 Jan 2026 09:59:16 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8B=A4=EA=B5=AD=EC=96=B4=20=EC=A7=80?= =?UTF-8?q?=EC=9B=90=20=EB=B0=8F=20=ED=85=8C=EC=9D=B4=EB=B8=94=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20=ED=98=84=ED=99=A9=20=EB=AC=B8=EC=84=9C=EB=A5=BC=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=ED=95=98=EA=B3=A0,=20?= =?UTF-8?q?=EC=BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=20=ED=8C=A8=EB=84=90?= =?UTF-8?q?=EC=97=90=EC=84=9C=20UI=20=EA=B0=9C=EC=84=A0=EC=9D=84=20?= =?UTF-8?q?=ED=86=B5=ED=95=B4=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EA=B2=BD?= =?UTF-8?q?=ED=97=98=EC=9D=84=20=ED=96=A5=EC=83=81=EC=8B=9C=EC=BC=B0?= =?UTF-8?q?=EC=8A=B5=EB=8B=88=EB=8B=A4.=20=EB=98=90=ED=95=9C,=20=ED=86=B5?= =?UTF-8?q?=ED=95=A9=20=ED=8C=A8=EB=84=90=EC=9D=98=20=EB=84=88=EB=B9=84?= =?UTF-8?q?=EB=A5=BC=20=EC=A1=B0=EC=A0=95=ED=95=98=EA=B3=A0,=20=ED=8C=A8?= =?UTF-8?q?=EB=84=90=20=ED=86=A0=EA=B8=80=20=EA=B8=B0=EB=8A=A5=EC=9D=84=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=ED=95=98=EC=97=AC=20=EC=9D=B8=ED=84=B0?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=8A=A4=EC=9D=98=20=EC=9C=A0=EC=97=B0?= =?UTF-8?q?=EC=84=B1=EC=9D=84=20=EB=86=92=EC=98=80=EC=8A=B5=EB=8B=88?= =?UTF-8?q?=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/컴포넌트_기능_현황.md | 39 +++--- frontend/components/screen/ScreenDesigner.tsx | 12 +- .../screen/panels/ComponentsPanel.tsx | 58 +++++--- .../components/screen/toolbar/SlimToolbar.tsx | 29 +++- .../table-list/TableListConfigPanel.tsx | 124 ------------------ 5 files changed, 97 insertions(+), 165 deletions(-) diff --git a/docs/컴포넌트_기능_현황.md b/docs/컴포넌트_기능_현황.md index b6e536f7..a49c6b76 100644 --- a/docs/컴포넌트_기능_현황.md +++ b/docs/컴포넌트_기능_현황.md @@ -9,7 +9,7 @@ | 기능 | 적용 완료 | 미적용 | 해당없음 | | -------------------------- | --------- | ------ | -------- | -| **다국어 지원** | 3개 | 10개 | 3개 | +| **다국어 지원** | 3개 | 9개 | 4개 | | **컴포넌트별 테이블 설정** | 6개 | 4개 | 6개 | --- @@ -18,12 +18,12 @@ ### 데이터 표시 (Display) - 4개 -| 컴포넌트 | 다국어 지원 | 테이블 설정 | 비고 | -| ------------------- | :---------: | :---------: | ------------------------------------------------------------------- | -| **테이블 리스트** | ✅ 적용 | ✅ 적용 | `customTableName`, `useCustomTable` 지원 | -| **카드 디스플레이** | ❌ 미적용 | ✅ 적용 | Combobox UI로 테이블 선택, `customTableName`, `useCustomTable` 지원 | -| **텍스트 표시** | ❌ 미적용 | ➖ 해당없음 | 정적 텍스트 표시용 | -| **피벗 그리드** | ❌ 미적용 | ⚠️ 부분 | `tableName` 설정 가능하나 Combobox UI 없음 | +| 컴포넌트 | 다국어 지원 | 테이블 설정 | 비고 | +| ------------------- | :---------: | :---------: | --------------------------------------------- | +| **테이블 리스트** | ✅ 적용 | ✅ 적용 | `customTableName`, `useCustomTable` 지원 | +| **카드 디스플레이** | ➖ 해당없음 | ✅ 적용 | DB 데이터 표시용, 버튼은 시스템 다국어로 처리 | +| **텍스트 표시** | ❌ 미적용 | ➖ 해당없음 | 정적 텍스트 표시용 | +| **피벗 그리드** | ❌ 미적용 | ⚠️ 부분 | `tableName` 설정 가능하나 Combobox UI 없음 | --- @@ -79,11 +79,18 @@ - `button-primary`: 버튼 텍스트 다국어 지원 - `split-panel-layout`: 패널 제목 다국어 지원 -**미적용 (10개)** +**해당없음 (4개)** -- `card-display`, `text-display`, `pivot-grid` +- `card-display`: DB 데이터 표시용, 버튼 라벨은 시스템 다국어로 처리 +- `text-display`: 정적 텍스트 표시용 +- `divider-line`: 시각적 구분용 +- `구분선`: 시각적 구분용 + +**미적용 (9개)** + +- `pivot-grid` - `unified-repeater`, `repeat-screen-modal` -- `tabs`, `section-card`, `section-paper`, `divider-line` +- `tabs`, `section-card`, `section-paper` - `numbering-rule`, `rack-structure`, `location-swap-selector`, `table-search-widget` --- @@ -131,12 +138,12 @@ ### 2순위: 다국어 지원 확대 -| 컴포넌트 | 작업 내용 | -| ------------------ | -------------------------- | -| `unified-repeater` | 컬럼 라벨 `langKeyId` 지원 | -| `card-display` | 필드 라벨 `langKeyId` 지원 | -| `tabs` | 탭 이름 `langKeyId` 지원 | -| `section-card` | 제목 `langKeyId` 지원 | +| 컴포넌트 | 작업 내용 | 상태 | +| ------------------ | -------------------------- | ----------- | +| `card-display` | 버튼 라벨 시스템 다국어 | ➖ 해당없음 | +| `unified-repeater` | 컬럼 라벨 `langKeyId` 지원 | 대기 | +| `tabs` | 탭 이름 `langKeyId` 지원 | 대기 | +| `section-card` | 제목 `langKeyId` 지원 | 대기 | --- diff --git a/frontend/components/screen/ScreenDesigner.tsx b/frontend/components/screen/ScreenDesigner.tsx index e590a6f2..aa2b83e7 100644 --- a/frontend/components/screen/ScreenDesigner.tsx +++ b/frontend/components/screen/ScreenDesigner.tsx @@ -101,7 +101,6 @@ import { ScreenPreviewProvider } from "@/contexts/ScreenPreviewContext"; import { TableOptionsProvider } from "@/contexts/TableOptionsContext"; // 새로운 통합 UI 컴포넌트 -import { LeftUnifiedToolbar, defaultToolbarButtons } from "./toolbar/LeftUnifiedToolbar"; import { SlimToolbar } from "./toolbar/SlimToolbar"; import { UnifiedPropertiesPanel } from "./panels/UnifiedPropertiesPanel"; @@ -4464,15 +4463,14 @@ export default function ScreenDesigner({ selectedScreen, onBackToList }: ScreenD onGenerateMultilang={handleGenerateMultilang} isGeneratingMultilang={isGeneratingMultilang} onOpenMultilangSettings={() => setShowMultilangSettingsModal(true)} + isPanelOpen={panelStates.unified?.isOpen || false} + onTogglePanel={() => togglePanel("unified")} /> - {/* 메인 컨테이너 (좌측 툴바 + 패널들 + 캔버스) */} + {/* 메인 컨테이너 (패널들 + 캔버스) */}
- {/* 좌측 통합 툴바 */} - - - {/* 통합 패널 */} + {/* 통합 패널 - 좌측 사이드바 제거 후 너비 300px로 확장 */} {panelStates.unified?.isOpen && ( -
+

패널

+ {onTogglePanel &&
} + + {/* 패널 토글 버튼 */} + {onTogglePanel && ( + + )} +
diff --git a/frontend/lib/registry/components/table-list/TableListConfigPanel.tsx b/frontend/lib/registry/components/table-list/TableListConfigPanel.tsx index 0b1d1bed..8cd8b0c5 100644 --- a/frontend/lib/registry/components/table-list/TableListConfigPanel.tsx +++ b/frontend/lib/registry/components/table-list/TableListConfigPanel.tsx @@ -760,130 +760,6 @@ export const TableListConfigPanel: React.FC = ({
테이블 리스트 설정
- {/* 커스텀 테이블 설정 */} -
-
-

데이터 소스 테이블

-

화면 메인 테이블과 다른 테이블을 사용할 수 있습니다

-
-
- - {/* 커스텀 테이블 사용 여부 */} - {/* 현재 선택된 테이블 표시 (카드 형태) */} -
- -
-
- {config.customTableName || config.selectedTable || screenTableName || "테이블 미선택"} -
-
- {config.useCustomTable ? "커스텀 테이블" : "화면 기본 테이블"} - {config.isReadOnly && " (읽기전용)"} -
-
-
- - {/* 테이블 선택 Combobox (기본/전체 그룹) */} - - - - - - - - - 테이블을 찾을 수 없습니다 - - {/* 그룹 1: 화면 기본 테이블 */} - {screenTableName && ( - - { - console.log("🔍 기본 테이블 선택:", currentValue, screenTableName); - onChange({ - ...config, - useCustomTable: false, - customTableName: undefined, - selectedTable: screenTableName, - columns: [], - }); - setTableComboboxOpen(false); - }} - className="text-xs cursor-pointer" - > - - - {screenTableName} - - - )} - - {/* 그룹 2: 전체 테이블 */} - - {availableTables - .filter((table) => table.tableName !== screenTableName) - .map((table) => ( - { - console.log("🔍 전체 테이블 선택:", currentValue, table.tableName); - onChange({ - ...config, - useCustomTable: true, - customTableName: table.tableName, - selectedTable: table.tableName, - columns: [], - }); - setTableComboboxOpen(false); - }} - className="text-xs cursor-pointer" - > - - - {table.displayName || table.tableName} - - ))} - - - - - - - {/* 읽기전용 설정 */} -
- handleChange("isReadOnly", checked)} - /> - -
-
- {/* 툴바 버튼 설정 */}