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

441 lines
10 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'
import {
UserModel
} from '../../models/user.js'
let userModel = new UserModel()
const app = getApp()
dayjs.extend(relativeTime)
let topicModel = new TopicModel()
Page({
/**
* 页面的初始数据
*/
data: {
segmentIndex: 0,
//留言互动的列表
topicList: [],
goodIdeaList: [],
//赋能中心的列表
centerList: [],
typeList: [],
page: 1,
next: true,
tab: "",
active: "1",
loan: {},
apartment: [],
nodes: '',
rentNode: '',
height: app.globalData.windowHeight - 44,
flag: 0,
//来活动
activityList: []
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function () {
this.setData({
flag: app.globalData.flag
})
wx.showShareMenu({
withShareTicket: true,
menus: ['shareAppMessage']
});
},
onShareAppMessage: function (res) {
return {
title: '市北人才赋能平台',
path: 'pages/home/index'
}
},
// onShareTimeline: function (res) {
// return {
// title: '市北人才赋能平台',
// success: function (res) {
// // 转发成功
// },
// fail: function (res) {
// // 转发失败
// }
// }
// },
//进入页面判断是否绑定微信号,如果绑定手机号根据segmentIndex的数值fetch留言互动和赋能中心的资源,否则退回注册页面或者首页
onShow: function () {
//文章关联链接跳转 显示 报需求 还是来活动 tab
let curTab = app.globalData.currentTab
if (curTab) {
// console.log("currentTab:" + curTab)
this.setData({
active: curTab,
tab: curTab
})
}
if (store.hasBindUserInfo()) {
console.log('已经绑定微信')
if (store.hasPhone()) {
console.log('已经绑定手机号码')
this.setData({
topicList: [],
goodIdeaList: [],
centerList: [],
activityList: [],
page: 1,
next: true,
})
if (!this.data.tab) {
this.setData({
tab: '1'
})
}
return this.getData(this.data.tab);
} else {
console.log('未绑定手机号码')
if (app.globalData.navigate.mobile) {
var params = {
phone: app.globalData.navigate.mobile,
nickName: app.globalData.navigate.nickname,
avatarUrl: app.globalData.navigate.faceImg
}
userModel.navigateUser(params, res => {
store.saveUserInfo({
nickName: params.nickName,
avatarUrl: params.avatarUrl,
phone: params.phone
})
wx.reLaunch({
url: '/pages/topics/index',
})
})
} else {
wx.showModal({
title: '温馨提示',
content: '是否前往验证手机号码?',
success(res) {
if (res.confirm) {
wx.redirectTo({
url: '/pages/weChatAuth/index?type=2',
})
} else if (res.cancel) {
wx.switchTab({
url: '/pages/home/index',
})
}
}
})
}
}
} else {
console.log('未绑定微信')
if (app.globalData.navigate.mobile) {
var params = {
phone: app.globalData.navigate.mobile,
nickName: app.globalData.navigate.nickname,
avatarUrl: app.globalData.navigate.faceImg
}
userModel.navigateUser(params, res => {
store.saveUserInfo({
nickName: params.nickName,
avatarUrl: params.avatarUrl,
phone: params.phone
})
wx.reLaunch({
url: '/pages/topics/index',
})
})
} else {
wx.showModal({
title: '温馨提示',
content: '是否前往绑定微信?',
success(res) {
if (res.confirm) {
wx.redirectTo({
url: '/pages/weChatAuth/index?tabType=funeng',
})
} else if (res.cancel) {
wx.switchTab({
url: '/pages/home/index',
})
}
}
})
}
}
},
changeTabs: function (e) {
console.log('点击tab--',e)
var tab = e.detail.name;
this.setData({
page: 1,
next: true,
tab: tab,
active: tab,
topicList: [],
centerList: [],
activityList: [],
})
this.getData(tab);
},
getData: function (tab) {
console.log('tab--',tab)
switch (tab) {
case "3":
return this.fetchCenterList()
case "5":
return this.fetchActivityList();
default:
return;
}
},
//留言互动
//fetch留言互动的资源
fetchTopicList() {
var th = this;
var page = th.data.page;
var list = th.data.topicList;
topicModel.getTopicList(page, res => {
console.log('议题列表')
console.log(res)
if (res.result.list.length == 0 && page == 1) {
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 (tempDatas.length > 0) {
list = list.concat(tempDatas);
th.setData({
topicList: list,
})
} else {
th.setData({
next: false,
page: page - 1
})
}
})
},
//赋能中心
fetchCenterList() {
// let page = this.data.currPage;
console.log('fetchCenterList赋能中心')
var th = this;
var page = th.data.page;
var list = th.data.centerList;
if (th.data.typeList.length == 0) {
topicModel.getResourceTypeList(res => {
this.setData({
typeList: res.result
})
})
}
topicModel.getResourceList('', page, res => {
if (res.result.records.length > 0) {
list = list.concat(res.result.records);
th.setData({
centerList: list,
nodes: res.result.agreement
})
} else {
th.setData({
next: false,
page: page - 1
})
}
})
},
fetchLoan: function () {
topicModel.getResourceDetail('aba954f98c489bddf137f6f9f83d6c89', res => {
console.log('找贷款-->', res)
this.setData({
loan: res.result,
})
})
},
fetchRent: function () {
if (this.data.apartment.length == 0) {
topicModel.getApartment(res => {
this.setData({
apartment: res.result.list,
rentNode: res.result.agreement
})
})
}
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
console.log('---触底了---')
var next = this.data.next;
var tab = this.data.tab;
var page = this.data.page;
if (!next) {
return;
}
this.setData({
page: page + 1
})
switch (tab) {
case "3":
this.fetchCenterList()
return;
case "5":
return this.fetchActivityList();
default:
return;
}
},
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.fetchCenterList()
}
}
})
}
})
},
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 3:
return that.fetchCenterList()
}
}
})
}
})
},
tapGoodIdeaPraise(e) {
this.fetchGoodIdeaPraise(e.detail.commentId)
},
fetchGoodIdeaPraise(id) {
wx.showLoading()
topicModel.topicCommentPraise(id, res => {
if (res.code === 200) {
wx.hideLoading()
this.onPullDownRefresh()
}
})
},
//活动
fetchActivityList() {
var th = this;
var page = th.data.page;
var list = th.data.activityList;
let source = ''
topicModel.getActivityList(source, page, res => {
console.log('活动列表---')
console.log(res)
if (res.result.records.length == 0 && page == 1) {
wx.showToast({
title: '暂无数据',
icon: 'none'
})
}
const datas = res.result.records
let tempDatas = []
datas.forEach((item, index) => {
tempDatas.push({
activityId: item.id,
title: item.title,
activityImg: item.titlePic,
time: item.createTime,
commentNum: item.commentNum,
dataIndex: index + ((page - 1) * 10),
isTouchMove: false,
readed: item.isRead == 0 ? false : true
})
})
if (tempDatas.length > 0) {
list = list.concat(tempDatas);
th.setData({
activityList: list,
})
} else {
th.setData({
next: false,
page: page - 1
})
}
console.log('活动列表封装--->',th.data.activityList)
})
},
changeActivityStatus:function(e){
console.log("我是被子组件触发的",e);
const {
id,
index
} = e.detail
this.setData({
[`activityList[${index}].readed`]: true
})
console.log(this.data.activityList)
}
})