perf: 网络不好时发送消息顺序问题

This commit is contained in:
kuaifan 2023-03-16 11:58:39 +08:00
parent 081d77da63
commit 20d70c980e
2 changed files with 14 additions and 7 deletions

View File

@ -61,7 +61,11 @@ export default {
handleProgress(event, file) {
//
if (file.tempId === undefined) {
file.tempId = $A.randNum(1000000000, 9999999999)
if (this.$parent.$options.name === 'DialogWrapper') {
file.tempId = this.$parent.getTempId()
} else {
file.tempId = $A.randNum(1000000000, 9999999999)
}
this.$emit('on-progress', file)
}
},

View File

@ -538,6 +538,7 @@ export default {
allMsgs: [],
tempMsgs: [],
tempId: $A.randNum(1000000000, 9999999999),
msgLoadIng: 0,
pasteShow: false,
@ -1102,10 +1103,9 @@ export default {
});
} else {
//
const tempId = $A.randNum(1000000000, 9999999999)
const typeLoad = $A.stringLength(msgText.replace(/<img[^>]*?>/g, '')) > 5000
const tempMsg = {
id: tempId,
id: this.getTempId(),
dialog_id: this.dialogData.id,
reply_id: this.replyId,
reply_data: this.replyItem,
@ -1130,7 +1130,7 @@ export default {
},
method: 'post',
}).then(({data}) => {
this.tempMsgs = this.tempMsgs.filter(({id}) => id != tempId)
this.tempMsgs = this.tempMsgs.filter(({id}) => id != tempMsg.id)
this.sendSuccess(data)
}).catch(error => {
this.$set(tempMsg, 'error', true)
@ -1147,9 +1147,8 @@ export default {
* @param msg {base64, duration}
*/
sendRecord(msg) {
const tempId = $A.randNum(1000000000, 9999999999);
const tempMsg = {
id: tempId,
id: this.getTempId(),
dialog_id: this.dialogData.id,
reply_id: this.replyId,
reply_data: this.replyItem,
@ -1171,7 +1170,7 @@ export default {
}),
method: 'post',
}).then(({data}) => {
this.tempMsgs = this.tempMsgs.filter(({id}) => id != tempId)
this.tempMsgs = this.tempMsgs.filter(({id}) => id != tempMsg.id)
this.sendSuccess(data);
}).catch(error => {
this.$set(tempMsg, 'error', true)
@ -1221,6 +1220,10 @@ export default {
this.sendMsg(`<p><span data-quick-key="${item.key}">${item.label}</span></p>`)
},
getTempId() {
return this.tempId++
},
getMsgs(data) {
return new Promise((resolve, reject) => {
setTimeout(_ => this.msgLoadIng++, 2000)