From 74aebe57c68b78a77fd2b196e1eea3adecce5461 Mon Sep 17 00:00:00 2001 From: ybc <2483488988@qq.com> Date: Fri, 8 Aug 2025 14:27:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E4=BA=86=E6=B0=94=E6=B3=A1?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/ImageUploader.jsx | 63 ++++++++++++++++++-------------- 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/src/components/ImageUploader.jsx b/src/components/ImageUploader.jsx index c13eb92..46d82a7 100644 --- a/src/components/ImageUploader.jsx +++ b/src/components/ImageUploader.jsx @@ -1,5 +1,6 @@ import { useEffect, useState } from "react"; -import { Upload, List, Modal } from "antd"; +import { Upload, List, Popconfirm } from "antd"; + import { UploadOutlined } from "@ant-design/icons"; import { Image } from "antd"; import { fetchJSON } from "@/utils/request"; @@ -108,30 +109,18 @@ export const ImageUploader = props => { }, [key]); // 处理删除操作 - const handleDelete = file => { - Modal.confirm({ - title: '确认删除', - content: '确定要删除这张图片吗?', - okText: '确认', - cancelText: '取消', - onOk: async () => { - const success = await deleteImage(file.encrypt_key); - if (success) { - const newImages = fileList.filter(item => item.encrypt_key !== file.encrypt_key); - if (props.onChange) { - props.onChange(newImages); - } - setFileList(newImages); - console.log("删除成功"); - } else { - console.error("删除失败"); - } - }, - onCancel: () => { - // 用户点击取消,重新设置fileList以刷新Upload组件 - setFileList([...fileList]); - }, - }); + const handleDelete = async file => { + const success = await deleteImage(file.encrypt_key); + if (success) { + const newImages = fileList.filter(item => item.encrypt_key !== file.encrypt_key); + if (props.onChange) { + props.onChange(newImages); + } + setFileList(newImages); + //console.log("删除成功"); + } else { + //console.error("删除失败"); + } }; // 处理上传操作 @@ -176,9 +165,29 @@ export const ImageUploader = props => { setPreviewOpen(true); }; + const handleRemove = file => { + // 返回 false 阻止默认的删除行为,让 Popconfirm 来处理 + return false; + }; + + const itemRender = (originNode, file, fileList, actions) => { + return ( + handleDelete(file)} + onCancel={() => setFileList([...fileList])} + okText="Yes" + cancelText="No" + > + {originNode} + + ); + }; + return ( <> - +
上传图片
@@ -245,4 +254,4 @@ export const ImageViewer = props => { ); }; -export default ImageUploader; +export default ImageUploader; \ No newline at end of file