feat: 正式结算单展示调整标识与重推入口

This commit is contained in:
刘泉佳
2026-10-16 19:47:08 +08:00
parent 4d3b6cdaed
commit baec42f876
3 changed files with 37 additions and 0 deletions
@@ -19,6 +19,8 @@ export const formalSettlementTableColumns = [
{ label: '审核状态', prop: 'approvalStatusName', minWidth: 110, status: true },
{ label: '当前节点', prop: 'currentNode', minWidth: 130 },
{ label: '当前处理人', prop: 'currentProcessor', minWidth: 130 },
{ label: '调整标识', prop: 'adjustFlag', minWidth: 110 },
{ label: '来源原单号', prop: 'originFormalSettlementNo', minWidth: 170 },
{ label: '金蝶单据号', prop: 'kingdeeBillNo', minWidth: 150 },
{ label: '金蝶单据状态', prop: 'kingdeeSyncStatus', minWidth: 135 },
{ label: '金蝶锁状态', prop: 'kingdeeLockStatus', minWidth: 150 },
@@ -639,6 +639,22 @@
<el-table-column prop="createTime" label="创建时间" min-width="170" align="center">
<template #default="{ row }">{{ displayValue(row.createTime) }}</template>
</el-table-column>
<el-table-column
v-if="hasPermission('settlement_adjustment_repush')"
label="操作"
width="120"
align="center"
>
<template #default="{ row }">
<el-link
v-if="row.approvalStatus === 'approved' && row.kingdeeSyncStatus === 'synced'"
type="danger"
@click="handleAdjustmentRepush(row)"
>重新推送</el-link
>
<span v-else>-</span>
</template>
</el-table-column>
</el-table>
</section-card>
@@ -1048,6 +1064,7 @@ import KingdeeInvoicePoolDialog from '@/components/kingdee-invoice-pool-dialog/m
import ProjectAdvanceWriteOff from './project-advance-write-off.vue';
import * as XLSX from 'xlsx';
import { isAdministrator } from '@/utils/auth';
import * as settlementAdjustmentApi from '@/api/settlement/settlementAdjustment';
// 结算币种为本位币(人民币)时汇率恒为1,汇率日期、结算汇率与按汇率换算的本位币合计都不展示
const LOCAL_CURRENCY_HIDDEN_FIELDS = ['exchangeRateDate', 'exchangeRate', 'localSettlementAmount'];
@@ -1316,6 +1333,17 @@ export default {
hasPermission(code) {
return this.isAdmin || this.validData(this.permission?.[code], false);
},
async handleAdjustmentRepush(row) {
await this.$confirm(
'请确认金蝶旧应付/应收单已由财务手工冲销,继续将生成全新财务应付/应收单。',
'高危操作确认',
{ type: 'warning', confirmButtonText: '确认重新推送' }
);
const res = await settlementAdjustmentApi.repush(row.id);
this.$message.success(`已生成新金蝶单据:${res.data?.data || res.data || '-'}`);
await this.loadFormalDetail(this.recordId);
this.$emit('success');
},
async loadFormalDetail(id) {
const response = this.publicMode
? await getMkPublicDetail('formal-settlement', id)
@@ -92,6 +92,7 @@
<span v-else-if="column.prop === 'kingdeeSyncStatus'">{{
kingdeeSyncName(row.kingdeeSyncStatus)
}}</span>
<span v-else-if="column.prop === 'adjustFlag'">{{ adjustFlag(row) }}</span>
<template v-else-if="column.prop === 'kingdeeLockStatus'">
<el-tooltip v-if="lockTag(row).show" :content="lockTag(row).tip" placement="top">
<el-tag :type="lockTag(row).type" class="status-text">{{ lockTag(row).label }}</el-tag>
@@ -275,6 +276,12 @@ export default {
kingdeeSyncName(value) {
return kingdeeSyncStatusOptions.find(item => item.value === value)?.label || value || '-';
},
adjustFlag(row) {
// 原单已调整 / 重推生成的新单(显示来源原单号)
if (row.adjustStatusName) return row.adjustStatusName;
if (row.originFormalSettlementNo) return '调整后单';
return '-';
},
lockTag(row) {
if (row.kingdeeLockStatus === 'locked') {
return { show: true, type: 'danger', label: '金蝶锁定中', tip: '该单据已被金蝶锁定,不可编辑/作废' };