popularEnterprises.vue 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <template>
  2. <div>
  3. <div class="d-flex align-center justify-center">
  4. <div class="home-title">
  5. 精选企业
  6. <div class="home-title-line"></div>
  7. </div>
  8. </div>
  9. <HotPromoted v-if="items.length" class="mt-5" :items="items"></HotPromoted>
  10. <Empty v-else :elevation="false" class="mt-3" message="暂无精选企业"></Empty>
  11. <div v-if="items.length" class="text-center">
  12. <v-hover v-slot="{ isHovering, props }">
  13. <v-btn v-bind="props" v-ripple.center class="buttons btnColor" :class="isHovering ? 'elevation-10' : 'elevation-5'" @click.stop="handleToMore">{{ $t('enterprise.moreBtn') }}</v-btn>
  14. </v-hover>
  15. </div>
  16. </div>
  17. </template>
  18. <script setup name="popularEnterprises">
  19. import HotPromoted from '@/components/Enterprise/hotPromoted.vue'
  20. import { ref } from 'vue'
  21. import { getHotEnterprise } from '@/api/enterprise'
  22. import { dealDictArrayData, dealDictObjData } from '@/utils/position'
  23. const items = ref([])
  24. // 热门企业
  25. const getHotEnterpriseList = async () => {
  26. const { list } = await getHotEnterprise({ pageNo: 1, pageSize: 9 })
  27. items.value = list.map(e => {
  28. let jobList = []
  29. const enterprise = dealDictObjData({}, e.enterprise)
  30. if (e.jobList && e.jobList.length) jobList = dealDictArrayData([], e.jobList).slice(0, 2)
  31. return { enterprise, jobList, active: false }
  32. })
  33. }
  34. getHotEnterpriseList()
  35. const handleToMore = () => {
  36. window.open('/recruit/personal/company')
  37. }
  38. </script>