feat: 添加 messagestatus 状态

This commit is contained in:
huangzhe
2025-08-06 20:40:06 +08:00
parent 5cdfe21767
commit 8f1489ad6d
4 changed files with 31 additions and 70 deletions

View File

@@ -29,7 +29,7 @@
</span> </span>
<div class="text-right fs12 mb5 mr10" style="font-size: 10px; color: #f6aa21"> <div class="text-right fs12 mb5 mr10" style="font-size: 10px; color: #f6aa21">
<!-- 新增点赞和踩按钮 --> <!-- 新增点赞和踩按钮 -->
<div class="reaction-buttons mb10" v-if="message.type !== 'user'"> <div class="reaction-buttons mb10" v-if="message.type !== 'user' && messageStatus === 'stop'">
<button @click="handleReaction(message, 'like')" class="like"> <button @click="handleReaction(message, 'like')" class="like">
<svg-icon :icon-class="message.isLike ? 'fillLike' : 'like'" class-name="chat-icon"></svg-icon> <svg-icon :icon-class="message.isLike ? 'fillLike' : 'like'" class-name="chat-icon"></svg-icon>
</button> </button>
@@ -66,6 +66,10 @@ export default {
isDeep: { isDeep: {
type: Boolean, type: Boolean,
default: false default: false
},
messageStatus: {
type: String,
default: 'stop'
} }
}, },
data() { data() {

View File

@@ -8,15 +8,9 @@
<main class="chat-main"> <main class="chat-main">
<div class="chat-content"> <div class="chat-content">
<div class="message-area" ref="messageArea" @scroll="handleScroll"> <div class="message-area" ref="messageArea" @scroll="handleScroll">
<messageComponent <messageComponent :message-status="messageStatus" :messagesList="messages" :is-deep="isDeep"
:messagesList="messages" :is-search="isSearching" :think-ok="isThink" @setProductName="setProductName"
:is-deep="isDeep" @reload-message="reloadMessage" v-if="messages.length > 1"></messageComponent>
:is-search="isSearching"
:think-ok="isThink"
@setProductName="setProductName"
@reload-message="reloadMessage"
v-if="messages.length > 1"
></messageComponent>
<div class="mb20" v-else> <div class="mb20" v-else>
HI我是长生产品助手可以为你推荐产品答疑解惑请点击以下功能体检 HI我是长生产品助手可以为你推荐产品答疑解惑请点击以下功能体检
</div> </div>
@@ -32,7 +26,8 @@
<chatMessage ref="chatMessage" :messages.sync="messages" :messageStatus.sync="messageStatus" :is-deep.sync="isDeep" <chatMessage ref="chatMessage" :messages.sync="messages" :messageStatus.sync="messageStatus" :is-deep.sync="isDeep"
:conversation-id.sync="conversationId" :is-searching.sync="isSearching" :product-name.sync="productName" :conversation-id.sync="conversationId" :is-searching.sync="isSearching" :product-name.sync="productName"
:autoScrollEnabled.sync="autoScrollEnabled" @getIsThink="getIsThink" action="normal_chat" @initBotMessage="initBotMessage"/> :autoScrollEnabled.sync="autoScrollEnabled" @getIsThink="getIsThink" action="normal_chat"
@initBotMessage="initBotMessage" />
</div> </div>
</template> </template>
@@ -138,9 +133,9 @@ export default {
}, },
initBotMessage() { initBotMessage() {
this.messages = [] this.messages = []
}, },
reloadMessage({message,index}){ reloadMessage({ message, index }) {
this.$refs.chatMessage.reloadMessage({message,index}) this.$refs.chatMessage.reloadMessage({ message, index })
} }
}, },
watch: { watch: {

View File

@@ -1,26 +1,15 @@
<template> <template>
<div class="chat-page"> <div class="chat-page">
<van-nav-bar title="产品知识助手" left-text="返回" left-arrow @click-left="$router.history.go(-1)" /> <van-nav-bar title="产品知识助手" left-text="返回" left-arrow @click-left="$router.history.go(-1)" />
<sticky <sticky :hotList="hotList" :productName="productName" :messagesList.sync="messages"
:hotList="hotList" :autoScrollEnabled.sync="autoScrollEnabled" @setProductName="setProductName"
:productName="productName" :isDisabled="messageStatus === 'send'" :conversationId="conversationId"></sticky>
:messagesList.sync="messages"
:autoScrollEnabled.sync="autoScrollEnabled"
@setProductName="setProductName"
:isDisabled="messageStatus === 'send'"
:conversationId="conversationId"
></sticky>
<main class="chat-main"> <main class="chat-main">
<div class="chat-content"> <div class="chat-content">
<div class="message-area" ref="messageArea" @scroll="handleScroll"> <div class="message-area" ref="messageArea" @scroll="handleScroll">
<messageComponent <messageComponent :message-status="messageStatus" :messagesList="messages" :is-deep="isDeep"
:messagesList="messages" :is-search="isSearching" :think-ok="isThink" @setProductName="setProductName"></messageComponent>
:is-deep="isDeep"
:is-search="isSearching"
:think-ok="isThink"
@setProductName="setProductName"
></messageComponent>
<!-- <HotProducts class="mb10" :messagesList.sync="messages" @getHotList="getHotProducts"></HotProducts> --> <!-- <HotProducts class="mb10" :messagesList.sync="messages" @getHotList="getHotProducts"></HotProducts> -->
</div> </div>
</div> </div>
@@ -30,18 +19,10 @@
</div> </div>
</main> </main>
<chatMessage <chatMessage :messages.sync="messages" :messageStatus.sync="messageStatus" :is-deep.sync="isDeep"
:messages.sync="messages" :conversation-id.sync="conversationId" :is-searching.sync="isSearching" :product-name.sync="productName"
:messageStatus.sync="messageStatus" :autoScrollEnabled.sync="autoScrollEnabled" @getIsThink="getIsThink" action="chat"
:is-deep.sync="isDeep" @initBotMessage="initBotMessage" />
:conversation-id.sync="conversationId"
:is-searching.sync="isSearching"
:product-name.sync="productName"
:autoScrollEnabled.sync="autoScrollEnabled"
@getIsThink="getIsThink"
action="chat"
@initBotMessage="initBotMessage"
/>
</div> </div>
</template> </template>

View File

@@ -1,26 +1,15 @@
<template> <template>
<div class="chat-page"> <div class="chat-page">
<van-nav-bar title="产品推荐助手-保障型" left-text="返回" left-arrow @click-left="$router.history.go(-1)" /> <van-nav-bar title="产品推荐助手-保障型" left-text="返回" left-arrow @click-left="$router.history.go(-1)" />
<sticky <sticky :hotList="hotList" :productName="productName" :messagesList.sync="messages"
:hotList="hotList" :autoScrollEnabled.sync="autoScrollEnabled" @setProductName="setProductName"
:productName="productName" :isDisabled="messageStatus === 'send'" :conversationId="conversationId"></sticky>
:messagesList.sync="messages"
:autoScrollEnabled.sync="autoScrollEnabled"
@setProductName="setProductName"
:isDisabled="messageStatus === 'send'"
:conversationId="conversationId"
></sticky>
<main class="chat-main"> <main class="chat-main">
<div class="chat-content"> <div class="chat-content">
<div class="message-area" ref="messageArea" @scroll="handleScroll"> <div class="message-area" ref="messageArea" @scroll="handleScroll">
<messageComponent <messageComponent :message-status="messageStatus" :messagesList="messages" :is-deep="isDeep"
:messagesList="messages" :is-search="isSearching" :think-ok="isThink" @setProductName="setProductName"></messageComponent>
:is-deep="isDeep"
:is-search="isSearching"
:think-ok="isThink"
@setProductName="setProductName"
></messageComponent>
<!-- <HotProducts class="mb10" :messagesList.sync="messages" @getHotList="getHotProducts"></HotProducts> --> <!-- <HotProducts class="mb10" :messagesList.sync="messages" @getHotList="getHotProducts"></HotProducts> -->
</div> </div>
</div> </div>
@@ -30,18 +19,10 @@
</div> </div>
</main> </main>
<chatMessage <chatMessage :messages.sync="messages" :messageStatus.sync="messageStatus" :is-deep.sync="isDeep"
:messages.sync="messages" :conversation-id.sync="conversationId" :is-searching.sync="isSearching" :product-name.sync="productName"
:messageStatus.sync="messageStatus" :autoScrollEnabled.sync="autoScrollEnabled" @getIsThink="getIsThink" action="product_recommend"
:is-deep.sync="isDeep" @initBotMessage="initBotMessage">
:conversation-id.sync="conversationId"
:is-searching.sync="isSearching"
:product-name.sync="productName"
:autoScrollEnabled.sync="autoScrollEnabled"
@getIsThink="getIsThink"
action="product_recommend"
@initBotMessage="initBotMessage"
>
</chatMessage> </chatMessage>
</div> </div>
</template> </template>