Skip to content

Commit e025d80

Browse files
committed
1 parent 2e3bfae commit e025d80

File tree

2 files changed

+26
-9
lines changed

2 files changed

+26
-9
lines changed

packages/bootstrap-vue-3/src/components/BTable/BTable.vue

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -385,14 +385,21 @@ const isSortable = computed(
385385
386386
const requireItemsMapping = computed(() => isSortable.value && sortInternalBoolean.value === true)
387387
const computedItems = computed(() => {
388-
if (usesProvider.value) return itemHelper.internalItems.value
389-
return requireItemsMapping.value
388+
const items = usesProvider.value
389+
? itemHelper.internalItems.value
390+
: requireItemsMapping.value
390391
? itemHelper.mapItems(props.fields, props.items, props, {
391392
isSortable,
392393
isFilterableTable,
393394
sortDescBoolean,
394395
})
395396
: props.items
397+
398+
if (props.perPage !== undefined) {
399+
const startIndex = (props.currentPage - 1) * props.perPage
400+
return items.splice(startIndex, props.perPage)
401+
}
402+
return items
396403
})
397404
398405
const getFieldHeadLabel = (field: TableField) => {
@@ -598,6 +605,7 @@ const providerPropsWatch = async (prop: string, val: any, oldVal: any) => {
598605
599606
//stop provide when paging
600607
const inNoProvider = (key: NoProviderTypes) => props.noProvider && props.noProvider.includes(key)
608+
const notifyFiltered = !['currentPage', 'perPage'].includes(prop)
601609
const noProvideWhenPaging =
602610
['currentPage', 'perPage'].includes(prop) &&
603611
(inNoProvider('paging') || noProviderPagingBoolean.value === true)
@@ -613,6 +621,8 @@ const providerPropsWatch = async (prop: string, val: any, oldVal: any) => {
613621
}
614622
615623
await callItemsProvider()
624+
625+
if (notifyFiltered) itemHelper.notifyFilteredItems()
616626
}
617627
618628
watch(

packages/bootstrap-vue-3/src/components/BTable/itemHelper.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ const useItemHelper = () => {
3838
internalItems.value = cloneDeep(items)
3939
if ('isFilterableTable' in flags && flags.isFilterableTable.value === true && props.filter) {
4040
internalItems.value = filterItems(internalItems.value, props.filter, props.filterable)
41-
if (filterEvent.value) {
42-
filterEvent.value(internalItems.value)
43-
}
41+
// if (filterEvent.value) {
42+
// filterEvent.value(internalItems.value)
43+
// }
4444
}
4545
if ('isSortable' in flags && flags.isSortable.value === true) {
4646
internalItems.value = sortItems(
@@ -53,10 +53,10 @@ const useItemHelper = () => {
5353
props.sortCompare
5454
)
5555
}
56-
if (props.perPage !== undefined) {
57-
const startIndex = (props.currentPage - 1) * props.perPage
58-
internalItems.value = internalItems.value.splice(startIndex, props.perPage)
59-
}
56+
// if (props.perPage !== undefined) {
57+
// const startIndex = (props.currentPage - 1) * props.perPage
58+
// internalItems.value = internalItems.value.splice(startIndex, props.perPage)
59+
// }
6060
return internalItems.value
6161
}
6262

@@ -119,12 +119,19 @@ const useItemHelper = () => {
119119
}
120120
}
121121

122+
const notifyFilteredItems = () => {
123+
if (filterEvent.value) {
124+
filterEvent.value(internalItems.value)
125+
}
126+
}
127+
122128
return {
123129
normaliseFields,
124130
mapItems,
125131
internalItems,
126132
updateInternalItems,
127133
filterEvent,
134+
notifyFilteredItems,
128135
}
129136
}
130137

0 commit comments

Comments
 (0)