useDataSource.ts 970 B

1234567891011121314151617181920212223242526272829303132
  1. import { queryDictPageApi } from '@/api/dict';
  2. import { onMounted, ref } from 'vue';
  3. export const useDataSource = () => {
  4. const dataSource = ref<Record<string, any>[]>([]);
  5. const currentPage = ref<number>(1);
  6. const pageSize = ref<number>(10);
  7. const totalPage = ref<number>(1);
  8. const loading = ref<boolean>(false);
  9. const getDataSource = (param?: { currentPage?: number; pageSize?: number }) => {
  10. loading.value = true;
  11. if (param?.currentPage) {
  12. currentPage.value = param.currentPage;
  13. }
  14. if (param?.pageSize) {
  15. pageSize.value = param.pageSize;
  16. }
  17. queryDictPageApi({ pageNumber: currentPage.value, pageSize: pageSize.value })
  18. .then((res) => {
  19. dataSource.value = res.records;
  20. totalPage.value = res.totalPage;
  21. loading.value = false;
  22. })
  23. .finally(() => {
  24. loading.value = false;
  25. });
  26. };
  27. return { dataSource, currentPage, pageSize, totalPage, loading, getDataSource };
  28. };