DG9 统一全站 UI 布局样板迁移

关联 Issue: DG9-0..DG9-12
这个提交包含在:
2026-05-14 00:52:59 +08:00
父节点 3ac5c785b1
当前提交 4b14c925b6
共修改 30 个文件,包含 743 行新增和 437 行删除
+24 -20
查看文件
@@ -22,9 +22,9 @@ 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";
import { FilterBar, ListWorkspace, PrimaryTable, WorkspaceHeader } from "../components/patterns/ListWorkspace";
import { Button } from "../components/ui/button";
import { Input } from "../components/ui/input";
import { Label } from "../components/ui/label";
@@ -292,16 +292,16 @@ export function MasterDataPage() {
if (!canView) {
return (
<div className="space-y-4">
<PageHeader title="主数据" subtitle="你当前没有主数据权限,请联系管理员开通。" />
<div className="card-std p-6 text-sm text-zinc-600">所需权限:masterdata.view 或 masterdata.manage</div>
</div>
<ListWorkspace>
<WorkspaceHeader title="主数据" subtitle="你当前没有主数据权限,请联系管理员开通。" />
<div className="card-std p-4 text-sm text-zinc-600 md:p-5">所需权限:masterdata.view 或 masterdata.manage</div>
</ListWorkspace>
);
}
return (
<div className="space-y-6">
<PageHeader
<ListWorkspace>
<WorkspaceHeader
title="主数据"
subtitle="集中维护法体、成本中心、单据分类、日历与供应商,为预算、采购、请假与资产扩展提供统一骨架。"
actions={
@@ -325,7 +325,7 @@ export function MasterDataPage() {
</TabsList>
<TabsContent value="legal-entities" className="space-y-6">
<div className="card-std p-6 space-y-4">
<FilterBar className="space-y-4">
<div className="flex flex-wrap items-center justify-between gap-3">
<h3 className="text-base font-semibold text-zinc-900">法体筛选</h3>
<select
@@ -338,10 +338,10 @@ export function MasterDataPage() {
<option value="false">仅停用</option>
</select>
</div>
</div>
</FilterBar>
{canManage ? (
<div className="card-std p-6 space-y-4">
<div className="card-std space-y-4 p-4 md:p-5">
<h3 className="text-base font-semibold text-zinc-900">新建法体</h3>
<div className="grid gap-3 md:grid-cols-3">
<div className="space-y-1">
@@ -377,10 +377,11 @@ export function MasterDataPage() {
</div>
) : null}
<div className="card-std p-6 space-y-3">
<div className="card-std space-y-3 p-4 md:p-5">
<h3 className="text-base font-semibold text-zinc-900">法体列表</h3>
{legalEntitiesQuery.isLoading ? <TableSkeleton columns={6} rows={4} /> : null}
{!legalEntitiesQuery.isLoading ? (
<PrimaryTable>
<Table>
<TableHeader>
<TableRow>
@@ -431,12 +432,13 @@ export function MasterDataPage() {
)}
</TableBody>
</Table>
</PrimaryTable>
) : null}
</div>
</TabsContent>
<TabsContent value="cost-centers" className="space-y-6">
<div className="card-std p-6 space-y-4">
<FilterBar className="space-y-4">
<div className="grid gap-3 md:grid-cols-3">
<select
className="select-std"
@@ -462,10 +464,10 @@ export function MasterDataPage() {
))}
</select>
</div>
</div>
</FilterBar>
{canManage ? (
<div className="card-std p-6 space-y-4">
<div className="card-std space-y-4 p-4 md:p-5">
<h3 className="text-base font-semibold text-zinc-900">新建成本中心</h3>
<div className="grid gap-3 md:grid-cols-4">
<div className="space-y-1 md:col-span-2">
@@ -532,10 +534,11 @@ export function MasterDataPage() {
</div>
) : null}
<div className="card-std p-6 space-y-3">
<div className="card-std space-y-3 p-4 md:p-5">
<h3 className="text-base font-semibold text-zinc-900">成本中心列表</h3>
{costCentersQuery.isLoading ? <TableSkeleton columns={7} rows={4} /> : null}
{!costCentersQuery.isLoading ? (
<PrimaryTable>
<Table>
<TableHeader>
<TableRow>
@@ -588,12 +591,13 @@ export function MasterDataPage() {
)}
</TableBody>
</Table>
</PrimaryTable>
) : null}
</div>
</TabsContent>
<TabsContent value="document-categories" className="space-y-6">
<div className="card-std p-6 space-y-4">
<FilterBar className="space-y-4">
<div className="grid gap-3 md:grid-cols-3">
<select
className="select-std"
@@ -619,10 +623,10 @@ export function MasterDataPage() {
))}
</select>
</div>
</div>
</FilterBar>
{canManage ? (
<div className="card-std p-6 space-y-4">
<div className="card-std space-y-4 p-4 md:p-5">
<h3 className="text-base font-semibold text-zinc-900">新建单据分类</h3>
<div className="grid gap-3 md:grid-cols-4">
<div className="space-y-1">
@@ -693,7 +697,7 @@ export function MasterDataPage() {
</div>
) : null}
<div className="card-std p-6 space-y-3">
<div className="card-std space-y-3 p-4 md:p-5">
<h3 className="text-base font-semibold text-zinc-900">单据分类列表</h3>
{documentCategoriesQuery.isLoading ? <TableSkeleton columns={7} rows={4} /> : null}
{!documentCategoriesQuery.isLoading ? (
@@ -790,6 +794,6 @@ export function MasterDataPage() {
}
}}
/>
</div>
</ListWorkspace>
);
}