|
|
@@ -64,6 +64,7 @@
|
|
|
// 存储每个文件的 AbortController
|
|
|
let controller = null;
|
|
|
let uid = null;
|
|
|
+ const cancelTokens = new Map(); // 存储取消令牌
|
|
|
const { t } = useI18n();
|
|
|
export default defineComponent({
|
|
|
components: { BasicModal, BasicForm, Upload },
|
|
|
@@ -227,13 +228,6 @@
|
|
|
|
|
|
function handleVisibleChange(v) {
|
|
|
console.log(v, uploadRef.value);
|
|
|
- abortControllers.value.forEach((controller) => {
|
|
|
- controller.abort();
|
|
|
- });
|
|
|
- abortControllers.value.clear();
|
|
|
- if (!v && uploadRef.value) {
|
|
|
- uploadRef.value.clearFiles();
|
|
|
- }
|
|
|
}
|
|
|
// v && props.userData && nextTick(() => onDataReceive(props.userData));
|
|
|
const Submit = async (filePath) => {
|
|
|
@@ -263,25 +257,22 @@
|
|
|
}
|
|
|
const params = await validate();
|
|
|
let file = fileFlow.list && fileFlow.list[0];
|
|
|
+ uid = file.uid;
|
|
|
const apiData = {
|
|
|
file: file,
|
|
|
data: {
|
|
|
dictId: params.dictId,
|
|
|
},
|
|
|
};
|
|
|
- // 方法1:使用 AbortController(现代浏览器)
|
|
|
- const controller = new AbortController();
|
|
|
- abortControllers.value.set(file.uid, controller);
|
|
|
loading.value = true;
|
|
|
fileFlow.complete = 0;
|
|
|
- // const CancelToken = axios.CancelToken;
|
|
|
- // source = CancelToken.source();
|
|
|
function onUploadProgress(progressEvent: ProgressEvent) {
|
|
|
- const complete = ((progressEvent.loaded / progressEvent.total) * 100) | 0;
|
|
|
- fileFlow.complete = complete;
|
|
|
+ if(uid == file.uid){
|
|
|
+ const complete = ((progressEvent.loaded / progressEvent.total) * 100) | 0;
|
|
|
+ fileFlow.complete = complete;
|
|
|
+ }
|
|
|
}
|
|
|
let url = await uploadApi(apiData, onUploadProgress);
|
|
|
- abortControllers.value.delete(file.uid);
|
|
|
option.onSuccess && option.onSuccess();
|
|
|
console.log('uploadApi', url);
|
|
|
fileFlow.filePath = url;
|