实现 B-2b 统一报销工作台迁移(reimbursement-form-shared-component-migration)

这个提交包含在:
2026-09-02 07:35:01 +08:00
父节点 6bca91a360
当前提交 abdd250325
共修改 38 个文件,包含 1850 行新增和 2723 行删除
@@ -0,0 +1,49 @@
import type { ReimbursementEvidenceCapabilities } from "./ReimbursementItemEvidenceList";
import { ReimbursementItemEvidenceList } from "./ReimbursementItemEvidenceList";
import type { ReimbursementWorkspaceModel, ReimbursementWorkspaceSlots } from "../../lib/reimbursementWorkspace";
import { formatDisplayDate, formatMoney } from "../../lib/displayFormat";
import { BusinessDetailAside, BusinessDetailMain, BusinessDetailWorkspace } from "../patterns/BusinessDetailTemplate";
import { EntityOverviewHero } from "../patterns/EntityOverviewHero";
import { PageScaffold } from "../patterns/PageScaffold";
import { SectionPanel } from "../patterns/SectionPanel";
type Props = {
model: ReimbursementWorkspaceModel;
capabilities?: ReimbursementEvidenceCapabilities;
slots: ReimbursementWorkspaceSlots;
};
export function ReimbursementDesktopWorkspaceShell({ model, capabilities, slots }: Props) {
return (
<PageScaffold data-testid="reimbursement-desktop-workspace">
{slots.backAction}
<EntityOverviewHero
title={`报销单 ${model.header.displayCode}`}
subtitle={model.header.description || "未填写事由"}
meta={(
<>
{slots.status}
<span className="info-chip">报销人:{model.header.ownerName}</span>
<span className="info-chip">日期:{formatDisplayDate(model.header.reimbursementDate)}</span>
<span className="info-chip">合计:{formatMoney(model.header.totalAmount)}</span>
</>
)}
/>
{slots.transientFeedback}
<BusinessDetailWorkspace className="mx-auto w-full max-w-7xl">
<BusinessDetailMain>
{slots.headerDetails}
{slots.beforeEvidence}
<SectionPanel title="明细与票据" className="scroll-mt-24">
<div id="reimbursement-workspace-evidence">
<ReimbursementItemEvidenceList evidence={model.evidence} capabilities={capabilities} />
</div>
</SectionPanel>
{slots.afterEvidence}
{slots.timeline}
</BusinessDetailMain>
<BusinessDetailAside>{slots.actionPanel}</BusinessDetailAside>
</BusinessDetailWorkspace>
</PageScaffold>
);
}