Merge pull request #1147 from DaydreamCoding/feat/persisted-page-size

feat(frontend): 分页 pageSize 持久化到 localStorage,刷新后自动恢复
This commit is contained in:
Wesley Liddick
2026-03-19 21:53:54 +08:00
committed by GitHub
15 changed files with 57 additions and 14 deletions

View File

@@ -69,6 +69,7 @@ import { adminAPI } from '@/api/admin'
import { formatDateTime } from '@/utils/format'
import type { AnnouncementUserReadStatus } from '@/types'
import type { Column } from '@/components/common/types'
import { getPersistedPageSize } from '@/composables/usePersistedPageSize'
import BaseDialog from '@/components/common/BaseDialog.vue'
import DataTable from '@/components/common/DataTable.vue'
@@ -92,7 +93,7 @@ const search = ref('')
const pagination = reactive({
page: 1,
page_size: 20,
page_size: getPersistedPageSize(),
total: 0,
pages: 0
})

View File

@@ -122,6 +122,7 @@ import { computed, ref } from 'vue'
import { useI18n } from 'vue-i18n'
import Icon from '@/components/icons/Icon.vue'
import Select from './Select.vue'
import { setPersistedPageSize } from '@/composables/usePersistedPageSize'
const { t } = useI18n()
@@ -216,6 +217,7 @@ const goToPage = (newPage: number) => {
const handlePageSizeChange = (value: string | number | boolean | null) => {
if (value === null || typeof value === 'boolean') return
const newPageSize = typeof value === 'string' ? parseInt(value) : value
setPersistedPageSize(newPageSize)
emit('update:pageSize', newPageSize)
}

View File

@@ -126,6 +126,7 @@
import { ref, computed, onMounted } from 'vue'
import { useI18n } from 'vue-i18n'
import soraAPI, { type SoraGeneration } from '@/api/sora'
import { getPersistedPageSize } from '@/composables/usePersistedPageSize'
import SoraMediaPreview from './SoraMediaPreview.vue'
const emit = defineEmits<{
@@ -190,7 +191,7 @@ async function loadItems(pageNum: number) {
status: 'completed',
storage_type: 's3,local',
page: pageNum,
page_size: 20
page_size: getPersistedPageSize()
})
const rows = Array.isArray(res.data) ? res.data : []
if (pageNum === 1) {