// 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();
    },
  }

})
