This commit is contained in:
2026-08-25 22:35:50 +08:00
parent cb98355715
commit 3da2d428f3
11 changed files with 883 additions and 130 deletions
@@ -49,9 +49,9 @@
v-loading="loading"
:data="rows"
border
@selection-change="handleSelectionChange"
highlight-current-row
@current-change="handleCurrentChange"
>
<el-table-column type="selection" width="52" fixed="left" align="center" />
<el-table-column type="index" label="序号" width="64" fixed="left" align="center" />
<el-table-column
v-for="column in columns"
@@ -61,12 +61,18 @@
show-overflow-tooltip
>
<template #default="{ row }">
<el-link v-if="column.link && row[column.prop]" type="primary" @click="emitAction('view', row)">{{
row[column.prop]
}}</el-link>
<el-tag v-else-if="column.status" :type="statusType(row.approvalStatus)" class="status-text">{{
displayValue(row[column.prop])
}}</el-tag>
<el-link
v-if="column.link && row[column.prop]"
type="primary"
@click="emitAction('view', row)"
>{{ row[column.prop] }}</el-link
>
<el-tag
v-else-if="column.status"
:type="statusType(row.approvalStatus)"
class="status-text"
>{{ displayValue(row[column.prop]) }}</el-tag
>
<span v-else-if="column.money">{{ formatMoney(row[column.prop], row.currency) }}</span>
<span v-else-if="column.prop === 'invoiceStatusName'">{{
invoiceName(row.invoiceStatus)
@@ -74,10 +80,13 @@
<span v-else-if="column.prop === 'paymentStatusName'">{{
paymentName(row.paymentStatus)
}}</span>
<span v-else-if="column.prop === 'kingdeeSyncStatus'">{{
kingdeeSyncName(row.kingdeeSyncStatus)
}}</span>
<span v-else>{{ displayValue(row[column.prop]) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="120" fixed="right" align="center">
<el-table-column label="操作" width="320" fixed="right" align="center">
<template #default="{ row }"
><div class="fs-table-panel__links">
<el-link
@@ -109,6 +118,7 @@
import { Refresh } from '@element-plus/icons-vue';
import {
invoiceStatusOptions,
kingdeeSyncStatusOptions,
paymentStatusOptions,
} from '@/option/settlement/formalSettlementSearch';
@@ -129,9 +139,9 @@ export default {
};
},
methods: {
handleSelectionChange(value) {
this.selection = value;
this.$emit('update:selection', value);
handleCurrentChange(row) {
this.selection = row ? [row] : [];
this.$emit('update:selection', this.selection);
},
emitAction(type, row) {
this.$emit('action', { type, row });
@@ -180,6 +190,9 @@ export default {
paymentName(value) {
return paymentStatusOptions.find(item => item.value === value)?.label || value || '-';
},
kingdeeSyncName(value) {
return kingdeeSyncStatusOptions.find(item => item.value === value)?.label || value || '-';
},
displayValue(value) {
return value === null || value === undefined || value === '' ? '-' : value;
},