JavaScript

超轻量级php框架startmvc

详解基于iview-ui的导航栏路径(面包屑)配置

更新时间:2020-08-15 23:24:01 作者:startmvc
起因上家公司的后台管理系统都是刷表刷出来的,所用很久很久没写后台管理系统了。换了

起因

上家公司的后台管理系统都是刷表刷出来的,所用很久很久没写后台管理系统了。换了工作后总算要开始捣腾router了,很久没用都快忘光了,所以把一些通用的模块记录一下,也分享给需要的朋友们。

经过


//router.js
let routes = [
 {
 path: '/',
 redirect: '/admin',
 },
 {
 path: '/login',
 name: 'login',
 meta: {title: '登录'},
 component: () => import('./components/login.vue')
 },
 {
 path: '/admin',
 name: 'admin',
 meta: {title: '主页'},
 component: () => import('./components/admin.vue'),
 children: [
 {
 path: 'operation',
 name: 'operation',
 meta: {title: '运营管理'},
 component: () => import('./components/admin/operation.vue')
 },
 {
 path: 'order',
 name: 'order',
 meta: {title: '订单中心'},
 redirect: 'order/index',
 component: () => import('./components/admin/order.vue'),
 children: [
 {
 path: 'index',
 name: 'index',
 meta: {title: ''},
 component: () => import('./components/admin/ordercenter.vue')
 },
 {
 path: 'detail',
 name: 'detail',
 meta: {title: '订单详情'},
 component: () => import('./components/admin/orderdetail.vue')
 },
 ]
 },
 ]
 },
]

export default routes

这个是我部分的router路径配置表


 /*面包屑路径处理*/
 eve_breadcrumbItem_change(){
 var list = this.$route.fullPath.split('/')//list[0]:是空格
 this.BreadcrumbItem = []
 function fn(obj, arr, index,self) {
 if (obj.hasOwnProperty('children')&&obj['children'].length>0) {
 for (let one of obj.children) {
 if (one.name != 'index' && one.name == arr[index]) {
 self.BreadcrumbItem.push({'title': one.meta.title, 'path': list.slice(0,index+1).join('/')})
 return one.hasOwnProperty('children')&&one['children'].length>0?fn(one,arr,index+1,self):false
 }
 }
 }
 }
 for(let one of this.$router.options.routes){
 if(one.hasOwnProperty('name')&&one.name == list[1]){
 this.BreadcrumbItem.push({'title': one.meta.title, 'path': one.path})
 fn(one,list,2,this)
 }
 }
 }

这个是就是本文的重点,其实也简单,就是递归了下路径名重新组装了下数据给面包屑传过去


watch: {
 '$route'(to, from) {
 this.eve_breadcrumbItem_change()
 }
},
...
mounted() {
 this.eve_breadcrumbItem_change()
},

使用也简单,无非watch检测下路径变化,避免刷新页面时没路径,在mounted里再调用一下。

结果

结果嘛,自然就解决问题。不过路径的配置可能会和大家的不同,我喜欢在分组下默认弄个index路径,我觉得这样结构比较好,这里大家注意下。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

iview-ui 导航栏路径 iview-ui 面包屑导航栏