feat(web): 同步交车任务、租赁合同、提车应收款等调整

- 更新多处页面交互与需求说明弹窗文案
- 新增 ETC 管理相关原型页面与需求说明目录内容

Made-with: Cursor
This commit is contained in:
王冕
2026-03-12 16:07:38 +08:00
parent 30e3d9f156
commit 6e149d9373
26 changed files with 3144 additions and 366 deletions

View File

@@ -19,6 +19,7 @@ const Component = function () {
// 模拟:项目信息
var projectInfo = useMemo(function () {
return {
collectCode: 'HT-ZL-2025-001TC0001',
contractCode: 'HT-ZL-2025-001',
contractType: '正式合同',
projectName: '嘉兴氢能示范项目',
@@ -98,17 +99,6 @@ const Component = function () {
)
);
// 客户付款信息:到账/开票历史
var paymentList = useMemo(function () {
return [
{ id: '1', arrivalTime: '2026-03-01 10:00', arrivalAmount: '50000.00', invoiceTime: '2026-03-02 14:30', invoiceFiles: [{ name: '发票-HT-ZL-2025-001-001.pdf' }], remark: '首笔到账' },
{ id: '2', arrivalTime: '2026-03-10 09:00', arrivalAmount: '35280.00', invoiceTime: '2026-03-11 11:00', invoiceFiles: [{ name: '发票-HT-ZL-2025-001-002.pdf' }], remark: '第二笔' }
];
}, []);
var sumArrival = paymentList.reduce(function (s, r) { return s + (parseFloat(r.arrivalAmount) || 0); }, 0);
var unpaidAmount = (parseFloat(actualTotal) - sumArrival).toFixed(2);
if (parseFloat(unpaidAmount) < 0) unpaidAmount = '0.00';
// 审批情况:竖向步骤条
var approvalSteps = useMemo(function () {
return [
@@ -145,6 +135,7 @@ const Component = function () {
),
React.createElement(Card, { title: '项目信息', style: cardStyle },
React.createElement('div', { style: formRowStyle },
React.createElement('div', { style: formItemStyle }, React.createElement('div', { style: labelStyle }, '提车收款单编码'), React.createElement('div', { style: valueStyle }, projectInfo.collectCode || '—')),
React.createElement('div', { style: formItemStyle }, React.createElement('div', { style: labelStyle }, '合同编码'), React.createElement('div', { style: valueStyle }, projectInfo.contractCode || '—')),
React.createElement('div', { style: formItemStyle }, React.createElement('div', { style: labelStyle }, '合同类型'), React.createElement('div', { style: valueStyle }, projectInfo.contractType || '—')),
React.createElement('div', { style: formItemStyle }, React.createElement('div', { style: labelStyle }, '项目名称'), React.createElement('div', { style: valueStyle }, projectInfo.projectName || '—')),
@@ -251,35 +242,6 @@ const Component = function () {
)
)
),
React.createElement(Card, { title: '客户付款信息', style: cardStyle },
React.createElement('div', { style: { marginBottom: 12, fontSize: 14 } }, '未付金额:', React.createElement('span', { style: highlightStyle }, unpaidAmount, ' 元')),
React.createElement('table', { style: { width: '100%', borderCollapse: 'collapse', fontSize: 13 } },
React.createElement('thead', null,
React.createElement('tr', null,
React.createElement('th', { style: Object.assign({}, thBase, { width: 160 }) }, '到账时间'),
React.createElement('th', { style: Object.assign({}, thBase, { width: 120 }) }, '到账金额'),
React.createElement('th', { style: Object.assign({}, thBase, { width: 160 }) }, '开票时间'),
React.createElement('th', { style: thBase }, '发票附件'),
React.createElement('th', { style: thBase }, '备注')
)
),
React.createElement('tbody', null,
paymentList.map(function (r) {
var files = (r.invoiceFiles || []).map(function (f, i) { return React.createElement(Button, { key: i, type: 'link', size: 'small', style: { padding: 0, height: 'auto' }, onClick: function () { message.info('预览:' + (f.name || '附件')); } }, f.name || '附件'); });
var remarkEl = r.remark && r.remark.length > 20
? React.createElement(Tooltip, { title: r.remark }, React.createElement('span', { style: { display: 'inline-block', maxWidth: 160, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' } }, r.remark))
: (r.remark || '—');
return React.createElement('tr', { key: r.id },
React.createElement('td', { style: tdBase }, r.arrivalTime || '—'),
React.createElement('td', { style: tdBase }, r.arrivalAmount ? r.arrivalAmount + ' 元' : '—'),
React.createElement('td', { style: tdBase }, r.invoiceTime || '—'),
React.createElement('td', { style: tdBase }, files.length ? React.createElement('span', null, files) : '—'),
React.createElement('td', { style: tdBase }, remarkEl)
);
})
)
)
),
React.createElement(Card, { title: '审批情况', style: cardStyle },
React.createElement(Steps, {
direction: 'vertical',