市北人才赋能平台 --小程序端
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.
 

328 lines
7.9 KiB

// pages/topics/index.js
import dayjs from '../../utils/dayjs/index.js'
import relativeTime from '../../utils/dayjs/relativeTime.js'
import { TopicModel } from '../../models/topic.js'
import { store } from '../../utils/store.js'
dayjs.extend(relativeTime)
let topicModel = new TopicModel()
Page({
/**
* 页面的初始数据
*/
data: {
headerTitles: ['互动区', '金点子', '留言箱'],
segmentIndex: 0,
currPage: 1,
topicList: [],
goodIdeaList: []
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function () {
},
onShow: function () {
if (store.hasBindUserInfo()) {
console.log('已经绑定微信')
if (store.hasPhone()) {
console.log('已经绑定手机号码')
// 页面出现在前台时执行
let segmentIndex = this.data.segmentIndex
if (segmentIndex === 0 || segmentIndex === 1) {
wx.pageScrollTo({
scrollTop: 0,
})
this.setData({
currPage: 1,
})
switch (this.data.segmentIndex) {
case 0:
return this.fetchTopicList()
case 1:
return this.fetchGoodIdeaList()
}
}
} else {
console.log('未绑定手机号码')
wx.showModal({
title: '温馨提示',
content: '是否前往验证手机号码?',
success(res) {
// if (res.confirm) {
// wx.redirectTo({
// url: '/pages/register/index',
// })
// } else if (res.cancel) {
// wx.switchTab({
// url: '/pages/home/index',
// })
// }
wx.redirectTo({
url: '/pages/weChatAuth/index?type=2',
})
}
})
}
} else {
console.log('未绑定微信')
wx.showModal({
title: '温馨提示',
content: '是否前往绑定微信?',
success(res) {
if (res.confirm) {
wx.redirectTo({
url: '/pages/weChatAuth/index',
})
} else if (res.cancel) {
wx.switchTab({
url: '/pages/home/index',
})
}
}
})
}
},
fetchTopicList () {
let page = this.data.currPage
topicModel.getTopicList(page, res => {
console.log('议题列表')
console.log(res)
if (res.result.list.length == 0) {
wx.showToast({
title: '暂无数据',
icon: 'none'
})
}
const datas = res.result.list
let tempDatas = []
datas.forEach((item,index) => {
tempDatas.push({
topicId: item.id,
userIcon: item.groupAvator || '',
title: item.title,
userIcon: item.groupAvator,
userName: item.author,
commentNum: item.commentNum,
topicImg: item.image,
time: item.createTime,
dataIndex:index+((page-1)*10),
isTouchMove:false,
})
})
if (page == 1) {
this.setData({
topicList: tempDatas
})
} else {
if (tempDatas.length > 0) {
const list = [...this.data.topicList, ...tempDatas]
this.setData({
topicList: list
})
} else {
const page = this.data.currPage - 1
this.setData({
currPage: page
})
wx.showToast({
title: '已加载全部',
icon: 'none'
})
}
}
console.log(this.data.topicList)
wx.stopPullDownRefresh()
})
},
onRefreshList () {
this.fetchGoodIdeaList()
},
fetchGoodIdeaList () {
let page = this.data.currPage
topicModel.goldenList(page, res => {
console.log('金点子列表')
console.log(res)
const datas = res.result.list
let tempDatas = []
datas.forEach(item => {
tempDatas.push({
// 评论数据
commentId: item.id,
commentIcon: item.commentAvator,
commentName: item.username,
commentTime: item.createTime,
comment: item.comment,
praiseNum: item.supportNum,
isSupport: item.isSupport,
// 议题数据
topicTtitle: item.title,
topicGroupAvator: item.groupAvator,
topicAuthor: item.author,
topicGroupCreateTime: item.groupCreateTime,
topicCommentNum: item.commentNum,
topicGroupId: item.groupId,
topicDetail: item.content
})
})
if (page == 1) {
this.setData({
goodIdeaList: tempDatas
})
} else {
if (tempDatas.length > 0) {
const list = [...this.data.goodIdeaList, ...tempDatas]
this.setData({
goodIdeaList: list
})
} else {
const page = this.data.currPage - 1
this.setData({
currPage: page
})
wx.showToast({
title: '已加载全部',
icon: 'none'
})
}
}
console.log(this.data.goodIdeaList)
wx.stopPullDownRefresh()
})
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
let segmentIndex = this.data.segmentIndex
if (segmentIndex === 2){
wx.stopPullDownRefresh()
}
if (segmentIndex === 0 || segmentIndex === 1) {
wx.pageScrollTo({
scrollTop: 0,
})
this.setData({
currPage: 1,
})
switch (this.data.segmentIndex) {
case 0:
return this.fetchTopicList()
case 1:
return this.fetchGoodIdeaList()
}
}
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
let segmentIndex = this.data.segmentIndex
if(segmentIndex === 2){
return
}
if (segmentIndex === 0 || segmentIndex === 1) {
const page = this.data.currPage + 1
this.setData({
currPage: page
})
switch (this.data.segmentIndex) {
case 0:
return this.fetchTopicList()
case 1:
return this.fetchGoodIdeaList()
}
}
},
// 定义点击标题的事件处理函数,将选中标题的id赋值给selectedTitle
tapSegment: function (e) {
console.log(e)
this.setData({
currPage: 1
})
const item = e.detail;
this.setData({
segmentIndex: item.index
});
switch (item.index) {
case 0:
return this.fetchTopicList()
case 1:
return this.fetchGoodIdeaList()
}
},
deleteTopic(e) {
// console.log(e.detail.id)
let that = this
topicModel.deleteGroup(e.detail.id, res => {
console.log(res)
if (res.code === 200) {
wx.showToast({
title: '删除成功',
icon: 'none',
success() {
that.setData({
currPage: 1,
})
switch (that.data.segmentIndex) {
case 0:
return that.fetchTopicList()
case 1:
return that.fetchGoodIdeaList()
}
}
})
}
})
},
deleteTopicComment(e){
let that = this
topicModel.deleteComment(e.detail.id,res=>{
if(res.code === 200){
wx.showToast({
title: '删除成功',
icon: 'none',
success() {
that.setData({
currPage: 1,
})
switch (that.data.segmentIndex) {
case 0:
return that.fetchTopicList()
case 1:
return that.fetchGoodIdeaList()
}
}
})
}
})
},
tapGoodIdeaPraise(e){
this.fetchGoodIdeaPraise(e.detail.commentId)
},
fetchGoodIdeaPraise(id) {
wx.showLoading()
topicModel.topicCommentPraise(id, res => {
if (res.code === 200) {
wx.hideLoading()
this.onPullDownRefresh()
}
})
},
})