🎨 统一后台分页与设置页布局
This commit is contained in:
@@ -81,6 +81,8 @@ const legacyForeverExpiresAt = '2099-12-31T23:59'
|
||||
const detailPolicyDownloadLimit = 5
|
||||
const hourInMilliseconds = 60 * 60 * 1000
|
||||
const dayInMilliseconds = 24 * 60 * 60 * 1000
|
||||
const adminPageSizeOptions = [5, 10, 20, 50, 100] as const
|
||||
const defaultAdminPageSize = 10
|
||||
|
||||
type DetailPolicyActionOption = {
|
||||
action: AdminFilePolicyAction
|
||||
@@ -167,8 +169,10 @@ const normalizePresetChoice = <T extends string>(
|
||||
|
||||
const normalizePresetSize = (value: unknown) => {
|
||||
const normalizedSize = Number(value)
|
||||
if (!Number.isFinite(normalizedSize)) return 10
|
||||
return Math.min(Math.max(Math.trunc(normalizedSize), 1), 100)
|
||||
const pageSize = Number.isFinite(normalizedSize) ? Math.trunc(normalizedSize) : defaultAdminPageSize
|
||||
return adminPageSizeOptions.includes(pageSize as (typeof adminPageSizeOptions)[number])
|
||||
? pageSize
|
||||
: defaultAdminPageSize
|
||||
}
|
||||
|
||||
const buildDefaultViewPresetParams = (): AdminFileViewPresetParams => ({
|
||||
@@ -178,7 +182,7 @@ const buildDefaultViewPresetParams = (): AdminFileViewPresetParams => ({
|
||||
health: 'all',
|
||||
sortBy: 'created_at',
|
||||
sortOrder: 'desc',
|
||||
size: 10
|
||||
size: defaultAdminPageSize
|
||||
})
|
||||
|
||||
const normalizeViewPresetParams = (params: unknown): AdminFileViewPresetParams => {
|
||||
@@ -218,7 +222,7 @@ export function useAdminFiles() {
|
||||
const summary = ref<AdminFileSummary>(emptySummary())
|
||||
const params = ref<AdminFileListParams & { total: number }>({
|
||||
page: 1,
|
||||
size: 10,
|
||||
size: defaultAdminPageSize,
|
||||
total: 0,
|
||||
keyword: '',
|
||||
status: 'all',
|
||||
@@ -311,7 +315,7 @@ export function useAdminFiles() {
|
||||
health: params.value.health || 'all',
|
||||
sortBy: params.value.sortBy || 'created_at',
|
||||
sortOrder: params.value.sortOrder || 'desc',
|
||||
size: params.value.size || 10
|
||||
size: params.value.size || defaultAdminPageSize
|
||||
})
|
||||
|
||||
const buildBuiltInViewPreset = (
|
||||
@@ -1204,8 +1208,7 @@ export function useAdminFiles() {
|
||||
}
|
||||
|
||||
const handlePageSizeChange = async (size: number) => {
|
||||
if (!Number.isFinite(size) || size < 1) return
|
||||
params.value.size = Math.min(Math.trunc(size), 100)
|
||||
params.value.size = normalizePresetSize(size)
|
||||
params.value.page = 1
|
||||
markViewPresetDirty()
|
||||
await loadFiles()
|
||||
|
||||
Reference in New Issue
Block a user