//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: '../index/index' }) }, 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); }) } })