|
|
|
@ -3,6 +3,7 @@ import { computed, nextTick, onMounted, ref, watch } from 'vue'
|
|
|
|
|
import { Image } from 'ant-design-vue' |
|
|
|
|
import { MdPreview } from 'md-editor-v3' |
|
|
|
|
import 'md-editor-v3/lib/style.css' |
|
|
|
|
import { throttle } from 'lodash-es' |
|
|
|
|
import type { MessageItem } from './index.d' |
|
|
|
|
import { SvgIcon } from '@/components/SvgIcon' |
|
|
|
|
import { MessageStatusEnum, MessageTypeEnum } from '@/enums/messageEnum' |
|
|
|
@ -46,6 +47,7 @@ const conversationData = computed(() => messageStore.getConversationData)
|
|
|
|
|
watch( |
|
|
|
|
() => props.list[props.list.length - 1], |
|
|
|
|
() => { |
|
|
|
|
throttle(setHrefTarget, 500) |
|
|
|
|
if (isAutoScroll.value) { |
|
|
|
|
scrollToBottom() |
|
|
|
|
} |
|
|
|
@ -53,6 +55,19 @@ watch(
|
|
|
|
|
{ immediate: true }, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
watch( |
|
|
|
|
() => messageStore.messageStatus, |
|
|
|
|
() => { |
|
|
|
|
setHrefTarget() |
|
|
|
|
}, |
|
|
|
|
) |
|
|
|
|
watch( |
|
|
|
|
() => props.list.length, |
|
|
|
|
() => { |
|
|
|
|
setHrefTarget() |
|
|
|
|
}, |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @description: 滚动到底部 |
|
|
|
|
*/ |
|
|
|
@ -111,8 +126,22 @@ function reloadMessage() {
|
|
|
|
|
emit('reloadMessage') |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @description: 给链接添加target="_blank" |
|
|
|
|
*/ |
|
|
|
|
async function setHrefTarget() { |
|
|
|
|
if (messageRef.value && props.list.length) { |
|
|
|
|
await nextTick() |
|
|
|
|
const links = messageRef.value.querySelectorAll('a') |
|
|
|
|
links.forEach((item: { target: string }) => { |
|
|
|
|
item.target = '_blank' |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
onMounted(async () => { |
|
|
|
|
scrollToBottom() |
|
|
|
|
setHrefTarget() |
|
|
|
|
}) |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
@ -123,7 +152,7 @@ onMounted(async () => {
|
|
|
|
|
<div class="content"> |
|
|
|
|
<MdPreview |
|
|
|
|
:editor-id="`preview-only-user${index}${Date.now()}`" |
|
|
|
|
:model-value="item.content" |
|
|
|
|
:model-value="`[我是连接](https://open.ys7.com/console/device.html?_blank)${item.content}`" |
|
|
|
|
/> |
|
|
|
|
</div> |
|
|
|
|
<img class="icon-user" src="@/assets/images/conversation/user.png" alt=""> |
|
|
|
|