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>
<div>
<div class="upload-file" style="width: 90%">
<el-upload
class="upload-demo"
action="#"
@ -23,19 +23,10 @@
<!-- </div>-->
<!-- </template>-->
</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 class="float-left">
<el-button type="success" @click="startUpload">开始上传</el-button>
</div>
</template>
<script setup lang="ts">
@ -62,7 +53,6 @@ const fileList = ref([]);
const startUpload = () => {
proxy?.$modal.loading('正在上传文件,请稍候...');
uploadNextPart();
proxy?.$modal.closeLoading();
};
//
@ -72,7 +62,6 @@ const uploadNextPart = () => {
const partNumber = state.partNumber + 1;
const formData = new FormData();
formData.append('file', filePart);
console.log('file:', filePart);
// uploadId
if (state.uploadId) {
formData.append('uploadId', state.uploadId);
@ -86,25 +75,47 @@ const uploadNextPart = () => {
formData.append('needMerge', partNumber === state.totalParts);
partUpload(formData)
.then((resp) => {
state.partNumber++;
if (resp.data.uploadId) {
state.uploadId = resp.data.uploadId;
}
if (resp.data.mergeCompleted) {
proxy?.$modal.msgSuccess('文件上传完成');
} else {
//
//
uploadNextPart();
}
.then((res) => {
handleUploadSuccess(res);
})
.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) => {
stateReset();
@ -136,14 +147,4 @@ const stateReset = () => {
state.partNumber = 0;
state.totalParts = 0;
};
//
const getFileName = (name: string) => {
// url
if (name.lastIndexOf('/') > -1) {
return name.slice(name.lastIndexOf('/') + 1);
} else {
return name;
}
};
</script>