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 | 132 +++++++++++++++++++++++++++++--------------
1 files changed, 89 insertions(+), 43 deletions(-)
diff --git a/gz-customerSystem/src/components/ArcoUpload/index.jsx b/gz-customerSystem/src/components/ArcoUpload/index.jsx
index 61f5fd4..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 {
@@ -15,60 +23,98 @@
* 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[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) => {
- 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 && props.handleDelFile) {
- props.handleDelFile(response.data[0].id)
- }
- setMyFileList(fileList)
- }}
- {...props.params}//自定义
- />
- </FormItem>
+ //删除文件
+ if (isDel && props.handleDelFile) {
+ if(response) {
+ //删除的是新提交的
+ props.handleDelFile(response.data[0].id)
+ } else {
+ //删除的是回显的文件
+ props.handleDelFile(uid)
+ }
+
+ }
+ handleFileListChange(fileList);
+ setMyFileList(fileList)
+
+ }}
+ {...props.params}//自定义
+ />
+ </FormItem>
+
+ </>
+
)
}
--
Gitblit v1.8.0