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