fix(app): 登录成功后自动加载数据,无需手动重新扫描

App.vue 的 onMounted 只在根组件首次挂载时执行一次:首次打开落在
登录页时跳过数据加载,登录成功跳转后也不会重跑,导致初次部署打开
面板为空,必须手工点「重新扫描」才有数据。新增 route.path 监听:
从 /login 跳转到真实页面时触发 refreshAll(后端会懒触发首扫并自动
轮询进度)。已用 puppeteer 端到端验证:登录后数据自动出现。
This commit is contained in:
陈银军
2026-09-19 23:51:19 +08:00
parent f1b3cc85e2
commit 603e51f73b
+7 -1
View File
@@ -1,5 +1,5 @@
<script setup>
import { ref, computed, onMounted } from 'vue'
import { ref, computed, onMounted, watch } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import AppTopbar from './components/AppTopbar.vue'
import MobileTabbar from './components/MobileTabbar.vue'
@@ -31,6 +31,12 @@ onMounted(async () => {
if (!isLogin()) refreshAll()
})
// 从 /login 跳转到真实页面(登录成功/带 redirect 参数)时加载数据:
// onMounted 只在根组件首次挂载时执行一次,首次打开在登录页时不会加载,需在此补触发
watch(() => route.path, (nv, ov) => {
if (ov === '/login' && nv !== '/login') refreshAll()
})
// 数据基于何时扫描(后端扫描时间,缓存复用)
const fmtScanTime = computed(() => {
const t = state.scannedAt