Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
H5Public
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
CI / CD
CI / CD
流水线
作业
日程
统计图
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
前端开发小组
H5Public
Commits
ee72e570
提交
ee72e570
authored
12月 19, 2024
作者:
钟是志
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
任务回填-上传材料开发
上级
bdd74c88
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
121 行增加
和
0 行删除
+121
-0
DiyUploadOneStopFile.js
baseComponents/FormArray/DiyUploadOneStopFile.js
+87
-0
index.js
baseComponents/FormArray/index.js
+11
-0
styles.less
baseComponents/FormArray/styles.less
+23
-0
没有找到文件。
baseComponents/FormArray/DiyUploadOneStopFile.js
0 → 100644
浏览文件 @
ee72e570
import
React
,
{
useRef
,
useState
,
useEffect
}
from
'react'
;
import
{
List
,
Switch
,
Button
,
Toast
,
Icon
}
from
'antd-mobile'
;
import
styles
from
'./styles.less'
;
import
{
uploadOnestopFile
}
from
'@/H5Public/baseComponents/UploadFile/api'
;
const
Brief
=
List
.
Item
.
Brief
;
export
default
function
DiyUploadOneStopFile
(
props
)
{
const
{
config
,
formValue
=
[],
giveRequiredName
,
changeValue
}
=
props
;
const
[
files
,
setFiles
]
=
useState
([]);
const
inputRef
=
useRef
(
null
);
const
uploadImage
=
()
=>
{
Toast
.
loading
(
'文件上传中'
,
1
);
const
domF
=
inputRef
.
current
.
files
;
if
(
!
domF
.
length
)
{
return
false
;
}
const
file
=
domF
[
domF
.
length
-
1
];
uploadOnestopFile
(
file
).
then
((
res
)
=>
{
if
(
res
)
{
console
.
log
(
res
);
}
Toast
.
hide
();
if
(
res
&&
typeof
res
===
'string'
)
{
Toast
.
success
(
'上传成功!'
,
1
);
setFiles
([
...
files
,
{
name
:
file
.
name
,
fileExt
:
file
.
name
.
split
(
'.'
).
pop
(),
path
:
res
,
},
]);
}
});
};
useEffect
(()
=>
{
changeValue
(
files
,
config
.
key
);
},
[
files
]);
const
deleteItem
=
(
data
)
=>
{
setFiles
((
files
)
=>
{
return
files
.
filter
((
item
)
=>
{
return
item
.
path
!==
data
.
path
;
});
});
};
return
(
<
List
.
Item
multipleLine
=
{
true
}
key
=
{
config
.
key
}
className
=
{
styles
.
diyStyle
}
>
{
giveRequiredName
(
config
)}
<
Brief
>
支持格式:
xls
、
xlsx
、
wps
、
rar
、
zip
、
doc
、
docx
、
pdf
、
png
、
jpg
、
jpeg
<
div
className
=
{
styles
.
uploadButton
}
>
<
input
type
=
"file"
// accept={'*'}
id
=
{
config
.
key
}
ref
=
{
inputRef
}
style
=
{{
opacity
:
0
,
width
:
'100vw'
,
height
:
'50px'
,
position
:
'absolute'
,
zIndex
:
2
,
}}
onChange
=
{
uploadImage
}
/
>
<
Button
type
=
{
'primary'
}
>
上传文件
<
/Button
>
<
/div
>
<
div
className
=
{
styles
.
fileList
}
>
{
files
.
map
((
g
)
=>
{
return
<
div
key
=
{
g
.
path
}
className
=
{
styles
.
fileItem
}
>
<
a
>
{
g
.
name
}
<
/a><Icon type={'cross-circle'} onClick={deleteItem.bind
(
this, g
)
} /
>
<
/div>
;
})
}
<
/div
>
<
/Brief
>
<
/List.Item
>
);
}
baseComponents/FormArray/index.js
浏览文件 @
ee72e570
...
@@ -16,6 +16,7 @@ import FieldList from '@/H5Public/baseComponents/FieldList';
...
@@ -16,6 +16,7 @@ import FieldList from '@/H5Public/baseComponents/FieldList';
import
TextareaItemMultiRows
from
'../TextareaItemMultiRows'
;
import
TextareaItemMultiRows
from
'../TextareaItemMultiRows'
;
import
{
useState
}
from
'react'
;
import
{
useState
}
from
'react'
;
import
DiyUploadOneStopFile
from
'@/H5Public/baseComponents/FormArray/DiyUploadOneStopFile'
;
const
DiyInput
=
props
=>
{
const
DiyInput
=
props
=>
{
let
{
config
,
formValue
,
changeValue
,
otherProps
}
=
props
;
let
{
config
,
formValue
,
changeValue
,
otherProps
}
=
props
;
...
@@ -309,6 +310,16 @@ class FormArray extends Component {
...
@@ -309,6 +310,16 @@ class FormArray extends Component {
changeValue
=
{
this
.
changeValue
}
changeValue
=
{
this
.
changeValue
}
/
>
/
>
);
);
case
'UploadOneStopFile'
:
return
(
<
DiyUploadOneStopFile
key
=
{
x
.
key
}
config
=
{
x
}
formValue
=
{
formValues
}
changeValue
=
{
this
.
changeValue
}
giveRequiredName
=
{
giveRequiredName
}
/
>
)
case
'Components'
:
case
'Components'
:
return
x
.
render
(
formValues
[
x
.
key
],
this
.
changeValue
,
x
.
key
);
return
x
.
render
(
formValues
[
x
.
key
],
this
.
changeValue
,
x
.
key
);
default
:
default
:
...
...
baseComponents/FormArray/styles.less
0 → 100644
浏览文件 @
ee72e570
.diyStyle{
:global{
.am-list-brief{
white-space: pre-wrap !important;
padding: 0 10px;
}
}
.uploadButton{
margin-top: 10px;
}
}
.fileList{
margin-top: 20px;
font-size: 16px;
.fileItem{
display: grid;
grid-template-columns: auto 1fr;
align-items: center;
justify-items: end;
margin-bottom: 10px;
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论