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.
454 lines
11 KiB
454 lines
11 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','huimin'],
|
|
weeks: [],
|
|
pageNo: 1,
|
|
sort: "distance",
|
|
list: [],
|
|
date: null,
|
|
total: 1,
|
|
areas: ['姑苏', '吴江', '苏州'],
|
|
area: 0,
|
|
type: 9,
|
|
movieType: 1,
|
|
moreFlag: true,
|
|
lat: "",
|
|
lon: "",
|
|
keywords: "",
|
|
realKeywords: "",
|
|
movieAreas:[],
|
|
movieArea:0
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad: function (options) {
|
|
wx.showShareMenu({
|
|
withShareTicket: true,
|
|
menus: ['shareAppMessage', 'shareTimeline']
|
|
})
|
|
this.getMovieArea()
|
|
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: "苏州市"
|
|
})
|
|
if (options.area_code) {
|
|
let index = res.data.findIndex(item => item.area_code == options.area_code);
|
|
this.setData({
|
|
area: index
|
|
})
|
|
}
|
|
this.setData({
|
|
areas: res.data
|
|
})
|
|
let that = this
|
|
wx.getLocation({
|
|
type: 'gcj02',
|
|
success: function (res) {
|
|
that.setData({
|
|
lat: res.latitude,
|
|
lon: res.longitude
|
|
})
|
|
that.getList()
|
|
},
|
|
fail: function () {
|
|
that.getList()
|
|
}
|
|
})
|
|
})
|
|
},
|
|
changeType: function (e) {
|
|
this.setData({
|
|
type: e.currentTarget.dataset.type,
|
|
list: [],
|
|
total: 1,
|
|
pageNo: 1,
|
|
moreFlag: true,
|
|
// keywords: "",
|
|
// realKeywords: ""
|
|
})
|
|
console.log(this.data.type);
|
|
this.getList();
|
|
},
|
|
getMovieArea(){
|
|
commonApi._post("act/get_suzhou_areas_syt").then(res => {
|
|
res.data.unshift({
|
|
area_id: "",
|
|
area_title: "苏州市"
|
|
})
|
|
this.setData({
|
|
movieAreas:res.data
|
|
})
|
|
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,
|
|
selectDay: null
|
|
})
|
|
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,
|
|
lon:this.data.lon,
|
|
lat:this.data.lat,
|
|
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,
|
|
lat: this.data.lat,
|
|
lon: this.data.lon,
|
|
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,
|
|
title:this.data.realKeywords
|
|
};
|
|
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';
|
|
data.city_code=this.data.movieAreas[this.data.movieArea].area_id||""
|
|
}
|
|
// 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();
|
|
},
|
|
setCity(e){
|
|
this.setData({
|
|
movieArea: e.detail.value,
|
|
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,
|
|
realKeywords:''
|
|
})
|
|
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,
|
|
date:null,
|
|
isYL: this.data.type == 4 ? false: true,
|
|
selectDay: null
|
|
|
|
})
|
|
this.getList();
|
|
},
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady: function () {},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh: function () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom: function () {
|
|
this.getList()
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage: function () {
|
|
|
|
},
|
|
|
|
onShareTimeline: function() {
|
|
return {
|
|
title: '君到苏州-活动日历',
|
|
query: '',
|
|
imageUrl: 'https://static.ticket.sz-trip.com/xcxImages/index/icon1New.png'
|
|
}
|
|
}
|
|
|
|
})
|