// 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, defaultDate: "2020-3-31", startDay: "sunday" }, /** * 生命周期函数--监听页面加载 */ 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() } }) }) }, selectDate: function (e) { console.log(e.detail); this.setData({ date: e.detail, pageNo: 1, list: [], total: 1, moreFlag: true }) this.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 // }) util.goMovieDetail(item.third_id || item.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' } } })