list.vue 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <Page>
  3. <div class="content">
  4. <!-- 传统村落 -->
  5. <TabCommonList
  6. :loader="loadData"
  7. class="h-100"
  8. />
  9. </div>
  10. </Page>
  11. </template>
  12. <script setup lang="ts">
  13. import { ref, watch } from 'vue';
  14. import { useRoute, useRouter } from 'vue-router';
  15. import CommonContent, { GetContentListParams } from '@/api/CommonContent';
  16. import TabCommonList from '@/views/Content/TabCommonList.vue';
  17. import Page from '@/components/parts/Page.vue';
  18. const router = useRouter();
  19. const route = useRoute();
  20. const list = ref();
  21. async function showDetail(item: any) {
  22. router.push({ path: '/village/content', query: { id: item.id } });
  23. }
  24. async function loadData(
  25. page: number,
  26. pageSize: number,
  27. ) {
  28. const res = await CommonContent.getContentList(new GetContentListParams()
  29. .setModelId(Number(route.query.model_id))
  30. .setMainBodyColumnId(Number(route.query.main_body_column_id))
  31. .setSelfValues({
  32. region: Number(route.query.region),
  33. })
  34. , page, pageSize);
  35. return {
  36. page: page,
  37. total: res.total,
  38. list: res.list
  39. }
  40. }
  41. watch(route, (newVal) => {
  42. list.value.reload();
  43. })
  44. </script>
  45. <style scoped>
  46. .content {
  47. position: absolute;
  48. top: 100px;
  49. left: 15%;
  50. right: 15%;
  51. bottom: 5%;
  52. }
  53. </style>