Procházet zdrojové kódy

修复分页问题

李富豪 před 4 měsíci
rodič
revize
6196039f4b
1 změnil soubory, kde provedl 24 přidání a 26 odebrání
  1. 24 26
      src/pages/takai/knowledgeLib/slice/index.tsx

+ 24 - 26
src/pages/takai/knowledgeLib/slice/index.tsx

@@ -8,8 +8,16 @@ import { PaginationConfig } from 'antd/es/pagination';
 import router from '@/router';
 import './style.less';
 import LocalStorage from '@/LocalStorage';
+import { makeAutoObservable } from 'mobx';
 
 const FormItem = Form.Item;
+
+const page = makeAutoObservable({
+    pageNum: 1,
+    pageSize: 10,
+    total: 0,
+});
+
 const SliceList: React.FC = () => {
 
     const [form] = Form.useForm();
@@ -23,20 +31,10 @@ const SliceList: React.FC = () => {
         slice_char_len: number,
     };
 
-    interface PageInfo {
-        pageNum: number,
-        pageSize: number,
-        total: number,
-    };
-
     const location = useLocation();
     const [listLoading, setListLoading] = React.useState(false);
     const [list, setList] = React.useState<Item[]>([]);
-    const [page, setPage] = React.useState<PageInfo>({
-        pageNum: 1,
-        pageSize: 10,
-        total: 0,
-    });
+
 
     const [createFlag, setCreateFlag] = React.useState<boolean>();
     const [deleteFlag, setDeleteFlag] = React.useState<boolean>();
@@ -63,11 +61,7 @@ const SliceList: React.FC = () => {
                     }
                 });
                 setList(list);
-                setPage({
-                    pageNum: page.pageNum,
-                    pageSize: page.pageSize,
-                    total: res.total,
-                });
+                page.total = res.total;
             } catch (error) {
                 console.error(error);
             } finally {
@@ -102,14 +96,16 @@ const SliceList: React.FC = () => {
 
     const init = async () => {
         if (location.state) {
-            const { text, page } = location.state;
+            const { text, page: currentPage } = location.state;
             if (text) {
                 form.setFieldsValue({
                     text: text,
                 });
             }
-            if (page && page.pageNum && page.pageSize) {
-                setPage(page);
+            if (currentPage && currentPage.pageNum && currentPage.pageSize) {
+                page.pageNum = currentPage.pageNum;
+                page.pageSize = currentPage.pageSize;
+                page.total = currentPage.total;
             }
         }
 
@@ -130,6 +126,11 @@ const SliceList: React.FC = () => {
         setUpdateFlag(tFlag);
         const lFlag = LocalStorage.getStatusFlag('deepseek:slice:list');
         setListFlag(lFlag);
+        return () => {
+            page.pageNum = 1;
+            page.pageSize = 10;
+            page.total = 0;
+        };
     }, [])
 
     const paginationConfig: PaginationConfig = {
@@ -147,11 +148,8 @@ const SliceList: React.FC = () => {
         pageSize: page.pageSize,
         total: page.total,
         onChange: async (pageNum, pageSize) => {
-            setPage({
-                pageNum: pageNum,
-                pageSize: pageSize,
-                total: page.total,
-            });
+            page.pageNum = pageNum;
+            page.pageSize = pageSize;
             const values = form.getFieldsValue();
             const searchText = values.text ? values.text : '';
             await appApi.fetchList({ searchText: searchText });
@@ -194,7 +192,7 @@ const SliceList: React.FC = () => {
                                         sliceId: 'new',
                                     });
                                     const { text } = form.getFieldsValue();
-                                    router.navigate({ pathname: path }, { state: { text: text, page } });
+                                    router.navigate({ pathname: path }, { state: { text: text, page: { pageNum: page.pageNum, pageSize: page.pageSize, total: page.total } } });
                                 }}>
                                 新增切片
                             </Button>
@@ -254,7 +252,7 @@ const SliceList: React.FC = () => {
                                                                     sliceId: item.slice_id,
                                                                 });
                                                                 const { text } = form.getFieldsValue();
-                                                                router.navigate({ pathname: path }, { state: { text: text, page } });
+                                                                router.navigate({ pathname: path }, { state: { text: text, page: { pageNum: page.pageNum, pageSize: page.pageSize, total: page.total } } });
                                                             }}>
                                                             <SettingOutlined /> 编辑
                                                         </a>