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("");
},
}}
/>
)}
>
);
}