123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- // component/comment.js
- import httpRequestApi from '../../utils/APIClient';
- import {
- formatDate
- } from '../../utils/util';
- Component({
- /**
- * 组件的属性列表
- */
- properties: {
- commentId: {
- type: Number,
- observer: function observer(id) {
- this.getReply(id)
- }
- }
- },
- /**
- * 组件的初始数据
- */
- data: {
- inputValue: '',
- showControl: 0,
- commentNum: 0,
- commentList: [],
- ifGetFocus: false,
- replyType: 'works' ,// 回复类型,works是回复作品,comment是回复评论
- isScroll: true
- },
- /**
- * 组件的方法列表
- */
- methods: {
- // 获取评论信息
- getReply: function (columnId) {
- httpRequestApi.getReply(this.uid, columnId, 1, 10).success((res) => {
- console.log('reply', res)
- const commentList = res.data.data.list;
- const commentNum = res.data.data.totalSize;
- console.log('评论数量', commentNum)
- commentList.forEach((item) => {
- const temp = {};
- temp.nickName = item.user.wechatName;
- temp.avatar = item.user.avatar;
- temp.uid = item.user.uid;
- temp.text = item.detailDesc;
- temp.id = item.id;
- temp.replyCount = item.replyCount;
- temp.time = formatDate(item.gmtCreated, 3);
- temp.likes = item.likeCount || 0;
- temp.isLike = item.isLike;
- temp.replyList = item.replyVOList;
- temp.showControl = 0;
- this.data.commentList.push(temp);
- });
- this.setData({
- commentList: this.data.commentList,
- commentNum: commentNum
- }, () => {
- console.log('评论列表', this.data.commentList)
- })
- });
- },
- showMore: function showMore(e) {
- let index = e.currentTarget.dataset.index || index === 0 ? e.currentTarget.dataset.index : e.target.dataset.index;
- let str = `commentList[${index}].showControl`;
- this.setData({
- [str]: 10
- })
- console.log('showControl', this.data.commentList[index].showControl)
- },
- textInput: function (e) {
- console.log('键入', e.detail.value)
- this.setData({
- inputValue: e.detail.value
- })
- },
- // 获取焦点事件
- bindfocus(e) {
- this.setData({
- isScroll: false
- })
- // this.triggerEvent('inputFocus');
- },
- // 失去焦点事件
- closeblur(e) {
- this.setData({
- isScroll: true
- })
- // this.triggerEvent('inputBlur');
- },
- // 评论作品
- sendReply: function sendReply(e) {
- console.log('sendReply', e.detail.value)
- if (this.data.replyType === 'works') {
- let data = {
- columnId: this.data.commentId,
- colunmNames: 'what',
- detailDesc: e.detail.value ? e.detail.value : this.data.inputValue,
- }
- this.replyWorks(data);
- }
- if (this.data.replyType === 'comment') {
- let data = {
- postsId: this.data.postId,
- content: e.detail.value ? e.detail.value : this.data.inputValue
- }
- console.log(321232123123, data)
- this.replyComment(data);
- }
- },
- // 点赞评论
- likeComment: function (e) {
- console.log(e);
- let postId = e.currentTarget.dataset.id ? e.currentTarget.dataset.id : e.target.dataset.id;
- let index = e.currentTarget.dataset.index || e.currentTarget.dataset.index === 0 ? e.currentTarget.dataset.index : e.target.dataset.index;
- httpRequestApi.likeCommend(postId).success(res => {
- console.log('点赞点赞点赞', res.data);
- const str = `commentList[${index}].likes`;
- const strImg = `commentList[${index}].isLike`;
- if (res.data.data) {
- this.setData({
- [str]: res.data.data,
- [strImg]: true
- })
- }
- if (res.data.count > 0) {
- this.setData({
- flowerNum: res.data.count
- })
- this.flowerAnimationHandler();
- }
- });
- },
- // 回复作品
- replyWorks: function (data) {
- httpRequestApi.postReply(data).success(res => {
- console.log(res)
- this.setData({
- pageNo: 1,
- commentList: []
- }, () => {
- this.getReply(this.data.commentId);
- this.setData({
- inputValue: '',
- })
- if (res.data.count > 0) {
- this.setData({
- flowerNum: res.data.count
- })
- this.flowerAnimationHandler();
- }
- })
- });
- },
- catchComment: function catchComment(e) {
- let postId = e.currentTarget.dataset.id ? e.currentTarget.dataset.id : e.target.dataset.id;
- let index = e.currentTarget.dataset.index || e.currentTarget.dataset.index === 0 ? e.currentTarget.dataset.index : e.target.dataset.index;
- this.setData({
- postId: postId,
- replyType: 'comment',
- ifGetFocus: true,
- postIndex: index
- })
- console.log(this.data.ifGetFocus)
- },
- // 回复评论
- replyComment: function (data) {
- httpRequestApi.postReplyComment(data).success(res => {
- this.setData({
- replyInfo: '',
- }, () => {
- this.getReplyInner(this.data.commentId);
- this.setData({
- inputValue: '',
- replyType: 'works',
- ifGetFocus: false
- })
- if (res.data.count > 0) {
- this.setData({
- flowerNum: res.data.count
- })
- this.flowerAnimationHandler();
- }
- });
- });
- },
- // 发布楼中楼评论后渲染之前列表
- getReplyInner: function (columnId) {
- httpRequestApi.getReply(this.uid, columnId, 1, 10).success((res) => {
- const commentList = res.data.data.list;
- commentList.forEach((item, index) => {
- console.log('回复列表', index)
- console.log('回复列表', this.data.postIndex)
- if (index === this.data.postIndex) {
- let replyList = item.replyVOList;
- console.log('回复列表', replyList)
- let str = `commentList[${index}].replyList`;
- let strShow = `commentList[${index}].showControl`;
- let strReply = `commentList[${index}].replyCount`;
- this.setData({
- [str]: replyList,
- [strShow]: 10,
- [strReply]: replyList.length
- }, () => {
- console.log('刷新后列表', this.data.commentList)
- })
- return;
- };
- })
- });
- },
- flowerAnimationHandler: function () {
- this.flowerBox = this.selectComponent("#flower-toast");
- console.log('this.flower', this.flowerBox)
- this.flowerBox.comeOut();
- },
- }
- })
|