From 6bb7db31aaabf2aa5d04d0fe3953652b86b9ad82 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期一, 08 六月 2020 12:01:19 +0800
Subject: [PATCH] Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue
---
ruoyi-ui/src/store/modules/permission.js | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 54 insertions(+), 0 deletions(-)
diff --git a/ruoyi-ui/src/store/modules/permission.js b/ruoyi-ui/src/store/modules/permission.js
new file mode 100644
index 0000000..cf18fcf
--- /dev/null
+++ b/ruoyi-ui/src/store/modules/permission.js
@@ -0,0 +1,54 @@
+import { constantRoutes } from '@/router'
+import { getRouters } from '@/api/menu'
+import Layout from '@/layout/index'
+
+const permission = {
+ state: {
+ routes: [],
+ addRoutes: []
+ },
+ mutations: {
+ SET_ROUTES: (state, routes) => {
+ state.addRoutes = routes
+ state.routes = constantRoutes.concat(routes)
+ }
+ },
+ actions: {
+ // 鐢熸垚璺敱
+ GenerateRoutes({ commit }) {
+ return new Promise(resolve => {
+ // 鍚戝悗绔姹傝矾鐢辨暟鎹�
+ getRouters().then(res => {
+ const accessedRoutes = filterAsyncRouter(res.data)
+ accessedRoutes.push({ path: '*', redirect: '/404', hidden: true })
+ commit('SET_ROUTES', accessedRoutes)
+ resolve(accessedRoutes)
+ })
+ })
+ }
+ }
+}
+
+// 閬嶅巻鍚庡彴浼犳潵鐨勮矾鐢卞瓧绗︿覆锛岃浆鎹负缁勪欢瀵硅薄
+function filterAsyncRouter(asyncRouterMap) {
+ return asyncRouterMap.filter(route => {
+ if (route.component) {
+ // Layout缁勪欢鐗规畩澶勭悊
+ if (route.component === 'Layout') {
+ route.component = Layout
+ } else {
+ route.component = loadView(route.component)
+ }
+ }
+ if (route.children != null && route.children && route.children.length) {
+ route.children = filterAsyncRouter(route.children)
+ }
+ return true
+ })
+}
+
+export const loadView = (view) => { // 璺敱鎳掑姞杞�
+ return (resolve) => require([`@/views/${view}`], resolve)
+}
+
+export default permission
--
Gitblit v1.9.3