import React, { useState, useEffect } from 'react'; import { history } from 'umi'; import { Button, Card, Table, Input, message, Space, Form, Select, Typography, Tag, DatePicker } from 'antd'; import { ArrowLeftOutlined, SearchOutlined, DeleteOutlined } from '@ant-design/icons'; import { getAnnualResultReviewList } from '@/servers/api/supplierAnnual'; import styles from './supplierAnnualResult.less'; import { AnnualReviewStatusText, AnnualReviewStatusColor } from '@/dicts/supplierAnnualReviewDict'; const { Title } = Typography; const { Option } = Select; const { RangePicker } = DatePicker; // 定义审查结果状态 const resultOptions = [ { label: '合格', value: '1' }, { label: '不合格', value: '2' }, ]; const SupplierAnnualResultQuery2: React.FC = () => { const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [data, setData] = useState([]); const [pagination, setPagination] = useState({ current: 1, pageSize: 10, total: 0, showTotal: (total: number) => `共 ${total} 条记录`, showSizeChanger: true, showQuickJumper: true, }); const [searchParams, setSearchParams] = useState({}); // 从路由获取供应商ID和名称 const { supplierId, supplierName, taskId, annualTheme,annualreviewTaskId } = history.location.state as { supplierId: string; supplierName: string; taskId: string; annualTheme: string; annualreviewTaskId: string; }; // 获取供应商审查列表 const fetchList = async (params: any = {}) => { try { setLoading(true); const { current, pageSize, ...restParams } = params; const res = await getAnnualResultReviewList({ basePageRequest: { pageNo: current, pageSize, }, supplierId, // 使用userId参数传递supplierId annualreviewTaskId, ...restParams, ...searchParams, }); if (res.success) { setData(res.data?.records || []); setPagination({ ...pagination, current, pageSize, total: res.data?.total || 0, }); } else { message.error(res.message || '获取列表失败'); } } catch (error) { console.error('获取列表失败:', error); message.error('获取列表失败'); } finally { setLoading(false); } }; // 首次加载获取数据 useEffect(() => { if (supplierId) { fetchList({ current: 1, pageSize: 10 }); } else { message.error('供应商ID不存在,无法获取详情'); history.goBack(); } }, [supplierId]); // 表格变化处理 const handleTableChange = (paginationParams: any) => { fetchList({ current: paginationParams.current, pageSize: paginationParams.pageSize, }); }; // 搜索 const handleSearch = (values: any) => { const params = { ...values }; // 处理日期范围 if (params.reviewTime && params.reviewTime.length === 2) { params.startTime = params.reviewTime[0].format('YYYY-MM-DD'); params.endTime = params.reviewTime[1].format('YYYY-MM-DD'); delete params.reviewTime; } setSearchParams(params); fetchList({ current: 1, pageSize: pagination.pageSize, ...params }); }; // 重置搜索 const handleReset = () => { form.resetFields(); setSearchParams({}); fetchList({ current: 1, pageSize: pagination.pageSize }); }; // 返回列表页 const handleBack = () => { history.goBack(); }; // 查看详情 const handleViewDetail = (record: supplierAnnualResult.ReviewRecord) => { history.push({ pathname: '/supplierAnnual/supplierAnnualResultDetail', state: { id: record.id, supplierId, supplierName, taskId, annualTheme, annualreviewTaskId, }, }); }; // 获取状态标签 const getStatusTag = (status: string | undefined, statusName: string | undefined) => { if (!status) return 未知状态; const color = AnnualReviewStatusColor[status as keyof typeof AnnualReviewStatusColor] || 'default'; const text = statusName || AnnualReviewStatusText[status as keyof typeof AnnualReviewStatusText] || '未知状态'; return {text}; }; const columns = [ { title: '序号', dataIndex: 'index', key: 'index', width: 80, render: (_: any, __: any, index: number) => index + 1 + (pagination.current - 1) * pagination.pageSize, }, { title: '供应商名称', dataIndex: 'name', key: 'name', }, { title: '品类', dataIndex: 'category', key: 'category', }, { title: '审查单位', dataIndex: 'deptName', key: 'deptName', }, { title: '审查部门', dataIndex: 'reviewDept', key: 'reviewDept', }, { title: '评价人员', dataIndex: 'userName', key: 'userName', }, { title: '审查时间', dataIndex: 'reviewTime', key: 'reviewTime', render: (_: any, record: supplierAnnualResult.ReviewRecord) => ( {record.startTime} 至 {record.endTime} ), }, { title: '审查结果', dataIndex: 'reviewStatus', key: 'reviewStatus', render: (status: string, record: supplierAnnualResult.ReviewRecord) => getStatusTag(status, record.reviewStatusName), }, { title: '操作', key: 'action', width: 120, render: (text: any, record: supplierAnnualResult.ReviewRecord) => ( ), }, ]; return (
{supplierName || '供应商'} - 审查记录
); }; export default SupplierAnnualResultQuery2;