From f8f8f70f54980eb5d1b60a4ff4aaa67215bd1497 Mon Sep 17 00:00:00 2001 From: Mina Choi Date: Wed, 22 Jul 2026 17:23:48 +0900 Subject: [PATCH] =?UTF-8?q?[style]=20negodata/front:=20=EC=83=81=ED=92=88?= =?UTF-8?q?=C2=B7=EC=B9=B4=EB=93=9C=20=EB=AA=A9=EB=A1=9D=20=ED=8F=AC?= =?UTF-8?q?=ED=84=B8=ED=98=95=20=EC=B9=B4=EB=93=9C(=ED=88=B4=EB=B0=94+?= =?UTF-8?q?=ED=85=8C=EC=9D=B4=EB=B8=94=20=ED=95=9C=20=EC=B9=B4=EB=93=9C?= =?UTF-8?q?=EB=A1=9C=20=EA=B2=B0=ED=95=A9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../features/cards/components/CardTable.tsx | 5 +++- .../products/components/ProductTable.tsx | 6 ++++- negodata/front/src/pages/cards.tsx | 23 ++++++++++--------- negodata/front/src/pages/products.tsx | 5 ++++ 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/negodata/front/src/features/cards/components/CardTable.tsx b/negodata/front/src/features/cards/components/CardTable.tsx index 44772cd..df5bd9f 100644 --- a/negodata/front/src/features/cards/components/CardTable.tsx +++ b/negodata/front/src/features/cards/components/CardTable.tsx @@ -7,11 +7,14 @@ type CardTableProps = { data: NegotiationCard[]; onEdit: (card: NegotiationCard) => void; footer?: ReactNode; + /** 툴바와 한 카드로 붙일 때 테이블 자체 테두리/라운드를 죽이는 용도 */ + className?: string; }; -export function CardTable({ data, onEdit, footer }: CardTableProps) { +export function CardTable({ data, onEdit, footer, className }: CardTableProps) { return ( card.id} onRowClick={onEdit} diff --git a/negodata/front/src/features/products/components/ProductTable.tsx b/negodata/front/src/features/products/components/ProductTable.tsx index d378589..8344971 100644 --- a/negodata/front/src/features/products/components/ProductTable.tsx +++ b/negodata/front/src/features/products/components/ProductTable.tsx @@ -15,6 +15,8 @@ type ProductTableProps = { totalCount: number; pageSize: number; onPageChange: (page: number) => void; + /** 툴바와 한 카드로 붙일 때 테이블 자체 테두리/라운드를 죽이는 용도 */ + className?: string; }; export function ProductTable({ @@ -27,10 +29,12 @@ export function ProductTable({ totalCount, pageSize, onPageChange, + className, }: ProductTableProps) { const label = useLabels(); // 회사 설정 용어(카테고리/상품 단가 등) return ( prod.item_id} onRowClick={onRowClick} @@ -69,7 +73,7 @@ export function ProductTable({ ), }, { - header: '상품코드', + header: label('item.code'), align: 'left', cellClassName: 'font-mono font-medium text-muted-foreground', cell: (prod) => prod.code, diff --git a/negodata/front/src/pages/cards.tsx b/negodata/front/src/pages/cards.tsx index b31cfd2..699a76c 100644 --- a/negodata/front/src/pages/cards.tsx +++ b/negodata/front/src/pages/cards.tsx @@ -7,7 +7,7 @@ import { PageToolbar, SearchInput } from '@/components/layout/PageToolbar'; import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from '@/components/ui/dropdown-menu'; import { TablePagination } from '@/components/ui/table-pagination'; -import { Typography } from '@/components/ui/typography'; +import { cn } from '@/lib/utils'; import { useServerList } from '@/lib/useServerList'; import { useCards } from '@/features/cards/hooks/useCards'; import { useGetCard } from '@/api/generated/card/card'; @@ -62,8 +62,10 @@ export default function CardsPage() { return ( - {/* 플랫 툴바 — 다른 목록 페이지와 동일 문법(검색 좌측, 주버튼+⋯ 우측) */} + {/* 검색/액션 + 탭 + 테이블을 한 카드로 붙인다(포털형, 상품관리와 동일 문법). */} +
@@ -99,32 +101,30 @@ export default function CardsPage() { onClear={list.clearSearch} placeholder="전체 카드이름, 카드번호, 코드 검색..." /> + - {/* Primary Navigation Tab */} -
+ {/* 구분 탭 — 검색/액션 바 아래, 테이블 바로 위 */} +
{tabs.map((tab) => ( ))}
- {/* 배너에 있던 공용 카드 안내는 캡션 한 줄로 유지 */} - - 우리 회사 카드와 기본 제공(공용) 카드를 함께 조회합니다. 공용 카드는 수정·삭제할 수 없습니다. - - } /> +
{isFormOpen && ( + {/* 검색/액션 바 + 테이블을 한 카드로 붙인다(포털형). 툴바는 카드 상단 헤더, 테이블은 본문. */} +
{isFormOpen && (