Files
fe_supplier_frontend/src/pages/supplier/admission/admissionManagement/components/ResultModal.tsx

204 lines
5.0 KiB
TypeScript
Raw Normal View History

2025-06-24 10:52:30 +08:00
import React from 'react';
import { Modal, Table, Tag, Typography, Button } from 'antd';
const { Link } = Typography;
const dataSource = [
{
key: '1',
item: '供应商信息登记表',
companyA_zhangsan: '合格',
companyA_lisi: '合格',
companyB_zhangsan: '合格',
companyB_lisi: '合格',
},
{
key: '2',
item: '供应商反商业贿赂承诺书',
companyA_zhangsan: '合格',
companyA_lisi: '合格',
companyB_zhangsan: '合格',
companyB_lisi: '合格',
},
{
key: '3',
item: '供应商社会准则符合性自审问卷',
companyA_zhangsan: '合格',
companyA_lisi: '合格',
companyB_zhangsan: '合格',
companyB_lisi: '合格',
},
{
key: '4',
item: '是否为禁止使用供应商',
companyA_zhangsan: '合格',
companyA_lisi: '合格',
companyB_zhangsan: '合格',
companyB_lisi: '合格',
},
{
key: '5',
item: '3年内经营活动中没有重大违法记录的书面声明',
companyA_zhangsan: '合格',
companyA_lisi: '合格',
companyB_zhangsan: '合格',
companyB_lisi: '合格',
},
{
key: '6',
item: '企业存续状态审核(营业执照等)',
companyA_zhangsan: '合格',
companyA_lisi: '合格',
companyB_zhangsan: '合格',
companyB_lisi: '不合格',
companyB_lisiRemark: '查看备注',
},
{
key: '7',
item: '行业资质、认证情况(按需)',
companyA_zhangsan: '合格',
companyA_lisi: '合格',
companyB_zhangsan: '合格',
companyB_lisi: '合格',
},
{
key: '8',
item: '现场考察、产品试用情况(按需)',
companyA_zhangsan: '合格',
companyA_zhangsanRemark: '查看备注',
companyA_lisi: '合格',
companyA_lisiRemark: '查看备注',
companyB_zhangsan: '合格',
companyB_zhangsanRemark: '查看备注',
companyB_lisi: '合格',
companyB_lisiRemark: '查看备注',
},
];
const columns = [
{
title: '序号',
dataIndex: 'key',
width: 60,
},
{
title: '评审项',
dataIndex: 'item',
width: 260,
},
{
title: (
<div>
<div></div>
</div>
),
children: [
{
title: '张三',
dataIndex: 'companyA_zhangsan',
width: 100,
render: (text: string, record: any) => renderStatus(text, record.companyA_zhangsanRemark),
},
{
title: '李四',
dataIndex: 'companyA_lisi',
width: 100,
render: (text: string, record: any) => renderStatus(text, record.companyA_lisiRemark),
},
],
},
{
title: (
<div>
<div>广</div>
</div>
),
children: [
{
title: '张三',
dataIndex: 'companyB_zhangsan',
width: 100,
render: (text: string, record: any) => renderStatus(text, record.companyB_zhangsanRemark),
},
{
title: '李四',
dataIndex: 'companyB_lisi',
width: 100,
render: (text: string, record: any) => renderStatus(text, record.companyB_lisiRemark),
},
],
},
];
function renderStatus(text: string, remark?: string) {
const color = text === '合格' ? 'green' : text === '不合格' ? 'red' : undefined;
return (
<div>
<Tag color={color} style={{ marginRight: 6 }}>
{text}
</Tag>
{remark && (
<Link style={{ fontSize: 12 }} onClick={() => alert('备注内容')}>
{remark}
</Link>
)}
</div>
);
}
const ResultModal: React.FC<{
visible: boolean;
record?: any;
onCancel: () => void;
}> = ({ visible, onCancel }) => {
return (
<Modal
title="评审结果"
visible={visible}
onCancel={onCancel}
footer={null}
width={1000}
bodyStyle={{ maxHeight: '60vh', overflowY: 'auto' }}
centered
>
<Table
dataSource={dataSource}
columns={columns}
pagination={false}
bordered
scroll={{ x: 900 }}
summary={() => {
// 汇总结果示例,模拟图片底部汇总
return (
<Table.Summary.Row>
<Table.Summary.Cell index={0} colSpan={2} align="right">
</Table.Summary.Cell>
<Table.Summary.Cell index={2} align="center" colSpan={2}>
<Tag color="green"></Tag>
</Table.Summary.Cell>
<Table.Summary.Cell index={4} align="center" colSpan={2}>
<Tag color="red"></Tag>
</Table.Summary.Cell>
</Table.Summary.Row>
);
}}
/>
<div style={{ textAlign: 'right' }}>
<Button type="primary" >
</Button>
<Button type="primary" >
</Button>
<Button onClick={onCancel} style={{ marginRight: 8 }}>
</Button>
</div>
</Modal>
);
};
export default ResultModal;