You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.5 KiB
64 lines
1.5 KiB
<template>
|
|
<div class="dashboardPage">
|
|
<el-tree
|
|
:data="navList"
|
|
:props="defaultProps"
|
|
@node-click="goPage"
|
|
></el-tree>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { mapGetters } from 'vuex'
|
|
export default {
|
|
name: 'Dashboard',
|
|
data() {
|
|
return {
|
|
navList:[],
|
|
defaultProps: {
|
|
children: 'children',
|
|
label: 'title'
|
|
}
|
|
}
|
|
},
|
|
computed: {
|
|
...mapGetters([
|
|
'permission_routes'
|
|
])
|
|
},
|
|
mounted(){
|
|
let _menus = JSON.parse(JSON.stringify(this.permission_routes))
|
|
let _showList = _menus.filter(item=>{
|
|
return !item.hidden
|
|
})
|
|
this.navList = this.initData(_showList,true)
|
|
},
|
|
methods:{
|
|
initData(data,first){
|
|
let _list = []
|
|
data.forEach(item => {
|
|
// 多层数据
|
|
if(item.meta){
|
|
item.title = item.meta.title
|
|
_list.push(item)
|
|
}
|
|
// 默认为单层
|
|
else{
|
|
_list.push(item.children[0])
|
|
}
|
|
if(item.children)item.children = this.initData(item.children)
|
|
});
|
|
return _list
|
|
},
|
|
goPage(item){
|
|
this.$router.push({name: item.name})
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
.dashboardPage{
|
|
padding:30px 10px;
|
|
background: #fff;
|
|
}
|
|
</style>
|