埃驰前端
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

<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>