统一后台 Table 分页:常开 10/20/50/100 条数切换

- 新增 admin-pagination 工具,标准列表与云触手记录分别配置
- 用户/审计等页补齐 showSizeChanger,避免 total≤50 时无法切换
- ConfigProvider 默认开启条数切换
This commit is contained in:
yml2213
2026-07-10 16:05:27 +08:00
parent 042574dea3
commit d61a04befa
10 changed files with 160 additions and 41 deletions
@@ -24,6 +24,11 @@ import {
import type { AdminTaskActionResponse, AdminTaskListItem } from '@/types/admin'
import { hasAdminRole } from '@/utils/admin-auth'
import { adminTaskStatusOptions } from '@/utils/admin-options'
import {
ADMIN_DEFAULT_PAGE_SIZE,
buildAdminTablePagination,
resolveAdminPageSize,
} from '@/utils/admin-pagination'
import { formatAdminDateTime } from '@/utils/admin-time'
type TaskFilterForm = {
@@ -50,7 +55,7 @@ export default function AdminTasksPage() {
const [actionLoadingId, setActionLoadingId] = useState<number | null>(null)
const [lastClaimUrl, setLastClaimUrl] = useState('')
const page = Number(searchParams.get('page') || 1) || 1
const pageSize = Number(searchParams.get('pageSize') || 20) || 20
const pageSize = resolveAdminPageSize(searchParams.get('pageSize'), ADMIN_DEFAULT_PAGE_SIZE)
const canManageTaskLifecycle = hasAdminRole('operator')
const canCloseTasks = hasAdminRole('support')
const filters = {
@@ -397,16 +402,14 @@ export default function AdminTasksPage() {
columns={columns}
dataSource={data?.items || []}
scroll={{ x: 1500 }}
pagination={{
pagination={buildAdminTablePagination({
current: data?.pagination.page || page,
pageSize: data?.pagination.pageSize || pageSize,
total: data?.pagination.total || 0,
showSizeChanger: true,
showTotal: (total) => `${total}`,
onChange: (nextPage, nextPageSize) => {
setSearchParams(cleanParams({ ...filters, page: nextPage, pageSize: nextPageSize }))
},
}}
})}
/>
</Card>
</section>