Vue2面包屑导航

Vue2面包屑导航

定义路由

export default new VueRouter({
 routes: [
{
  path: '/',
  name: 'Home',
  // components:HelloWorld
  component: () => import("../views/HomeView"),
},

{
  // 保单管理
  path: "/Home",
  component: () => import("@/views/Home"),
  meta: {
    breadcrumb: '保单管理'
  },
  children: [
    // 保单管理
    {
      path: "/InsuranceManagement/policyAdministration/index",
      component: () => import("@/views/InsuranceManagement/policyAdministration/index"),
      meta: {
        breadcrumb: '保单管理'
      },
    },
    {
      path: "/InsuranceManagement/claimsCaseManagement/index",
      component: () => import("@/views/InsuranceManagement/claimsCaseManagement/index"),
      meta: {
        breadcrumb: '理赔案件管理'
      },
    },

    {
      path: "/InsuranceManagement/policyAdministration/details",
      component: () => import("@/views/InsuranceManagement/policyAdministration/details"),
      meta: {
        breadcrumb: '保单详情'
      },
    },
    {
      path: "/InsuranceManagement/claimsCaseManagement/details",
      component: () => import("@/views/InsuranceManagement/claimsCaseManagement/details"),
      meta: {
        breadcrumb: '理赔案件详情'
      },
    },
  ]
},
]
})

首页菜单导航栏(这里的菜单是通过后台数据渲染得到)

<el-container>
    <el-container class="home_content">
      <!-- 左边菜单部分 -->
      <el-aside :width="asideWidth">
        <div class="logo">
          <img src="../assets/logo_xwhb.png" alt="">
        </div>
        <el-menu router :default-active="defaultPath" el-menu-vertical-demo :collapse="isCollapse">
          <el-submenu :index="item.id" v-for="item in menuArr" :key="item.index">
            <template slot="title"><i class=" el-icon-s-order"></i><span
                class="menu_title">{{ item.label }}</span></template>
            <el-menu-item v-for="subItem in item.children" :key="subItem.index" :index="subItem.path"
              @click="pushPath(subItem.path, subItem.label)">{{ subItem.label }}</el-menu-item>
          </el-submenu>
        </el-menu>
      </el-aside>

      <!-- 内容区 -->
      <el-main>
        <el-header>
          <div class="head_content">
            <div class="head_content_left">
              <transition name="el-zoom-in-center">
              </transition>
              <el-link :underline="false">
                <img src="@/assets/home/img_combine.png" class="collapse_btn" @click="asideShow" />
              </el-link>
              <div style="margin-left: 20px;">
              	  <!-- 面包屑导航 封装引入 -->
                <menuarr></menuarr>
              </div>
            </div>
            <div class="head_content_right">
              <el-link :underline="false">
                <span class="header_user">
                  <i class="el-icon-user"></i>{{ this.username }}
                </span>
              </el-link>
              <el-link :underline="false">
                <span @click="logout" class="header_out">
                  <i class="icon iconfont icon-ziyuan46"></i>
                  退出
                </span>
              </el-link>
            </div>
          </div>
        </el-header>
        <router-view></router-view>
      </el-main>
    </el-container>
  </el-container>

封装引入代码

<template>
  <div class="breadcrumb">
    <div class="breadcrumb-item">
      <el-breadcrumb separator-class="el-icon-arrow-right">
        <transition-group name="breadcrumb">
          <el-breadcrumb-item v-for="item in list" :key="item.path + item.name">
            <!-- <router-link :to="item.path"></router-link> -->
            {{item.meta.breadcrumb}}
          </el-breadcrumb-item>
        </transition-group>
      </el-breadcrumb>
    </div>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        pathList: [],
        otherFlag: false,
        path: '',
      }
    },
    computed: {
      // this.checkPathList(this.$route.path, this.$route.name)
      list() {
        return this.$route.matched
      }
    },
    methods: {



    },

  }
</script>

<style scoped lang='scss'>
  .tags-box {
    height: 30px;
    width: 100%;
    display: flex;
    align-items: center;
    background: #fff;
  }

  .tags {
    border-radius: 3px;
    font-size: 12px;
    cursor: pointer;
    height: 23px;
    border: 1px solid #e9eaec;
    background: #fff;
    padding: 0px 10px;
    margin-left: 7px;
    -webkit-transition: all .3s ease-in;
    -moz-transition: all .3s ease-in;
    transition: all .3s ease-in;
    display: flex;
    align-items: center;
    position: relative;

    i {
      margin-left: 5px;
      margin-top: 1px;
    }

    ul {
      position: absolute;
      background: #fafafa;
      width: 90%;
      height: 40px;
      left: 0;
      top: 25px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      border-radius: 5px;
      box-shadow: 0px 0px 5px #ddd;
    }

    li {
      list-style: none;
      color: #666;
      text-align: center;
      height: 20px;
      line-height: 20px;
      padding: 5px 0;

      &:hover {
        background: #eee;
      }
    }

    .tags:not(.active):hover {
      background: #f8f8f8;
    }

    .active {
      color: #fff;
      background: #409EFF;
    }
  }

  /deep/.el-breadcrumb__inner{
    color: #171823;
    font-weight: bold;
  }

</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值