Brak opisu

Levelbar.vue 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <template>
  2. <el-breadcrumb class="app-levelbar" separator="/">
  3. <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
  4. <router-link v-if='item.redirect==="noredirect"||index==levelList.length-1' to="" class="no-redirect">{{item.name}}</router-link>
  5. <router-link v-else :to="item.redirect||item.path">{{item.name}}</router-link>
  6. </el-breadcrumb-item>
  7. </el-breadcrumb>
  8. </template>
  9. <script>
  10. export default {
  11. created() {
  12. this.getBreadcrumb()
  13. },
  14. data() {
  15. return {
  16. levelList: null
  17. }
  18. },
  19. methods: {
  20. getBreadcrumb() {
  21. let matched = this.$route.matched.filter(item => item.name)
  22. const first = matched[0]
  23. if (first && (first.name !== '首页' || first.path !== '')) {
  24. matched = [{ name: '首页', path: '/' }].concat(matched)
  25. }
  26. this.levelList = matched
  27. }
  28. },
  29. watch: {
  30. $route() {
  31. this.getBreadcrumb()
  32. }
  33. }
  34. }
  35. </script>
  36. <style rel="stylesheet/scss" lang="scss" scoped>
  37. .app-levelbar.el-breadcrumb {
  38. display: inline-block;
  39. font-size: 14px;
  40. line-height: 50px;
  41. margin-left: 10px;
  42. .no-redirect {
  43. color: #97a8be;
  44. cursor: text;
  45. }
  46. }
  47. </style>