|
@@ -1,10 +1,22 @@
|
|
|
+import type { RouteLocationNormalized, Router, RouteRecordNormalized } from 'vue-router'
|
|
|
import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'
|
|
|
-import type { Router, RouteLocationNormalized, RouteRecordNormalized } from 'vue-router'
|
|
|
import { isUrl } from '@/utils/is'
|
|
|
-import { omit, cloneDeep } from 'lodash-es'
|
|
|
+import { cloneDeep, omit } from 'lodash-es'
|
|
|
|
|
|
const modules = import.meta.glob('../views/**/*.{vue,tsx}')
|
|
|
-
|
|
|
+/**
|
|
|
+ * 注册一个异步组件
|
|
|
+ * @param componentPath 例:/bpm/oa/leave/detail
|
|
|
+ */
|
|
|
+export const registerComponent = (componentPath: string) => {
|
|
|
+ for (const item in modules) {
|
|
|
+ if (item.includes(componentPath)) {
|
|
|
+ // 使用异步组件的方式来动态加载组件
|
|
|
+ // @ts-ignore
|
|
|
+ return defineAsyncComponent(modules[item])
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
/* Layout */
|
|
|
export const Layout = () => import('@/layout/Layout.vue')
|
|
|
|