mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-12 20:36:45 +08:00
--demand 页面权限
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ export default createStore({
|
|||||||
pathmapPic: [],//学习路径背景图
|
pathmapPic: [],//学习路径背景图
|
||||||
memberInitInfo: [],//学员默认
|
memberInitInfo: [],//学员默认
|
||||||
sysType: [],//学员默认
|
sysType: [],//学员默认
|
||||||
|
menus:[]
|
||||||
},
|
},
|
||||||
getters: {},
|
getters: {},
|
||||||
mutations: {
|
mutations: {
|
||||||
|
|||||||
@@ -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" ? [] : {};
|
||||||
|
|||||||
Reference in New Issue
Block a user