katılımcı listesi
This commit is contained in:
@ -392,9 +392,22 @@
|
||||
const searchChanging = ref<boolean>(false)
|
||||
const filterChanging = ref<boolean>(false)
|
||||
|
||||
const isQueryEqual = (a: Record<string, any>, b: Record<string, any>) => {
|
||||
const keys = new Set([...Object.keys(a || {}), ...Object.keys(b || {})])
|
||||
for (const k of keys) {
|
||||
const va = a?.[k]
|
||||
const vb = b?.[k]
|
||||
if (Array.isArray(va) && Array.isArray(vb)) {
|
||||
if (va.length !== vb.length || va.some((v: any, i: number) => v !== vb[i]))
|
||||
return false
|
||||
} else if (String(va ?? '') !== String(vb ?? '')) return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
const RoutePageControl = () => {
|
||||
if (props.isUseRoute) {
|
||||
const q = { ...route.query }
|
||||
const q = { ...route.query } as Record<string, any>
|
||||
pageNumberChanging.value = true
|
||||
|
||||
if (q.pageNumber !== undefined && q.pageNumber !== '') {
|
||||
@ -404,7 +417,9 @@
|
||||
localPagination.value.pageNumber = localPagination.value.pageNumber || 1
|
||||
}
|
||||
|
||||
router.push({ query: q })
|
||||
if (!isQueryEqual(q, route.query as Record<string, any>)) {
|
||||
router.push({ query: q })
|
||||
}
|
||||
nextTick(() => {
|
||||
pageNumberChanging.value = false
|
||||
})
|
||||
@ -413,7 +428,7 @@
|
||||
|
||||
const RouteSortControl = () => {
|
||||
if (props.isUseRoute) {
|
||||
const q = { ...route.query }
|
||||
const q = { ...route.query } as Record<string, any>
|
||||
sortChanging.value = true
|
||||
if (q.sortOrder !== undefined && q.sortOrder !== null && q.sortOrder !== '') {
|
||||
localSort.value.sortColumn = q.sortColumn as string
|
||||
@ -424,7 +439,9 @@
|
||||
delete localSort.value.sortColumn
|
||||
delete localSort.value.sortOrder
|
||||
}
|
||||
router.push({ query: q })
|
||||
if (!isQueryEqual(q, route.query as Record<string, any>)) {
|
||||
router.push({ query: q })
|
||||
}
|
||||
nextTick(() => {
|
||||
sortChanging.value = false
|
||||
})
|
||||
@ -433,7 +450,7 @@
|
||||
|
||||
const RouteSearchControl = () => {
|
||||
if (props.isUseRoute) {
|
||||
const q = { ...route.query }
|
||||
const q = { ...route.query } as Record<string, any>
|
||||
searchChanging.value = true
|
||||
if (
|
||||
q.searchString !== undefined &&
|
||||
@ -445,7 +462,9 @@
|
||||
localQuery.value = ''
|
||||
delete q.searchString
|
||||
}
|
||||
router.push({ query: q })
|
||||
if (!isQueryEqual(q, route.query as Record<string, any>)) {
|
||||
router.push({ query: q })
|
||||
}
|
||||
nextTick(() => {
|
||||
searchChanging.value = false
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user