import React, { useState, useEffect } from 'react'; import { history, useIntl } from 'umi'; import { Button, Card, Descriptions, Divider, Spin, message, Typography, Empty } from 'antd'; import { ArrowLeftOutlined } from '@ant-design/icons'; import { getTemplateDetail } from '@/servers/api/supplierEvaluate'; import { TemplateStatusText, CategoryLimitationTypeText } from '@/dicts/supplierTemplateDict'; import EvaluateTemplateTable from '@/components/EvaluateTemplateTable'; import styles from './supplierTemplateManage.less'; const { Title } = Typography; const SupplierTemplateManageDetail: React.FC = () => { const intl = useIntl(); const [loading, setLoading] = useState(false); const [templateDetail, setTemplateDetail] = useState(null); const [templateData, setTemplateData] = useState([]); // 从路由获取ID const { id } = history.location.state as { id: string }; // 获取模板详情 const fetchTemplateDetail = async (templateId: string) => { try { setLoading(true); const res = await getTemplateDetail(templateId); if (res.success && res.data) { setTemplateDetail(res.data); // 直接设置指标数据,无需转换 if (res.data.indicatorStList && res.data.indicatorStList.length > 0) { setTemplateData(res.data.indicatorStList as SupplierTemplateManage.IndicatorSt[]); } } else { message.error( intl.formatMessage({ id: 'supplierTemplateManage.message.getDetailFailed' }) || res.message, ); } } catch (error) { console.error('获取模板详情失败:', error); message.error(intl.formatMessage({ id: 'supplierTemplateManage.message.getDetailFailed' })); } finally { setLoading(false); } }; // 首次加载获取数据 useEffect(() => { if (id) { fetchTemplateDetail(id); } else { message.error(intl.formatMessage({ id: 'supplierTemplateManage.detail.idNotExist' })); history.goBack(); } }, [id]); // 返回列表页 const handleBack = () => { history.goBack(); }; // 获取状态标签 const getStatusText = (status: string | undefined) => { if (!status) return intl.formatMessage({ id: 'supplierTemplateManage.detail.unknown' }); return ( TemplateStatusText[status as keyof typeof TemplateStatusText] || intl.formatMessage({ id: 'supplierTemplateManage.detail.unknown' }) ); }; return (
{intl.formatMessage({ id: 'supplierTemplateManage.detail.title' })}
{templateDetail ? ( <> {templateDetail.templateName} {CategoryLimitationTypeText[ templateDetail.categoryLimitation as keyof typeof CategoryLimitationTypeText ] || intl.formatMessage({ id: 'supplierTemplateManage.detail.unknown' })} {templateDetail.categoryName || intl.formatMessage({ id: 'supplierTemplateManage.detail.unknownCategory' })} {getStatusText(templateDetail.status)} {templateDetail.createTime} {templateDetail.updateTime && ( {templateDetail.updateTime} )} {templateData.length > 0 ? ( ) : ( )} ) : ( !loading && ( ) )}
); }; export default SupplierTemplateManageDetail;