From 567baf74e62bb71d44604eb5fe3457f773396678 Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Tue, 30 Sep 2025 16:48:52 +0900 Subject: (김준회) 결재 카테고리 로직 개선, 미사용 코드 제거 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../table/approval-line-table-toolbar-actions.tsx | 20 +- .../table/create-approval-line-sheet.tsx | 52 ++- lib/approval-template/category-service.ts | 271 +++++++++++ lib/approval-template/category-validations.ts | 47 ++ .../editor/approval-template-editor.tsx | 70 ++- lib/approval-template/service.ts | 47 +- .../approval-template-table-toolbar-actions.tsx | 14 + .../table/approval-template-table.tsx | 9 - .../table/category-management-dialog.tsx | 515 +++++++++++++++++++++ .../table/create-approval-template-sheet.tsx | 55 ++- .../table/update-approval-template-sheet.tsx | 23 - 11 files changed, 1047 insertions(+), 76 deletions(-) create mode 100644 lib/approval-template/category-service.ts create mode 100644 lib/approval-template/category-validations.ts create mode 100644 lib/approval-template/table/category-management-dialog.tsx delete mode 100644 lib/approval-template/table/update-approval-template-sheet.tsx (limited to 'lib') diff --git a/lib/approval-line/table/approval-line-table-toolbar-actions.tsx b/lib/approval-line/table/approval-line-table-toolbar-actions.tsx index 6b6600fe..53798e5f 100644 --- a/lib/approval-line/table/approval-line-table-toolbar-actions.tsx +++ b/lib/approval-line/table/approval-line-table-toolbar-actions.tsx @@ -5,8 +5,9 @@ import { type Table } from "@tanstack/react-table" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { DataTableViewOptions } from "@/components/data-table/data-table-view-options" -import { Plus, Download, Upload } from "lucide-react" +import { Plus, Download, Upload, Settings } from "lucide-react" import { type ApprovalLine } from "../service" +import { CategoryManagementDialog } from "@/lib/approval-template/table/category-management-dialog" interface ApprovalLineTableToolbarActionsProps { table: Table @@ -17,6 +18,7 @@ export function ApprovalLineTableToolbarActions({ table, onCreateLine, }: ApprovalLineTableToolbarActionsProps) { + const [showCategoryDialog, setShowCategoryDialog] = React.useState(false) const isFiltered = table.getState().columnFilters.length > 0 return ( @@ -41,6 +43,22 @@ export function ApprovalLineTableToolbarActions({ )}
+ {/* 카테고리 관리 버튼 */} + + + + + {/* 새 템플릿 버튼 */} + + ) : null + + return ( + <> + {trigger} + + + + 결재 템플릿 카테고리 관리 + + 결재 템플릿의 카테고리를 관리합니다. 카테고리는 부서별로 분류하여 사용하세요. + + + +
+ {/* 생성 폼 */} + {showCreateForm && ( +
+

새 카테고리 추가

+
+ +
+ ( + + 카테고리 이름 * + + + + + + )} + /> + ( + + 정렬 순서 + + field.onChange(parseInt(e.target.value) || 0)} + /> + + + + )} + /> +
+ ( + + 설명 + +