const util = require('../../utils/util.js') Page({ /** * 页面的初始数据 */ data: { pageToken: 0, mainDatas: [], toggleEnable: true, filterList: 0, filterItem: ['', '', '', ''], filterName: [{}, { title: '信息类型', children: [{ title: '通知', children: [{ title: '生活通知', children: ['水电通知', '缴费通知', '假期通知', '后勤通知', '图书馆通知'] }, { title: '学业通知', children: ['选课通知', '竞赛通知', '考试通知'] }, { title: '其他通知', children: ['其他通知'] } ] }, { title: '活动', children: ['志愿活动', '文艺活动', '体育活动', '学术活动', '素质拓展', '精品课程', '其他活动'] }, { title: '纳新', children: ['社团纳新', '组织纳新'] } ] }, { title: '发布来源', children: ['我关注的', '社团', '组织', '权服侠', '学校部门'] }, { title: '我的需求', children: ['二课分', '三课分', '四课分', '勤工助学', '志愿者小时数', '综素'] } ] }, showList: function (id) { this.data.toggleEnable = false this.setData({ filterList: id }) this.animate('#arrow' + id, [{ rotate: 0 }, { rotate: 180 }, ], 150) this.animate('#list' + id, [{ opacity: 0 }, { opacity: 1 }, ], 150) setTimeout(function () { this.setData({ toggleEnable: true }) }.bind(this), 200) }, hideList: function (id) { this.data.toggleEnable = false this.animate('#arrow' + id, [{ rotate: 180 }, { rotate: 360 }, ], 150) this.animate('#list' + id, [{ opacity: 1 }, { opacity: 0 }, ], 150, function () { this.setData({ filterList: 0 }) }.bind(this)) setTimeout(function () { this.setData({ toggleEnable: true }) }.bind(this), 200) }, toggleFilterList: function (e) { if (!this.data.toggleEnable) return const list = e.currentTarget.dataset.filterList if (this.data.filterList === list) { if (this.data.filterList !== 0) { this.hideList(this.data.filterList) } } else { if (this.data.filterList !== 0) { this.hideList(this.data.filterList) } if (list !== 0) { this.showList(list) } } }, toggleFilterItem: function (e) { if (!this.data.toggleEnable) return if (this.data.filterList !== 0 && this.data.filterList === e.currentTarget.dataset.filterList) { var item = e.currentTarget.dataset.filterItem var arr = this.data.filterItem arr[this.data.filterList] = arr[this.data.filterList] === item ? '' : item; this.setData({ filterItem: arr }) this.updateData() this.hideList(this.data.filterList) } }, filterMsgType: function (e) { this.data.filterItem[1] = e.detail.type this.setData({ filterItem: this.data.filterItem }) this.updateData() }, filterTag: function (e) { this.data.filterItem[3] = e.detail.tag this.setData({ filterItem: this.data.filterItem }) this.updateData() }, updateData: function () { for (let i = 0; i < this.data.mainDatas.length; i++) { this.data.mainDatas[i].show = (this.data.filterItem[1] === '' || this.data.mainDatas[i].type.indexOf(this.data.filterItem[1]) !== -1) && (this.data.filterItem[2] === '' || this.data.filterItem[2] === this.data.mainDatas[i].publisher.type) && (this.data.filterItem[3] === '' || this.data.mainDatas[i].tag.indexOf(this.data.filterItem[3]) !== -1) } this.setData({ mainDatas: this.data.mainDatas }) }, loadMessageData: function (refresh) { wx.showNavigationBarLoading() wx.cloud.callFunction({ name: 'listMessages', data: { page_token: refresh ? 0 : this.data.pageToken, page_size: 20 } }).then(res => { wx.hideNavigationBarLoading() if (res.result.status !== 'OK') { wx.showToast({ title: res.result.errMsg, icon: 'none' }) return } for (let i = 0; i < res.result.list.length; i++) { res.result.list[i] = util.dbToMsg(res.result.list[i]) } this.setData({ mainDatas: refresh ? res.result.list : this.data.mainDatas.concat(res.result.list), pageToken: res.result.next_page_token }) this.updateData() }) }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.loadMessageData(true) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { this.loadMessageData(true) }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { this.loadMessageData(false) }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })