// pages/activity/index.js var app = getApp() import util from "../../../utils/util" import commonApi from "../../../utils/https/common" Page({ /** * 页面的初始数据 */ data: { selectDay:new Date().getTime(), days: ['日','一','二','三','四','五','六'], types:[null,'show','exhibition','scene','movie','lecture','other'], weeks:[], pageNo:1, sort:"", list:[], date:null, total:1, areas:['姑苏','吴江','苏州'], area:0, type:2, movieType:1, moreFlag:true, lat:"", lon:"", keywords:"", realKeywords:"" }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { let d = new Date(); let month = d.getMonth() + 1,day = d.getDate(); month = month>10?month:("0"+month); day = day>10?day:("0"+day); this.setData({ selectDay:d.getTime(), date:d.getFullYear()+"-"+month+"-"+day }) this.getWeekDay(); commonApi._post("pbservice/Other/getSuzhouAreas").then(res=>{ res.data.unshift({ area_code:"", area_name:"苏州市" }) this.setData({ areas:res.data }) this.getList() }) }, changeType:function(e){ this.setData({ type:e.currentTarget.dataset.type, list:[], total:1, pageNo:1, moreFlag:true, keywords:"", realKeywords:"" }) this.getList(); }, changeArea:function(e){ this.setData({ area:e.detail.value, list:[], total:1, pageNo:1, moreFlag:true }) this.getList() }, // 获取当前选择日期的一周日期范围 getWeekDay:function(){ var myDate = this.data.selectDay, daySecond = 24 * 60 * 60 * 1000,reslist=[]; for (let i = myDate - daySecond * 3; i <= myDate + daySecond * 3; i = i + daySecond){ let day = new Date(i),putDate = day.getDate(); putDate = putDate>=10?putDate:'0'+putDate let item = { times:i, day:this.data.days[day.getDay()], date:putDate, isSelect:i==myDate }; reslist.push(item); } this.setData({ weeks: reslist }) }, // picker修改日期 bindDateChange:function(e){ console.log(e) this.setData({ selectDay: new Date(e.detail.value).getTime(), list:[], pageNo:1, total:1, date:e.detail.value, moreFlag:true }) this.getWeekDay(); this.getList(); }, // 点击修改日期 changeDate:function(e){ let times = e.currentTarget.dataset.times,d = new Date(times); let month = d.getMonth()+1,day = d.getDate(); month = month>10?month:('0'+month); day = day>10?day:('0'+day); this.setData({ selectDay: times, date:d.getFullYear()+"-"+month+"-"+day, list:[], pageNo:1, total:1, moreFlag:true }) this.getList(); }, getList:function(){ let list = this.data.list; if(this.data.type==4){ this.getMovie(); return; } if(list.length>=this.data.total) return; commonApi._post('pbservice/Actcalendar/getActList',{ page_no:this.data.pageNo, date:this.data.date, category:this.data.types[this.data.type], keywords:this.data.realKeywords, area_key:this.data.areas[this.data.area].area_code, page_num:10 }).then(res=>{ this.setData({ total:res.data.total, list:list.concat(res.data.rows), pageNo:this.data.pageNo+1 }) }) }, getMovie:function(e){ if(!this.data.moreFlag) return; let service={ 1:"getHotMovieList", 2:"getCinemaList", 3:'getSoonShowsList' }; let data = { page:this.data.pageNo, pageSize:10 }; if(this.data.movieType==2){ data.lat = this.data.lat; data.lon = this.data.lon; data.is_price_sort = this.data.sort=='price'; data.is_distance_sort = this.data.sort=='distance'; } // if(this.data.movieType==1){ // data.queryDate = this.data.date // } if(this.data.movieType==2 && !this.data.lon){ wx.getLocation({ type: 'gcj02', success:(res)=>{ this.setData({ lat:res.latitude, lon:res.longitude }) data.lat =res.latitude; data.lon =res.longitude; commonApi._post('Cinema/'+service[this.data.movieType],data).then(res=>{ res.data.map(item=>{ if(item.distance || item.distance==0){ if(item.distance>=1000){ item.distance = (item.distance/1000).toFixed(2)+'km'; } else { item.distance = (item.distance).toFixed(2)+'m'; } } }) this.setData({ list:this.data.list.concat(res.data), pageNo:this.data.pageNo+1, moreFlag:res.data.length<10?false:true }) }) }, fail:()=>{ wx.showToast({ title: '请打开位置授权', icon:'none' }) commonApi._post('Cinema/'+service[this.data.movieType],data).then(res=>{ this.setData({ list:this.data.list.concat(res.data), pageNo:this.data.pageNo+1, moreFlag:res.data.length<10?false:true }) }) } }) } else { commonApi._post('Cinema/'+service[this.data.movieType],data).then(res=>{ res.data.map(item=>{ if(item.distance || item.distance==0){ if(item.distance>=1000){ item.distance = (item.distance/1000).toFixed(2)+'km'; } else { item.distance = (item.distance).toFixed(2)+'m'; } } }) this.setData({ list:this.data.list.concat(res.data), pageNo:this.data.pageNo+1, moreFlag:res.data.length<10?false:true }) }) } }, setSort:function(e){ let sort = e.currentTarget.dataset.sort; if(this.data.sort==sort) sort=""; this.setData({ sort:sort, list:[], total:1, pageNo:1, moreFlag:true }) this.getList(); }, changeMovieType:function(e){ let type = e.currentTarget.dataset.type; this.setData({ movieType:type, list:[], pageNo:1, total:1, moreFlag:true }) this.getList() }, gotoDetail:function(e){ let item = e.currentTarget.dataset.item; if(this.data.type==4 && this.data.movieType!=2){ wx.navigateTo({ url: '/pages/list/movieticket/list/info/index?id='+item.third_id }) } else if(this.data.type==4){ wx.navigateTo({ url: '/pages/list/movieticket/list/cinema/index?id='+item.third_id }) } else { wx.navigateTo({ url: '/pages/info/activityInfo/index?id='+item.id, }) } }, changeKeywords:function(e){ this.setData({ keywords:e.detail.value }) }, search:function(){ this.setData({ realKeywords:this.data.keywords, list:[], pageNo:1, total:1, moreFlag:true }) this.getList(); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { this.getList() }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })