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.
 

383 lines
9.0 KiB

// pages/activity/index.js
var app = getApp()
import util from "../../../utils/util"
import commonApi from "../../../utils/https/common"
Page({
/**
* 页面的初始数据
*/
data: {
isYL:false,
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
})
},
yulan:function(e){
let flag = e.currentTarget.dataset.flag;
if(flag==0 && this.data.isYL || flag==1 && this.data.isYL==false) return;
this.setData({
isYL:flag==0,
list:[],
pageNo:1,
total:1,
moreFlag:true,
})
this.getList()
},
getYL:function(){
let list = this.data.list;
commonApi._post("pbservice/Actcalendar/getActPrevList",{
page_no:this.data.pageNo,
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
})
})
},
// picker修改日期
bindDateChange:function(e){
this.setData({
selectDay: new Date(e.detail.value).getTime(),
list:[],
pageNo:1,
total:1,
date:e.detail.value,
moreFlag:true,
isYL:false
})
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,
isYL:false
})
this.getList();
},
getList:function(){
let list = this.data.list;
if(this.data.isYL){
this.getYL();
return;
}
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=>{
let now = new Date().getTime();
res.data.rows.map(item=>{
if(item.end_date){
let end_date = item.end_date;
if(end_date.indexOf(":")==-1){
end_date = end_date+" 23:59:59";
}
end_date = new Date(end_date.replace(/-/g,'/')).getTime();
if(end_date<now){
item.is_end = true;
}
else {
item.is_end = false;
}
}
})
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 () {
}
})