From 5e440a7dc434c43eb828fa62cf9c12b0078b8565 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期一, 20 一月 2025 11:36:18 +0800
Subject: [PATCH] !173 发布 5.3.0-BETA 公测版本 Merge pull request !173 from 疯狂的狮子Li/dev

---
 src/store/modules/permission.ts |   27 +++++++++++++++++++--------
 1 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/src/store/modules/permission.ts b/src/store/modules/permission.ts
index a8611a9..43fcef8 100644
--- a/src/store/modules/permission.ts
+++ b/src/store/modules/permission.ts
@@ -9,6 +9,8 @@
 import ParentView from '@/components/ParentView/index.vue';
 import InnerLink from '@/layout/components/InnerLink/index.vue';
 
+import { createCustomNameComponent } from '@/utils/createCustomNameComponent';
+
 // 鍖归厤views閲岄潰鎵�鏈夌殑.vue鏂囦欢
 const modules = import.meta.glob('./../../views/**/*.vue');
 export const usePermissionStore = defineStore('permission', () => {
@@ -19,13 +21,13 @@
   const sidebarRouters = ref<RouteRecordRaw[]>([]);
 
   const getRoutes = (): RouteRecordRaw[] => {
-    return routes.value;
+    return routes.value as RouteRecordRaw[];
   };
   const getSidebarRoutes = (): RouteRecordRaw[] => {
-    return sidebarRouters.value;
+    return sidebarRouters.value as RouteRecordRaw[];
   };
   const getTopbarRoutes = (): RouteRecordRaw[] => {
-    return topbarRouters.value;
+    return topbarRouters.value as RouteRecordRaw[];
   };
 
   const setRoutes = (newRoutes: RouteRecordRaw[]): void => {
@@ -82,7 +84,7 @@
       } else if (route.component?.toString() === 'InnerLink') {
         route.component = InnerLink;
       } else {
-        route.component = loadView(route.component);
+        route.component = loadView(route.component, route.name as string);
       }
       if (route.children != null && route.children && route.children.length) {
         route.children = filterAsyncRouter(route.children, route, type);
@@ -153,12 +155,15 @@
   return res;
 };
 
-export const loadView = (view: any) => {
+export const loadView = (view: any, name: string) => {
   let res;
   for (const path in modules) {
-    const dir = path.split('views/')[1].split('.vue')[0];
+    const viewsIndex = path.indexOf('/views/');
+    let dir = path.substring(viewsIndex + 7);
+    dir = dir.substring(0, dir.lastIndexOf('.vue'));
     if (dir === view) {
-      res = () => modules[path]();
+      res = createCustomNameComponent(modules[path], { name });
+      return res;
     }
   }
   return res;
@@ -200,7 +205,13 @@
   allRoutes.forEach((route) => {
     const name = route.name.toString();
     if (name && nameList.includes(name)) {
-      console.error(`璺敱鍚嶇О: [${name}] 閲嶅, 浼氶�犳垚 404`);
+      const message = `璺敱鍚嶇О: [${name}] 閲嶅, 浼氶�犳垚 404`;
+      console.error(message);
+      ElNotification({
+        title: '璺敱鍚嶇О閲嶅',
+        message,
+        type: 'error'
+      });
       return;
     }
     nameList.push(route.name.toString());

--
Gitblit v1.9.3