From d92d4d394986f5215d901e5394dc7ae562a7aebb Mon Sep 17 00:00:00 2001 From: jsyang Date: Wed, 17 Sep 2025 16:15:11 +0900 Subject: [PATCH] =?UTF-8?q?-=20=ED=85=8C=EC=9D=B4=EB=B8=94=20=EB=B9=84?= =?UTF-8?q?=EC=9C=A8=20=EA=B3=A0=EC=A0=95=20=EB=B3=80=EC=88=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80(wideFixed)=20-=20store=20headerlist=20=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EB=B9=84=EC=9C=A8=20=EB=B3=80=EC=88=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80(widePercent)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/ui/table/HeadMakeColSpan.tsx | 5 +++-- .../src/ui/table/index.tsx | 22 ++++++++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/packages/common/business_components/src/ui/table/HeadMakeColSpan.tsx b/packages/common/business_components/src/ui/table/HeadMakeColSpan.tsx index c0ec33233..b3d3fdc40 100644 --- a/packages/common/business_components/src/ui/table/HeadMakeColSpan.tsx +++ b/packages/common/business_components/src/ui/table/HeadMakeColSpan.tsx @@ -8,7 +8,8 @@ interface TableUpperProps { row? : number; rowSpan?: number; colSpan?: number; - visible?:boolean; + visible?:boolean; + widthPercent?: number; } const HeadMakeColSpan = ({ upHeadList }: { upHeadList: TableUpperProps[] }) => { @@ -52,7 +53,7 @@ const HeadMakeColSpan = ({ upHeadList }: { upHeadList: TableUpperProps[] }) => { colSpan={head.colSpan || 1} rowSpan={head.rowSpan || 1} style={{ whiteSpace: 'pre-line' }} - className="bg-gray-50" + className="bg-gray-50" > {head.title} diff --git a/packages/common/business_components/src/ui/table/index.tsx b/packages/common/business_components/src/ui/table/index.tsx index 6d5b24c70..dc763d00b 100644 --- a/packages/common/business_components/src/ui/table/index.tsx +++ b/packages/common/business_components/src/ui/table/index.tsx @@ -32,6 +32,7 @@ type UiTableProps = { index?: number; curPage?: number; headButton?: React.ReactNode | undefined; + widthFixed?: boolean; }; type UiHeadProps = { @@ -39,6 +40,9 @@ type UiHeadProps = { title: string; align?: string; visible?: boolean; + row?: number; + widthPercent?: number; + rowSpan?: number; }; export function UiTable({ @@ -57,6 +61,7 @@ export function UiTable({ index = -1, curPage = 1, headButton = undefined, + widthFixed = false }: UiTableProps) { const [cur, setCur] = useState(curPage); const [idx, setIdx] = useState(index); @@ -104,6 +109,15 @@ export function UiTable({ } }; + const getLeafCols = (list: UiHeadProps[]) => { + const maxRow = list?.reduce((max, head) => Math.max(max, head.row || 0), 0); + return list + .filter(h => h.visible !== false) + .filter(h => ((h.row ?? 0) + (h.rowSpan ?? 1) - 1) >= maxRow) + ; + }; + + const leafCols = getLeafCols(headlist); return ( <> @@ -122,7 +136,13 @@ export function UiTable({ <> )}
- +
+ {widthFixed? + + {leafCols.map(col => ( + + ))} + :""} {children ? children : }