concern-college-list.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <template>
  2. <z-paging ref="paging" v-model="list" @query="handleQuery" @on-refresh="handleRefresh">
  3. <view class="fx-col p-30 gap-30">
  4. <college-item v-for="i in list" :item="i" class="mx-card" @click="goDetail(i)"/>
  5. </view>
  6. </z-paging>
  7. </template>
  8. <script setup>
  9. import {ref} from 'vue';
  10. import CollegeItem from "@/pages/college-library/components/college-item.vue";
  11. import {useCacheStore} from "@/hooks/useCacheStore";
  12. import {concernedUniversities} from "@/api/webApi/career-other";
  13. import {useTransfer} from "@/hooks/useTransfer";
  14. const paging = ref(null)
  15. const list = ref([])
  16. const {dispatchCache, removeCache} = useCacheStore()
  17. const {transferTo} = useTransfer()
  18. const handleRefresh = () => {
  19. removeCache(concernedUniversities)
  20. }
  21. const handleQuery = (pageNum, pageSize) => {
  22. const payload = {pageNum, pageSize}
  23. dispatchCache(concernedUniversities, payload)
  24. .then(res => paging.value.completeByTotal(res.rows, res.total))
  25. .catch(e => paging.value.complete(false))
  26. }
  27. const goDetail = (item) => {
  28. transferTo('/pages/college-library/detail/detail', ['code'], item)
  29. }
  30. </script>
  31. <style scoped>
  32. </style>