//answer.js

let dianzan=false
var app = getApp()
Page({
  data: {
    motto: '知乎--微信小程序版',
    userInfo: {},
    feed: [],
    //修改
    pinglun:[], //评论数组
    content:'',
    detail: '',
    dianzanUrl: "../../images/heart2.png",
    comment_num:0
  },
  //事件处理函数
  // toQuestion: function() {
  //   wx.navigateTo({
  //     url: '../question/question'
  //   })
  // },
  onLoad: function (options) {
    var aid=options.aid
    console.log(options);
    console.log(options.aid);
    console.log('onLoad')
    wx.setStorageSync('aid', aid)
   

      //修改
      wx.cloud.database().collection("tiezi")
      .doc(aid)
      .get()
      .then(res => {
          console.log("详情页成功", res);
          //将收藏添加到数据库
          //shoucang = res.data.shoucang
          //dianzan = res.data.dianzan
          //console.log(shoucang, dianzan);
          //再次显示数据
          this.setData({
              detail: res.data,
              
              pinglun:res.data.pinglun
          })
      })
      .catch(err => {
          console.log("详情页失败", err);
      })
    


      var getId = options.aid;
  // 让接收到的id值传递到data:{}里面
  this.setData({
   currentId: getId
  });
  // 读取所有的文章列表点赞缓存状态
  var cache = wx.getStorageSync('cache_key');
  // 如果缓存状态存在
  if (cache) {
   // 拿到所有缓存状态中的1个
   var currentCache = cache[getId];
   // 把拿到的缓存状态中的1个赋值给data中的collection，如果当前文章没有缓存状态，currentCache 的值就是 false，如果当前文章的缓存存在，那么 currentCache 就是有值的，有值的说明 currentCache 的值是 true
   this.setData({
    collection: currentCache
   })
  } else {
   // 如果所有的缓存状态都不存在 就让不存在的缓存存在
   var cache = {};
   // 既然所有的缓存都不存在，那么当前这个文章点赞的缓存也不存在，我们可以把当前这个文章点赞的缓存值设置为 false
   cache[getId] = false;
   // 把设置的当前文章点赞放在整体的缓存中
   wx.setStorageSync('cache_key',cache);
  }
  },

  // 点击图片的点赞事件 这里使用的是同步的方式
 toCollect: function(options) {
  let aid= wx.getStorageSync ("aid")
  console.log(aid);
  // 获取所有的缓存
  var cache = wx.getStorageSync('cache_key');
  // 获取当前文章是否被点赞的缓存
  var currentCache = cache[this.data.currentId];
  // 取反，点赞的变成未点赞 未点赞的变成点赞
  currentCache = !currentCache;
  // 更新cache中的对应的1个的缓存值，使其等于当前取反的缓存值
  cache[this.data.currentId] = currentCache;
  // 重新设置缓存
  wx.setStorageSync('cache_key',cache);
  // 更新数据绑定,从而切换图片
  this.setData({
   // collection 默认的是 false
   collection: currentCache
  });
  // 交互反馈
  wx.showToast({
   title: currentCache?'点赞':'取消',
   icon: 'success',
   duration: 2000
  });
  if(currentCache==true){
    wx.cloud.database().collection("tiezi")
    .doc(aid)
    .update({
        data: {
            // 前面为数据库字段，后面为修改之后的值
            good_num: wx.cloud.database().command.inc(1),
        }
    })
    .then(res => {
        console.log("添加评论成功", res);
        return res
        
    })
    .catch(err => {
        console.log("添加评论失败", err);
        return err
        
    })
  }
  else{
    wx.cloud.database().collection("tiezi")
    .doc(aid)
    .update({
        data: {
            // 前面为数据库字段，后面为修改之后的值
            good_num: wx.cloud.database().command.inc(-1),
        }
    })
    .then(res => {
        console.log("成功", res);
        return res
    })
    .catch(err => {
        console.log("失败", err);
        return err
    })
  }
 },
  /*
  onLoad: function (options) {
    
  },*/
  tapName: function(event){
    console.log(event)
  },
 

//获取输入的值
getContent(event){
  this.setData({
      content:event.detail.value
  })
},
//发表评论
fabiao(options){
  let content=this.data.content
  if(content.length<4){
      wx.showLoading({
          icon:"none",
          title: '评论太短了',
      })
          return 
  }
  let pinglunItem={}
  pinglunItem.nickName=wx.getStorageSync ("nickName")
  pinglunItem.avatarUrl=wx.getStorageSync ("avatarUrl")
  pinglunItem.content=content
  let pinglunArr=this.data.pinglun
  pinglunArr.push(pinglunItem)
  let l= pinglunArr.length
   console.log("评论数",l)
  console.log("添加后的评论数组",pinglunArr)
  wx.showLoading({
      title: '发表中',
  })

wx.cloud.init({
  env:"cloud1-8g5wmepxce8a3b8a",
})
let aid= wx.getStorageSync ("aid")
console.log(aid);
    //异步操作
    wx.cloud.database().collection("tiezi")
    .doc(aid)
    .update({
        data: {
            // 前面为数据库字段，后面为修改之后的值
            pinglun: pinglunArr,
            comment_num:pinglunArr.length
        }
    })
    .then(res => {
        console.log("添加评论成功", res);
        return res
        
    })
    .catch(err => {
        console.log("添加评论失败", err);
        return err
        
    })
    let that = this;
    wx.hideLoading({
      success: (res) => {
        that.setData({
          pinglun:pinglunArr,
          content:''
        })
        wx.showToast({
          title: '发布成功',
        })}})
    
},
//点赞切换
clickDianzan() {
  this.setData({
      dianzanUrl: dianzan ? "../../images/heart2.png" : "../../images/heart1.png"
  })
  dianzan = !dianzan
  wx.setStorageSync ("dianzan",dianzan)
  console.log("改变点赞状态", dianzan)
},

amend: function(e) {
  let aid= wx.getStorageSync ("aid")
  console.log(aid);
  wx.showModal({
    title: '编辑',
    content: '确定要修改已发布的信息吗？',
    success(res) {
      if(res.confirm) {
        wx.redirectTo({
          url: '../change/change?aid='+aid,  
        })
        console.log('用户点击了确定')
      }else if(res.cancel) {
        console.log('用户点击了取消')
      }
    }
  })
},
delete(event){
  let aid= wx.getStorageSync ("aid")
  console.log(aid);
  wx.cloud.database().collection('tiezi')
  .doc(aid)
  .remove()
  .then(res => {
    console.log(res);
  }).catch(res => {
    console.log(res);
  })
  wx.switchTab({
    url: '../fourm/fourm'
  })
},
delete_p: function(event) {
  /*wx.navigateTo({
    url: '../answer/answer'
  })*/
  let aid= wx.getStorageSync ("aid")
  console.log(aid);
  var aidc=event.currentTarget.dataset.aidc;
  console.log(aidc)
  //console.log("1")
  wx.cloud.database().collection('tiezi')
  .where({
    '_id':aid,
    'pinglun.content':aidc
  })
  .update({
    data:{
      pinglun:wx.cloud.database().command.pull({
        content:aidc
      }),
      comment_num:wx.cloud.database().command.inc(-1)
    }
  })
  .then(res => {
    console.log(res);
    console.log(res);
    wx.showLoading({
      title: '删除成功...',
    })
    wx.redirectTo({
      url: '../answer/answer?aid='+aid,
    })
    wx.hideLoading()
  }).catch(res => {
    console.log(res);
  })
}
})