This commit is contained in:
wuzilong committed 2026-09-11 21:19:52 +08:00
1 parent 83192719b0
commit 8e87c7d576
33 files changed
+39570 -38896

No files matched your search

+16 -5
View File
@@ -90,23 +90,34 @@ export function moneyTableFormatter(_row: unknown, _column: unknown, cellValue:
export interface ReimburseExpenseDetailLike {
expenseName?: string | null
amount?: number | string | null
occurDate?: string | null
}
/** 列表费用项目列:按明细顺序返回「项目名 (金额元)」各行文案 */
/** 列表费用项目列:按明细顺序返回「项目名 (金额元) 发生时间」各行文案 */
export function getReimburseExpenseItemLines(
details?: ReimburseExpenseDetailLike[] | null,
fallback?: ReimburseExpenseDetailLike | null
): string[] {
const formatLine = (name: string, amount?: number | string | null) =>
`${name} (${formatMoneyNumber(amount)}元)`
const formatLine = (
name: string,
amount?: number | string | null,
occurDate?: string | null
) => {
const datePart = String(occurDate ?? '').trim()
return datePart
? `${name} (${formatMoneyNumber(amount)}元) ${datePart}`
: `${name} (${formatMoneyNumber(amount)}元)`
}
const lines = (details ?? []).filter((d) => String(d?.expenseName ?? '').trim())
if (lines.length) {
return lines.map((d) => formatLine(String(d.expenseName).trim(), d.amount))
return lines.map((d) =>
formatLine(String(d.expenseName).trim(), d.amount, d.occurDate)
)
}
const name = String(fallback?.expenseName ?? '').trim()
if (name) {
return [formatLine(name, fallback?.amount)]
return [formatLine(name, fallback?.amount, fallback?.occurDate)]
}
return ['-']
}