diff --git a/src/components/table/table-base.vue b/src/components/table/table-base.vue index 76c8552..4a5987a 100644 --- a/src/components/table/table-base.vue +++ b/src/components/table/table-base.vue @@ -15,6 +15,7 @@ import type { TableColumnCheck } from '~/packages/hooks/src'; const route = useRoute(); const { t } = useI18n(); +const loading = ref(false); const title = t(route.meta.i18nKey as string); const props = withDefaults( defineProps<{ @@ -44,15 +45,22 @@ const pagination = ref({ }); async function loadData(query?: Record) { + loading.value = true; const page = pagination.value.page || 1; const pageSize = pagination.value.pageSize || 10; - const { data } = await props.fetchData({ - pagination: { - pageIndex: page, - pageSize - }, - filter: query - }); + const { data } = await props + .fetchData({ + pagination: { + pageIndex: page, + pageSize + }, + filter: query + }) + .finally(() => { + setTimeout(() => { + loading.value = false; + }, 300); + }); tableData.value = (data.value as any).data; pagination.value.itemCount = (data.value as any).pagination.total; @@ -109,6 +117,7 @@ defineExpose({