| | |
| | | import { AppRouteRecordRaw } from '/@/router/types'; |
| | | import { useRouter } from 'vue-router'; |
| | | import router from '/@/router'; |
| | | import { unique } from '/@/utils'; |
| | | |
| | | export function useFrameKeepAlive() { |
| | | const { currentRoute } = useRouter(); |
| | | |
| | | function getAllFramePages(routes: AppRouteRecordRaw[]): AppRouteRecordRaw[] { |
| | | const res: AppRouteRecordRaw[] = []; |
| | | let res: AppRouteRecordRaw[] = []; |
| | | for (const route of routes) { |
| | | const { meta: { frameSrc } = {}, children } = route; |
| | | if (frameSrc) { |
| | |
| | | res.push(...getAllFramePages(children)); |
| | | } |
| | | } |
| | | res = unique(res, 'name'); |
| | | return res; |
| | | } |
| | | |
| | |
| | | const getFramePages = computed(() => { |
| | | const ret = |
| | | getAllFramePages((toRaw(router.getRoutes()) as unknown) as AppRouteRecordRaw[]) || []; |
| | | console.log('======================'); |
| | | console.log(ret); |
| | | console.log('======================'); |
| | | return ret; |
| | | }); |
| | | |