提交
This commit is contained in:
1 parent
83192719b0
commit
8e87c7d576
33 files changed
+39570
-38896
No files matched your search
@@ -66,7 +66,7 @@
|
||||
@keyup.enter="confirm"
|
||||
/>
|
||||
</div>
|
||||
<p class="field-tip">整库模糊匹配本列</p>
|
||||
<p class="field-tip">{{ textFieldTip }}</p>
|
||||
</template>
|
||||
|
||||
<!-- 枚举:固定选项勾选 -->
|
||||
@@ -224,9 +224,12 @@
|
||||
options?: Array<{ value: string; label: string; count: number }>
|
||||
/** CRM 外壳 CrmColFilterHeader 已自绘双三角时传 false,避免重复 */
|
||||
enableSort?: boolean
|
||||
/** 文本过滤底部提示;默认「整库模糊匹配本列」 */
|
||||
textTip?: string
|
||||
}>(),
|
||||
{
|
||||
enableSort: true
|
||||
enableSort: true,
|
||||
textTip: ''
|
||||
}
|
||||
)
|
||||
|
||||
@@ -265,6 +268,10 @@
|
||||
return '时间:按日期闭区间过滤'
|
||||
})
|
||||
|
||||
const textFieldTip = computed(
|
||||
() => props.textTip?.trim() || '整库模糊匹配本列'
|
||||
)
|
||||
|
||||
const visibleOptions = computed(() => {
|
||||
const list = props.options || []
|
||||
const q = draftKeyword.value.trim().toLowerCase()
|
||||
|
||||
@@ -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 ['-']
|
||||
}
|
||||
|
||||
@@ -182,6 +182,7 @@
|
||||
prop="expenseName"
|
||||
label="费用项目"
|
||||
type="text"
|
||||
text-tip="模糊匹配费用项目名称或发生时间(如 2026-03)"
|
||||
:is-active="isFilterActive('expenseName')"
|
||||
:model-value="filters.expenseName || null"
|
||||
@update:model-value="(v) => setFilterState('expenseName', v)"
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
v-if="isColumnVisible('expenseName')"
|
||||
prop="expenseName"
|
||||
label="费用项目"
|
||||
min-width="260"
|
||||
min-width="300"
|
||||
align="left"
|
||||
header-align="center"
|
||||
show-overflow-tooltip
|
||||
@@ -176,6 +176,7 @@
|
||||
prop="expenseName"
|
||||
label="费用项目"
|
||||
type="text"
|
||||
text-tip="模糊匹配费用项目名称或发生时间(如 2026-03)"
|
||||
:is-active="isFilterActive('expenseName')"
|
||||
:model-value="filters.expenseName || null"
|
||||
@update:model-value="(v) => setFilterState('expenseName', v)"
|
||||
@@ -428,7 +429,7 @@
|
||||
v-if="isColumnVisible('expenseName')"
|
||||
prop="expenseName"
|
||||
label="费用项目"
|
||||
min-width="260"
|
||||
min-width="300"
|
||||
align="left"
|
||||
header-align="center"
|
||||
show-overflow-tooltip
|
||||
@@ -440,6 +441,7 @@
|
||||
prop="expenseName"
|
||||
label="费用项目"
|
||||
type="text"
|
||||
text-tip="模糊匹配费用项目名称或发生时间(如 2026-03)"
|
||||
:is-active="isFilterActive('expenseName')"
|
||||
:model-value="filters.expenseName || null"
|
||||
@update:model-value="(v) => setFilterState('expenseName', v)"
|
||||
|
||||
Reference in new issue
Block a user