//index.js //获取应用实例 const app = getApp() const QQMapWX = require('../../utils/qqmap-wx-jssdk.js'); const qqmapsdk = new QQMapWX({ key: '36IBZ-VI53O-FJHW2-SV2NP-USSAE-GFBUS' }) Page({ data: { userInfo: {}, list: [], BASEIMGURL: app.globalData.BASEIMGURL, BASEIMGURL1: app.globalData.BASEIMGURL1, loading: true, hideGetInfo: true }, onLoad: function () { this.setData({ BASEIMGURL: app.globalData.BASEIMGURL }) if (app.globalData.userInfo) { this.setData({ userInfo: app.globalData.userInfo }); this.getList(); } else { // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回 // 所以此处加入 callback 以防止这种情况 app.userInfoReadyCallback = res => { this.setData({ userInfo: res }) this.getList(); }; } }, goDetail(e) { let id = e.currentTarget.dataset.id; let currentActivity = this.data.list.filter(v => { return v.id == id; }); app.globalData.currentActivity = currentActivity[0]; wx.navigateTo({ url: '/pages/detail/index?actid=' + id, }) }, async getList() { if (!app.globalData.userInfo.phone) { return this.setData({ hideGetInfo: false }) }; try { let result = await app.globalData.api.activity_list_mine(app.globalData.userInfo.phone); const lngArr = []; result.data.forEach(v => { //判断当前时间是否大于活动结束时间 let myDate = new Date(); let now = myDate.valueOf(); let time = new Date(v.endtime).valueOf(); if (app.globalData.systemInfo.platform == 'ios') { let _date = v.endtime.replace(/\.|\-/g, '/'); time = new Date(_date).valueOf(); } if (now > time) { v.isoverdue = true; } else { v.isoverdue = false; } v.starttime = v.starttime.substr(0, 16) v.shareMember = 0; if (v.images) { try { v.imgList = JSON.parse(v.images); } catch (error) { } } if (v.members) { v.membersList = v.members.split(';').filter(v => { return v != ''; }) if (v.membersList.indexOf(app.globalData.userInfo.phone || '0') > -1) { v.shareMember = 1; } } if (!!v.latitude && !!v.longitude) { lngArr.push({ latitude: v.latitude, longitude: v.longitude }) } }); this.setData({ list: result.data, loading: false }) if (lngArr.length) { this.getDistance(lngArr); } } catch (error) { console.log(error) } }, getDistance(localresult) { const that = this; qqmapsdk.calculateDistance({ to: localresult, //终点坐标 success: function (res) { //成功后的回调 console.log(res, 8888) let newList = that.data.list; res.result.elements.map(v => { newList.map(j => { if (v.to.lat == j.latitude && v.to.lng == j.longitude) { j.distance = v.distance; } }) }); that.setData({ list: newList }) //判断经纬度,获取具体门店,付值 distance // resolve(res.result.elements[0].distance); }, fail: function (error) { console.error(error); }, complete: function (res) {} }); }, goEdit(e) { let actid = e.currentTarget.dataset.id; wx.navigateTo({ url: '/pages/add/index?actid=' + actid, }) }, userInfoHandler(e) { console.log(e) const that = this; if (e.detail.errMsg == "getUserInfo:ok") { let userInfo = e.detail.userInfo; let params = Object.assign({}, { openid: app.globalData.userInfo.openid, nickName: userInfo.nickName, gender: userInfo.gender, avatarUrl: userInfo.avatarUrl }); app.globalData.api.binduserinfo(params).then(res => { let newUserInfo = app.globalData.userInfo; newUserInfo.avatar = userInfo.avatarUrl; newUserInfo.gender = userInfo.gender; newUserInfo.nickname = userInfo.nickName; app.globalData.userInfo = newUserInfo; that.setData({ userInfo: newUserInfo }) }) } }, onTabItemTap(e){ console.log(1,e) }, onUnload(){ this.setData({ hideGetInfo: true }) }, async getPhoneNumber(e) { const that = this; if (e.detail.errMsg == "getPhoneNumber:ok") { let res = await app.globalData.api.bindphone({ "openid": app.globalData.userInfo.openid, "encryptedData": e.detail.encryptedData, "iv": e.detail.iv, "invitor": app.globalData.shareOpenId }) app.globalData.userInfo.phone = res.data.phone; that.setData({ userInfo: { ...this.data.userInfo, 'phone': res.data.phone } }); that.getList(); // wx.showToast({ // title: '参加成功!', // icon: 'none' // }) } else { wx.showToast({ title: '请授权您的手机号!', icon: 'none' }) } }, })