diff --git a/src/hooks/useTableRequest.ts b/src/hooks/useTableRequest.ts index acb4db84..de353ff2 100644 --- a/src/hooks/useTableRequest.ts +++ b/src/hooks/useTableRequest.ts @@ -35,9 +35,9 @@ export function useTableRequest

({ return result; }; - const handleRemove = async (id: string) => { + const handleRemove = async (id: string | number | (string | number)[]) => { if (!remove) return; - const result = await remove({ id }); + const result = await remove(id); refresh(); return result; }; diff --git a/src/pages/TableList/index.tsx b/src/pages/TableList/index.tsx index e2f10474..860bb59f 100644 --- a/src/pages/TableList/index.tsx +++ b/src/pages/TableList/index.tsx @@ -95,27 +95,25 @@ const handleRemove = async (selectedRows: API.RuleListItem[]) => { }; const TableList: React.FC = () => { - /** - * @en-US Pop-up window of new window - * @zh-CN 新建窗口的弹窗 - * */ - const [createModalOpen, handleModalOpen] = useState(false); - /** - * @en-US The pop-up window of the distribution update window - * @zh-CN 分布更新窗口的弹窗 - * */ - const [updateModalOpen, handleUpdateModalOpen] = useState(false); - - const [showDetail, setShowDetail] = useState(false); + // 表格数据与增删改查 + const { data, loading, refresh, handleAdd, handleUpdate, handleRemove } = + useTableRequest({ + query: (params) => rule(params || {}), + add: addRule, + update: updateRule, + remove: (params) => + removeRule({ key: Array.isArray(params) ? params : [params] }), + }); - const actionRef = useRef(null); - const [currentRow, setCurrentRow] = useState(); + // 新建弹窗 + const createModal = useModalForm(); + // 编辑弹窗 + const updateModal = useModalForm(); + // 详情抽屉 + const [showDetail, setShowDetail] = useState(false); + // 选中行 const [selectedRowsState, setSelectedRows] = useState([]); - - /** - * @en-US International configuration - * @zh-CN 国际化配置 - * */ + const actionRef = useRef(null); const intl = useIntl(); const columns: ProColumns[] = [ @@ -131,7 +129,7 @@ const TableList: React.FC = () => { return ( { - setCurrentRow(entity); + updateModal.setCurrent(entity); setShowDetail(true); }} > @@ -256,8 +254,8 @@ const TableList: React.FC = () => { { - handleUpdateModalOpen(true); - setCurrentRow(record); + updateModal.show(); + updateModal.setCurrent(record); }} > { })} actionRef={actionRef} rowKey="key" - search={{ - labelWidth: 120, - }} + search={{ labelWidth: 120 }} toolBarRender={() => [ , ]} - request={rule} + dataSource={data?.data || []} + loading={loading} columns={columns} rowSelection={{ - onChange: (_, selectedRows) => { - setSelectedRows(selectedRows); - }, + onChange: (_, selectedRows) => setSelectedRows(selectedRows), }} + pagination={data?.total ? { total: data.total } : undefined} + onChange={() => refresh()} /> {selectedRowsState?.length > 0 && ( { >