From 3922c16601266e78ee3b90936ba49305c6c8b09a Mon Sep 17 00:00:00 2001 From: ahao <liuhaoai545@gmail.com> Date: 星期三, 27 十二月 2023 12:12:51 +0800 Subject: [PATCH] fix 修复 vue 类型识别问题 --- src/plugins/tab.ts | 42 ++++++++++++++++++++++++++---------------- 1 files changed, 26 insertions(+), 16 deletions(-) diff --git a/src/plugins/tab.ts b/src/plugins/tab.ts index 259dfa5..dd240cd 100644 --- a/src/plugins/tab.ts +++ b/src/plugins/tab.ts @@ -1,19 +1,29 @@ -import { useTagsViewStore } from '@/store/modules/tagsView'; import router from '@/router'; -import { TagView, RouteLocationMatched } from 'vue-router'; +import { RouteLocationMatched, RouteLocationNormalized } from 'vue-router'; +import useTagsViewStore from '@/store/modules/tagsView'; export default { /** * 鍒锋柊褰撳墠tab椤电 * @param obj 鏍囩瀵硅薄 */ - async refreshPage(obj?: TagView): Promise<void> { + async refreshPage(obj?: RouteLocationNormalized): Promise<void> { const { path, query, matched } = router.currentRoute.value; if (obj === undefined) { matched.forEach((m: RouteLocationMatched) => { if (m.components && m.components.default && m.components.default.name) { if (!['Layout', 'ParentView'].includes(m.components.default.name)) { - obj = { name: m.components.default.name, path: path, query: query }; + obj = { + name: m.components.default.name, + path: path, + query: query, + matched: undefined, + fullPath: undefined, + hash: undefined, + params: undefined, + redirectedFrom: undefined, + meta: undefined + }; } } }); @@ -31,20 +41,20 @@ }); }, // 鍏抽棴褰撳墠tab椤电锛屾墦寮�鏂伴〉绛� - closeOpenPage(obj: TagView): void { - useTagsViewStore().delView(router.currentRoute.value as any); + closeOpenPage(obj: RouteLocationNormalized): void { + useTagsViewStore().delView(router.currentRoute.value); if (obj !== undefined) { router.push(obj); } }, // 鍏抽棴鎸囧畾tab椤电 - async closePage(obj?: TagView): Promise<{ visitedViews: TagView[]; cachedViews: string[] } | any> { + async closePage(obj?: RouteLocationNormalized): Promise<{ visitedViews: RouteLocationNormalized[]; cachedViews: string[] } | any> { if (obj === undefined) { // prettier-ignore - const { visitedViews } = await useTagsViewStore().delView(router.currentRoute.value as any) + const { visitedViews } = await useTagsViewStore().delView(router.currentRoute.value) const latestView = visitedViews.slice(-1)[0]; if (latestView) { - return router.push(latestView.fullPath as any); + return router.push(latestView.fullPath); } return router.push('/'); } @@ -55,16 +65,16 @@ return useTagsViewStore().delAllViews(); }, // 鍏抽棴宸︿晶tab椤电 - closeLeftPage(obj?: TagView) { - return useTagsViewStore().delLeftTags(obj || (router.currentRoute.value as any)); + closeLeftPage(obj?: RouteLocationNormalized) { + return useTagsViewStore().delLeftTags(obj || router.currentRoute.value); }, // 鍏抽棴鍙充晶tab椤电 - closeRightPage(obj?: TagView) { - return useTagsViewStore().delRightTags(obj || (router.currentRoute.value as any)); + closeRightPage(obj?: RouteLocationNormalized) { + return useTagsViewStore().delRightTags(obj || router.currentRoute.value); }, // 鍏抽棴鍏朵粬tab椤电 - closeOtherPage(obj?: TagView) { - return useTagsViewStore().delOthersViews(obj || (router.currentRoute.value as any)); + closeOtherPage(obj?: RouteLocationNormalized) { + return useTagsViewStore().delOthersViews(obj || router.currentRoute.value); }, /** * 鎵撳紑tab椤电 @@ -80,7 +90,7 @@ * 淇敼tab椤电 * @param obj 鏍囩瀵硅薄 */ - updatePage(obj: TagView) { + updatePage(obj: RouteLocationNormalized) { return useTagsViewStore().updateVisitedView(obj); } }; -- Gitblit v1.9.3