fix: pagination cache for table list

This commit is contained in:
jialin
2026-03-17 16:35:55 +08:00
committed by jialin
parent e72cacc4b2
commit 68519223fa
10 changed files with 28 additions and 9 deletions
+2
View File
@@ -2,6 +2,7 @@ import DeleteModal from '@/components/delete-modal';
import IconFont from '@/components/icon-font'; import IconFont from '@/components/icon-font';
import { FilterBar } from '@/components/page-tools'; import { FilterBar } from '@/components/page-tools';
import { PageAction } from '@/config'; import { PageAction } from '@/config';
import { PaginationKey } from '@/config/settings';
import type { PageActionType } from '@/config/types'; import type { PageActionType } from '@/config/types';
import useTableFetch from '@/hooks/use-table-fetch'; import useTableFetch from '@/hooks/use-table-fetch';
import { useIntl } from '@umijs/max'; import { useIntl } from '@umijs/max';
@@ -32,6 +33,7 @@ const APIKeys: React.FC = () => {
handleSearch, handleSearch,
handleNameChange handleNameChange
} = useTableFetch<ListItem>({ } = useTableFetch<ListItem>({
key: PaginationKey.APIKeys,
fetchAPI: queryApisKeysList, fetchAPI: queryApisKeysList,
deleteAPI: deleteApisKey, deleteAPI: deleteApisKey,
contentForDelete: 'apikeys.table.apikeys' contentForDelete: 'apikeys.table.apikeys'
+2 -1
View File
@@ -2,7 +2,7 @@ import DeleteModal from '@/components/delete-modal';
import IconFont from '@/components/icon-font'; import IconFont from '@/components/icon-font';
import { FilterBar } from '@/components/page-tools'; import { FilterBar } from '@/components/page-tools';
import { PageAction } from '@/config'; import { PageAction } from '@/config';
import { TABLE_SORT_DIRECTIONS } from '@/config/settings'; import { PaginationKey, TABLE_SORT_DIRECTIONS } from '@/config/settings';
import useTableFetch from '@/hooks/use-table-fetch'; import useTableFetch from '@/hooks/use-table-fetch';
import { useBenchmarkTargetInstance } from '@/pages/llmodels/hooks/use-run-benchmark'; import { useBenchmarkTargetInstance } from '@/pages/llmodels/hooks/use-run-benchmark';
import { useQueryModelList } from '@/pages/llmodels/services/use-query-model-list'; import { useQueryModelList } from '@/pages/llmodels/services/use-query-model-list';
@@ -51,6 +51,7 @@ const Benchmark: React.FC = () => {
handleSearch, handleSearch,
handleNameChange handleNameChange
} = useTableFetch<ListItem>({ } = useTableFetch<ListItem>({
key: PaginationKey.Benchmarks,
fetchAPI: queryBenchmarkList, fetchAPI: queryBenchmarkList,
deleteAPI: deleteBenchmark, deleteAPI: deleteBenchmark,
API: BENCHMARKS_API, API: BENCHMARKS_API,
+2 -1
View File
@@ -6,7 +6,7 @@ import SealTable from '@/components/seal-table';
import TableContext from '@/components/seal-table/table-context'; import TableContext from '@/components/seal-table/table-context';
import { TableOrder } from '@/components/seal-table/types'; import { TableOrder } from '@/components/seal-table/types';
import { PageAction } from '@/config'; import { PageAction } from '@/config';
import { TABLE_SORT_DIRECTIONS } from '@/config/settings'; import { PaginationKey, TABLE_SORT_DIRECTIONS } from '@/config/settings';
import type { PageActionType } from '@/config/types'; import type { PageActionType } from '@/config/types';
import useExpandedRowKeys from '@/hooks/use-expanded-row-keys'; import useExpandedRowKeys from '@/hooks/use-expanded-row-keys';
import useTableFetch from '@/hooks/use-table-fetch'; import useTableFetch from '@/hooks/use-table-fetch';
@@ -66,6 +66,7 @@ const Clusters: React.FC = () => {
handleSearch, handleSearch,
handleNameChange handleNameChange
} = useTableFetch<ListItem>({ } = useTableFetch<ListItem>({
key: PaginationKey.Clusters,
fetchAPI: queryClusterList, fetchAPI: queryClusterList,
deleteAPI: deleteCluster, deleteAPI: deleteCluster,
watch: true, watch: true,
+2 -1
View File
@@ -3,7 +3,7 @@ import DeleteModal from '@/components/delete-modal';
import IconFont from '@/components/icon-font'; import IconFont from '@/components/icon-font';
import { FilterBar } from '@/components/page-tools'; import { FilterBar } from '@/components/page-tools';
import { PageAction } from '@/config'; import { PageAction } from '@/config';
import { TABLE_SORT_DIRECTIONS } from '@/config/settings'; import { PaginationKey, TABLE_SORT_DIRECTIONS } from '@/config/settings';
import type { PageActionType } from '@/config/types'; import type { PageActionType } from '@/config/types';
import useTableFetch from '@/hooks/use-table-fetch'; import useTableFetch from '@/hooks/use-table-fetch';
import { useIntl, useNavigate } from '@umijs/max'; import { useIntl, useNavigate } from '@umijs/max';
@@ -58,6 +58,7 @@ const Credentials: React.FC = () => {
handleSearch, handleSearch,
handleNameChange handleNameChange
} = useTableFetch<ListItem>({ } = useTableFetch<ListItem>({
key: PaginationKey.Credentials,
fetchAPI: queryCredentialList, fetchAPI: queryCredentialList,
deleteAPI: deleteCredential, deleteAPI: deleteCredential,
contentForDelete: 'menu.clusterManagement.credentials' contentForDelete: 'menu.clusterManagement.credentials'
+10 -1
View File
@@ -1,6 +1,8 @@
import TableContext from '@/components/seal-table/table-context'; import TableContext from '@/components/seal-table/table-context';
import { TableOrder } from '@/components/seal-table/types'; import { TableOrder } from '@/components/seal-table/types';
import { PaginationKey } from '@/config/settings';
import useSetChunkRequest from '@/hooks/use-chunk-request'; import useSetChunkRequest from '@/hooks/use-chunk-request';
import { usePaginationStatus } from '@/hooks/use-pagination-status';
import { useTableMultiSort } from '@/hooks/use-table-sort'; import { useTableMultiSort } from '@/hooks/use-table-sort';
import useUpdateChunkedList from '@/hooks/use-update-chunk-list'; import useUpdateChunkedList from '@/hooks/use-update-chunk-list';
import { useMemoizedFn } from 'ahooks'; import { useMemoizedFn } from 'ahooks';
@@ -17,6 +19,9 @@ import TableList from './components/table-list';
import { ListItem } from './config/types'; import { ListItem } from './config/types';
const Models: React.FC<{ clusterId?: number }> = ({ clusterId }) => { const Models: React.FC<{ clusterId?: number }> = ({ clusterId }) => {
const { pagination, setPagination } = usePaginationStatus(
PaginationKey.Deployments
);
const { sortOrder, handleMultiSortChange } = useTableMultiSort(); const { sortOrder, handleMultiSortChange } = useTableMultiSort();
const { setChunkRequest, createAxiosToken } = useSetChunkRequest(); const { setChunkRequest, createAxiosToken } = useSetChunkRequest();
const { setChunkRequest: setModelInstanceChunkRequest } = const { setChunkRequest: setModelInstanceChunkRequest } =
@@ -47,7 +52,8 @@ const Models: React.FC<{ clusterId?: number }> = ({ clusterId }) => {
cluster_id: clusterId || 0, cluster_id: clusterId || 0,
categories: [], categories: [],
state: '', state: '',
sort_by: '' sort_by: '',
...pagination
}); });
const { updateChunkedList, cacheDataListRef } = useUpdateChunkedList({ const { updateChunkedList, cacheDataListRef } = useUpdateChunkedList({
@@ -177,6 +183,9 @@ const Models: React.FC<{ clusterId?: number }> = ({ clusterId }) => {
page: page, page: page,
perPage: pageSize || 10 perPage: pageSize || 10
}); });
setPagination({
perPage: pageSize || 10
});
} }
); );
+2 -1
View File
@@ -2,7 +2,7 @@ import DeleteModal from '@/components/delete-modal';
import IconFont from '@/components/icon-font'; import IconFont from '@/components/icon-font';
import { FilterBar } from '@/components/page-tools'; import { FilterBar } from '@/components/page-tools';
import { PageAction } from '@/config'; import { PageAction } from '@/config';
import { TABLE_SORT_DIRECTIONS } from '@/config/settings'; import { PaginationKey, TABLE_SORT_DIRECTIONS } from '@/config/settings';
import useTableFetch from '@/hooks/use-table-fetch'; import useTableFetch from '@/hooks/use-table-fetch';
import { useIntl } from '@umijs/max'; import { useIntl } from '@umijs/max';
import { useMemoizedFn } from 'ahooks'; import { useMemoizedFn } from 'ahooks';
@@ -37,6 +37,7 @@ const MaasProvider: React.FC = () => {
handleSearch, handleSearch,
handleNameChange handleNameChange
} = useTableFetch<ListItem>({ } = useTableFetch<ListItem>({
key: PaginationKey.Providers,
fetchAPI: queryMaasProviders, fetchAPI: queryMaasProviders,
deleteAPI: deleteProvider, deleteAPI: deleteProvider,
watch: false, watch: false,
+2 -1
View File
@@ -7,7 +7,7 @@ import SealTable from '@/components/seal-table';
import TableContext from '@/components/seal-table/table-context'; import TableContext from '@/components/seal-table/table-context';
import { TableOrder } from '@/components/seal-table/types'; import { TableOrder } from '@/components/seal-table/types';
import { PageAction } from '@/config'; import { PageAction } from '@/config';
import { TABLE_SORT_DIRECTIONS } from '@/config/settings'; import { PaginationKey, TABLE_SORT_DIRECTIONS } from '@/config/settings';
import useExpandedRowKeys from '@/hooks/use-expanded-row-keys'; import useExpandedRowKeys from '@/hooks/use-expanded-row-keys';
import useTableFetch from '@/hooks/use-table-fetch'; import useTableFetch from '@/hooks/use-table-fetch';
import useWatchList from '@/hooks/use-watch-list'; import useWatchList from '@/hooks/use-watch-list';
@@ -57,6 +57,7 @@ const ModelRoutes: React.FC = () => {
handleSearch, handleSearch,
handleNameChange handleNameChange
} = useTableFetch<ListItem>({ } = useTableFetch<ListItem>({
key: PaginationKey.Routes,
fetchAPI: queryModelRoutes, fetchAPI: queryModelRoutes,
deleteAPI: deleteModelRoute, deleteAPI: deleteModelRoute,
watch: true, watch: true,
+2 -1
View File
@@ -1,6 +1,6 @@
import IconFont from '@/components/icon-font'; import IconFont from '@/components/icon-font';
import { FilterBar } from '@/components/page-tools'; import { FilterBar } from '@/components/page-tools';
import { TABLE_SORT_DIRECTIONS } from '@/config/settings'; import { PaginationKey, TABLE_SORT_DIRECTIONS } from '@/config/settings';
import useTableFetch from '@/hooks/use-table-fetch'; import useTableFetch from '@/hooks/use-table-fetch';
import NoResult from '@/pages/_components/no-result'; import NoResult from '@/pages/_components/no-result';
import PageBox from '@/pages/_components/page-box'; import PageBox from '@/pages/_components/page-box';
@@ -28,6 +28,7 @@ const GPUList: React.FC<{ clusterId?: number; widths?: { input: number } }> = ({
handleSearch, handleSearch,
handleNameChange handleNameChange
} = useTableFetch<GPUDeviceItem>({ } = useTableFetch<GPUDeviceItem>({
key: PaginationKey.GPUs,
fetchAPI: queryGpuDevicesList, fetchAPI: queryGpuDevicesList,
polling: true, polling: true,
API: GPU_DEVICES_API, API: GPU_DEVICES_API,
@@ -3,7 +3,7 @@ import DeleteModal from '@/components/delete-modal';
import IconFont from '@/components/icon-font'; import IconFont from '@/components/icon-font';
import { FilterBar } from '@/components/page-tools'; import { FilterBar } from '@/components/page-tools';
import { PageAction } from '@/config'; import { PageAction } from '@/config';
import { TABLE_SORT_DIRECTIONS } from '@/config/settings'; import { PaginationKey, TABLE_SORT_DIRECTIONS } from '@/config/settings';
import useAppUtils from '@/hooks/use-app-utils'; import useAppUtils from '@/hooks/use-app-utils';
import useBodyScroll from '@/hooks/use-body-scroll'; import useBodyScroll from '@/hooks/use-body-scroll';
import useTableFetch from '@/hooks/use-table-fetch'; import useTableFetch from '@/hooks/use-table-fetch';
@@ -64,6 +64,7 @@ const ModelFiles = () => {
handleNameChange, handleNameChange,
handleQueryChange handleQueryChange
} = useTableFetch<ListItem>({ } = useTableFetch<ListItem>({
key: PaginationKey.ModelFiles,
fetchAPI: queryModelFilesList, fetchAPI: queryModelFilesList,
deleteAPI: deleteModelFile, deleteAPI: deleteModelFile,
API: MODEL_FILES_API, API: MODEL_FILES_API,
+2 -1
View File
@@ -2,7 +2,7 @@ import DeleteModal from '@/components/delete-modal';
import IconFont from '@/components/icon-font'; import IconFont from '@/components/icon-font';
import { FilterBar } from '@/components/page-tools'; import { FilterBar } from '@/components/page-tools';
import { PageAction } from '@/config'; import { PageAction } from '@/config';
import { TABLE_SORT_DIRECTIONS } from '@/config/settings'; import { PaginationKey, TABLE_SORT_DIRECTIONS } from '@/config/settings';
import type { PageActionType } from '@/config/types'; import type { PageActionType } from '@/config/types';
import useTableFetch from '@/hooks/use-table-fetch'; import useTableFetch from '@/hooks/use-table-fetch';
import { useIntl, useModel } from '@umijs/max'; import { useIntl, useModel } from '@umijs/max';
@@ -38,6 +38,7 @@ const Users: React.FC = () => {
handleSearch, handleSearch,
handleNameChange handleNameChange
} = useTableFetch<ListItem>({ } = useTableFetch<ListItem>({
key: PaginationKey.Users,
fetchAPI: queryUsersList, fetchAPI: queryUsersList,
deleteAPI: deleteUser, deleteAPI: deleteUser,
contentForDelete: 'users.table.user' contentForDelete: 'users.table.user'