breadcrumb.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <template>
  2. <div class="y-breadcrumb">
  3. <div class="y-breadcrumb-ico" @click="collapseFun">
  4. <el-icon v-if="data.iscollapse"><Expand /></el-icon>
  5. <el-icon v-else><Fold /></el-icon>
  6. </div>
  7. <el-breadcrumb :separator-icon="ArrowRight">
  8. <el-breadcrumb-item>宝智达</el-breadcrumb-item>
  9. <el-breadcrumb-item>系统首页</el-breadcrumb-item>
  10. <el-breadcrumb-item>{{ data.isRouter }}</el-breadcrumb-item>
  11. </el-breadcrumb>
  12. </div>
  13. </template>
  14. <script lang="ts" setup>
  15. import Bus from '@/plugins/eventBus'
  16. import router from '@/router/index'
  17. import { ArrowRight } from '@element-plus/icons-vue'
  18. import { useStore } from 'vuex';
  19. import { reactive, watch } from 'vue'
  20. let store = useStore()
  21. //当前路由
  22. const data = reactive({
  23. isRouter: '',
  24. iscollapse:true
  25. })
  26. watch(() => store.state.switchValue, (toPath: any) => {
  27. data.iscollapse = store.state.switchValue
  28. }, { immediate: true, deep: true })
  29. watch(() => router, (toPath: any) => {
  30. data.isRouter = toPath.currentRoute._value.meta.title
  31. }, { immediate: true, deep: true })
  32. const collapseFun = async ()=>{
  33. data.iscollapse = !data.iscollapse
  34. Bus.emit('on-click',data.iscollapse);
  35. store.commit('setswitchValue', data.iscollapse) //存储导航状态
  36. }
  37. </script>
  38. <style lang="scss">
  39. .y-breadcrumb {
  40. padding-bottom: var(--y-padding);
  41. display: flex;
  42. align-items: center;
  43. &-ico{
  44. padding-right: 20px;
  45. display: flex;
  46. align-items: center;
  47. font-size: 22px;
  48. font-weight: 100;
  49. cursor: pointer;
  50. color: var(--el-text-color-regular);
  51. }
  52. }</style>