update:大文件上传异步合并

This commit is contained in:
2026-04-14 16:54:47 +08:00
parent 4dc18d0b32
commit ba994b1108
2 changed files with 28 additions and 6 deletions

View File

@@ -80,6 +80,7 @@ const UPLOAD_FILE_STATUS: any = {
'0': '待上传',
'1': '上传中',
'2': '上传完成',
'3': '合并中',
};
const dragRef = ref<any>();
@@ -106,6 +107,22 @@ emitter.on('ADD_UPLOAD_FILE', (addData: any) => {
}
});
// 缓存异步合并的文件
const asyncBackData: any = {};
emitter.on('WS_RECEICE_MSG', (msgData: any) => {
const { scene, data } = msgData;
if (scene === 'BIG_FILE_CHUNK') {
if (asyncBackData[data.businessId]) {
const fileObj = asyncBackData[data.businessId];
fileObj.data.status = '2';
emitter.emit('UPLOAD_FINISHED', {
callbackFlag: fileObj.data.callbackFlag,
});
delete asyncBackData[data.businessId];
}
}
});
$wujie?.bus?.$on('UPLOAD_LIST_DATA_EMPTY', () => {
emptyFun();
});
@@ -202,9 +219,16 @@ const sliceFileFun = async (fileIndex: number) => {
}
taskStatusObj[fileObj.data.uploadTaskId][fileObj.data.businessId] = fileObj.data.status;
if (fileObj.data.status === '2') {
emitter.emit('UPLOAD_FINISHED', {
callbackFlag: fileObj.data.callbackFlag,
});
if (res.asyncBack === 'N') {
// 不需要异步合并,执行上传完成通知
emitter.emit('UPLOAD_FINISHED', {
callbackFlag: fileObj.data.callbackFlag,
});
} else {
// 需要异步合并
fileObj.data.status = '3';
asyncBackData[fileData.businessId] = fileObj;
}
if (msgTimeOut) {
clearTimeout(msgTimeOut);
msgTimeOut = null;

View File

@@ -20,9 +20,7 @@ const webSocket = {
ws.onmessage = (msg: any) => {
const { data } = msg;
emitter.emit('WS_RECEICE_MSG', {
data,
});
emitter.emit('WS_RECEICE_MSG', JSON.parse(data));
console.warn('webSocket收到消息', msg);
};