interested.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <template>
  2. <div>
  3. <v-divider></v-divider>
  4. <v-tabs v-model="tabVal" align-tabs="start" color="primary" bg-color="#fff" @update:modelValue="tabChange">
  5. <v-tab :value="0">{{ favoriteCount > 0 ? `${$t('position.positionCollection')}(${favoriteCount})` : $t('position.positionCollection') }}</v-tab>
  6. <v-tab :value="1">{{ subscribeCount > 0 ? `${$t('position.companyCollection')}(${subscribeCount})` : $t('position.companyCollection') }}</v-tab>
  7. </v-tabs>
  8. <div class="mt-3">
  9. <component :is="tabVal === 0 ? positionCollection : companyCollection" @cancelCollect="val => val ? getSubscribeCount() : getFavoriteCount()"></component>
  10. </div>
  11. </div>
  12. </template>
  13. <script setup>
  14. // 感兴趣
  15. defineOptions({ name: 'position-interested' })
  16. import { ref } from 'vue'
  17. import { getPersonJobFavoriteCount, getPersonEnterpriseSubscribeCount } from '@/api/position'
  18. import positionCollection from './positionCollection.vue'
  19. import companyCollection from './companyCollection.vue'
  20. const tabVal = ref(0)
  21. // 获取用户收藏职位数量
  22. const favoriteCount = ref(0)
  23. const getFavoriteCount = async () => {
  24. const data = await getPersonJobFavoriteCount()
  25. if (data && data > 0) favoriteCount.value = data
  26. }
  27. getFavoriteCount()
  28. // 获取用户关注企业数量
  29. const subscribeCount = ref(0)
  30. const getSubscribeCount = async () => {
  31. const data = await getPersonEnterpriseSubscribeCount()
  32. if (data && data > 0) subscribeCount.value = data
  33. }
  34. getSubscribeCount()
  35. const tabChange = () => {
  36. if (tabVal.value === 0) getFavoriteCount()
  37. else getSubscribeCount()
  38. }
  39. </script>
  40. <style scoped lang="scss">
  41. </style>