mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-18 23:36:44 +08:00
fix(messages): 赞/踩逻辑保存展示
This commit is contained in:
@@ -47,7 +47,7 @@
|
||||
@scroll="handleScroll"
|
||||
>
|
||||
<div class="message-text" v-for="(item, index) in messageList" :key="index">
|
||||
<messages :messageData="item" :suggestions="suggestions" @getMinWindow="minimizeWindow" :isFirstMessage="item.isFirstMessage"></messages>
|
||||
<messages :messageData="item" @update:messageData="val=> $set(messageList, index, val)" :suggestions="suggestions" @getMinWindow="minimizeWindow" :isFirstMessage="item.isFirstMessage"></messages>
|
||||
</div>
|
||||
<div class="message-suggestions" v-if="messageList.length > 0 && messageList[messageList.length-1].textCompleted">
|
||||
<div class="suggestion-item" v-for="(item, index) in suggestions" :key="index">
|
||||
|
||||
@@ -40,8 +40,9 @@
|
||||
<!-- 赞/踩图标区域 - 仅在文本加载完成后显示 -->
|
||||
<div v-if="showFeedbackIcons && !isFirstMessage" style="margin-top: 8px;">
|
||||
<el-tooltip class="item" effect="dark" content="点赞" placement="bottom">
|
||||
<img :src="isLike ? require('@/assets/images/case/zan-yes.svg') : require('@/assets/images/case/zan.svg')"
|
||||
@click="toggleStar" alt="zan" class="zan_img">
|
||||
<!-- 修改为根据 isLike 值判断状态,使用 == 而不是 === -->
|
||||
<img :src="messageData.isLike == 1 ? require('@/assets/images/case/zan-yes.svg') : require('@/assets/images/case/zan.svg')"
|
||||
@click="toggleStar(1)" alt="zan" class="zan_img">
|
||||
</el-tooltip>
|
||||
<el-popover placement="bottom" trigger="manual" v-model="caiDialogShow">
|
||||
<div class="feedback-class">
|
||||
@@ -57,9 +58,10 @@
|
||||
<div style="text-align: right; margin: 0">
|
||||
<el-button style="margin-top: 10px;" type="primary" size="mini" @click="handleSure">确定</el-button>
|
||||
</div>
|
||||
<!-- 修改为根据 isLike 值判断状态,使用 == 而不是 === -->
|
||||
<img slot="reference"
|
||||
:src="isDislike ? require('@/assets/images/case/cai-yes.svg') : require('@/assets/images/case/cai.svg')"
|
||||
@click="toggleSecondIcon" alt="cai" class="zan_img" style="margin-left:10px">
|
||||
:src="messageData.isLike == -1 ? require('@/assets/images/case/cai-yes.svg') : require('@/assets/images/case/cai.svg')"
|
||||
@click="toggleStar(-1)" alt="cai" class="zan_img" style="margin-left:10px">
|
||||
</el-popover>
|
||||
</div>
|
||||
|
||||
@@ -130,8 +132,6 @@ export default {
|
||||
typingTimer: null,
|
||||
typingSpeed: 30, // 毫秒/字符
|
||||
showAllCaseRefers: false,
|
||||
isLike: false, // 添加赞状态
|
||||
isDislike: false, // 控制踩状态
|
||||
caiDialogShow: false,
|
||||
tagList: [
|
||||
{ name: '回答不准确' },
|
||||
@@ -184,37 +184,36 @@ export default {
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// 赞
|
||||
toggleStar() {
|
||||
// 点击第一个图标时,激活它并取消第二个图标的激活状态
|
||||
this.isLike = !this.isLike;
|
||||
this.isDislike = false;
|
||||
let params = {
|
||||
docId: this.messageData.docId,
|
||||
likeStatus: this.isLike ? "1" : "",
|
||||
}
|
||||
likeMsg(params).then(res => {
|
||||
console.log(res);
|
||||
})
|
||||
},
|
||||
// 踩
|
||||
toggleSecondIcon() {
|
||||
this.feedbackText = null
|
||||
let params = {
|
||||
docId: this.messageData.docId,
|
||||
likeStatus: !this.isDislike ? "-1" : ''
|
||||
}
|
||||
likeMsg(params).then(res => {
|
||||
console.log(res);
|
||||
})
|
||||
// 点击第二个图标时,激活它并取消第一个图标的激活状态
|
||||
this.isDislike = !this.isDislike;
|
||||
this.isLike = false;
|
||||
if (this.isDislike) {
|
||||
this.caiDialogShow = true
|
||||
toggleStar(type) {
|
||||
// type: 1 表示赞,-1 表示踩,0 表示取消
|
||||
let newIsLike = 0;
|
||||
if (type === 1 && this.messageData.isLike == 1) {
|
||||
newIsLike = 0;
|
||||
} else if (type === -1 && this.messageData.isLike == -1) {
|
||||
newIsLike = 0;
|
||||
this.caiDialogShow = false;
|
||||
} else {
|
||||
this.caiDialogShow = false
|
||||
newIsLike = type;
|
||||
if (type === -1) {
|
||||
this.caiDialogShow = true;
|
||||
} else {
|
||||
this.caiDialogShow = false;
|
||||
}
|
||||
}
|
||||
let params = {
|
||||
docId: this.messageData.docId,
|
||||
likeStatus: newIsLike === 0 ? '0' : newIsLike.toString(),
|
||||
}
|
||||
|
||||
likeMsg(params).then(res => {
|
||||
if(res.status ==200){
|
||||
// 更新状态
|
||||
this.$set(this.messageData, 'isLike', newIsLike)
|
||||
this.$emit('update:messageData', this.messageData)
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
},
|
||||
// 标签选择
|
||||
handleTag(item) {
|
||||
@@ -547,4 +546,4 @@ export default {
|
||||
.tag-class:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
Reference in New Issue
Block a user