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.
245 lines
5.8 KiB
245 lines
5.8 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 () {
|
|
if (store.hasPhone()) {
|
|
console.log('已经绑定手机号码')
|
|
} else {
|
|
console.log('未绑定手机号码')
|
|
wx.redirectTo({
|
|
url: '/pages/register/index',
|
|
})
|
|
}
|
|
},
|
|
onShow: function () {
|
|
// 页面出现在前台时执行
|
|
console.log('啦啦啦')
|
|
this.setData({
|
|
currPage: 1,
|
|
})
|
|
switch (this.data.segmentIndex) {
|
|
case 0:
|
|
return this.fetchTopicList()
|
|
case 1:
|
|
return this.fetchGoodIdeaList()
|
|
}
|
|
},
|
|
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,
|
|
// 议题数据
|
|
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 () {
|
|
this.setData({
|
|
currPage: 1,
|
|
})
|
|
switch (this.data.segmentIndex) {
|
|
case 0:
|
|
return this.fetchTopicList()
|
|
case 1:
|
|
return this.fetchGoodIdeaList()
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function () {
|
|
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()
|
|
}
|
|
}
|
|
})
|
|
}
|
|
})
|
|
},
|
|
tapGoodIdeaPraise(e){
|
|
this.fetchGoodIdeaPraise(e.detail.commentId)
|
|
},
|
|
fetchGoodIdeaPraise(id) {
|
|
topicModel.topicCommentPraise(id, res => {
|
|
console.log(res)
|
|
if (res.code === 200) {
|
|
wx.showToast({
|
|
title: res.message,
|
|
icon: 'none'
|
|
})
|
|
this.onPullDownRefresh()
|
|
}
|
|
})
|
|
},
|
|
})
|