import React, { useRef, useEffect, useState } from 'react'; import { Table, Form, Input, Button, Row, Col, DatePicker, Tabs, Space, message } from 'antd'; import { SearchOutlined, ReloadOutlined, PlusOutlined } from '@ant-design/icons'; import { getPageAgent } from './services'; import type { ColumnsType } from 'antd/es/table'; import SupplierViewModal from './components/SupplierViewModal'; const { RangePicker } = DatePicker; const { TabPane } = Tabs; interface Columns { name: string; enterpriseType: string; deptId: string; createTime: string; id: string; } const SupplierRegisterAgent: React.FC = () => { const [form] = Form.useForm(); const [data, setData] = useState([]); const [loading, setLoading] = useState(false); const [pagination, setPagination] = useState({ current: 1, pageSize: 10, total: 0 }); const [tabKey, setTabKey] = useState('dvs'); //查看是否显示状态 const [viewVisible, setViewVisible] = useState(false); //查看 参数传递 const [currentRecord, setCurrentRecord] = useState(''); // 查询数据 const fetchData = async (page = 1, pageSize = 10) => { setLoading(true); // 获取表单参数 const { keyword, dateRange } = form.getFieldsValue(); let params: any = { pageNo: page, pageSize, supplierType: tabKey , }; if (keyword) params.keyword = keyword; if (dateRange && dateRange.length === 2) { params.startDate = dateRange[0].format('YYYY-MM-DD'); params.endDate = dateRange[1].format('YYYY-MM-DD'); } try { const res = await getPageAgent(params); if (res.code === 200 && res.data) { setData(res.data.records || []); setPagination({ current: res.data.current || page, pageSize: res.data.size || pageSize, total: res.data.total || 0, }); } else { setData([]); setPagination({ current: 1, pageSize: 10, total: 0 }); } } finally { setLoading(false); } }; // 首次&依赖刷新 useEffect(() => { fetchData(1, pagination.pageSize); // eslint-disable-next-line }, [tabKey]); // 查询 const handleSearch = () => { fetchData(1, pagination.pageSize); }; // 重置 const handleReset = () => { form.resetFields(); fetchData(1, pagination.pageSize); }; // 切页 const handleTableChange = (pag: any) => { fetchData(pag.current, pag.pageSize); }; // 列 const columns: ColumnsType = [ { title: '序号', dataIndex: 'index', align: 'center', width: 80, render: (_: any, __: any, idx: number) => ((pagination.current - 1) * pagination.pageSize) + idx + 1, }, { title: '供应商名称', dataIndex: 'name', align: 'center', ellipsis: true, }, { title: '供应商类型', dataIndex: 'enterpriseType', align: 'center', }, { title: '创建单位', dataIndex: 'unit', align: 'center', ellipsis: true, }, { title: '创建部门', dataIndex: 'deptId', align: 'center', }, { title: '创建时间', dataIndex: 'createTime', align: 'center', // sorter 由接口决定是否支持 }, { title: '操作', align: 'center', render: (_: any, record: any) => ( { setCurrentRecord(record.id); setViewVisible(true); }}>查看 message.info(`编辑:${record.name}`)}>编辑 ), }, ]; return (
{/* 查询区 */}
{/* 表格 */} handleTableChange({ current, pageSize }), }} /> {/* 查看组件 */} setViewVisible(false)} /> ); }; export default SupplierRegisterAgent;