实现 B-2b 统一报销工作台迁移(reimbursement-form-shared-component-migration)
这个提交包含在:
@@ -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>
|
||||
);
|
||||
}
|
||||
在新工单中引用
屏蔽一个用户