From d8b570430066fae42d6884671cef541fc820de1c Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期五, 15 十一月 2024 14:42:44 +0800
Subject: [PATCH] 动态路由

---
 src/store/modules/permission.js |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index 958fe63..e21ed5e 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -16,7 +16,8 @@
       addRoutes: [],
       defaultRoutes: [],
       topbarRouters: [],
-      sidebarRouters: []
+      sidebarRouters: [],
+      indexPage: ''
     }),
     actions: {
       setRoutes(routes) {
@@ -32,6 +33,9 @@
       setSidebarRouters(routes) {
         this.sidebarRouters = routes
       },
+      setIndexPages(routes) {
+        this.indexPage = routes
+      },
       generateRoutes(roles) {
         return new Promise(resolve => {
           // 向后端请求路由数据
@@ -39,15 +43,24 @@
             const sdata = JSON.parse(JSON.stringify(res.data))
             const rdata = JSON.parse(JSON.stringify(res.data))
             const defaultData = JSON.parse(JSON.stringify(res.data))
+            let firstPage = ''
+            //通过权限返回菜单去避免 如有首页权限 出现//index 情况
+            if (res.data[0].path == '/') {
+              firstPage = res.data[0].path + res.data[0].children[0].path
+            } else{
+              firstPage = res.data[0].path + '/' + res.data[0].children[0].path
+            }
             const sidebarRoutes = filterAsyncRouter(sdata)
             const rewriteRoutes = filterAsyncRouter(rdata, false, true)
             const defaultRoutes = filterAsyncRouter(defaultData)
             const asyncRoutes = filterDynamicRoutes(dynamicRoutes)
             asyncRoutes.forEach(route => { router.addRoute(route) })
-            this.setRoutes(rewriteRoutes)
+            // this.setRoutes(rewriteRoutes)
             this.setSidebarRouters(constantRoutes.concat(sidebarRoutes))
+            // this.setSidebarRouters(sidebarRoutes)
             this.setDefaultRoutes(sidebarRoutes)
             this.setTopbarRoutes(defaultRoutes)
+            this.setIndexPages(firstPage)
             resolve(rewriteRoutes)
           })
         })

--
Gitblit v1.9.2