From 5aa4a814ab8d4aa194a9683ebefaefdfc6d92c3a Mon Sep 17 00:00:00 2001 From: liuwh <964324856@qq.com> Date: Tue, 17 Sep 2024 17:18:05 +0800 Subject: [PATCH] Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh into master --- gz-customerSystem/src/components/ArcoUpload/index.jsx | 134 ++++++++++++++++++++++++++++++-------------- 1 files changed, 90 insertions(+), 44 deletions(-) diff --git a/gz-customerSystem/src/components/ArcoUpload/index.jsx b/gz-customerSystem/src/components/ArcoUpload/index.jsx index 592096c..034b40c 100644 --- a/gz-customerSystem/src/components/ArcoUpload/index.jsx +++ b/gz-customerSystem/src/components/ArcoUpload/index.jsx @@ -1,3 +1,11 @@ +/* + * @Author: dminyi 1301963064@qq.com + * @Date: 2024-09-02 19:56:05 + * @LastEditors: dminyi 1301963064@qq.com + * @LastEditTime: 2024-09-03 11:34:07 + * @FilePath: \gzDyh\gz-customerSystem\src\components\ArcoUpload\index.jsx + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ import React, { useEffect, useState } from 'react' import { Upload, Form } from '@arco-design/web-react'; import { @@ -14,61 +22,99 @@ * handleChangeFile, // 文件上传成功之后的回调 * label *, // form的label名 * editData *, // 编辑回显数据 + * handleDelFile *,//删除文件接口 + * ownerType,//用于回显文件 + * formItemParams, formItem的参数 */ export default function ArcoUpload(props) { const [myFileList, setMyFileList] = useState([]) + + const handleFileListChange = (fileList) => { + if (props.onFileListChange) { + props.onFileListChange(fileList); + } + }; + useEffect(() => { - if(props.editData) { - console.log(props.editData[props.field]); - setMyFileList(props.editData[props.field]) + if (props.editData) { + if(props.editData[props.field]) { + //新增的时候有file数据,可以这样子回显 + setMyFileList(props.editData[props.field]) + } else { + //编辑的时候,文件统一放在filInfoList了,需要设置ownerType获取到该材料文件回显 + const fileInfoList = props.editData.fileInfoList + if(fileInfoList && fileInfoList.length != 0) { + let file = []; + fileInfoList.forEach(item => { + if(item.ownerType == props.ownerType) { + file.push(item.fileList[0]) + } + }) + setMyFileList(file) + } + } } }, [props.editData]) return ( - <FormItem - label={props.label} - field={props.field} - triggerPropName='fileList' - > - <Upload - drag - multiple - accept='.png,.jpg,.pdf' - onDrop={(e) => { - }} - tip='支持png、jpg、pdf格式的图片上传,每次上传大小不超过10M' - showUploadList={{ - fileIcon: <IconAttachment style={{ color: '#1D2129' }} />, - }} - headers={{ Authorization: $$.getSessionStorage('customerSystemToken') }} - onChange={(fileList, file) => { - console.log(fileList, myFileList, file); - const { status, response } = file - //因为字节upLoad组件有bug,不能区分添加文件还是删除文件,所以用这种办法来判断是不是删除 - const isDel = myFileList && myFileList.length > fileList.length - //上传失败 - if (status === 'error' && !isDel) { - $$.info({ type: 'error', content: '抱歉,网络错误附件上传失败,请稍后重试' }); - } - //上传成功 - if (status === 'done' && !isDel) { - if (response.code === 0 || response.code === '0') { - // 返回附件成功上传的回调 - $$.infoSuccess({ content: response.msg }); - if (props.handleChangeFile) { - props.handleChangeFile(response); + <> + <FormItem + label={props.label} + field={props.field} + triggerPropName='fileList' + {...props.formItemParams} + > + <Upload + drag + multiple + accept='.png,.jpg,.pdf' + onDrop={(e) => { + }} + tip='支持png、jpg、pdf格式的图片上传,每次上传大小不超过10M' + showUploadList={{ + fileIcon: <IconAttachment style={{ color: '#1D2129' }} />, + }} + headers={{ Authorization: $$.getSessionStorage('customerSystemToken') }} + onChange={(fileList, file) => { + const { status, response, uid } = file + console.log(fileList, file); + //因为字节upLoad组件有bug,不能区分添加文件还是删除文件,所以用这种办法来判断是不是删除 + const isDel = myFileList && myFileList.length > fileList.length + //上传失败 + if (status === 'error' && !isDel) { + $$.info({ type: 'error', content: '抱歉,网络错误附件上传失败,请稍后重试' }); + } + //上传成功 + if (status === 'done' && !isDel) { + if (response.code === 0 || response.code === '0') { + // 返回附件成功上传的回调 + $$.infoSuccess({ content: response.msg }); + if (props.handleChangeFile) { + props.handleChangeFile(response); + } } } - } - //删除文件 - if (isDel) { + //删除文件 + if (isDel && props.handleDelFile) { + if(response) { + //删除的是新提交的 + props.handleDelFile(response.data[0].id) + } else { + //删除的是回显的文件 + props.handleDelFile(uid) + } + + } + handleFileListChange(fileList); + setMyFileList(fileList) + + }} + {...props.params}//自定义 + /> + </FormItem> - } - setMyFileList(fileList) - }} - {...props.params}//自定义 - /> - </FormItem> + </> + ) } -- Gitblit v1.8.0