<!--导航组件-->
|
<template>
|
<div class="app-sidebar">
|
<div class="box">
|
<div class="logo-view">
|
<el-image :src="require('@/assets/logo.png')"></el-image>
|
</div>
|
<el-menu
|
router
|
unique-opened
|
:default-active="$route.path"
|
class="el-menu-vertical-demo"
|
@select="handleOpen"
|
@close="handleClose"
|
background-color="#314255"
|
text-color="#bfcbd9"
|
active-text-color="#fff"
|
>
|
<el-submenu v-for="item in menus" :key="item.id" :index="item.id.toString()">
|
<template slot="title">
|
<i class="el-icon-money icon"></i>
|
<span>{{item.title}}</span>
|
</template>
|
<el-menu-item v-for="itm in item.children" :key="itm.id" :index="itm.path">{{itm.title}}</el-menu-item>
|
</el-submenu>
|
|
</el-menu>
|
<el-empty v-if="this.menus===null||this.menus===undefined||this.menus.length===0" :image-size="130" description="没有侧栏菜单"></el-empty>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
export default {
|
name: "AppSidebar",
|
props: {},
|
data() {
|
return {
|
}
|
},
|
watch: {},
|
created() {
|
this.initNavMenu()
|
this.getMenuTreeByRole()
|
},
|
methods: {
|
getMenuTreeByRole(){
|
this.menus=this.$store.state.menus.menus
|
},
|
// 监听路由
|
initNavMenu() {
|
// console.log(this.$route.name)
|
},
|
handleOpen(index) {
|
console.log(index)
|
},
|
handleClose() {}
|
}
|
}
|
</script>
|
|
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
<style lang="scss" scoped>
|
@import "./index.scss";
|
::v-deep .el-empty{
|
.el-empty__description{
|
p{
|
color: #dddd;
|
}
|
}
|
}
|
</style>
|