update 分片上传界面逻辑更改

This commit is contained in:
Liang 2024-04-01 15:58:16 +08:00
parent b35ca51549
commit c9a3221090

View File

@ -1,5 +1,5 @@
<template> <template>
<div> <div class="upload-file" style="width: 90%">
<el-upload <el-upload
class="upload-demo" class="upload-demo"
action="#" action="#"
@ -23,19 +23,10 @@
<!-- </div>--> <!-- </div>-->
<!-- </template>--> <!-- </template>-->
</el-upload> </el-upload>
<!-- 文件列表 -->
<transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
<li v-for="(file, index) in fileList" :key="file.uid" class="el-upload-list__item ele-upload-list__item-content">
<el-link :href="`${file.url}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ getFileName(file.name) }} </span>
</el-link>
<div class="ele-upload-list__item-content-action">
<el-button type="danger" link @click="handleDelete(index)">删除</el-button>
</div>
</li>
</transition-group>
</div> </div>
<el-button type="success" @click="startUpload">开始上传</el-button> <div class="float-left">
<el-button type="success" @click="startUpload">开始上传</el-button>
</div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -62,7 +53,6 @@ const fileList = ref([]);
const startUpload = () => { const startUpload = () => {
proxy?.$modal.loading('正在上传文件,请稍候...'); proxy?.$modal.loading('正在上传文件,请稍候...');
uploadNextPart(); uploadNextPart();
proxy?.$modal.closeLoading();
}; };
// //
@ -72,7 +62,6 @@ const uploadNextPart = () => {
const partNumber = state.partNumber + 1; const partNumber = state.partNumber + 1;
const formData = new FormData(); const formData = new FormData();
formData.append('file', filePart); formData.append('file', filePart);
console.log('file:', filePart);
// uploadId // uploadId
if (state.uploadId) { if (state.uploadId) {
formData.append('uploadId', state.uploadId); formData.append('uploadId', state.uploadId);
@ -86,25 +75,47 @@ const uploadNextPart = () => {
formData.append('needMerge', partNumber === state.totalParts); formData.append('needMerge', partNumber === state.totalParts);
partUpload(formData) partUpload(formData)
.then((resp) => { .then((res) => {
state.partNumber++; handleUploadSuccess(res);
if (resp.data.uploadId) {
state.uploadId = resp.data.uploadId;
}
if (resp.data.mergeCompleted) {
proxy?.$modal.msgSuccess('文件上传完成');
} else {
//
//
uploadNextPart();
}
}) })
.catch((error) => { .catch((error) => {
proxy?.$modal.msgError('上传文件失败'); handleUploadError(error);
}); });
} }
}; };
//
const handleUploadSuccess = (res: any) => {
if (res.code === 200) {
if (res.data.mergeCompleted) {
proxy?.$modal.msgSuccess('文件上传完成');
uploadedSuccessfully();
} else {
//
state.partNumber++;
if (res.data.uploadId && !state.uploadId) {
state.uploadId = res.data.uploadId;
}
uploadNextPart();
}
} else {
proxy?.$modal.closeLoading();
proxy?.$modal.msgError(res.msg);
uploadedSuccessfully();
}
};
//
const uploadedSuccessfully = () => {
proxy?.$modal.closeLoading();
};
//
const handleUploadError = (error: any) => {
proxy?.$modal.msgError('上传文件失败');
proxy?.$modal.closeLoading();
};
// //
const handleChange = (uploadFile, uploadFiles) => { const handleChange = (uploadFile, uploadFiles) => {
stateReset(); stateReset();
@ -136,14 +147,4 @@ const stateReset = () => {
state.partNumber = 0; state.partNumber = 0;
state.totalParts = 0; state.totalParts = 0;
}; };
//
const getFileName = (name: string) => {
// url
if (name.lastIndexOf('/') > -1) {
return name.slice(name.lastIndexOf('/') + 1);
} else {
return name;
}
};
</script> </script>