import qqmapWx from '../../common/sdk/qqmap-wx-jssdk.min.js'; // 引入 const user = { state: { vuex_cityInfo: uni.getStorageSync('vuex_cityInfo') ? uni.getStorageSync('vuex_cityInfo') : {city: '杭州市'}, vuex_userInfo: uni.getStorageSync('vuex_userInfo') ? uni.getStorageSync('vuex_userInfo') : {}, }, mutations: { update_vuex_cityInfo(state, payload) { state.vuex_cityInfo = payload uni.setStorageSync('vuex_cityInfo', payload); } }, actions: { getCity({commit}) { return new Promise((resolve, reject) => { // #ifdef APP-PLUS||H5 getCityInfo(resolve, reject,commit) // #endif // #ifdef MP-WEIXIN uni.authorize({ scope: 'scope.userLocation', success() { getCityInfo(resolve, reject,commit) }, fail: function(res4) { uni.showModal({ title: '提示', content: '小程序想要获取您的地里位置', success: function(res) { if (res.confirm) { uni.openSetting({ success(res) { getCityInfo(resolve, reject,commit) } }); } else if (res.cancel) { console.log('用户点击取消'); } } }) }, }) // #endif }) }, } } export default user function getCityInfo(resolve, reject, commit) { uni.showLoading({ title: '加载中...' }) var qqmapKey = new qqmapWx({ key: '2BTBZ-6BQRB-ZG4UG-NOYYG-KZMH7-B4BYN' }) uni.getLocation({ type: 'wgs84', // type: 'gcj02', success: function(res) { console.log('当前位置的经度:' + res.longitude); console.log('当前位置的纬度:' + res.latitude); qqmapKey.reverseGeocoder({ location: { latitude: res.latitude, longitude: res.longitude }, success(res2) { // console.log('城市信息') // console.log(res2.result) let result = res2.result let obj = { latitude: res.latitude, longitude: res.longitude, city: result.address_component.city, cityCode: result.ad_info.adcode, province: result.address_component.province, district: result.address_component.district } commit('update_vuex_cityInfo', obj) resolve(obj) uni.hideLoading(); }, fail: function(res3) { reject(res3) uni.hideLoading(); }, }) }, fail(e) { console.log(e) } }) }