fix(app): 登录成功后自动加载数据,无需手动重新扫描
App.vue 的 onMounted 只在根组件首次挂载时执行一次:首次打开落在 登录页时跳过数据加载,登录成功跳转后也不会重跑,导致初次部署打开 面板为空,必须手工点「重新扫描」才有数据。新增 route.path 监听: 从 /login 跳转到真实页面时触发 refreshAll(后端会懒触发首扫并自动 轮询进度)。已用 puppeteer 端到端验证:登录后数据自动出现。
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user