safety-eval-service-frontend/src/pages/Container/QualApplication/FilingForm/components/MaterialStep.jsx

75 lines
2.2 KiB
React
Raw Normal View History

2026-06-30 17:32:29 +08:00
import { Button, Space, Table, Tag } from "antd";
import { useState } from "react";
import { resolveUploadFileId } from "~/utils/mockUpload";
import FilePreviewModal from "~/components/FilePreviewModal";
export default function MaterialStep({
materials = [],
disabled,
onUpload,
loading,
}) {
const [preview, setPreview] = useState(null);
2026-07-01 15:21:13 +08:00
console.log(disabled)
2026-06-30 17:32:29 +08:00
return (
<>
<Table
size="small"
loading={loading}
rowKey="id"
pagination={false}
scroll={{ x: 900 }}
dataSource={materials}
columns={[
{ title: "序号", dataIndex: "sortOrder", width: 60 },
{ title: "内容", dataIndex: "materialContent", width: 200, ellipsis: true },
{ title: "上传附件", dataIndex: "attachmentDesc", width: 100 },
{
title: "格式",
dataIndex: "materialFormat",
width: 70,
render: (val) => (val ? <Tag>{val}</Tag> : "-"),
},
{
title: "状态",
dataIndex: "uploadStatusName",
width: 90,
render: (val, record) => (
<Tag color={record.uploadStatusCode === 2 ? "success" : "warning"}>{val || "待上传"}</Tag>
),
},
{
title: "操作",
width: 120,
render: (_, record) => (
<Space size="small">
{record.attachmentUrl ? (
<Button type="link" size="small" onClick={() => setPreview(record)}>预览</Button>
) : (
!disabled && (
<Button
type="link"
size="small"
onClick={() => onUpload?.(record, resolveUploadFileId([]))}
>
上传
</Button>
)
)}
</Space>
),
},
{ title: "注释", dataIndex: "materialRemark", ellipsis: true },
]}
/>
<FilePreviewModal
open={!!preview}
title="材料预览"
fileName={preview?.materialContent}
url={preview?.attachmentUrl}
onCancel={() => setPreview(null)}
/>
</>
);
}