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