付款申请表单优化与结算单过滤,并完善相关体验

进度预付仅可选预结算、尾款付款可选正式/预结算;同步收款账户、申请金额校验、关闭标签与费用明细残留等交互,并补充运单复制需求说明。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-23 00:17:07 +08:00
parent ce1ce02551
commit 6212d68a77
8 changed files with 492 additions and 228 deletions
+1 -1
View File
@@ -24,7 +24,7 @@ export const syncKingdeeBatch = ids =>
export const paymentTypeOptions = [
{ label: '项目预付', value: 'project_advance' },
{ label: '进度预付', value: 'progress_advance' },
{ label: '结算付款', value: 'settlement_payment' },
{ label: '尾款付款', value: 'settlement_payment' },
];
export const approvalStatusOptions = [
{ label: '草稿', value: 'draft' },
@@ -113,6 +113,12 @@
label="导入方式"
width="100"
/>
<el-table-column
v-if="columnVisible.statusName"
prop="statusName"
label="状态"
width="100"
/>
<el-table-column
v-if="columnVisible.createUserName"
prop="createUserName"
@@ -121,12 +127,6 @@
>
<template #default="{ row }">{{ row.createUserName || '-' }}</template>
</el-table-column>
<el-table-column
v-if="columnVisible.statusName"
prop="statusName"
label="状态"
width="100"
/>
<el-table-column
v-if="columnVisible.createTime"
prop="createTime"
@@ -621,8 +621,8 @@ const columnOptions = [
{ prop: 'carrierType', label: '承运类型' },
{ prop: 'waybillCount', label: '运单数' },
{ prop: 'importTypeName', label: '导入方式' },
{ prop: 'createUserName', label: '创建人' },
{ prop: 'statusName', label: '状态' },
{ prop: 'createUserName', label: '创建人' },
{ prop: 'createTime', label: '创建时间' },
{ prop: 'updateTime', label: '更新时间' },
];
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -326,7 +326,7 @@ export default {
openProjectAdvance() {
this.$router.push({
path: '/payment/payment-application/form',
query: { mode: 'add', paymentType: 'project_advance' },
query: { mode: 'add', paymentType: 'progress_advance' },
});
},
openEdit(row) {
@@ -66,6 +66,9 @@
<span v-else-if="field.prop === 'settlementType'" class="form-readonly">
{{ settlementTypeName }}
</span>
<span v-else-if="field.prop === 'preSettlementNo'" class="form-readonly">
{{ form.preSettlementNo || (!form.id ? '系统自动生成' : '-') }}
</span>
<span v-else-if="field.prop === 'createTime'" class="form-readonly">
{{ formatCreateDate(form.createTime) }}
</span>
+1
View File
@@ -497,6 +497,7 @@ export default {
path: '/payment/payment-application/form',
query: {
mode: 'add',
paymentType: 'progress_advance',
transferToken,
preSettlementIds: sourcePreSettlements
.map(row => row.preSettlementId)
@@ -1198,10 +1198,24 @@ export default {
await this.loadTable();
await this.openRouteDetail();
},
// 标签切走(keep-alive 缓存)或销毁时,收起 teleport/append-to-body 弹层,避免残留盖住其它页面
deactivated() {
this.closeInnerDialogs();
},
beforeUnmount() {
this.clearAdjustCalculations();
this.closeInnerDialogs();
},
methods: {
closeInnerDialogs() {
this.closeDetailPanel();
this.closeAdjustPanel();
this.changeRecordsDialog.visible = false;
this.updateFeeDialog.visible = false;
this.transferDialog.visible = false;
this.generateDialog.visible = false;
this.previewDialog.visible = false;
this.generateContractDialog.visible = false;
},
contractCategoryName(value) {
return (
this.contractCategoryOptions.find(item => String(item.value) === String(value))?.label ||
+7 -4
View File
@@ -570,19 +570,22 @@
- 功能点:
- 任意状态的运单均支持复制。
- 复制后生成新的草稿运单,运单号重新生成。
- 复制时保留运单基础信息、货物信息、承运信息和过程配置相关信息,状态与过程记录重新初始化。
- 复制成功后跳转编辑页面
- 复制后运单号重新生成,业务状态与原运单保持一致
- 复制时保留运单基础信息、货物信息、承运信息和过程配置相关信息;过程打卡记录重新初始化。
- 若原运单为已完成,复制保存后按合同系统计费规则自动生成对应应收、应付明细
- 复制成功后跳转编辑页面(独立表单模式)或刷新列表(弹窗模式)。
- 异常与边界:
- 原运单不存在时提示数据不存在。
- 复制后名称、编号或关联字段触发唯一性校验时应重新处理。
- 复制失败时不影响原运单数据。
- 合同未开启系统计费、无匹配计费方案或自有运输等场景下,按既有规则跳过对应应收/应付生成。
- 反例:
- 不允许复制后沿用原运单号。
- 不允许复制后直接生成进行中或已完成状态。
- 不允许复制后状态与原运单不一致
- 不允许复制后保留原过程节点完成记录。
- 不允许已完成运单复制成功后遗漏按规则应生成的应收应付明细。
---