利用ele引入一个组件,如下图
然后对代码进行修改,留下需要的内容,如下:
<div>
<el-container style="height: 100vh; border: 1px solid #eee">
<el-aside width="200px" style="background-color: rgb(238, 241, 246)">
<el-menu :default-openeds="['1']" :router="true">
<el-submenu
:index="(i + 1).toString()"
v-for="(v, i) in list"
:key="i"
>
<template slot="title"
><i class="el-icon-menu"></i>{{ v.authName }}</template
>
<el-menu-item
:index="'/first/' + item.path"
v-for="(item, index) in v.children"
:key="index"
>{{ item.authName }}</el-menu-item
>
</el-submenu>
</el-menu>
</el-aside>
<el-container>
<el-header style="text-align: right; font-size: 12px">
<el-dropdown>
<i class="el-icon-setting" style="margin-right: 15px"></i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>查看</el-dropdown-item>
<el-dropdown-item>新增</el-dropdown-item>
<el-dropdown-item>删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<span>王旭</span>
</el-header>
<el-main>
<router-view></router-view>
</el-main>
</el-container>
</el-container>
</div>
</template>
在script里面调用接口,渲染侧边栏axios.get("xxxxxxx.com:8889/api/private…", { headers: { Authorization: localStorage.token, }, })
再first页面下再创建8个二级页面,当做导航栏的跳转页面
通过:router="true" 给ele组件添加跳转功能
import axios from "axios";
export default {
name: "FirstPage",
data() {
const item = {
date: "2016-05-02",
name: "王小虎",
address: "上海市普陀区金沙江路 1518 弄",
};
return {
tableData: Array(5).fill(item),
list: [],
};
},
created() {
this.getNavList();
},
methods: {
getNavList() {
axios
.get("http://xxxxxxx.com:8889/api/private/v1/menus", {
headers: {
Authorization: localStorage.token,
},
})
.then((res) => {
console.log(res);
let { data, meta } = res.data;
if (meta.status == 200) {
this.list = data;
}
})
.catch((err) => {
console.log(err);
});
},
},
};
</script>
.el-header {
background-color: #b3c0d1;
color: #333;
line-height: 60px;
}
.el-aside {
color: #333;
}
</style>
最后的效果图如下: