소스 검색

支持后台返回菜单功能

tongshangming 3 년 전
부모
커밋
23d504731a
4개의 변경된 파일29개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 0
      src/stores/router.ts
  2. 1 1
      src/stores/user.ts
  3. 24 0
      src/utils/dynamicRouter.ts
  4. 3 0
      vite.config.ts

+ 1 - 0
src/stores/router.ts

@@ -1,5 +1,6 @@
 import type { RouteRecordRaw } from 'vue-router'
 import { asyncRouter } from '@/router'
+// import { generatorDynamicRouter } from '@/utils/dynamicRouter'
 
 // eslint-disable-next-line
 function hasPermission(route: RouteRecordRaw, permission: any[]) {

+ 1 - 1
src/stores/user.ts

@@ -6,7 +6,7 @@ export const useUserStore = defineStore({
   state: () => ({
     user: {},
     flag: false,
-    token: localStorage.getItem('token') || ''
+    token: localStorage.getItem('token') || 't'
   }),
   actions: {
     async getUserInfo() {

+ 24 - 0
src/utils/dynamicRouter.ts

@@ -0,0 +1,24 @@
+const modules = import.meta.glob('../views/**/*.vue')
+
+const dynamicImport = (modules: any, component: string) => {
+  const keys = Object.keys(modules)
+  const matchKey = keys.find(key => {
+    const k = key.replace('../views/', '')
+    return k === component
+  })
+  return matchKey && modules[matchKey]
+}
+
+export const generatorDynamicRouter = (dynamicRouter: Array<any>) => {
+  dynamicRouter.forEach((item: any) => {
+    if (item.component) {
+      item.component = dynamicImport(modules, item.component)
+    } else {
+      delete item['component']
+    }
+    if (item.children) {
+      generatorDynamicRouter(item.children)
+    }
+  })
+  return dynamicRouter
+}

+ 3 - 0
vite.config.ts

@@ -44,6 +44,9 @@ export default defineConfig(({ mode }) => {
           target: env.VITE_BASE_PATH,
           changeOrigin: true
         }
+      },
+      hmr: {
+        overlay: false
       }
     }
   }