
前言
一、配置axios拦截器
后端开发中,如果访问需要授权的API必须在请求头Authorization字段提供token。因此使用拦截器来实现:
在main.js中
axios.interceptors.request.use((config)=>{
config.headers.Authorization = window.sessionStorage.getItem('token')
return config
})
二、完善导航菜单
1.获取菜单信息
写一个方法获取API中的菜单数据并保存至data数据中心中,并在生命周期开始时执行参数。
data() {
return {
MenuList:[]
}
}
create(){
this.getMenuList()
}//生命周期开始时就执行
methods:{
async getMenuList(){
const {data:res} = await this.$http.get('menus')//使用get的方法
if(res.meta.status !== 200) return this.$message.error(res.meta.msg)
this.MenuList=res.data
}
2.使用两次遍历
一级菜单和二级菜单各遍历一次
{{item.authName}}
{{subitem.authName}}
3. 菜单自动折叠为菜单添加index可以解决全部展开的bug;
菜单栏中可能会存在凸起块,解决方法为在css中写"border-right: none; ";
在el-side和el-menu之间添加一个div实现按钮关闭打开折叠。
|||
//关闭动画效果
data(){
return{
isCollapse:false
}
},
methods:{
isOpen(){
this.isCollapse=!this.isCollapse
}