Merge branch 'master' into feature/20261027-hcs-bif-all-web

# Conflicts:
#	src/views/business/contract-manage.vue
This commit is contained in:
刘泉佳
2026-10-31 14:12:05 +08:00
19 changed files with 710 additions and 404 deletions
+24 -3
View File
@@ -152,6 +152,8 @@ export default {
form: { appliedAmount: 0, remark: '' },
},
mkEnabled: false,
// keep-alive 多标签下仅激活实例响应 detailNo,避免缓存页重复弹窗
isPageActive: true,
};
},
computed: {
@@ -222,11 +224,10 @@ export default {
},
},
created() {
// 标签机制按 fullPath 缓存同页多实例:仅当前路由实例应响应 detailNo 跳转,防止缓存旧实例也弹窗
this.ownFullPath = this.$route.fullPath;
this.loadOrganizationOptions();
},
mounted() {
this.isPageActive = true;
this.openRouteDetail();
loadMkEnabled()
.then(enabled => {
@@ -237,10 +238,18 @@ export default {
});
},
activated() {
this.isPageActive = true;
if (sessionStorage.getItem('formal-settlement-list-refresh') === '1') {
sessionStorage.removeItem('formal-settlement-list-refresh');
this.onLoad(this.page);
}
// 从其他页带 detailNo 跳回时,激活态补开详情
if (this.$route.query.detailNo) {
this.openRouteDetail();
}
},
deactivated() {
this.isPageActive = false;
},
methods: {
hasPermission(actionOrCode) {
@@ -320,7 +329,7 @@ export default {
},
async openRouteDetail(detailNo = this.$route.query.detailNo) {
const formalSettlementNo = String(detailNo || '').trim();
if (!formalSettlementNo || this.ownFullPath !== this.$route.fullPath) return;
if (!formalSettlementNo || !this.isPageActive) return;
const response = await api.getList(1, 10, { formalSettlementNo });
const data = this.unwrapData(response);
const row = (data.records || []).find(item => item.formalSettlementNo === formalSettlementNo);
@@ -328,6 +337,18 @@ export default {
this.$message.warning(`未找到对应的${this.billLabel}`);
return;
}
// 锁定菜单(付款/收款)下若单号属于另一类型,跳到对应列表页再打开
if (
this.lockedSettlementType &&
row.settlementType &&
row.settlementType !== this.lockedSettlementType
) {
await this.$router.replace({
path: settlementListPath(row.settlementType),
query: { detailNo: formalSettlementNo },
});
return;
}
if (!this.lockedSettlementType) {
this.activeSettlementType = row.settlementType || this.activeSettlementType;
}