level-two.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <template>
  2. <view class="page-content pb-40">
  3. <mx-nav-bar :title="detail.name"/>
  4. <uv-cell-group title="1">
  5. <template #title>
  6. <view class="text-xs text-tips">
  7. 包含
  8. <text class="text-error mx-5">{{ detail.childCount }}</text>
  9. 个专业
  10. </view>
  11. </template>
  12. <uv-cell v-for="item in detail.children" :key="item.code" :title="item.name" isLink border
  13. class="f-333 bg-white" @click="goDetail(item)">
  14. </uv-cell>
  15. </uv-cell-group>
  16. </view>
  17. </template>
  18. <script setup>
  19. import {ref, computed, onMounted} from 'vue'
  20. import {useTransfer} from "@/hooks/useTransfer";
  21. import {findTreeNode} from "@/utils/tree-helper";
  22. import {useCacheStore} from "@/hooks/useCacheStore";
  23. import {cacheActions} from "@/hooks/defineCacheActions";
  24. const {prevData, transferTo} = useTransfer()
  25. const {dispatchCache} = useCacheStore()
  26. const majorTree = ref([])
  27. const detail = computed(() => findTreeNode(majorTree.value, m => m.code == prevData.value.code) || {})
  28. const goDetail = (item) => {
  29. transferTo('/pages/major-library/detail/detail', ['code'], item)
  30. }
  31. onMounted(async () => {
  32. majorTree.value = await dispatchCache(cacheActions.getMajorTree)
  33. })
  34. </script>
  35. <style lang="scss">
  36. </style>