| | |
| | | import { TagView } from 'vue-router'; |
| | | import { TagView, RouteRecordNormalized } from 'vue-router'; |
| | | |
| | | export const useTagsViewStore = defineStore('tagsView', () => { |
| | | const visitedViews = ref<TagView[]>([]); |
| | |
| | | const delView = (view: TagView): Promise<{ visitedViews: TagView[]; cachedViews: string[] }> => { |
| | | return new Promise((resolve) => { |
| | | delVisitedView(view); |
| | | delCachedView(view); |
| | | if (!isDynamicRoute(view)) { |
| | | delCachedView(view); |
| | | } |
| | | resolve({ |
| | | visitedViews: [...visitedViews.value], |
| | | cachedViews: [...cachedViews.value] |
| | |
| | | } |
| | | }; |
| | | |
| | | const isDynamicRoute = (view: any): boolean => { |
| | | // 检查匹配的路由记录中是否有动态段 |
| | | return view.matched.some((m: RouteRecordNormalized) => m.path.includes(':')); |
| | | }; |
| | | |
| | | return { |
| | | visitedViews, |
| | | cachedViews, |