vue后台管理权限导航控制
1、html
<el-menu
:default-active="$route.path"
class="el-menu-vertical-demo"
background-color="#FFF"
:unique-opened="true"
color="#303133"
active-text-color="#c00000">
// 这是封装的小导航栏
<appAsideItem
v-for='item in menuArr'
:menu="item"
:key='item.id'
:funcs="showFuncObj"/>
</el-menu>
<el-submenu v-if="menu.children && funcs[menu.func]" :index = "menu.id">
<template slot="title">
<i :class="menu.icon"/>
<span slot="title" class="title-span">{{ menu.text }}</span>
</template>
<template v-if="menu">
<appAsideItem v-for="item in menu.children" :menu="item" :key="item.id" :funcs="showFuncObj"/>
</template>
</el-submenu>
<el-menu-item v-else-if="!menu.children && funcs[menu.func]" :index = "menu.path" @click="handleJump(menu)">
<i :class="menu.icon"/>
<span slot="title">{{ menu.text }}</span>
</el-menu-item>
2、权限的控制
<script>
export default {
name: 'drag1',
data () {
return {
getByApiFunc: {
300200: true,
300201: true,
300202: true,
300203: true,
300204: true
},
getByPerFunc: {
first: '300200',
second: '300201',
third: '300202',
fourth: '300203',
fifth: '300204',
six: '300205',
seven: '300206',
eight: '300207',
nine: '300208',
ten: '300209'
},
showFuncObj: {}
}
},
created () {
this.checkApiKey()
},
methods: {
checkApiKey () {
const funcArr = {}
Object.keys(this.getByPerFunc).forEach(item => {
funcArr[item] = this.checkFunc(item)
})
this.showFuncObj = funcArr
},
checkFunc (item) {
const funcVal = this.getByPerFunc[item]
if (!funcVal) return true
return this.getByApiFunc[funcVal] === true
}
}
}
</script>