positionCollection.vue 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <template>
  2. <div>
  3. <div v-if="items.length">
  4. <LongStrip :items="items" :showCancelBtn="true" @refresh="getPositionList"></LongStrip>
  5. <CtPagination
  6. :total="total"
  7. :page="page.pageNo"
  8. :limit="page.pageSize"
  9. @handleChange="handleChangePage"
  10. ></CtPagination>
  11. </div>
  12. <Empty v-else></Empty>
  13. </div>
  14. </template>
  15. <script setup>
  16. // 感兴趣-职位收藏
  17. defineOptions({ name: 'position-collection' })
  18. import { ref } from 'vue'
  19. import { dealDictObjData } from '@/views/recruit/position/components/dict'
  20. import { getJobFavoriteList } from '@/api/position'
  21. const total = ref(0)
  22. const items = ref([])
  23. const page = ref({
  24. pageNo: 1,
  25. pageSize: 10
  26. })
  27. // 获取收藏职位列表
  28. const getPositionList = async () => {
  29. const { list, total: number } = await getJobFavoriteList(page.value)
  30. items.value = list.map(e => {
  31. e.job = { ...e.job, ...dealDictObjData({}, e.job) }
  32. e.enterprise = { ...e.enterprise, ...dealDictObjData({}, e.enterprise)}
  33. e.active = false
  34. return e
  35. })
  36. total.value = number
  37. }
  38. getPositionList()
  39. const handleChangePage = (index) => {
  40. page.value.pageNo = index
  41. getPositionList()
  42. }
  43. </script>
  44. <style scoped lang="scss">
  45. </style>