diff --git a/frontend/app/(main)/COMPANY_16/development/ebom-search/page.tsx b/frontend/app/(main)/COMPANY_16/development/ebom-search/page.tsx index 33192575..c12a9d54 100644 --- a/frontend/app/(main)/COMPANY_16/development/ebom-search/page.tsx +++ b/frontend/app/(main)/COMPANY_16/development/ebom-search/page.tsx @@ -148,9 +148,9 @@ export default function EbomSearchPage() { { key: "pm_part_name", label: "품명", minWidth: "min-w-[200px]" }, { key: "qty", label: "수량", width: "w-[70px]", align: "right", formatNumber: true }, { key: "p_qty", label: "항목수량", width: "w-[80px]", align: "right", formatNumber: true }, - { key: "cu01_cnt", label: "3D", width: "w-[60px]", align: "center", renderType: "folder" }, - { key: "cu02_cnt", label: "2D", width: "w-[60px]", align: "center", renderType: "folder" }, - { key: "cu03_cnt", label: "PDF", width: "w-[60px]", align: "center", renderType: "folder" }, + { key: "cu01_cnt", label: "3D", width: "w-[70px]", align: "center", renderType: "folder" }, + { key: "cu02_cnt", label: "2D", width: "w-[70px]", align: "center", renderType: "folder" }, + { key: "cu03_cnt", label: "PDF", width: "w-[70px]", align: "center", renderType: "folder" }, { key: "material", label: "재료", width: "w-[100px]" }, { key: "heat_treatment_hardness", label: "열처리경도", width: "w-[110px]" }, { key: "heat_treatment_method", label: "열처리방법", width: "w-[110px]" }, diff --git a/frontend/app/(main)/COMPANY_16/development/part-regist/page.tsx b/frontend/app/(main)/COMPANY_16/development/part-regist/page.tsx index 8e3672a2..f146dcc8 100644 --- a/frontend/app/(main)/COMPANY_16/development/part-regist/page.tsx +++ b/frontend/app/(main)/COMPANY_16/development/part-regist/page.tsx @@ -25,9 +25,9 @@ import { DevPartSelect } from "@/components/development/DevPartSelect"; const GRID_COLUMNS: DataGridColumn[] = [ { key: "part_no", label: "품번", width: "w-[140px]", frozen: true }, { key: "part_name", label: "품명", minWidth: "min-w-[220px]" }, - { key: "cu01_cnt", label: "3D", width: "w-[60px]", align: "right", formatNumber: true }, - { key: "cu02_cnt", label: "2D", width: "w-[60px]", align: "right", formatNumber: true }, - { key: "cu03_cnt", label: "PDF", width: "w-[60px]", align: "right", formatNumber: true }, + { key: "cu01_cnt", label: "3D", width: "w-[70px]", align: "center", renderType: "folder" }, + { key: "cu02_cnt", label: "2D", width: "w-[70px]", align: "center", renderType: "folder" }, + { key: "cu03_cnt", label: "PDF", width: "w-[70px]", align: "center", renderType: "folder" }, { key: "material", label: "재료", width: "w-[100px]" }, { key: "heat_treatment_hardness", label: "열처리경도", width: "w-[110px]" }, { key: "heat_treatment_method", label: "열처리방법", width: "w-[110px]" }, diff --git a/frontend/app/(main)/COMPANY_16/development/part-search/page.tsx b/frontend/app/(main)/COMPANY_16/development/part-search/page.tsx index 2616565b..f01732dd 100644 --- a/frontend/app/(main)/COMPANY_16/development/part-search/page.tsx +++ b/frontend/app/(main)/COMPANY_16/development/part-search/page.tsx @@ -24,9 +24,9 @@ import { DevPartSelect } from "@/components/development/DevPartSelect"; const GRID_COLUMNS: DataGridColumn[] = [ { key: "part_no", label: "품번", width: "w-[140px]", frozen: true }, { key: "part_name", label: "품명", minWidth: "min-w-[220px]" }, - { key: "cu01_cnt", label: "3D", width: "w-[60px]", align: "right", formatNumber: true }, - { key: "cu02_cnt", label: "2D", width: "w-[60px]", align: "right", formatNumber: true }, - { key: "cu03_cnt", label: "PDF", width: "w-[60px]", align: "right", formatNumber: true }, + { key: "cu01_cnt", label: "3D", width: "w-[70px]", align: "center", renderType: "folder" }, + { key: "cu02_cnt", label: "2D", width: "w-[70px]", align: "center", renderType: "folder" }, + { key: "cu03_cnt", label: "PDF", width: "w-[70px]", align: "center", renderType: "folder" }, { key: "material", label: "재료", width: "w-[100px]" }, { key: "heat_treatment_hardness", label: "열처리경도", width: "w-[110px]" }, { key: "heat_treatment_method", label: "열처리방법", width: "w-[110px]" }, diff --git a/frontend/components/development/BomReportTreeDialog.tsx b/frontend/components/development/BomReportTreeDialog.tsx index 12af65e7..eaebcdea 100644 --- a/frontend/components/development/BomReportTreeDialog.tsx +++ b/frontend/components/development/BomReportTreeDialog.tsx @@ -14,7 +14,7 @@ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; -import { Loader2, FileSpreadsheet } from "lucide-react"; +import { Loader2, FileSpreadsheet, Folder } from "lucide-react"; import { toast } from "sonner"; import { devBomApi, BomReportRow, BomTreeFullRow } from "@/lib/api/devBom"; import { cn } from "@/lib/utils"; @@ -158,9 +158,9 @@ export function BomReportTreeDialog({ open, onOpenChange, bomReport }: Props) { {r.pm_part_name} {r.qty} {r.p_qty} - {Number(r.cu01_cnt ?? 0) > 0 ? "Y" : ""} - {Number(r.cu02_cnt ?? 0) > 0 ? "Y" : ""} - {Number(r.cu03_cnt ?? 0) > 0 ? "Y" : ""} + + + {r.material} {r.heat_treatment_hardness} {r.heat_treatment_method} @@ -184,6 +184,16 @@ export function BomReportTreeDialog({ open, onOpenChange, bomReport }: Props) { ); } +function FolderCell({ n }: { n: any }) { + const has = Number(n ?? 0) > 0; + return ( + + + + ); +} + function MetaRow({ label, value }: { label: string; value: any }) { return (
diff --git a/frontend/components/production/MbomDetailDialog.tsx b/frontend/components/production/MbomDetailDialog.tsx index f7ee38a7..2da312a9 100644 --- a/frontend/components/production/MbomDetailDialog.tsx +++ b/frontend/components/production/MbomDetailDialog.tsx @@ -20,7 +20,7 @@ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; -import { Loader2 } from "lucide-react"; +import { Loader2, Folder } from "lucide-react"; import { toast } from "sonner"; import { cn } from "@/lib/utils"; import { mbomApi, MbomDetail, MbomTreeResponse, MbomBomDataType, MbomTreeRow } from "@/lib/api/mbom"; @@ -184,9 +184,9 @@ export function MbomDetailDialog({ open, onOpenChange, projectObjid }: Props) { {r.processing_vendor_name ?? r.processing_vendor ?? ""} {r.processing_deadline ?? ""} {r.grinding_deadline ?? ""} - {Number(r.cu01_cnt ?? 0) > 0 ? "Y" : ""} - {Number(r.cu02_cnt ?? 0) > 0 ? "Y" : ""} - {Number(r.cu03_cnt ?? 0) > 0 ? "Y" : ""} + + + {r.remark ?? ""} ); @@ -204,6 +204,16 @@ export function MbomDetailDialog({ open, onOpenChange, projectObjid }: Props) { ); } +function FolderCell({ n }: { n: any }) { + const has = Number(n ?? 0) > 0; + return ( + + + + ); +} + function MetaRow({ label, value, numeric }: { label: string; value: any; numeric?: boolean }) { return (