在线预览vue
components/Index.vue
文件第 31 行代码的 v-show="isShowAsideTitle"
会形成侧边栏收缩时二级菜单隐藏,目前已修复。ios
增长页面进度条git
在页面跳转时增长进度条github
修复路由表冲突问题ajax
退出当前用户,换帐号从新登录时,上个帐号和如今的帐号路由表会有冲突的问题,解决办法是在退出登录时重置路由表。vue-router
具体实现请查看 router/index.js
、Login.vue
和 Index.vue
的退出登录回调方法。vuex
优化动态添加路由功能npm
之前的动态路由功能并不完善,首先要将全部的路由都添加到路由表里,而后根据后台返回的菜单栏数据来生成菜单。axios
致使的问题就是,虽然有页面在菜单栏上不显示,但因为已经添加到路由表里了,因此能够在地址栏上手动输入在菜单栏上不存在(但在路由表存在)的页面,进而能够越权访问。缓存
如今除了必要的页面须要在一开始添加到路由表里,其余的页面均可以根据后台数据来自动生成。并且菜单栏上没有的页面,在地址栏上输入地址也是访问不了的。
另外,若是在未登录时要访问某一指定页面,会重定向到登录页,登录成功后会自动跳到这个指定页面。
具体实现请看 permission.js
和 util
目录下的 index.js
文件
增长404页面
假如跳转到一个不存在的页面时会重定向到404页面
增长面包屑功能
用于展现当前页面的路径
增长权限控制功能
若是未登录,访问全部页面都重定向到登录页
增长动态菜单栏功能
icon
使用的是iview
组件的icon
组件。
数据格式:
// 左侧菜单栏数据 menuItems: [ { name: 'Home', // 要跳转的路由名称 不是路径 size: 18, // icon大小 非必填 type: 'md-home', // icon类型 非必填 text: '主页' // 文本内容 }, { text: '二级菜单', type: 'ios-paper', children: [ { type: 'ios-grid', name: 'T1', text: '表格' }, { text: '三级菜单', type: 'ios-paper', children: [ { type: 'ios-notifications-outline', name: 'Msg', text: '查看消息' }, { type: 'md-lock', name: 'Password', text: '修改密码' }, { type: 'md-person', name: 'UserInfo', text: '基本资料', } ] } ] } ]
注意: 组件的名称和路由的名称必定要一致,例如 Home.vue
组件名称 name: home
,则在路由文件中也要给它设置为 name: home
,不然页面内容不能缓存
// 在router文件中 { path: 'home', name: 'home', component: () => import('../views/Home.vue') } // 在Home.vue中 export default { name: 'home' }
axios
拦截器 实现了ajax
请求前展现loading
请求结束关闭loading
Index
组件通常状况下只须要传数据就行 其余不用关注
市面上有大量的vue后台管理系统模板 可是功能都太丰富了 并且有不少组件用不上 因此写了这么一个最基础的 只有必要功能的模板
UI库使用的是iView
有大量的组件可用
// xxx为你想跳转的子组件name this.$parent.gotoPage('xxx')
this.gotoPage('userinfo', { id: id, }) // 在userinfo组件里取参 this.$route.params.id
git clone git@github.com:woai3c/vue-admin-template.git cd vue-admin-template npm i
npm run serve
npm run build