update:大文件上传异步合并
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user