fix: 优化顶部导航栏布局与工作台摘要展示并清理旧票据数据

This commit is contained in:
caoxiaozhu
2026-06-03 17:40:52 +08:00
parent 8e2477587f
commit cb36d78fa2
45 changed files with 1017 additions and 1734 deletions

View File

@@ -194,10 +194,11 @@ function buildTodoItems(ownedRequests) {
.sort((left, right) => normalizeText(right.due).localeCompare(normalizeText(left.due)))
}
function resolveProgressStatusTone(approvalKey) {
if (approvalKey === 'completed') return 'muted'
if (approvalKey === 'pending_payment') return 'warning'
if (approvalKey === 'supplement' || approvalKey === 'rejected') return 'danger'
function resolveProgressStatusTone(approvalKey, statusText = '') {
const status = String(statusText || '').trim()
if (approvalKey === 'completed' || /完成|结束|通过/i.test(status)) return 'muted'
if (approvalKey === 'pending_payment' || /付款|支付/i.test(status)) return 'warning'
if (approvalKey === 'supplement' || approvalKey === 'rejected' || /退回|驳回|修改/i.test(status)) return 'danger'
return 'success'
}
@@ -243,14 +244,15 @@ function buildProgressItems(ownedRequests) {
const currentStep = steps.find((step) => step.current)
const title = normalizeText(request?.title || request?.note || request?.sceneLabel) || '费用单据'
const status = normalizeText(request?.approvalStatus || currentStep?.label) || '处理中'
return {
id: requestId,
requestId,
title,
expenseTypeLabel: resolveExpenseCategory(request),
amount: formatCurrency(request?.amount),
status: normalizeText(request?.approvalStatus || currentStep?.label) || '处理中',
statusTone: resolveProgressStatusTone(normalizeText(request?.approvalKey)),
status,
statusTone: resolveProgressStatusTone(normalizeText(request?.approvalKey), status),
updatedAt: normalizeText(request?.updatedAt || request?.submittedAt || request?.createdAt),
steps,
target: resolveRequestTarget(request),
@@ -391,12 +393,14 @@ function buildExpenseProcessingRows(ownedRequests) {
const latestAt = dates[dates.length - 1] || toDate(request?.updatedAt || request?.submittedAt || request?.createdAt)
const stepCount = Array.isArray(request?.progressSteps) ? request.progressSteps.length : 0
const status = normalizeText(request?.approvalStatus || request?.status) || '处理中'
return {
id: requestId || title,
requestId,
title,
status: normalizeText(request?.approvalStatus || request?.status) || '处理中',
statusTone: resolveProgressStatusTone(normalizeText(request?.approvalKey)),
status,
statusTone: resolveProgressStatusTone(normalizeText(request?.approvalKey), status),
startedAt: startedAt ? formatDateTimeLabel(startedAt) : '暂无开始时间',
updatedAt: latestAt ? formatDateTimeLabel(latestAt) : '暂无更新时间',
durationLabel: startedAt && latestAt ? formatDurationLabel(latestAt.getTime() - startedAt.getTime()) : '暂无耗时',