Parcourir la source

更新 菜单/路由权限

wzh il y a 3 ans
Parent
commit
853867b5e1
5 fichiers modifiés avec 44 ajouts et 4 suppressions
  1. 5 0
      src/apis/fetch.js
  2. 1 1
      src/components/Aside.vue
  3. 1 0
      src/main.js
  4. 1 3
      src/router/index.js
  5. 36 0
      src/store/index.js

+ 5 - 0
src/apis/fetch.js

@@ -112,4 +112,9 @@ export default {
   getRoleDetail(data) {
     return $http("/role/permission/getRoleDetail", data);
   },
+
+  // 获取登录人权限
+  getPermissionByUserId(data) {
+    return $http("/role/permission/getPermissionByUserId", data);
+  },
 };

+ 1 - 1
src/components/Aside.vue

@@ -8,7 +8,7 @@
     :router="true"
   >
     <el-sub-menu
-      v-for="(item, index) in menuData"
+      v-for="(item, index) in this.$store.state.menuData"
       :key="item"
       :index="`${index}`"
     >

+ 1 - 0
src/main.js

@@ -17,6 +17,7 @@ router.beforeEach(async (to, from, next) => {
   if (userId) {
     store.commit("changeLogin", true);
     store.dispatch("GetBasePermissionData", localStorage.loginAccountId);
+    store.dispatch("GetUserPermission", localStorage.loginAccountId);
     if (0 === to.matched.length) {
       next("/voyage/voyageList");
     } else if (to.path == "/login" || to.path == "/") {

+ 1 - 3
src/router/index.js

@@ -90,9 +90,7 @@ let data = [
     component: () => import("../views/cargoManage/cargoList.vue"),
   },
 ];
-data.forEach((item) => {
-  router.addRoute(item);
-});
+
 export const asyncRouterList = [
   {
     path: "/accountManage/subAccountList",

+ 36 - 0
src/store/index.js

@@ -1,5 +1,8 @@
 import { createStore } from "vuex";
 import api from "../apis/fetch";
+import router from "../router";
+import { asyncRouterList } from "../router";
+import menuData from "../auth/menuData";
 console.log(import.meta.env.VITE_PROJECT_ENV);
 let baseurl = import.meta.env.VITE_BASEURL;
 
@@ -11,7 +14,10 @@ const store = createStore({
     currentMenuItem: "/cargoOwnerManage/cargoOwnerList",
     baseurl,
     basePermissionData: [],
+    userPermission: [],
+    menuData: [],
   },
+  getters: {},
   mutations: {
     changefirstTitle(state, text) {
       state.firstTitle = text;
@@ -28,6 +34,12 @@ const store = createStore({
     setBasePermissionData(state, data) {
       state.basePermissionData = data;
     },
+    setUserPermissionData(state, data) {
+      state.userPermission = data;
+    },
+    setMenuData(state, data) {
+      state.menuData = data;
+    },
   },
   actions: {
     GetBasePermissionData({ commit }, loginAccountId) {
@@ -47,6 +59,30 @@ const store = createStore({
         });
       });
     },
+    GetUserPermission({ commit }, loginAccountId) {
+      return new Promise((resolve, reject) => {
+        api.getPermissionByUserId({ loginAccountId }).then((e) => {
+          let arr = e.data.result;
+          commit("setUserPermissionData", arr);
+          asyncRouterList.forEach((item) => {
+            if (arr.indexOf(item.meta.code) != -1) {
+              router.addRoute(item);
+            }
+          });
+          let data = [];
+          for (let i of menuData) {
+            if (i.title == "航次") {
+              data.push(i);
+            } else {
+              if (arr.indexOf(i.items[0].code) != -1) {
+                data.push(i);
+              }
+            }
+          }
+          commit("setMenuData", data);
+        });
+      });
+    },
   },
 });