news-paging-list.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <template>
  2. <z-paging ref="paging" v-model="list" @query="handleQuery">
  3. <news-list class="p-30">
  4. <news-list-item v-for="item in list" :item="item"/>
  5. </news-list>
  6. </z-paging>
  7. </template>
  8. <script>
  9. import {ref} from 'vue'
  10. import {getNewsList} from "@/api/webApi/career-news";
  11. import NewsList from "@/pages/index/components/news-list.vue";
  12. import NewsListItem from "@/pages/index/components/news-list-item.vue";
  13. export default {
  14. name: "news-paging-list",
  15. components: {NewsListItem, NewsList},
  16. props: {
  17. params: {
  18. type: Object,
  19. default: null
  20. }
  21. },
  22. setup(props) {
  23. const list = ref([])
  24. const paging = ref(null)
  25. const handleQuery = function (pageNum, pageSize) {
  26. getNewsList({...props.params, pageNum, pageSize})
  27. .then(res => paging.value.completeByTotal(res.rows, res.total))
  28. .catch(() => paging.value.complete(false))
  29. }
  30. return {
  31. list,
  32. paging,
  33. handleQuery
  34. }
  35. }
  36. }
  37. </script>
  38. <style scoped>
  39. </style>