You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
546 lines
14 KiB
546 lines
14 KiB
// subpages/associationNew/pages/eventlist/eventlist.js
|
|
const app = getApp()
|
|
import { topiclist, commentSubmit, statement, shieldTopic, topTopic } 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: '', //屏蔽的原因
|
|
lock: false, //锁定发布状态,防止连击
|
|
},
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
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
|
|
})
|
|
// <!-- 用户是否已点赞 0否;1是 -->
|
|
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
|
|
}
|
|
this.setData({
|
|
lock: true
|
|
})
|
|
let that = this;
|
|
const para = {
|
|
topicId: that.data.topicId,//被评论的话题ID
|
|
faCommentId: "",//父评论(被评论)ID
|
|
content: that.data.commentContent,//评论内容
|
|
isConReview: that.data.isConReview
|
|
}
|
|
commentSubmit(para).then(res => {
|
|
// 评论成功以后,调用接口比对出当前评论列表的数据,对已有列表数据进行替换
|
|
this.setData({
|
|
lock: false
|
|
})
|
|
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)
|
|
this.setData({
|
|
lock: false
|
|
})
|
|
})
|
|
},
|
|
|
|
// 列表内当前操作的数据
|
|
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]
|
|
// <!-- 用户是否已点赞 0否;1是 -->
|
|
// 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()
|
|
}
|
|
})
|
|
},
|
|
topTopic (e) {
|
|
const param = {
|
|
topicId: e.currentTarget.dataset.id,
|
|
topFlag: '1'
|
|
}
|
|
let that = this
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: '确定要把选择的话题置顶?',
|
|
confirmColor: '#04BCA0',
|
|
cancelColor: '#999',
|
|
success (res) {
|
|
if (res.confirm) {
|
|
console.log('用户点击确定')
|
|
topTopic(param).then( res => {
|
|
console.log(res.data)
|
|
if (res.code == '0') {
|
|
wx.showToast({
|
|
title: '置顶成功',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
that.setData({
|
|
pageIndex: 1,
|
|
pageSize: 10,
|
|
nodata: false,
|
|
loadMoreType: "none",
|
|
loadMoreVisible: false,
|
|
topiclist: [],
|
|
})
|
|
that.topiclist()
|
|
}
|
|
})
|
|
} else if (res.cancel) {
|
|
console.log('用户点击取消')
|
|
}
|
|
}
|
|
})
|
|
},
|
|
unTopTopic (e) {
|
|
const param = {
|
|
topicId: e.currentTarget.dataset.id,
|
|
topFlag: '0'
|
|
}
|
|
let that = this
|
|
wx.showModal({
|
|
title: '提示',
|
|
content: '确定要取消该话题的置顶?',
|
|
confirmColor: '#04BCA0',
|
|
cancelColor: '#999',
|
|
success (res) {
|
|
if (res.confirm) {
|
|
console.log('用户点击确定')
|
|
topTopic(param).then( res => {
|
|
console.log(res.data)
|
|
if (res.code == '0') {
|
|
wx.showToast({
|
|
title: '取消置顶成功',
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
that.setData({
|
|
pageIndex: 1,
|
|
pageSize: 10,
|
|
nodata: false,
|
|
loadMoreType: "none",
|
|
loadMoreVisible: false,
|
|
topiclist: [],
|
|
})
|
|
that.topiclist()
|
|
}
|
|
})
|
|
} else if (res.cancel) {
|
|
console.log('用户点击取消')
|
|
}
|
|
}
|
|
})
|
|
}
|
|
})
|