// subpages/associationNew/pages/eventlist/eventlist.js const app = getApp() import { topiclist, commentSubmit, statement, shieldTopic } from "../../utils/api" import { getTimestamp } from "../../../../utils/common" Page({ /** * 页面的初始数据 */ data: { topiclist: [], timestamp: "", pageIndex: 1, pageSize: 10, partyGroupId: "",//党群id topicType: "",//0:事好儿鼓个掌 1:话对捧个场 nodata: false, loadMoreType: "none", loadMoreVisible: false, bannedFlag: "",//是否禁言 0:否 1:是 ifcomment: false,//是否显示评论 focus: false, topicId: "",//被评论的话题ID commentContent: "", index: 0,//点击的第几条数据,用于评论的局部刷新用 infoCompleted: 0, completeInfoDialogVisible: false, ifpreviewImage:false,//解决图片放大刷新列表的问题 commentViewContent: "发个小看法", // 写评论按钮 文字内容 violationsCount: 0, isConReview: false, lastTopicId: "", currentUserIdentity: "", //当前用户是否 -群主0-副群主1-群成员2 showModal: false, //是否显示屏蔽原因模态框 shieldId: '', //被屏蔽话题的ID shieldReason: '', //屏蔽的原因 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.setData({ partyGroupId: options.partyGroupId, topicType: options.topicType,//0:事好儿鼓个掌 1:话对捧个场 infoCompleted: app.globalData.infoCompleted, commentViewContent: '发个小看法' //options.topicType == 0 ? '鼓个掌' : '捧个场' }) if (options.topicType == 0) { wx.setNavigationBarTitle({ title: "事好鼓个掌" }) } else { wx.setNavigationBarTitle({ title: "话对捧个场" }) } }, // 查列表 topiclist () { let that = this; const para = { pageIndex: this.data.pageIndex, pageSize: this.data.pageSize, timestamp: getTimestamp(), topicType: this.data.topicType, partyGroupId: this.data.partyGroupId, //党群id partyTopicId:"" } topiclist(para).then(res => { wx.stopPullDownRefresh(); that.setData({ bannedFlag: res.data.bannedFlag, currentUserIdentity: res.data.currentUserIdentity, nodata: false, topiclist: that.data.topiclist.concat(res.data.topicList), loadMoreType: res.data.topicList.length === that.data.pageSize ? "loading" : "none", loadMoreVisible: res.data.topicList.length === that.data.pageSize ? false : true }) if (that.data.topiclist.length == 0) {//没有值 that.setData({ nodata: true, loadMoreType: "none", loadMoreVisible: false, }) } }).catch(err => { wx.stopPullDownRefresh(); that.setData({ topiclist: [], nodata: true, loadMoreType: "none", loadMoreVisible: false, }) console.log(err) }) }, // 跳转 发布话题 navigateToAddTopic () { if (this.verifyCompleteInfo()) { return false } wx.navigateTo({ url: `/subpages/associationNew/pages/addTopic/addTopic?partyGroupId=${this.data.partyGroupId}&topicType=${this.data.topicType}` }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { if(this.data.ifpreviewImage){ this.setData({ ifpreviewImage:false }) } else { this.setData({ pageIndex: 1, pageSize: 10, nodata: false, loadMoreType: "none", loadMoreVisible: false, topiclist: [], }) this.topiclist() } }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { this.setData({ pageIndex: 1, pageSize: 10, nodata: false, loadMoreType: "none", loadMoreVisible: false, topiclist: [], }) this.topiclist() }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { this.setData({ loadMoreVisible: true }) if (this.data.loadMoreType === "loading") { this.setData({ pageIndex: this.data.pageIndex + 1, pageSize: this.data.pageSize, }) this.topiclist() } }, //点赞 clicklike (e) { if (this.verifyCompleteInfo()) { return false } this.setData({ index: e.currentTarget.dataset.index }) // if (this.data.bannedFlag == "1") {//被禁言 wx.showToast({ title: "您已经被禁言", icon: "none", duration: 2000 }) return false } let attitude = "" if (e.currentTarget.dataset.likeflag == "0") {//点赞 attitude = 0 } else { attitude = 2 } let that = this; const para = { topicId: e.currentTarget.dataset.id,//被评论的话题ID attitude: attitude,//表态 0赞;1踩;2取消赞;3取消踩 } statement(para).then(() => { // 点赞成功以后实现局部刷新功能 that.nowLikesList(e.currentTarget.dataset.id); }).catch(err => { console.log(err) }) }, // Textarea获取焦点 clickTextarea (e) { if (this.verifyCompleteInfo()) { return false } let index = e.currentTarget.dataset.index if (this.data.bannedFlag == "1") {//被禁言 wx.showToast({ title: "您已经被禁言", icon: "none", duration: 2000 }) return false } if (this.data.topicId != e.currentTarget.dataset.id) { this.data.violationsCount = 0 } this.setData({ ifcomment: true, focus: true, topicId: e.currentTarget.dataset.id, index: index }) }, // 失去焦点 bindAddressInput () { setTimeout(() => { if (this.data.violationsCount != 2){ this.setData({ //失去焦点以后view隐藏 ifcomment: false, commentContent: "" }) } }, 500); }, // 双向绑定 bindIdentity (e) { this.setData({ commentContent: e.detail.value }) }, // 评论按钮点击事件 commentSubmit () { if (this.data.commentContent == '') { wx.showToast({ title: "请输入评论内容", icon: "none", duration: 1500 }) return } let that = this; const para = { topicId: that.data.topicId,//被评论的话题ID faCommentId: "",//父评论(被评论)ID content: that.data.commentContent,//评论内容 isConReview: that.data.isConReview } commentSubmit(para).then(res => { // 评论成功以后,调用接口比对出当前评论列表的数据,对已有列表数据进行替换 if (res.code == 0) { this.setData({ violationsCount: 0, isConReview: false, ifcomment: false, commentContent: "" }) that.NowTopiclist() } else if (res.code == 533) { this.data.violationsCount++ if (this.data.violationsCount == 1){ wx.showToast({ title: res.msg, icon: "none", duration: 2000 }) } else if (this.data.violationsCount == 2) { wx.showModal({ title: '提示', content: '您提交的内容再次被判定为违规,您确定是否要提交?', success (res) { if (res.confirm) { console.log('用户点击确定') that.setData({ isConReview: true }) that.commentSubmit() } else if (res.cancel) { console.log('用户点击取消') that.setData({ violationsCount: 0, isConReview: false, ifcomment: false, commentContent: "" }) } } }) } } }).catch(err => { console.log(err) }) }, // 列表内当前操作的数据 NowTopiclist () { let that = this; const para = { pageIndex: 1, pageSize: 1, timestamp: getTimestamp(), topicType: that.data.topicType, partyGroupId: that.data.partyGroupId, //党群id partyTopicId: that.data.topicId } topiclist(para).then(res => { console.log(JSON.stringify(res)) // 评论成功以后实现局部刷新功能 var obj = that.data.topiclist[that.data.index] // 评论成功以后评论数量加1 // obj.commentNum = obj.commentNum + 1 // obj.comments.splice(0, 0, {username:obj.nickname,content:para.content}); obj = res.data.topicList[0] that.setData({ ["topiclist[" + that.data.index + "]"]: obj }) }).catch(err => { console.log(err) }) }, //列表照片的放大查看 previewImage (e) { this.setData({ ifpreviewImage:true }) app.globalData.previewImage = true wx.previewImage({ urls: e.currentTarget.dataset.imgarry, current: e.currentTarget.dataset.src }) }, // 检查 是否完善信息 verifyCompleteInfo () { if (this.data.infoCompleted == 0) { this.setData({ completeInfoDialogVisible: !this.data.completeInfoDialogVisible }) return true } else { return false } }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, /** * 点赞后局部更新内容 */ nowLikesList (topicId) { let that = this; const para = { pageIndex: 1, pageSize: 10, timestamp: getTimestamp(), topicType: this.data.topicType, partyGroupId: this.data.partyGroupId, //党群id partyTopicId: topicId } topiclist(para).then(res => { var obj = that.data.topiclist[that.data.index] obj = res.data.topicList[0] // // obj.likeFlag = obj.likeFlag == '0' ? '1' : '0' // obj.supportNum = obj.likeFlag == '1' ? obj.supportNum + 1 : obj.supportNum - 1 that.setData({ ["topiclist[" + that.data.index + "]"]: obj }) }).catch(err => { console.log(err) }) }, /* * 前往论坛指南页面 */ navToForumGuide () { console.log("前往论坛指南") wx.navigateTo({ url: `/subpages/associationNew/pages/guideInfo/guideInfo?partyGroupId=${this.data.partyGroupId}` }) }, // 群主或副群主 屏蔽话题操作 shieldTopic (e) { this.setData({ showModal: true, shieldId: e.currentTarget.dataset.id, shieldReason: '' }) }, modalCancel (e) { this.setData({ showModal: false, shieldReason: '' }) }, modalConfirm (e) { this.setData({ showModal: false, shieldReason: e.detail.data }) const param = { id: this.data.shieldId, shieldReason: this.data.shieldReason } shieldTopic(param).then( res => { console.log(res.data) if (res.code == '0') { wx.showToast({ title: '屏蔽成功', icon: 'none', duration: 2000 }) this.setData({ pageIndex: 1, pageSize: 10, nodata: false, loadMoreType: "none", loadMoreVisible: false, topiclist: [], }) this.topiclist() } }) } })