mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-14 21:02:49 +00:00
perf: 优化发送消息结果
This commit is contained in:
parent
f21d45e697
commit
46dd449b2f
@ -2368,6 +2368,12 @@ export default {
|
|||||||
if (tempId > 0) {
|
if (tempId > 0) {
|
||||||
const index = this.tempMsgs.findIndex(({id}) => id == tempId)
|
const index = this.tempMsgs.findIndex(({id}) => id == tempId)
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
|
if (data.type === 'text') {
|
||||||
|
const tempMsg = this.tempMsgs[index]
|
||||||
|
if (tempMsg) {
|
||||||
|
data.msg.text = this.replaceImgSrcAndKeepOriginal(data.msg.text, tempMsg.msg.text)
|
||||||
|
}
|
||||||
|
}
|
||||||
this.tempMsgs.splice(index, 1, data)
|
this.tempMsgs.splice(index, 1, data)
|
||||||
}
|
}
|
||||||
setTimeout(_ => {
|
setTimeout(_ => {
|
||||||
@ -2389,6 +2395,29 @@ export default {
|
|||||||
this.onActive();
|
this.onActive();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
replaceImgSrcAndKeepOriginal(dataHtml, tempHtml) {
|
||||||
|
const tempImgs = [];
|
||||||
|
const dataImgs = [];
|
||||||
|
tempHtml = tempHtml || '';
|
||||||
|
dataHtml = dataHtml || '';
|
||||||
|
tempHtml.replace(/<img [^>]*src=["']([^"']+)["'][^>]*>/g, (m, src) => { tempImgs.push(src); return m; });
|
||||||
|
dataHtml.replace(/<img [^>]*src=["']([^"']+)["'][^>]*>/g, (m, src) => { dataImgs.push(src); return m; });
|
||||||
|
if (tempImgs.length !== dataImgs.length || dataImgs.length === 0) {
|
||||||
|
return dataHtml;
|
||||||
|
}
|
||||||
|
let imgIndex = 0;
|
||||||
|
return dataHtml.replace(/<img ([^>]*?)src=("|')([^"']+)\2([^>]*)>/g, (match, before, quote, src, after) => {
|
||||||
|
const newSrc = tempImgs[imgIndex] || src;
|
||||||
|
const originalSrc = src;
|
||||||
|
imgIndex++;
|
||||||
|
let originalSrcAttr = '';
|
||||||
|
if (!/original-src=/.test(match)) {
|
||||||
|
originalSrcAttr = ` original-src=\"${originalSrc}\"`;
|
||||||
|
}
|
||||||
|
return `<img ${before}src=${quote}${newSrc}${quote}${originalSrcAttr}${after}>`;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
forgetTempMsg(tempId) {
|
forgetTempMsg(tempId) {
|
||||||
this.tempMsgs = this.tempMsgs.filter(({id}) => id != tempId)
|
this.tempMsgs = this.tempMsgs.filter(({id}) => id != tempId)
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user