--demand 页面权限

This commit is contained in:
yuping
2023-02-05 02:06:45 +08:00
parent 9e85855410
commit cbb9a6df3d
3 changed files with 31 additions and 22 deletions

View File

@@ -27,7 +27,7 @@
@openChange="onOpenChange" @openChange="onOpenChange"
@select="selectItem" @select="selectItem"
> >
<a-sub-menu key="sub10" @titleClick="titleClick"> <a-sub-menu v-if="checkMenu('coursereviewedn,coursereviewed,projectreviewedn,projectreviewed')" key="sub10" @titleClick="titleClick">
<template #icon> <template #icon>
<div class="imgBox"> <div class="imgBox">
<img <img
@@ -37,7 +37,7 @@
</div> </div>
</template> </template>
<template #title>审核管理</template> <template #title>审核管理</template>
<a-menu-item key="sub10-1"> <a-menu-item key="sub10-1" v-if="checkMenu('coursereviewedn')">
<span <span
:class="{ :class="{
circleActive: selectedKeys[0] === 'sub10-1' ? true : false, circleActive: selectedKeys[0] === 'sub10-1' ? true : false,
@@ -46,7 +46,7 @@
></span> ></span>
<router-link to="/coursereviewedn">待审核课程</router-link> <router-link to="/coursereviewedn">待审核课程</router-link>
</a-menu-item> </a-menu-item>
<a-menu-item key="sub10-2"> <a-menu-item key="sub10-2" v-if="checkMenu('coursereviewed')">
<span <span
:class="{ :class="{
circleActive: selectedKeys[0] === 'sub10-2' ? true : false, circleActive: selectedKeys[0] === 'sub10-2' ? true : false,
@@ -55,7 +55,7 @@
></span> ></span>
<router-link to="/coursereviewed">已审核课程</router-link> <router-link to="/coursereviewed">已审核课程</router-link>
</a-menu-item> </a-menu-item>
<a-menu-item key="sub10-3"> <a-menu-item key="sub10-3" v-if="checkMenu('projectreviewedn')">
<span <span
:class="{ :class="{
circleActive: selectedKeys[0] === 'sub10-3' ? true : false, circleActive: selectedKeys[0] === 'sub10-3' ? true : false,
@@ -64,7 +64,7 @@
></span> ></span>
<router-link to="/projectreviewedn">待审核项目</router-link> <router-link to="/projectreviewedn">待审核项目</router-link>
</a-menu-item> </a-menu-item>
<a-menu-item key="sub10-4"> <a-menu-item key="sub10-4" v-if="checkMenu('projectreviewed')">
<span <span
:class="{ :class="{
circleActive: selectedKeys[0] === 'sub10-4' ? true : false, circleActive: selectedKeys[0] === 'sub10-4' ? true : false,
@@ -75,7 +75,7 @@
</a-menu-item> </a-menu-item>
</a-sub-menu> </a-sub-menu>
<a-menu-item key="sub1" @titleClick="titleClick"> <a-menu-item key="sub1" @titleClick="titleClick" v-if="checkMenu('learningpath')">
<div class="imgBox"> <div class="imgBox">
<img <img
style="width: 20px; height: 18px" style="width: 20px; height: 18px"
@@ -85,7 +85,7 @@
<router-link to="/learningpath">学习路径图</router-link> <router-link to="/learningpath">学习路径图</router-link>
</a-menu-item> </a-menu-item>
<a-sub-menu key="sub2" @titleClick="titleClick"> <a-sub-menu key="sub2" @titleClick="titleClick" v-if="checkMenu('projectmanage,templatelibrary')">
<template #icon> <template #icon>
<div class="imgBox"> <div class="imgBox">
<img <img
@@ -95,7 +95,7 @@
</div> </div>
</template> </template>
<template #title>项目中心</template> <template #title>项目中心</template>
<a-menu-item key="sub2-1"> <a-menu-item key="sub2-1" v-if="checkMenu('projectmanage')">
<span <span
:class="{ :class="{
circleActive: selectedKeys[0] === 'sub2-1' ? true : false, circleActive: selectedKeys[0] === 'sub2-1' ? true : false,
@@ -104,7 +104,7 @@
></span> ></span>
<router-link to="/projectmanage">项目</router-link> <router-link to="/projectmanage">项目</router-link>
</a-menu-item> </a-menu-item>
<a-menu-item key="sub2-2"> <a-menu-item key="sub2-2" v-if="checkMenu('templatelibrary')">
<span <span
:class="{ :class="{
circleActive: selectedKeys[0] === 'sub2-2' ? true : false, circleActive: selectedKeys[0] === 'sub2-2' ? true : false,
@@ -115,7 +115,7 @@
</a-menu-item> </a-menu-item>
</a-sub-menu> </a-sub-menu>
<a-sub-menu key="sub3"> <a-sub-menu key="sub3" v-if="checkMenu('coursewaremanage,onlinemanage,coursemanage')">
<template #icon> <template #icon>
<div class="imgBox"> <div class="imgBox">
<img <img
@@ -125,7 +125,7 @@
</div> </div>
</template> </template>
<template #title>课程库</template> <template #title>课程库</template>
<a-menu-item key="sub3-1"> <a-menu-item key="sub3-1" v-if="checkMenu('coursewaremanage')">
<span <span
:class="{ :class="{
circleActive: selectedKeys[0] === 'sub3-1' ? true : false, circleActive: selectedKeys[0] === 'sub3-1' ? true : false,
@@ -134,7 +134,7 @@
></span> ></span>
<router-link to="/coursewaremanage">面授管理</router-link> <router-link to="/coursewaremanage">面授管理</router-link>
</a-menu-item> </a-menu-item>
<a-menu-item key="sub3-2"> <a-menu-item key="sub3-2" v-if="checkMenu('onlinemanage')">
<span <span
:class="{ :class="{
circleActive: selectedKeys[0] === 'sub3-2' ? true : false, circleActive: selectedKeys[0] === 'sub3-2' ? true : false,
@@ -143,7 +143,7 @@
></span> ></span>
<router-link to="/onlinemanage">在线管理</router-link> <router-link to="/onlinemanage">在线管理</router-link>
</a-menu-item> </a-menu-item>
<a-menu-item key="sub3-3"> <a-menu-item key="sub3-3" v-if="checkMenu('coursemanage')">
<span <span
:class="{ :class="{
circleActive: selectedKeys[0] === 'sub3-3' ? true : false, circleActive: selectedKeys[0] === 'sub3-3' ? true : false,
@@ -163,7 +163,7 @@
</div> </div>
<span>考试中心</span> <span>考试中心</span>
</a-menu-item> --> </a-menu-item> -->
<a-menu-item key="sub5" @titleClick="titleClick"> <a-menu-item key="sub5" @titleClick="titleClick" v-if="checkMenu('researchmanage')">
<div class="imgBox"> <div class="imgBox">
<img <img
style="width: 16px; height: 16px" style="width: 16px; height: 16px"
@@ -213,7 +213,7 @@
<!-- <router-link to="/systemmanage">系统管理</router-link> --> <!-- <router-link to="/systemmanage">系统管理</router-link> -->
<!-- </a-menu-item> --> <!-- </a-menu-item> -->
<a-sub-menu key="sub11" @titleClick="titleClick"> <a-sub-menu key="sub11" @titleClick="titleClick" v-if="checkMenu('questionmanage,papermanage,examinationcenter')">
<template #icon> <template #icon>
<div class="imgBox"> <div class="imgBox">
<img <img
@@ -223,7 +223,7 @@
</div> </div>
</template> </template>
<template #title>考试</template> <template #title>考试</template>
<a-menu-item key="sub11-1"> <a-menu-item key="sub11-1" v-if="checkMenu('questionmanage')">
<span <span
:class="{ :class="{
circleActive: selectedKeys[0] === 'sub11-1' ? true : false, circleActive: selectedKeys[0] === 'sub11-1' ? true : false,
@@ -232,7 +232,7 @@
></span> ></span>
<router-link to="/questionmanage">试题管理</router-link> <router-link to="/questionmanage">试题管理</router-link>
</a-menu-item> </a-menu-item>
<a-menu-item key="sub11-2"> <a-menu-item key="sub11-2" v-if="checkMenu('papermanage')">
<span <span
:class="{ :class="{
circleActive: selectedKeys[0] === 'sub11-2' ? true : false, circleActive: selectedKeys[0] === 'sub11-2' ? true : false,
@@ -241,7 +241,7 @@
></span> ></span>
<router-link to="/papermanage">试卷管理</router-link> <router-link to="/papermanage">试卷管理</router-link>
</a-menu-item> </a-menu-item>
<a-menu-item key="sub11-3"> <a-menu-item key="sub11-3" v-if="checkMenu('examinationcenter')">
<span <span
:class="{ :class="{
circleActive: selectedKeys[0] === 'sub11-3' ? true : false, circleActive: selectedKeys[0] === 'sub11-3' ? true : false,
@@ -251,7 +251,7 @@
<router-link to="/examinationcenter">考试管理</router-link> <router-link to="/examinationcenter">考试管理</router-link>
</a-menu-item> </a-menu-item>
</a-sub-menu> </a-sub-menu>
<a-menu-item key="sub12" @titleClick="titleClick"> <a-menu-item key="sub12" @titleClick="titleClick" v-if="checkMenu('casemanage')">
<div class="imgBox"> <div class="imgBox">
<img <img
style="width: 20px; height: 20px" style="width: 20px; height: 20px"
@@ -260,7 +260,7 @@
</div> </div>
<router-link to="/casemanage">案例管理</router-link> <router-link to="/casemanage">案例管理</router-link>
</a-menu-item> </a-menu-item>
<a-menu-item key="sub13" @titleClick="titleClick"> <a-menu-item key="sub13" @titleClick="titleClick" v-if="checkMenu('articlemanage')">
<div class="imgBox"> <div class="imgBox">
<img <img
style="width: 20px; height: 20px" style="width: 20px; height: 20px"
@@ -269,7 +269,7 @@
</div> </div>
<router-link to="/articlemanage">文章管理</router-link> <router-link to="/articlemanage">文章管理</router-link>
</a-menu-item> </a-menu-item>
<a-menu-item key="sub14" @titleClick="titleClick"> <a-menu-item key="sub14" @titleClick="titleClick" v-if="checkMenu('qamanage')">
<div class="imgBox"> <div class="imgBox">
<img <img
style="width: 20px; height: 20px" style="width: 20px; height: 20px"
@@ -278,7 +278,7 @@
</div> </div>
<router-link to="/qamanage">问答管理</router-link> <router-link to="/qamanage">问答管理</router-link>
</a-menu-item> </a-menu-item>
<a-menu-item key="sub15" @titleClick="titleClick"> <a-menu-item key="sub15" @titleClick="titleClick" v-if="checkMenu('download')">
<div class="imgBox"> <div class="imgBox">
<img <img
style="width: 20px; height: 20px" style="width: 20px; height: 20px"
@@ -364,6 +364,7 @@
import { reactive, toRefs, onMounted, onUnmounted, watch } from "vue"; import { reactive, toRefs, onMounted, onUnmounted, watch } from "vue";
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
import { useStore } from "vuex"; import { useStore } from "vuex";
import { checkMenu } from "@/utils/utils";
export default { export default {
name: "NavLeft", name: "NavLeft",
setup() { setup() {
@@ -671,6 +672,7 @@ export default {
}); });
return { return {
...toRefs(state), ...toRefs(state),
checkMenu,
onOpenChange, onOpenChange,
selectItem, selectItem,
packUp, packUp,

View File

@@ -33,6 +33,7 @@ export default createStore({
pathmapPic: [],//学习路径背景图 pathmapPic: [],//学习路径背景图
memberInitInfo: [],//学员默认 memberInitInfo: [],//学员默认
sysType: [],//学员默认 sysType: [],//学员默认
menus:[]
}, },
getters: {}, getters: {},
mutations: { mutations: {

View File

@@ -39,6 +39,12 @@ export function checkPer(per) {
} }
return (per + "").split(',').some(t => admin.some(s => s == t)) return (per + "").split(',').some(t => admin.some(s => s == t))
} }
export function checkMenu(path='') {
// return store?.state?.menus.some(t => path.includes(t));
console.log(path)
return true;
}
export function deepClone(obj) { export function deepClone(obj) {
let result = typeof obj.splice === "function" ? [] : {}; let result = typeof obj.splice === "function" ? [] : {};