From 0045df8bb5f9067c436da54f6647f6e86908cd5d Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Sat, 25 Sep 2021 09:37:13 +0800
Subject: [PATCH] 持证保安登入  只能看到成绩查询

---
 src/store/modules/user.js |   28 ++++++
 src/page/index/index.vue  |  196 +++++++++++++++++++++++++-----------------------
 2 files changed, 130 insertions(+), 94 deletions(-)

diff --git a/src/page/index/index.vue b/src/page/index/index.vue
index 7e1ad9e..4804156 100644
--- a/src/page/index/index.vue
+++ b/src/page/index/index.vue
@@ -1,26 +1,30 @@
 <template>
-  <div class="avue-contail" :class="{'avue--collapse':isCollapse}">
+  <div class="avue-contail" :class="{ 'avue--collapse': isCollapse }">
     <div class="avue-header">
       <!-- 顶部导航栏 -->
-      <top ref="top"/>
+      <top ref="top" />
     </div>
     <div class="avue-layout">
       <div class="avue-left">
         <!-- 左侧导航栏 -->
-        <sidebar/>
+        <sidebar />
       </div>
       <div class="avue-main">
         <!-- 顶部标签卡 -->
-        <tags/>
+        <tags />
         <transition name="fade-scale">
           <search class="avue-view" v-show="isSearch"></search>
         </transition>
         <!-- 主体视图层 -->
-        <div style="height:100%;overflow-y:auto;overflow-x:hidden;" id="avue-view" v-show="!isSearch">
+        <div
+          style="height: 100%; overflow-y: auto; overflow-x: hidden"
+          id="avue-view"
+          v-show="!isSearch"
+        >
           <keep-alive>
-            <router-view class="avue-view" v-if="$route.meta.keepAlive"/>
+            <router-view class="avue-view" v-if="$route.meta.keepAlive" />
           </keep-alive>
-          <router-view class="avue-view" v-if="!$route.meta.keepAlive"/>
+          <router-view class="avue-view" v-if="!$route.meta.keepAlive" />
         </div>
       </div>
     </div>
@@ -29,71 +33,77 @@
 </template>
 
 <script>
-  import {mapGetters} from "vuex";
-  import tags from "./tags";
-  import search from "./search";
-  import top from "./top/";
-  import sidebar from "./sidebar/";
-  import admin from "@/util/admin";
-  import {validatenull} from "@/util/validate";
-  import {calcDate} from "@/util/date.js";
-  import {getStore} from "@/util/store.js";
+import { mapGetters } from "vuex";
+import tags from "./tags";
+import search from "./search";
+import top from "./top/";
+import sidebar from "./sidebar/";
+import admin from "@/util/admin";
+import { validatenull } from "@/util/validate";
+import { calcDate } from "@/util/date.js";
+import { getStore } from "@/util/store.js";
 
-  export default {
-    components: {
-      top,
-      tags,
-      search,
-      sidebar
+export default {
+  components: {
+    top,
+    tags,
+    search,
+    sidebar,
+  },
+  name: "index",
+  provide() {
+    return {
+      index: this,
+    };
+  },
+  data() {
+    return {
+      //搜索控制
+      isSearch: false,
+      //刷新token锁
+      refreshLock: false,
+      //刷新token的时间
+      refreshTime: "",
+    };
+  },
+  created() {
+    //实时检测刷新token
+    this.refreshToken();
+  },
+  mounted() {
+    this.init();
+  },
+  computed: mapGetters([
+    "isMenu",
+    "isLock",
+    "isCollapse",
+    "website",
+    "menu",
+    "userInfo",
+  ]),
+  props: [],
+  methods: {
+    showCollapse() {
+      this.$store.commit("SET_COLLAPSE");
     },
-    name: "index",
-    provide() {
-      return {
-        index: this
+    // 初始化
+    init() {
+      this.$store.commit("SET_SCREEN", admin.getScreen());
+      window.onresize = () => {
+        setTimeout(() => {
+          this.$store.commit("SET_SCREEN", admin.getScreen());
+        }, 0);
       };
+      this.$store.dispatch("FlowRoutes").then(() => {});
     },
-    data() {
-      return {
-        //搜索控制
-        isSearch: false,
-        //刷新token锁
-        refreshLock: false,
-        //刷新token的时间
-        refreshTime: ""
-      };
-    },
-    created() {
-      //实时检测刷新token
-      this.refreshToken();
-    },
-    mounted() {
-      this.init();
-    },
-    computed: mapGetters(["isMenu", "isLock", "isCollapse", "website", "menu"]),
-    props: [],
-    methods: {
-      showCollapse() {
-        this.$store.commit("SET_COLLAPSE");
-      },
-      // 初始化
-      init() {
-        this.$store.commit("SET_SCREEN", admin.getScreen());
-        window.onresize = () => {
-          setTimeout(() => {
-            this.$store.commit("SET_SCREEN", admin.getScreen());
-          }, 0);
-        };
-        this.$store.dispatch("FlowRoutes").then(() => {
-        });
-      },
-      //打开菜单
-      openMenu(item = {}) {
-        this.$store.dispatch("GetMenu", item.id).then(data => {
-          if (data.length !== 0) {
-            this.$router.$avueRouter.formatRoutes(data, true);
-          }
-          //当点击顶部菜单后默认打开第一个菜单
-          /*if (!this.validatenull(item)) {
+    //打开菜单
+    openMenu(item = {}) {
+      this.$store.dispatch("GetMenu", [this.userInfo, item.id]).then((data) => {
+        if (data.length !== 0) {
+          this.$router.$avueRouter.formatRoutes(data, true);
+        }
+        //当点击顶部菜单后默认打开第一个菜单
+        /*if (!this.validatenull(item)) {
             let itemActive = {},
               childItemActive = 0;
             if (item.path) {
@@ -113,31 +123,31 @@
               }, itemActive.meta)
             });
           }*/
-
-        });
-      },
-      // 定时检测token
-      refreshToken() {
-        this.refreshTime = setInterval(() => {
-          const token = getStore({
+      });
+    },
+    // 定时检测token
+    refreshToken() {
+      this.refreshTime = setInterval(() => {
+        const token =
+          getStore({
             name: "token",
-            debug: true
+            debug: true,
           }) || {};
-          const date = calcDate(token.datetime, new Date().getTime());
-          if (validatenull(date)) return;
-          if (date.seconds >= this.website.tokenTime && !this.refreshLock) {
-            this.refreshLock = true;
-            this.$store
-              .dispatch("refreshToken")
-              .then(() => {
-                this.refreshLock = false;
-              })
-              .catch(() => {
-                this.refreshLock = false;
-              });
-          }
-        }, 10000);
-      }
-    }
-  };
+        const date = calcDate(token.datetime, new Date().getTime());
+        if (validatenull(date)) return;
+        if (date.seconds >= this.website.tokenTime && !this.refreshLock) {
+          this.refreshLock = true;
+          this.$store
+            .dispatch("refreshToken")
+            .then(() => {
+              this.refreshLock = false;
+            })
+            .catch(() => {
+              this.refreshLock = false;
+            });
+        }
+      }, 10000);
+    },
+  },
+};
 </script>
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 545d41a..3bcbcc3 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -50,7 +50,9 @@
     LoginByUsername({ commit }, userInfo) {
       return new Promise((resolve, reject) => {
         loginByUsername(userInfo.tenantId, userInfo.username, md5(userInfo.password), userInfo.type, userInfo.key, userInfo.code).then(res => {
+          // debugger;
           const data = res.data;
+          // console.log(res.data, 'datadatadatadatadata')
           if (data.error_description) {
             Message({
               message: data.error_description,
@@ -173,12 +175,36 @@
       })
     },
     //获取系统菜单
-    GetMenu({ commit, dispatch }, topMenuId) {
+    GetMenu({ commit, dispatch }, data) {
+      var topMenuId = data[1], user = data[0];
+      // console.log(user, "useruseruseruseruseruser");
+      var d;
+      if (user.role_name == "保安") {
+        //持证隐藏菜单
+        d = user.list.hold == 1;
+
+      }
+      // debugger;
       return new Promise(resolve => {
         getRoutes(topMenuId).then((res) => {
           const data = res.data.data
           let menu = deepClone(data);
           menu.forEach(ele => {
+            var doItOnce = (ele, name, childrenName) => {
+              if (d && ele.name == name) {
+
+                var a = [];
+                for (var k in ele.children) {
+                  if (ele.children[k].name == childrenName) {
+                    a.push(ele.children[k]);
+                    break;
+                  }
+                }
+                ele.children = a;
+              }
+            }
+            doItOnce(ele, "考试管理", "成绩查看");
+            doItOnce(ele, "培训管理", "培训考试报名");
             addPath(ele, true);
           });
           commit('SET_MENU_ALL', menu)

--
Gitblit v1.9.3