import {Button, Flex, Modal, Popconfirm, Space, Table, TableProps} from "antd"; import {DeleteOutlined, EditOutlined, PlusOutlined} from "@ant-design/icons"; import useMessage from "antd/es/message/useMessage"; import {useEffect, useRef, useState} from "react"; import {del, get} from "../../../util/AjaxUtils.ts"; import {IListPage} from "../../../interfaces/listpage/IListPage.ts"; import InvoiceInfoSave from "./InvoiceInfoSave.tsx"; import InvoiceInfoEdit from "./InvoiceInfoEdit.tsx"; type DataType = { invoiceTitle: string; invoicePhone: string; invoiceNo: string; invoiceInfoId: string; invoiceBank: string; invoiceAddress: string; invoiceAccount: string; gmtCreate: number; creator: string; } interface ListProps { handleOk: (selectedInvoice: DataType) => void; handleCancel: () => void; } export default function InvoiceInfoList(props: ListProps) { const [messageApi, messageContext] = useMessage(); const [isInvoiceInfoSaveOpen, setIsInvoiceInfoSaveOpen] = useState(false); const [isInvoiceInfoEditOpen, setIsInvoiceInfoEditOpen] = useState(false); const [page, setPage] = useState(1); const [total, setTotal] = useState(0); const [dataArray, setDataArray] = useState([]); const editInvoiceInfoId = useRef(''); const selectedInvoice = useRef(null); const columns: TableProps['columns'] = [ { title: '公司名称', dataIndex: 'invoiceTitle', align: 'center', width: 180, fixed: 'left' }, { title: '纳税人识别号', dataIndex: 'invoiceNo', align: 'center', width: 180 }, { title: '公司地址', dataIndex: 'invoiceAddress', align: 'center', width: 180 }, { title: '联系电话', dataIndex: 'invoicePhone', align: 'center', width: 180 }, { title: '开户行', dataIndex: 'invoiceBank', align: 'center', width: 180 }, { title: '开户行账号', dataIndex: 'invoiceAccount', align: 'center', width: 180 }, { title: '操作', dataIndex: 'option', align: 'center', width: 100, fixed: 'right', render: (_value, record) => { return ( { del({ messageApi, url: `/api/invoice-info/remove/${record.invoiceInfoId}`, onSuccess() { messageApi.success('删除成功'); getData(); } }) }} > ) } }, ] const getData = () => { get>({ messageApi, url: '/api/invoice-info/listpage/self', config: { params: { page: page, rows: 20 } }, onSuccess({data}) { setPage(data.page); setTotal(data.total); setDataArray(data.rows); } }) } useEffect(() => { getData(); }, [page]); return ( <>
{ selectedInvoice.current = selectedRows[0]; }, } } columns={columns} dataSource={dataArray} pagination={ { pageSize: 20, total: total, onChange: (currentPage) => { setPage(currentPage); } } } scroll={{y: 500}} bordered key="dataTable" rowKey="invoiceInfoId"/> { setIsInvoiceInfoSaveOpen(false) }} > { getData(); setIsInvoiceInfoSaveOpen(false); }} handleCancel={() => { setIsInvoiceInfoSaveOpen(false); }} /> { setIsInvoiceInfoEditOpen(false) }} > { getData(); setIsInvoiceInfoEditOpen(false); }} handleCancel={() => { setIsInvoiceInfoEditOpen(false); }} /> {messageContext} ); }