perf: 回复图片显示图片搜略图

This commit is contained in:
kuaifan 2023-06-14 16:05:46 +08:00
parent e507c148ca
commit 414b423311
3 changed files with 24 additions and 6 deletions

View File

@ -668,18 +668,27 @@
/** /**
* 返回文本信息预览格式 * 返回文本信息预览格式
* @param text * @param text
* @param imgClassName
* @returns {*} * @returns {*}
*/ */
getMsgTextPreview(text) { getMsgTextPreview(text, imgClassName = null) {
if (!text) return ''; if (!text) return '';
text = text.replace(/<img\s+class="emoticon"[^>]*?alt="(\S+)"[^>]*?>/g, "[$1]") text = text.replace(/<img\s+class="emoticon"[^>]*?alt="(\S+)"[^>]*?>/g, "[$1]")
text = text.replace(/<img\s+class="emoticon"[^>]*?>/g, `[${$A.L('动画表情')}]`) text = text.replace(/<img\s+class="emoticon"[^>]*?>/g, `[${$A.L('动画表情')}]`)
text = text.replace(/<img\s+class="browse"[^>]*?>/g, `[${$A.L('图片')}]`) if (imgClassName) {
text = text.replace(/<img\s+class="browse"[^>]*?src="(\S+)"[^>]*?>/g, `[image:$1]`)
} else {
text = text.replace(/<img\s+class="browse"[^>]*?>/g, `[${$A.L('图片')}]`)
}
text = text.replace(/<[^>]+>/g,"") text = text.replace(/<[^>]+>/g,"")
text = text.replace(/&nbsp;/g," ") text = text.replace(/&nbsp;/g," ")
text = text.replace(/&amp;/g,"&") text = text.replace(/&amp;/g,"&")
text = text.replace(/&lt;/g,"<") text = text.replace(/&lt;/g,"<")
text = text.replace(/&gt;/g,">") text = text.replace(/&gt;/g,">")
if (imgClassName) {
text = text.replace(/\[image:(.*?)\]/g, `<img class="${imgClassName}" src="$1">`)
text = text.replace(/\{\{RemoteURL\}\}/g, this.apiUrl('../'))
}
return text return text
}, },
@ -788,20 +797,25 @@
/** /**
* 消息简单描述 * 消息简单描述
* @param data * @param data
* @param imgClassName
* @returns {string|*} * @returns {string|*}
*/ */
getMsgSimpleDesc(data) { getMsgSimpleDesc(data, imgClassName = null) {
if ($A.isJson(data)) { if ($A.isJson(data)) {
switch (data.type) { switch (data.type) {
case 'text': case 'text':
return $A.getMsgTextPreview(data.msg.text) return $A.getMsgTextPreview(data.msg.text, imgClassName)
case 'record': case 'record':
return `[${$A.L('语音')}]` return `[${$A.L('语音')}]`
case 'meeting': case 'meeting':
return `[${$A.L('会议')}] ${data.msg.name}` return `[${$A.L('会议')}] ${data.msg.name}`
case 'file': case 'file':
if (data.msg.type == 'img') { if (data.msg.type == 'img') {
return `[${$A.L('图片')}]` if (imgClassName) {
return `<img class="${imgClassName}" src="${data.msg.thumb}">`
} else {
return `[${$A.L('图片')}]`
}
} }
return `[${$A.L('文件')}] ${data.msg.name}` return `[${$A.L('文件')}] ${data.msg.name}`
case 'tag': case 'tag':

View File

@ -12,7 +12,7 @@
<!--回复--> <!--回复-->
<div v-if="!hideReply && msgData.reply_data" class="dialog-reply no-dark-content" @click="viewReply"> <div v-if="!hideReply && msgData.reply_data" class="dialog-reply no-dark-content" @click="viewReply">
<UserAvatar :userid="msgData.reply_data.userid" :show-icon="false" :show-name="true" :tooltip-disabled="true"/> <UserAvatar :userid="msgData.reply_data.userid" :show-icon="false" :show-name="true" :tooltip-disabled="true"/>
<div class="reply-desc">{{$A.getMsgSimpleDesc(msgData.reply_data)}}</div> <div class="reply-desc" v-html="$A.getMsgSimpleDesc(msgData.reply_data, 'image-preview')"></div>
</div> </div>
<!--详情--> <!--详情-->
<div ref="content" class="dialog-content" :class="contentClass"> <div ref="content" class="dialog-content" :class="contentClass">

View File

@ -553,6 +553,10 @@
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
.image-preview {
max-width: 48px;
max-height: 48px;
}
} }
} }