上传视频逻辑优化

This commit is contained in:
禺狨 2023-07-05 11:21:01 +08:00
parent bd86f23b04
commit 1046bb70b8

View File

@ -42,6 +42,7 @@ interface FileItem {
export const UploadVideoButton = (props: PropsInterface) => { export const UploadVideoButton = (props: PropsInterface) => {
const [showModal, setShowModal] = useState(false); const [showModal, setShowModal] = useState(false);
const [loading, setLoading] = useState(false);
const localFileList = useRef<FileItem[]>([]); const localFileList = useRef<FileItem[]>([]);
const [fileList, setFileList] = useState<FileItem[]>([]); const [fileList, setFileList] = useState<FileItem[]>([]);
@ -54,6 +55,7 @@ export const UploadVideoButton = (props: PropsInterface) => {
multiple: true, multiple: true,
beforeUpload: async (file: File) => { beforeUpload: async (file: File) => {
if (file.type === "video/mp4") { if (file.type === "video/mp4") {
setLoading(true);
// 视频封面解析 || 视频时长解析 // 视频封面解析 || 视频时长解析
let videoInfo = await parseVideo(file); let videoInfo = await parseVideo(file);
// 添加到本地待上传 // 添加到本地待上传
@ -91,6 +93,7 @@ export const UploadVideoButton = (props: PropsInterface) => {
item.isSuc = true; item.isSuc = true;
setFileList([...localFileList.current]); setFileList([...localFileList.current]);
message.success(`${item.file.name} 上传成功`); message.success(`${item.file.name} 上传成功`);
setLoading(false);
}); });
}); });
item.run.on("retry", () => { item.run.on("retry", () => {
@ -106,6 +109,7 @@ export const UploadVideoButton = (props: PropsInterface) => {
item.isErr = true; item.isErr = true;
item.errMsg = msg; item.errMsg = msg;
setFileList([...localFileList.current]); setFileList([...localFileList.current]);
setLoading(false);
}); });
setTimeout(() => { setTimeout(() => {
item.run.start(); item.run.start();
@ -120,6 +124,10 @@ export const UploadVideoButton = (props: PropsInterface) => {
}; };
const closeWin = () => { const closeWin = () => {
if (loading) {
message.error(`等待上传成功后才能关闭`);
return;
}
setShowModal(false); setShowModal(false);
setFileList([]); setFileList([]);
props.onUpdate(); props.onUpdate();