From 41d0401952493f04386bd7f2b8040e10cae3581d Mon Sep 17 00:00:00 2001 From: powersir <1576775122@qq.com> Date: Wed, 25 Oct 2023 17:54:49 +0800 Subject: [PATCH] update:function of template dict-detial pagination --- .../custom/template/dict/dict-detail.tsx | 49 +++++++++++++------ 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/src/pages/custom/template/dict/dict-detail.tsx b/src/pages/custom/template/dict/dict-detail.tsx index 5ef560d..da2e2c3 100644 --- a/src/pages/custom/template/dict/dict-detail.tsx +++ b/src/pages/custom/template/dict/dict-detail.tsx @@ -1,12 +1,12 @@ -import React, { useState, useRef, useEffect, forwardRef, useImperativeHandle } from 'react'; -import { Space, Table, Button, Image, Divider, Card, Input } from 'antd'; -import type { InputRef } from 'antd'; -import type { ColumnsType } from 'antd/es/table'; +import React, { useState, useEffect, forwardRef, useImperativeHandle } from 'react'; +import { Space, Table, Button, Divider, Card } from 'antd'; +import type { ColumnsType, TableProps } from 'antd/es/table'; +import { useSetState } from 'ahooks'; import { t } from '@/utils/i18n'; -import { PlusOutlined, ExclamationCircleFilled, DeleteOutlined, SearchOutlined } from '@ant-design/icons'; +import { PlusOutlined, ExclamationCircleFilled } from '@ant-design/icons'; import { antdUtils } from '@/utils/antd'; import { useRequest } from '@/hooks/use-request'; -import { DataDictVO, DataDictDetailVO } from '@/models'; +import { DataDictVO, DataDictDetailVO, DataDictDetaiPageReqVO } from '@/models'; import DictDetailEditor from './dict-detail-editor'; import templateDictDetailService from '@/request/service/template-dict-detail'; @@ -14,10 +14,16 @@ export interface DictDetailRef { updateDictData: (dictData: DataDictVO) => void; } +const defaultPage = { + pageNo: 1, + pageSize: 10 +}; + export default forwardRef((props, ref) => { const [dict, setDict] = useState(); - const [dictDetail, setDictDetail] = useState(); + const [dataSource, setDataSource] = useState(); + const [searchState, setSearchState] = useSetState(defaultPage); const [total, setTotal] = useState(0); const [detailEditorVisable, seEdtailEditorVisable] = useState(false); @@ -29,14 +35,14 @@ export default forwardRef((props, ref) => { useImperativeHandle(ref, () => ({ updateDictData: (dictData: DataDictVO) => { setDict(dictData); + setSearchState({...defaultPage, dictId: dictData.id}); }, })); const load = async () => { - //TODO: setup pagenation - const [error, { data }] = await getPageApi({ dictId: dict?.id }); + const [error, { data }] = await getPageApi(searchState); if (!error) { - setDictDetail(data.list); + setDataSource(data.list); setTotal(data.total); } } @@ -45,7 +51,7 @@ export default forwardRef((props, ref) => { if (dict) { load(); } - }, [dict]); + }, [searchState]); const showDeleteConfirm = (item: DataDictDetailVO) => { antdUtils.modal?.confirm({ @@ -117,6 +123,15 @@ export default forwardRef((props, ref) => { }, ]; + const onChange: TableProps['onChange'] = (pagination, filters, sorter, extra) => { + const state: DataDictDetaiPageReqVO = { + pageNo: pagination.current, + pageSize: pagination.pageSize, + dictId: dict?.id + } + setSearchState(state); + }; + return ( <>
@@ -126,7 +141,7 @@ export default forwardRef((props, ref) => { }}>
- {dict? 所属字典: {dict?.name} : null} + {dict ? 所属字典: {dict?.name} : null}
-