element+vue之动态面包屑

实现效果

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.封装组件

1.在components下建立breadcrumb.vue 文件
在这里插入图片描述
2.封装breadcrumb组件

<template>
  <div style="display: inline-block" class="navigation">
    <el-breadcrumb separator="/" style="font-size: 15px">
      <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
      <el-breadcrumb-item :to="path">{{ parentMPName }}</el-breadcrumb-item>
      <el-breadcrumb-item v-if="ParameterName">//详情页面有的带参数需要加判断
      {{ ParameterName }}{{ title2 }}
      </el-breadcrumb-item>
      <el-breadcrumb-item v-else>{{ title }}</el-breadcrumb-item>
    </el-breadcrumb>
  </div>
</template>

<script>
export default {
  name: 'Navbar',
  props: {
    ParameterName: {
      type: String
    }
  },
  data () {
    return {
      title: '',
      title2: '',
      parentMPName: '',
      path: ''
    }
  },
  activated () {},
  created () {
    this.getBreadcrumb()
  },
  methods: {
    getBreadcrumb () {
      var meta = this.$route.meta
      this.title = meta.title
      this.title2 = meta.title2
      this.parentMPName = meta.parentMPName
      this.path = meta.parentPath
    }
  }
}
</script>

2.router.js文件

var router = new Router({
 routes: [{
   path: '/',
   name: 'Home',
   component: Home,
   children: [{
     path: '/',
     component: Index,
     name: 'Index',
     meta: {
      title: '首页'
     }
    },
    {
     name: 'SowDetail',
     path: '/Warehouse/components/SowDetail',
     component: () => import('@/views/Warehouse/components/SowDetail'),
     meta: {
      title: '播种墙详情',
      title2: '详情',
      parentMPName: '播种墙设置',
      parentPath: '/warehouse/sowList'
     }//三级页面带参数的详情页面
    },
   {
     path: '/QualityControl/components/RecordInfo/:hasEdit',
     component: () => import('@/views/QualityControl/components/RecordInfo'),
     name: 'RecordInfo',
     props: true,
     meta: {
      title: '接收记录',
      title2: '',
      parentMPName: '接收记录',
      parentPath: '/qualityControl/record'
     }//三级页面新增编辑页面
    },
    {
     path: '/PlanningStrategy/components/PickingOrderInfo/:hasEdit',
     component: () => import('@/views/PlanningStrategy/components/PickingOrderInfo'),
     name: 'PickingOrderInfo',
     props: true,
     meta: {
      title: '拣货路线配置',
      title2: '',
      parentMPName: '拣货路线配置',
      parentPath: '/PlanningStrategy/PickingOrder'
     }//三级页面不带参数的详情页面
    }
   ]
  },
  {
   path: '/Login',
   name: 'Login',
   component: Login
  }, {
   path: '/Error',
   name: 'Error',
   component: Error
  },

 ]
})

3.封装全局引用

主要是把全局引用的组件封装到js里 把这个js文件直接引入到main.js文件中 这样整个项目用到的全局组件就用不一个一个引入到main.js文件中了 如果不想这样 也可以直接把import breadcrumb from './components/Global/breadcrumb’引入到main.js文件中
在这里插入图片描述

import Vue from 'vue'

const requireComponent = require.context('./', false, /\.vue$/)

requireComponent.keys().forEach(fileName => {
  const componentConfig = requireComponent(fileName)

  // fileName   ./G-demo.vue
  const componentName = fileName
    .replace(/^\.\//, '')
    .replace(/\.\w+$/, '')
    .split('-')
    .join('')

  Vue.component(componentName, componentConfig.default || componentConfig)
})

再把这个index.js文件引入到main.js文件中

//在main.js
import './components/Global'

4. 二级页面直接用

`  <div class="title-wrapper">
        <breadcrumb></breadcrumb>
   </div>`

5. 三级页面

//ParameterName就写你要的值
 <breadcrumb :ParameterName="ParameterName"></breadcrumb>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jiojio冲冲冲

能帮助你是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值