import { Button, Image, Space, Table } from "antd"; import { useState } from "react"; import UploadButton from "~/components/UploadButton"; import OrgEquipmentSelectModal from "./OrgEquipmentSelectModal"; export default function EquipmentStep({ equipmentList = [], disabled, onAdd, onRemove, onUploadCalibration, }) { const [selectOpen, setSelectOpen] = useState(false); const [previewImage, setPreviewImage] = useState(""); const [selectedRowKeys, setSelectedRowKeys] = useState([]); const existingIds = equipmentList.map((item) => String(item.sourceEquipmentId || ""), ); const isImage = (url) => /\.(png|jpe?g|gif|bmp|webp|svg)(\?.*)?$/i.test(url || ""); const handleBatchRemove = () => { const records = selectedRowKeys .map((key) => equipmentList.find( (item) => String(item.sourceEquipmentId || item.id) === key, ), ) .filter(Boolean); if (records.length > 0) { onRemove?.(records); } }; return ( <>
申请单位装备清单 {!disabled && ( {selectedRowKeys.length > 0 && ( )} )}
String(record.sourceEquipmentId || record.id)} pagination={false} dataSource={equipmentList || []} rowSelection={ !disabled ? { selectedRowKeys, onChange: setSelectedRowKeys, } : undefined } columns={[ { title: "序号", width: 60, render: (_, __, index) => index + 1 }, { title: "装备名称", dataIndex: "deviceName", ellipsis: true }, { title: "规格型号", dataIndex: "deviceModel", ellipsis: true }, { title: "生产厂家", dataIndex: "manufacturer" }, { title: "计量检定情况", width: 180, render: (_, record) => ( {record.calibrationReportUrl ? ( ) : ( !disabled && ( onUploadCalibration?.(record, data)} buttonProps={{ children: "上传报告" }} /> ) )} ), }, { title: "操作", width: 100, render: (_, record) => !disabled && ( ), }, ]} /> setSelectOpen(false)} onConfirm={(ids, rows) => { onAdd?.(ids, rows); setSelectOpen(false); }} /> {previewImage && ( { if (!visible) setPreviewImage(""); }, }} /> )} ); }