topbar2.vue 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <template>
  2. <div class="adminui-topbar inner-bar">
  3. <div class="left-panel">
  4. <el-breadcrumb
  5. v-if="toolbarTags"
  6. separator-icon="fxy"
  7. class="hidden-sm-and-down"
  8. >
  9. <transition-group name="breadcrumb">
  10. <template v-for="item in breadList">
  11. <el-breadcrumb-item
  12. v-if="item.path != '/'"
  13. :key="item.meta.title"
  14. >
  15. <el-icon size="12px"
  16. ><component :is="item.meta.icon"
  17. /></el-icon>
  18. {{ $t2(item.meta.code) || item.meta.title }}
  19. </el-breadcrumb-item>
  20. </template>
  21. </transition-group>
  22. </el-breadcrumb>
  23. </div>
  24. <div class="ivu-page-header-title">
  25. {{ breadList[breadList.length - 1].meta.title }}
  26. </div>
  27. </div>
  28. </template>
  29. <script>
  30. export default {
  31. data() {
  32. return {
  33. breadList: [],
  34. };
  35. },
  36. created() {
  37. this.getBreadcrumb();
  38. },
  39. watch: {
  40. $route() {
  41. this.getBreadcrumb();
  42. },
  43. },
  44. computed: {
  45. toolbarTags() {
  46. return (
  47. this.$store.state.global.toolbarTags &&
  48. this.$route.meta.hiddenBreadcrumb !== "1"
  49. );
  50. },
  51. },
  52. methods: {
  53. getBreadcrumb() {
  54. let matched = this.$route.meta.breadcrumb || [
  55. {
  56. meta: {
  57. title:
  58. this.$route.query.title || this.$route.meta.title,
  59. },
  60. },
  61. ];
  62. this.breadList = matched;
  63. },
  64. },
  65. };
  66. </script>
  67. <style lang="less">
  68. .adminui-topbar {
  69. padding: 16px 16px 10px 16px;
  70. margin: 0;
  71. background: #fff;
  72. border-bottom: 1px solid #e8eaec;
  73. .left-panel {
  74. display: flex;
  75. align-items: center;
  76. }
  77. .right-panel {
  78. display: flex;
  79. align-items: center;
  80. }
  81. }
  82. .adminui-topbar.inner-bar {
  83. .left-panel {
  84. margin-bottom: 16px;
  85. .el-breadcrumb {
  86. margin-left: 15px;
  87. }
  88. .icon {
  89. color: #86909c;
  90. }
  91. .el-breadcrumb__item .el-breadcrumb__inner {
  92. color: #86909c;
  93. }
  94. .el-breadcrumb__item:last-child .icon {
  95. color: rgb(78, 89, 105);
  96. }
  97. .el-breadcrumb__item:last-child .el-breadcrumb__inner {
  98. color: rgb(78, 89, 105);
  99. }
  100. }
  101. .ivu-page-header-title {
  102. display: inline-block;
  103. color: #17233d;
  104. font-weight: 500;
  105. font-size: 20px;
  106. margin-bottom: 16px;
  107. margin-left: 12px;
  108. }
  109. }
  110. // .el-breadcrumb {margin-left: 15px;}
  111. </style>