import { doNavigateWithUser } from '../../utils/helper'; import apiAddr from '../../api/base'; const app = getApp(); Component({ /** * 组件的属性列表 */ properties: { }, /** * 组件的初始数据 */ data: { qqmap_key: app.initQQMapKey(), address: '定位中', selectKeyWord: '', shopArea: [], lat: '', lng: '', mapObj: {}, }, methods: { goPagesLink() { doNavigateWithUser({ url: `/pages/index/shopcity` }); }, // 获取地址 getAddress() { let that = this; let userlocat = wx.getStorageSync('userlocat'); let nowtime = Date.parse(new Date()) / 1000; if (!userlocat || userlocat.overtime < nowtime || !userlocat.city) { wx.showLoading({ title: '定位中...' }); wx.getLocation({ success: (res) => { console.log(res); let overtime = Date.parse(new Date()) / 1000 + 7200; this.setData({ lat: res.latitude, lng: res.longitude, }) if (this.data.qqmap_key) { // 微信逆地址解析 wx.request({ url: 'https://apis.map.qq.com/ws/geocoder/v1/?location=' + res.latitude + ',' + res.longitude + '&key=' + this.data.qqmap_key + '&get_poi=0', success: function (res) { // console.log('cityres', res); var city = res.data.result.address_component.city; // console.log(city); if (city) { that.setData({ address: city }) let area = that.data.shopArea; // console.log(area); if (typeof area[city] !== 'undefined') { // setData(that,'area_id',area[city]['area_id']); } } userlocat = { userlat: that.data.lat, userlng: that.data.lng, overtime: overtime, city: city, }; wx.setStorageSync('userlocat', userlocat); wx.hideLoading(); // that.setData({ // pageNo: 0, // 当前页数 // shopList: [], // }) // that.getList(); } }) } else { console.log('11111 走到这列了'); let sendData = { lat: res.latitude, lng: res.longitude, }; // 后端地图接口 wx.request({ url: apiAddr.get_maps_geocoder, method: 'post', header: { 'Content-type': 'application/x-www-form-urlencoded' }, dataType: 'json', data: sendData, success: function (res) { // console.log('cityres2', res); var city = res.data.city; // console.log(city); if (city) { that.setData({ address: city }) let area = that.data.shopArea; if (typeof area[city] !== 'undefined') { // setData(that,'area_id',area[city]['area_id']); } } userlocat = { userlat: that.data.lat, userlng: that.data.lng, overtime: overtime, city: city, }; wx.setStorageSync('userlocat', userlocat); wx.hideLoading(); } }) } // 缓存 wx.request({ url: apiAddr.setcookie_location, method: 'post', header: { 'Content-type': 'application/x-www-form-urlencoded' }, dataType: 'json', data: userlocat, success: (result) => { // console.log(result); }, }) }, // fail: () => wx.showToast({ title: '请点击右上角三个点并开启位置权限', icon: 'none', mask: true }) }) } else { // console.log('userlocat', userlocat); that.setData({ address: userlocat.city }) } }, searchInput(e) { console.log('e',e); let _this = this; _this.setData({ selectKeyWord: e.detail.value }) _this.triggerEvent('search', e.detail.value); }, // 获取店铺区域列表 getShopAreaList() { let shopArea = wx.getStorageSync('shopArea'); let nowtime = Date.parse(new Date()) / 1000; if (!shopArea || shopArea.overtime < nowtime) { wx.request({ url: apiAddr.get_community_area_list, method: 'get', header: { 'Content-type': 'application/x-www-form-urlencoded' }, dataType: 'json', success: (result) => { let { data: { list } } = result; if (list) { this.setData({ shopArea: list }) let overtime = Date.parse(new Date()) / 1000 + 7200; shopArea = { list: list, overtime: overtime }; wx.setStorageSync('shopArea', shopArea); } }, }) } else { this.setData({ shopArea: shopArea.list }) // setData(this, 'shopArea', shopArea.list); } }, }, lifetimes: { attached: function () { // 组件被添加到页面节点树时执行 this.getAddress(); this.getShopAreaList(); }, }, })