feat(P16C-4,P16C-6): 完成供应商主数据前端与矩阵收口

这个提交包含在:
2026-03-07 17:44:55 +08:00
父节点 aafa911ee7
当前提交 09b6f4fbb0
共修改 6 个文件,包含 465 行新增和 8 行删除
+11 -2
查看文件
@@ -21,6 +21,7 @@ import { useAuth } from "../auth/AuthContext";
import { hasAnyPermission, hasPermission } from "../auth/permissions";
import { ConfirmDialog } from "../components/common/ConfirmDialog";
import { HolidayCalendarTab } from "../components/master-data/HolidayCalendarTab";
import { SupplierTab } from "../components/master-data/SupplierTab";
import { PageHeader } from "../components/common/PageHeader";
import { StatusBadge } from "../components/common/StatusBadge";
import { TableSkeleton } from "../components/common/TableSkeleton";
@@ -78,7 +79,7 @@ export function MasterDataPage() {
const canView = hasAnyPermission(permissions, ["masterdata.view", "masterdata.manage"]);
const canManage = hasPermission(permissions, "masterdata.manage");
const [tab, setTab] = useState<"legal-entities" | "cost-centers" | "document-categories" | "holiday-calendars">(
const [tab, setTab] = useState<"legal-entities" | "cost-centers" | "document-categories" | "holiday-calendars" | "suppliers">(
"legal-entities",
);
const [includeArchived, setIncludeArchived] = useState(false);
@@ -302,7 +303,7 @@ export function MasterDataPage() {
<div className="space-y-6">
<PageHeader
title="主数据"
subtitle="集中维护法体、成本中心、单据分类与日历,为预算、采购、请假与资产扩展提供统一骨架。"
subtitle="集中维护法体、成本中心、单据分类、日历与供应商,为预算、采购、请假与资产扩展提供统一骨架。"
actions={
<Button variant="secondary" type="button" onClick={() => setIncludeArchived((value) => !value)}>
{includeArchived ? "隐藏归档" : "显示归档"}
@@ -320,6 +321,7 @@ export function MasterDataPage() {
<TabsTrigger value="cost-centers">成本中心</TabsTrigger>
<TabsTrigger value="document-categories">单据分类</TabsTrigger>
<TabsTrigger value="holiday-calendars">日历</TabsTrigger>
<TabsTrigger value="suppliers">供应商</TabsTrigger>
</TabsList>
<TabsContent value="legal-entities" className="space-y-6">
@@ -762,6 +764,13 @@ export function MasterDataPage() {
legalEntities={legalEntities}
/>
</TabsContent>
<TabsContent value="suppliers" className="space-y-6">
<SupplierTab
canManage={canManage}
includeArchived={includeArchived}
legalEntities={legalEntities}
/>
</TabsContent>
</Tabs>
<ConfirmDialog