From e724bc33260473f64f3370242db7be634cffe535 Mon Sep 17 00:00:00 2001 From: liulujian Date: Fri, 5 Jun 2026 00:59:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=96=87=E6=A1=A3=E6=97=A0=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/index/views/mdviewer/index.vue | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/txw-mhzc-web/src/pages/index/views/mdviewer/index.vue b/txw-mhzc-web/src/pages/index/views/mdviewer/index.vue index 751a9a1..f6c023a 100644 --- a/txw-mhzc-web/src/pages/index/views/mdviewer/index.vue +++ b/txw-mhzc-web/src/pages/index/views/mdviewer/index.vue @@ -26,6 +26,18 @@ export default { await this.loadMarked(); this.fetchMdContent(); }, + // 外层 router-view 使用了 keep-alive: + // 同一 path 仅 query 变化时组件不会重建,mounted 不会再次触发, + // 所以必须监听 $route.query.file 来重新加载文档。 + watch: { + '$route.query.file': { + handler(newFile, oldFile) { + if (newFile !== oldFile) { + this.fetchMdContent(); + } + }, + }, + }, methods: { loadMarked() { return new Promise((resolve) => { @@ -53,6 +65,10 @@ export default { }); }, fetchMdContent() { + // 每次重新加载前重置状态,避免上一次失败/旧内容残留 + this.loading = true; + this.error = ''; + this.content = ''; const { file } = this.$route.query; if (!file) { this.content = '# 未指定文件\n\n请使用 ?file=xxx 传递文件路径';