import { Form, Image, Upload } from "antd"; import { useState } from "react"; import { PlusOutlined } from "@ant-design/icons"; const isImage = (url) => /\.(png|jpe?g|gif|bmp|webp|svg)(\?.*)?$/i.test(url || ""); export default function AttachmentUpload({ name, label, disabled = false, maxCount, accept }) { const [previewImage, setPreviewImage] = useState(""); return ( <> { if (Array.isArray(value)) { return { fileList: value }; } return { fileList: value ? value.split(",").map((item) => ({ url: item, uid: item, status: "done", name: "附件", })) : [], }; }} getValueFromEvent={({ fileList }) => { return ( fileList?.map((file) => ({ url: file.response?.data?.url || file.url, uid: file.uid, status: "done", name: file.name, percent: file.percent, })) || [] ); }} > { if (isImage(file.url || file.thumbUrl)) { setPreviewImage(file.url || file.thumbUrl); } else { window.open(file.url || file.thumbUrl); } }} > { if (!visible) setPreviewImage(""); }, }} /> ); }