import { Button, FormInstance, Modal, Pagination, PaginationProps, Popconfirm, PopconfirmProps, Space, Table, } from "antd"; import { useState } from "react"; import SimpleForm from "./form/simple_form"; import React from "react"; const BTable = (props: any) => { const { store, dataSource, selectCallback, scroll, actionCloumn, onSizeChange, onPageChange, config, btnText, } = props; const [selectedRowKeys, setSelectedRowKeys] = useState([]); const formRef = React.useRef(null); const [record, setRecord] = useState(null); const [isModalOpen, setIsModalOpen] = useState(false); const onSelectChange = (newSelectedRowKeys: React.Key[]) => { setSelectedRowKeys(newSelectedRowKeys); selectCallback(newSelectedRowKeys); }; const rowSelection = { selectedRowKeys, onChange: onSelectChange, }; const onShowSizeChange = (current, pageSize) => { if (onSizeChange) { onSizeChange(current, pageSize); } else { store.setPages({ Offset: current, Size: pageSize, }); } }; const onChange: PaginationProps["onChange"] = (page) => { if (onPageChange) { onPageChange(page); } else { store.setPages({ Offset: page, Size: 20, }); } }; const cancel: PopconfirmProps["onCancel"] = (e) => { }; const actionDefultColumn = { title: "操作", fixed: "right", with: 200, render: (any, record) => ( {actionCloumn ? actionCloumn(record) : null} { store.deleteItem(record.identity); }} onCancel={cancel} okText="Yes" cancelText="No" > ), }; const addHandler = () => { setRecord(null); setIsModalOpen(true); }; return (
formRef.current?.resetFields()} onOk={() => formRef.current?.submit()} okText="确定" cancelText="取消" onCancel={() => { setIsModalOpen(false); }} > { console.log(record) if (!record) { store.add(formRef.current?.getFieldsValue()).then((res) => { if (res) { setIsModalOpen(false); } }); return } store.putItem(record.identity, formRef.current?.getFieldsValue()).then((res) => { if (res) { setIsModalOpen(false); } }); }} createCallback={() => { formRef.current?.setFieldsValue(record); }} formDatas={config} > ); }; export default BTable;