diff --git a/src/views/settlement/formal-settlement.vue b/src/views/settlement/formal-settlement.vue index c4b9da0..bbd00d3 100644 --- a/src/views/settlement/formal-settlement.vue +++ b/src/views/settlement/formal-settlement.vue @@ -253,6 +253,10 @@ export default { if (detailNo) this.openRouteDetail(detailNo); }, }, + created() { + // 标签机制按 fullPath 缓存同页多实例:仅当前路由实例应响应 detailNo 跳转,防止缓存旧实例也弹窗 + this.ownFullPath = this.$route.fullPath; + }, mounted() { this.loadOrganizationOptions(); this.loadTable(); @@ -342,7 +346,7 @@ export default { }, async openRouteDetail(detailNo = this.$route.query.detailNo) { const formalSettlementNo = String(detailNo || '').trim(); - if (!formalSettlementNo) return; + if (!formalSettlementNo || this.ownFullPath !== this.$route.fullPath) return; const response = await api.getList(1, 10, { formalSettlementNo }); const data = this.unwrapData(response); const row = (data.records || []).find(item => item.formalSettlementNo === formalSettlementNo);