合并代码

This commit is contained in:
sx 2025-01-14 00:56:50 +08:00
parent 0c4aaade96
commit 164c7456b0
3 changed files with 89 additions and 36 deletions

View File

@ -268,6 +268,19 @@ const video = {
}) })
}, },
/**
* 点赞/取消点赞评论
* @param {Object} param
*/
likecomment(param) {
return util.request({
url: `/video/comment/likecomment`,
data: param.data,
method: 'POST',
load: true,
})
},
/** /**
* 热点视频 * 热点视频
* @param {Object} param * @param {Object} param

View File

@ -38,7 +38,7 @@
// //
const placeholder = computed(() => { const placeholder = computed(() => {
let result = '评论一下吧~' let result = '评论一下吧~'
if (reply.id) result = `回复 @${reply.userNickname}` if (reply.id) result = `回复 @${reply.nickName}`
return result return result
}) })
// //
@ -120,14 +120,17 @@
// //
api.video.savecomment({ api.video.savecomment({
data: { data: {
// id // id
parentId: reply.id ? reply.id : 0, parentId: reply.childrenParentId || 0,
// id // id
videoId: detail.id, videoId: detail.id,
// //
content: content.value, content: content.value,
// id // id
userId: userinfo.value.id, userId: userinfo.value.id,
// id
childrenParentId: reply.id || 0,
} }
}).then(rs => { }).then(rs => {
console.log('saveComment', rs) console.log('saveComment', rs)
@ -173,9 +176,11 @@
/** /**
* 回复对象 * 回复对象
* @param {Object} item 回复的评论对象 * @param {Object} item 回复的评论对象
* @param {Object} childrenParentId 评论的一级id
*/ */
function handleReply(item) { function handleReply(item, childrenParentId) {
Object.assign(reply, item) Object.assign(reply, item)
reply.childrenParentId = childrenParentId
proxy.$refs.comment.open() proxy.$refs.comment.open()
} }
@ -215,17 +220,20 @@
*/ */
function getLevelCommentList(item, index) { function getLevelCommentList(item, index) {
// //
api.video.levelCommentList({ api.video.getcomment({
query: { data: {
commentId: item.id, // id
videoId: item.videoId,
// id
parentId: item.id,
pageSize: item.pageSize, pageSize: item.pageSize,
pageNum: item.pageNum, pageNum: item.pageNum,
} }
}).then(rs => { }).then(rs => {
console.log('getcomment', rs)
if (rs.code == 200) { if (rs.code == 200) {
// //
listProperty.data[index].child.push(...rs.rows.map(node => { listProperty.data[index].child.push(...rs.rows.map(node => {
node.formatUserPortrait = util.format_url(node.userPortrait, 'img')
return node return node
})) }))
// //
@ -242,22 +250,40 @@
/** /**
* 评论点赞 * 评论点赞
* @param {Object} item 视频对象 * @param {Object} item 视频对象
* @param {Object} index 一级下标
* @param {Object} secIndex 二级下标
*/ */
function handleLike(item) { function handleLike(item, index, secIndex) {
util.isLogin().then(rs => { util.isLogin().then(rs => {
// //
api.video.thumbsUp({ api.video.likecomment({
query: { data: {
// 0 1 // 0 1
type: item.isLike ? 0 : 1, likeType: {
'0': '1',
'1': '0',
} [item.likeType],
// id // id
commentId: item.id, id: item.id,
// id
videoId: detail.id,
} }
}).then(rs => { }).then(rs => {
if (rs.code == 200) { if (rs.code == 200) {
if (item.isLike) item.likes-- //
else item.likes++ let obj = {
item.isLike = !item.isLike ...item,
...rs.data,
}
//
if (secIndex == undefined) {
listProperty.data.splice(index, 1, obj)
}
//
else {
listProperty.data[index].child.splice(secIndex, 1, obj)
}
// //
listProperty.data = JSON.parse(JSON.stringify(listProperty.data)) listProperty.data = JSON.parse(JSON.stringify(listProperty.data))
return return
@ -319,53 +345,61 @@
<text class="mt5 c333 f28">{{item.content}}</text> <text class="mt5 c333 f28">{{item.content}}</text>
</view> </view>
<view class="like oh aic pl20" @click="handleLike(item)"> <view class="like oh aic pl20" @click="handleLike(item,index)">
<uni-icons type="heart-filled" :color="item.isLike ? '#F84259' : '#b3b3b3'" <uni-icons type="heart-filled"
size="32rpx" /> :color="item.likeType == 0 ? '#F84259' : '#b3b3b3'" size="32rpx" />
<text class="c333 f24">{{item.likes}}</text> <text class="c333 f24">{{item.likeCount}}</text>
</view> </view>
</view> </view>
<!-- 发布时间和回复 --> <!-- 发布时间和回复 -->
<view class="df fdr mt10"> <view class="df fdr mt10">
<text class="c999 f24">{{item.createTime}}</text> <text class="c999 f24">{{item.createTime}}</text>
<view class="ml100" @click="handleReply(item)"> <view class="ml100" @click="handleReply(item,item.id)">
<text class="c666 f24">回复</text> <text class="c666 f24">回复</text>
</view> </view>
</view> </view>
<template v-if="item.num != 0"> <template v-if="item.childrenCommentCount != 0">
<!-- 子评论 --> <!-- 子评论 -->
<view class="child" v-if="item.childShow"> <view class="child" v-if="item.childShow">
<view class="df fdr mt15" v-for="(secItem,secIndex) in item.child" <view class="df fdr mt15" v-for="(secItem,secIndex) in item.child"
:key="secItem.id"> :key="secItem.id">
<!-- 头像 --> <!-- 头像 -->
<image class="wh40 cir" :src="secItem.formatUserPortrait" <image class="wh40 cir" :src="secItem.headPortrait" mode="aspectFill"
mode="aspectFill" @click="toUser(secItem)" /> @click="toUser(secItem)" />
<view class="col pl20 f1"> <view class="col pl20 f1">
<!-- 用户信息和点赞 --> <!-- 用户信息和点赞 -->
<view class="df fdr"> <view class="df fdr">
<view class="f1"> <view class="f1">
<text class="c333 f24" <view class="fdr aic">
@click="toUser(secItem)">{{secItem.userNickname}}</text> <text class="c333 f24"
<rich-text class="mt5 c333 f28" @click="toUser(secItem)">{{secItem.nickName}}</text>
:nodes="secItem.context"></rich-text> <template
v-if="secItem.childrenParentId != secItem.parentId">
<text class="mlr10 c333 f24">回复</text>
<text
class="c333 f24">{{secItem.replyUserName}}</text>
</template>
</view>
<text class="mt5 c333 f28">{{secItem.content}}</text>
</view> </view>
<view class="like oh aic pl20" @click="handleLike(secItem)"> <view class="like oh aic pl20"
@click="handleLike(secItem,index,secIndex)">
<uni-icons type="heart-filled" <uni-icons type="heart-filled"
:color="secItem.isLike ? '#F84259' : '#b3b3b3'" :color="secItem.likeType == 0 ? '#F84259' : '#b3b3b3'"
size="32rpx" /> size="32rpx" />
<text class="c333 f24">{{secItem.likes}}</text> <text class="c333 f24">{{secItem.likeCount}}</text>
</view> </view>
</view> </view>
<!-- 发布时间和回复 --> <!-- 发布时间和回复 -->
<view class="df fdr mt10"> <view class="df fdr mt10">
<text class="c999 f24">{{secItem.createTime}}</text> <text class="c999 f24">{{secItem.createTime}}</text>
<text class="ml100 c666 f24" @click="handleReply(secItem)" <text class="ml100 c666 f24"
v-if="0">回复</text> @click="handleReply(secItem,item.id)">回复</text>
</view> </view>
</view> </view>
@ -376,12 +410,13 @@
<view class="line mr10"></view> <view class="line mr10"></view>
<template v-if="item.childShow"> <template v-if="item.childShow">
<template v-if="item.num == item.child.length"> <template v-if="item.childrenCommentCount == item.child.length">
<text class="c666 f24">收起</text> <text class="c666 f24">收起</text>
<uni-icons type="top" /> <uni-icons type="top" />
</template> </template>
<template v-else> <template v-else>
<text class="c666 f24">展开{{item.num - item.child.length}}条回复</text> <text
class="c666 f24">展开{{item.childrenCommentCount - item.child.length}}条回复</text>
<uni-icons type="bottom" /> <uni-icons type="bottom" />
</template> </template>
</template> </template>
@ -417,7 +452,7 @@
<!-- 回复弹窗 --> <!-- 回复弹窗 -->
<uni-popup ref="comment" type="bottom"> <uni-popup ref="comment" type="bottom">
<view class="popBot ptb30 plr30 bfff"> <view class="popBot ptb30 plr30 bfff">
<textarea v-model="content" :adjust-position="false" class="textarea" :placeholder="placeholder" /> <textarea v-model="content" :adjust-position="false" class="textarea c333" :placeholder="placeholder" />
<view class="df fdr jcr"> <view class="df fdr jcr">
<view class="btn sm black plr20" @click="handleSubmit"> <view class="btn sm black plr20" @click="handleSubmit">

View File

@ -357,6 +357,11 @@ type
0 非好友 0 非好友
1 好友 1 好友
评论列表
likeType
0 已点赞
1 未点赞
生成订单到平台客服 平台客服去跟进订单 生成订单到平台客服 平台客服去跟进订单