diff --git a/src/views/payment/invoice-application-form.vue b/src/views/payment/invoice-application-form.vue index 9e91a2c..b4897ea 100644 --- a/src/views/payment/invoice-application-form.vue +++ b/src/views/payment/invoice-application-form.vue @@ -494,6 +494,9 @@ import VehicleAttachmentTable from '@/components/vehicle-attachment-table/main.v import { getMkPublicDetail } from '@/api/mk-process'; import { loadMkEnabled, submitMkApprovalFlow } from '@/utils/mk-approval'; +// 提交成功后带标记返回,列表页(keep-alive)据此重新拉取 +const invoiceApplicationListRefreshKey = 'invoice-application-list-refresh'; + let localId = 0; const emptyLine = () => ({ localId: ++localId, @@ -1227,6 +1230,7 @@ export default { mkEnabled: await loadMkEnabled().catch(() => false), }); this.$message.success('提交成功'); + sessionStorage.setItem(invoiceApplicationListRefreshKey, '1'); this.goBack(); }, async syncReferenceData() { diff --git a/src/views/payment/invoice-application.vue b/src/views/payment/invoice-application.vue index 27075a7..164d462 100644 --- a/src/views/payment/invoice-application.vue +++ b/src/views/payment/invoice-application.vue @@ -251,6 +251,10 @@ import { getMKApprovalUrl } from '@/api/system/business-process'; import { loadMkEnabled, submitMkApprovalFlow } from '@/utils/mk-approval'; import { kingdeeStatusType } from '@/utils/kingdee'; +// 表单提交成功后带标记返回,keep-alive 缓存的列表页据此重新拉取 +const invoiceApplicationListRefreshKey = 'invoice-application-list-refresh'; +const invoiceApplicationListRoute = '/payment/invoice-application'; + const emptyQuery = () => ({ applicationNo: '', projectName: '', @@ -308,7 +312,28 @@ export default { this.mkEnabled = false; }); }, + activated() { + this.consumeListRefreshFlag(); + }, + watch: { + $route(to, from) { + if ( + to.path === invoiceApplicationListRoute && + from?.path?.includes('/invoice-application/form') + ) { + this.consumeListRefreshFlag(); + } + }, + }, methods: { + /** 表单提交成功后带标记返回时,重新拉取列表 */ + consumeListRefreshFlag() { + if (!sessionStorage.getItem(invoiceApplicationListRefreshKey)) { + return; + } + sessionStorage.removeItem(invoiceApplicationListRefreshKey); + this.loadTable(); + }, hasPermission(code) { return this.permission?.[code] !== false; },