diff --git a/src/components/ArticleDetail/index.vue b/src/components/ArticleDetail/index.vue index 20830d5..b2c93e5 100644 --- a/src/components/ArticleDetail/index.vue +++ b/src/components/ArticleDetail/index.vue @@ -34,8 +34,7 @@ @@ -47,7 +46,6 @@ import { showToast } from 'vant'; import { useRouter, useRoute } from 'vue-router'; import { DateFormat } from '@/utils/format.js'; import AiAssistantFolat from '@/views/chat/components/ai-assistant-float.vue'; -import AiAssistant from '@/views/chat/components/ai-assistant.vue' const props = defineProps({ id: {type: [Number, String], required: true }, diff --git a/src/layouts/Header.vue b/src/layouts/Header.vue index 8cdecd5..90c0677 100644 --- a/src/layouts/Header.vue +++ b/src/layouts/Header.vue @@ -58,6 +58,7 @@ const userInfo = useUserInfo(); const router = useRouter(); const route = useRoute(); const authModal = useAuthModal(); +const timer = ref(0); const showMenu = ref(false); @@ -70,8 +71,38 @@ onMounted(()=>{ if (userInfoData.id) { userInfo.updateUserInfo(userInfoData); } + + let authData = localCache.get('auth') || {}; + if (authData.expires_time) { + checkToken(); + } }); +const checkToken = () => { + let diffTime = 1000 * 60 * 10; // 10mins + let nowTime = Date.now(); + let authData = localCache.get('auth') || {}; + let overTime = authData.expires_time || nowTime; + if (overTime - nowTime <= diffTime) { + clearTimeout(timer.value); + flushtoken(); + } else { + timer.value = setTimeout(checkToken, 300000); //300000 + } +}; + +const flushtoken = () => { + http('/api/auth/refresh', {}).then(res => { + let nowTime = Date.now(); + let overTime = nowTime + res.data.expires_in * 1000; + let authData = { ...res.data, expires_time: overTime }; + localCache.set('auth', authData); + checkToken(); + }).catch(err => { + showToast(err.message); + }); +}; + const toggleMenu = ()=>{ showMenu.value = !showMenu.value; }; diff --git a/src/router/index.js b/src/router/index.js index cc307ee..a5f0939 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -110,7 +110,7 @@ const router = createRouter({ component: () => import("@/views/business/insight/list.vue"), }, { - path: 'business/insight/detail/:cid/:id', + path: 'business/insight/detail/:id', name: 'insightDetail', meta: { title: 'AI商情-行业洞察', diff --git a/src/views/business/components/CategoryCardList.vue b/src/views/business/components/CategoryCardList.vue index b58f7e9..687f746 100644 --- a/src/views/business/components/CategoryCardList.vue +++ b/src/views/business/components/CategoryCardList.vue @@ -4,7 +4,9 @@