test.vue 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <template>
  2. <main>
  3. <div>
  4. <div v-if="pending">
  5. Pending...
  6. </div>
  7. <div v-else>
  8. <ul>
  9. <li v-for="access in accesses">
  10. Access {{ access.id }}
  11. </li>
  12. </ul>
  13. <div class="ma-3">{{ totalItems }} results</div>
  14. <a href="#" @click="onClick">Next page</a>
  15. </div>
  16. </div>
  17. </main>
  18. </template>
  19. <script setup lang="ts">
  20. import {computed, ref, Ref} from "@vue/reactivity";
  21. import {useAp2iRequestService} from "~/composables/data/useAp2iRequestService";
  22. import {useEntityFetch} from "~/composables/data/useEntityFetch";
  23. import Access from "~/models/Access/Access";
  24. import {useEntityManager} from "~/composables/data/useEntityManager";
  25. const { em } = useEntityManager()
  26. const { apiRequestService } = useAp2iRequestService()
  27. const page: Ref<number> = ref(1)
  28. const query = computed(() => {
  29. return { 'page': page.value }
  30. })
  31. // const totalItems: Ref<number> = ref(0)
  32. const { fetchCollection } = useEntityFetch()
  33. const { data: collection = [], pending, refresh } = fetchCollection(Access, null, query)
  34. const accesses = computed(() => {
  35. // @ts-ignore
  36. return collection.value ? collection.value.items : []
  37. })
  38. const totalItems = computed(() => {
  39. // @ts-ignore
  40. return collection.value ? collection.value.totalItems : 0
  41. })
  42. // @ts-ignore
  43. // const { data: accesses = [], pending, refresh } = useLazyAsyncData(
  44. // 'accesses',
  45. // async () => {
  46. // const collection = await em.fetchCollection(Access, null, query.value)
  47. // totalItems.value = collection.totalItems ?? 0
  48. // return collection.items
  49. // }
  50. // )
  51. const onClick = () => {
  52. page.value += 1
  53. refresh()
  54. }
  55. </script>