recommend-major.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <template>
  2. <view class="item">
  3. <view class="tit"
  4. style="background: linear-gradient(155deg, #ACF6E0 0%, #FFFFFF 100%);margin-bottom: 34rpx;">为您推荐以下专业
  5. </view>
  6. <uv-scroll-list indicator-active-color="#43AEAB">
  7. <recommend-major-group v-for="g in list" :key="g.category" :group="g"/>
  8. </uv-scroll-list>
  9. </view>
  10. </template>
  11. <script>
  12. import {watch, ref} from 'vue'
  13. import RecommendMajorGroup from "./recommend-major-group.vue";
  14. import {useCacheStore} from "@/hooks/useCacheStore";
  15. import {mbtiRecommendMajors} from "@/api/webApi/career-course";
  16. export default {
  17. name: "recommend-major",
  18. components: {RecommendMajorGroup},
  19. props: {
  20. code: {
  21. type: String,
  22. default: ''
  23. }
  24. },
  25. setup(props) {
  26. const {dispatchCache} = useCacheStore()
  27. const list = ref([])
  28. watch(() => props.code, async (code) => {
  29. if (!code) return
  30. const payload = {code}
  31. const res = await dispatchCache(mbtiRecommendMajors, payload)
  32. list.value = res.data
  33. }, {immediate: true})
  34. return {list}
  35. }
  36. }
  37. </script>
  38. <style lang="scss" scoped>
  39. @import "mbti-report-style.css";
  40. </style>