纸通宝小程序
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.
 

128 lines
3.6 KiB

// pages/message/index.js
import { getSuccessNotices } from "../../../api/ztb"
const event = require('../../../utils/event')
const util = require('../../../utils/util')
const app = getApp()
Component({
options: {
addGlobalClass: true,
multipleSlots: true
},
properties:{
cityName: { //这个是可以自定义最外层的view的样式
type: String,
value: ''
}
},
/**
* 页面的初始数据
*/
data: {
height: app.globalData.safeFragmentHeight - 270,
safeBottom: app.globalData.safeBottom,
kg: app.globalData.kg,
firstShow: false,
noticeList: [],
tabList: [ '推荐', '关注', '全部' , '资讯'],
tabIndex: 0,
},
lifetimes: {
// 生命周期函数,可以为函数,或一个在methods段中定义的方法名
attached: function () {
event.on('EventMessage', this, this.onEvent)
},
detached: function () {
event.remove('EventMessage', this)
}
},
methods: {
onRestart: function () {
if(!this.data.firstShow){
this.setData({
height: app.globalData.safeFragmentHeight - 270,
StatusBar: app.globalData.StatusBar || 40,
customHeight: app.globalData.customHeight,
safeBottom: app.globalData.safeBottom,
tabIndex: 0,
firstShow: true
})
}
this.data.firstShow = true
if(!this.data.noticeList.length){
this.fetchNoticeList()
}
this.onResume()
},
onEvent: function (message) {
if (message.what == 10 && app.globalData.isVIP == 1) {
// this.setData({ token: app.globalData.token })
// this.onRefreshList()
} else if(message.what == 888){
} else if(message.what == 444){
this.setData({ cityName: app.nowCity.cityName })
}
},
chooseCalendar: function(){
this.triggerEvent("calendar", {})
},
onCalendarChange: function(date){
console.log(date)
},
chooseCity: function(){
wx.navigateTo({url: `/pages/home/city-select/index?type=1` })
},
feedback: function(){
util.navigateTo('/pages/article/feedback/index')
},
searchList: function(){
util.navigateTo('/pages/mall/search-list/index')
},
onTabChange: function({detail}){
if(this.data.tabIndex == Number(detail.index)){
return
}
this.setData({ tabIndex: Number(detail.index) })
this.onResume()
},
fetchNoticeList: function(){
if (this.data.loopRequesting) {
return
}
this.data.loopRequesting = true
getSuccessNotices().then(result => {
this.data.loopRequesting = false
this.data.noticeList = []
if(result.data && result.data.length){
for (let index = 0; index < result.data.length; index++) {
this.data.noticeList.push(result.data[index].msg)
}
this.setData({noticeList: this.data.noticeList})
}
}).catch(err => {
this.data.loopRequesting = false
})
},
toNotice: function(e){
var item = this.data.noticeList[e.currentTarget.dataset.index]
console.log(item)
},
onResume: function(){
var fragment = null
if(this.data.tabIndex == 0){
fragment = this.selectComponent('#recommend')
} else if(this.data.tabIndex == 1){
fragment = this.selectComponent('#attention')
} else if(this.data.tabIndex == 2){
fragment = this.selectComponent('#theall')
} else if(this.data.tabIndex == 3){
fragment = this.selectComponent('#information')
}
if (fragment) {
fragment.onRestart()
}
}
}
})