Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
merchant-manage-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ui
merchant-manage-ui
Commits
5e272f2d
Commit
5e272f2d
authored
Nov 24, 2022
by
武广
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 添加判断图片大小
parent
74f69c4f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
82 additions
and
18 deletions
+82
-18
FormRuleVPictures.jsx
src/pages/ServiceGoods/components/FormRuleVPictures.jsx
+5
-0
UploadImage.jsx
src/pages/ServiceGoods/components/UploadImage.jsx
+77
-18
No files found.
src/pages/ServiceGoods/components/FormRuleVPictures.jsx
View file @
5e272f2d
...
...
@@ -159,6 +159,9 @@ const FormRuleVPictures = forwardRef((props, ref) => {
>
<
UploadImage
multiple=
{
false
}
maxWidth=
{
customer
.
isCard
?
0
:
1200
}
maxHeight=
{
customer
.
isCard
?
0
:
1200
}
superTips=
"公共滑动图尺寸不可大于 1200*1200"
name=
"commonImageList"
disabled=
{
customer
.
isEdit
&&
!
customer
.
isCard
}
limit=
{
imgConfig
.
commonImageList
.
limit
}
...
...
@@ -232,6 +235,8 @@ const FormRuleVPictures = forwardRef((props, ref) => {
>
<
UploadImage
limit=
{
imgConfig
.
detailImageList
.
limit
}
maxWidth=
{
customer
.
isCard
?
0
:
800
}
superTips=
"详情图宽度不可大于800"
name=
"detailImageList"
disabled=
{
customer
.
isEdit
&&
!
customer
.
isCard
}
pictures=
{
detailImageList
}
...
...
src/pages/ServiceGoods/components/UploadImage.jsx
View file @
5e272f2d
...
...
@@ -72,26 +72,83 @@ const UploadImage = forwardRef((props, ref) => {
const
freshFiles
=
fileList
?.
filter
(
ele
=>
ele
.
uid
!==
file
.
uid
);
bundleChange
(
freshFiles
);
};
const
checkFile
=
file
=>
new
Promise
(
resolve
=>
{
const
curType
=
file
.
name
.
substr
(
file
.
name
.
lastIndexOf
(
'
.
'
)
+
1
).
toLowerCase
();
const
fileType
=
[
'
jpg
'
,
'
jpeg
'
,
'
png
'
];
if
(
!
fileType
.
includes
(
curType
))
{
notification
.
open
({
message
:
file
.
name
,
description
:
'
图片格式须为jpg、jpeg、png!
'
,
});
return
resolve
(
null
);
const
cleanArray
=
(
actual
=
[])
=>
actual
.
reduce
((
prev
,
cur
)
=>
{
cur
&&
prev
.
push
(
cur
);
return
prev
;
},
[]);
const
warningTip
=
description
=>
{
notification
.
warning
({
message
:
'
图片上传失败
'
,
description
,
});
};
const
getBase64
=
(
img
,
callback
)
=>
{
const
reader
=
new
FileReader
();
reader
.
addEventListener
(
'
load
'
,
()
=>
callback
(
reader
.
result
));
reader
.
readAsDataURL
(
img
);
};
const
ImageInfo
=
file
=>
new
Promise
((
resolve
,
reject
)
=>
{
const
LtMB
=
file
.
size
/
1024
/
1024
;
if
(
LtMB
>
2
)
{
warningTip
(
`[
${
file
.
name
}
] 图片不可以大于2MB`
);
resolve
(
null
);
}
if
(
file
.
size
>
MAX_FILE_SIZE
*
UNIT
)
{
notification
.
open
({
message
:
file
.
name
,
description
:
`单个图片大小不能超过
${
MAX_FILE_SIZE
}
M!`
,
getBase64
(
file
,
url
=>
{
const
image
=
new
Image
();
image
.
addEventListener
(
'
load
'
,
()
=>
{
const
{
width
}
=
image
;
const
{
height
}
=
image
;
file
.
width
=
width
;
file
.
height
=
height
;
file
.
LtMB
=
LtMB
;
resolve
(
file
);
});
image
.
addEventListener
(
'
error
'
,
()
=>
{
warningTip
(
`
${
file
.
name
}
图片上传失败!`
);
resolve
(
null
);
});
return
resolve
(
null
);
image
.
src
=
url
;
});
});
const
CheckImageInfoList
=
async
files
=>
{
const
promiseImage
=
files
.
map
(
file
=>
ImageInfo
(
file
));
const
clearImage
=
await
Promise
.
all
(
promiseImage
);
return
cleanArray
(
clearImage
);
};
const
isUploadNext
=
async
imgFileList
=>
{
const
filterImage
=
imgFileList
.
filter
(
img
=>
{
if
(
(
imgOptions
.
maxWidth
&&
img
.
width
>
imgOptions
.
maxWidth
)
||
(
imgOptions
.
maxHeight
&&
img
.
height
>
imgOptions
.
maxHeight
)
)
{
warningTip
(
`[
${
img
.
name
}
]
${
imgOptions
.
superTips
}
`
);
return
false
;
}
return
resolve
(
file
)
;
return
true
;
});
return
filterImage
;
};
const
checkFile
=
files
=>
{
const
fileType
=
[
'
jpg
'
,
'
jpeg
'
,
'
png
'
];
const
filterImage
=
files
.
filter
(
file
=>
{
const
curType
=
file
.
name
.
substr
(
file
.
name
.
lastIndexOf
(
'
.
'
)
+
1
).
toLowerCase
();
if
(
!
fileType
.
includes
(
curType
))
{
warningTip
(
'
图片格式须为jpg、jpeg、png!
'
);
return
false
;
}
return
true
;
});
return
filterImage
;
};
const
imageLoading
=
(
file
,
ret
)
=>
new
Promise
(
resolve
=>
{
...
...
@@ -119,12 +176,14 @@ const UploadImage = forwardRef((props, ref) => {
});
return
Upload
.
LIST_IGNORE
;
}
const
fileAll
=
fileArray
.
map
(
item
=>
checkFile
(
item
));
const
checkFiles
=
(
await
Promise
.
all
(
fileAll
)).
filter
(
item
=>
item
!==
null
);
const
flies
=
checkFile
(
fileArray
);
const
optionsArray
=
await
CheckImageInfoList
(
flies
);
const
checkFiles
=
await
isUploadNext
(
optionsArray
);
try
{
if
(
checkFiles
.
length
)
{
setUploadLoading
(
true
);
const
res
=
await
merchantUpload
(
checkFiles
);
console
.
log
(
'
res :>>
'
,
res
);
if
(
res
.
data
)
{
const
proFiles
=
(
res
.
data
||
[]).
map
((
urlItem
,
urlIndex
)
=>
imageLoading
(
checkFiles
[
urlIndex
],
urlItem
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment