diff --git a/packages/ui/src/components/table/ForgeTable.vue b/packages/ui/src/components/table/ForgeTable.vue index 9c4f3b392..b0594f353 100644 --- a/packages/ui/src/components/table/ForgeTable.vue +++ b/packages/ui/src/components/table/ForgeTable.vue @@ -3,7 +3,7 @@ + @update:filters="emitUpdateFilter" @sort="emitSort" @page="emitPage" showHeaders :first="firstValueIndex"> @@ -90,6 +90,8 @@ const props = withDefaults(defineProps(), { const forgeTable = ref() const pageSizes = ref>([5, 10, 20, 50, 100]) const perPage = ref(10) +const pageNumber = ref(0); +const firstValueIndex = ref(0); const tableContext = ref({ filters: props.filters, @@ -152,7 +154,9 @@ const exportData = () => { const emitSort = (sort: DataTableSortEvent) => { tableContext.value.sortDirection = sort.sortOrder === 1 ? 'Asc' : sort.sortOrder === -1 ? 'Desc' : 'None' tableContext.value.sortField = sort.sortField?.toString() ?? '' - + tableContext.value.page = pageNumber.value = 0; + setFirstIndex(); + emits("update:tableContext", tableContext.value) emits('sort', sort) } @@ -163,14 +167,18 @@ const emitUpdateFilter = (filters: DataTableFilterMeta | undefined) => { emits('update:filters', filters) } const emitPage = (page : DataTablePageEvent) => { - tableContext.value.page = page.page - + tableContext.value.page = pageNumber.value = page.page + + setFirstIndex(); emits("update:tableContext", tableContext.value) emits('page', page) } const emitPageSize = () => { tableContext.value.perPage = perPage.value - + // Set page based on current index + tableContext.value.page = pageNumber.value = Math.floor(firstValueIndex.value/perPage.value) + + setFirstIndex(); emits("update:tableContext", tableContext.value) } @@ -181,4 +189,11 @@ watch(() => props.filters, (newValue) => { }, {deep: true}) onMounted(() => emits("update:tableContext", tableContext.value)) + +const setFirstIndex = () => +{ + console.log('Setting First Index') + firstValueIndex.value = pageNumber.value++ * perPage.value; +} + \ No newline at end of file