feat(消息处理): 添加消息内容解析和格式化功能

This commit is contained in:
yangzhe 2025-12-02 11:06:52 +08:00
parent 4edf4fd034
commit 7a78f5bdae
1 changed files with 44 additions and 2 deletions

View File

@ -137,6 +137,7 @@
</view> </view>
<!-- 用户消息 --> <!-- 用户消息 -->
<!-- 0 用户消息 -->
<view <view
class="message-right" class="message-right"
v-if="message.interactMode === 0" v-if="message.interactMode === 0"
@ -153,9 +154,10 @@
</view> </view>
<!-- AI消息 --> <!-- AI消息 -->
<!-- 1 Ai回复 3 热门回复 -->
<view <view
class="message-left" class="message-left"
v-if="message.interactMode === 1" v-if="message.interactMode === 1 || message.interactMode === 3"
:id="'msg-' + message.id" :id="'msg-' + message.id"
> >
<image <image
@ -816,9 +818,49 @@ export default {
this.handleGetConversationDetail(); this.handleGetConversationDetail();
}, },
// JSON
processMessageContent(message) {
try {
// JSON
const parsed = JSON.parse(message);
//
if (typeof parsed === "object" && parsed !== null) {
let content = "";
//
const { answerTypeLabel, imageUrl, nearbyPaths } = parsed;
//
if (answerTypeLabel) content += `${answerTypeLabel}\n`;
if (imageUrl) content += `${imageUrl}\n`;
if (nearbyPaths) content += `${nearbyPaths}\n`;
//
//
return content ? content.trim() : message;
}
} catch (e) {
// JSON
return message;
}
return message;
},
// (interactMode=0) // (interactMode=0)
sortMessages(list = []) { sortMessages(list = []) {
return (list || []).sort((a, b) => { const processedList = (list || []).map((item) => {
//
return {
...item,
message: this.processMessageContent(item.message),
};
});
// console.log("processedList", processedList);
return processedList.sort((a, b) => {
const timeA = new Date(a.sendDate).getTime(); const timeA = new Date(a.sendDate).getTime();
const timeB = new Date(b.sendDate).getTime(); const timeB = new Date(b.sendDate).getTime();
if (timeA === timeB) return a.interactMode - b.interactMode; if (timeA === timeB) return a.interactMode - b.interactMode;