初始化仓库
This commit is contained in:
104
store/modules/city.js
Normal file
104
store/modules/city.js
Normal file
@ -0,0 +1,104 @@
|
||||
import wechath5 from "@/utils/wechath5";
|
||||
import { isWeixinClient, toast } from "@/utils/tools";
|
||||
import { baseURL, basePath } from "@/config/app";
|
||||
import { getGeocoder } from "@/api/store.js";
|
||||
|
||||
const state = {
|
||||
cityInfo: {
|
||||
// id: city_id,
|
||||
// name: result.ad_info.city,
|
||||
// gcj02_lat: result.location.lat,
|
||||
// gcj02_lng: result.location.lng
|
||||
},
|
||||
};
|
||||
|
||||
const mutations = {
|
||||
setCityInfo(state, data) {
|
||||
state.cityInfo = data;
|
||||
uni.$emit("refreshhome");
|
||||
},
|
||||
};
|
||||
|
||||
const actions = {
|
||||
// 位置授权
|
||||
async getAuthorize({ dispatch }) {
|
||||
const [error, data] = await uni.showModal({
|
||||
title: "您已拒绝地理位置权限",
|
||||
content: "是否进入权限管理,调整授权?",
|
||||
});
|
||||
if (data.confirm) {
|
||||
const [error, data] = await uni.openSetting();
|
||||
if (data.authSetting["scope.userLocation"]) dispatch("initLocationFunc");
|
||||
}
|
||||
},
|
||||
// 获取当前定位
|
||||
async initLocationFunc({ dispatch, rootState }) {
|
||||
console.log("获取地址");
|
||||
try {
|
||||
const [error, res] = await uni.getLocation({
|
||||
// #ifndef APP
|
||||
type: "gcj02",
|
||||
// #endif
|
||||
});
|
||||
console.log(error, res, "----");
|
||||
// if(error?.errMsg == 'getLocation:fail 频繁调用会增加电量损耗,可考虑使用 wx.onLocationChange 监听地理位置变化') return toast({ title: '频繁定位,请稍后' })
|
||||
// #ifdef MP
|
||||
dispatch("getSystemInfo");
|
||||
if (!rootState.app.sysInfo.locationEnabled) {
|
||||
uni.showModal({
|
||||
title: "温馨提示",
|
||||
content: "您的手机定位还未开启",
|
||||
});
|
||||
return;
|
||||
}
|
||||
// #endif
|
||||
// #ifdef MP
|
||||
if (!res) return dispatch("getAuthorize");
|
||||
// #endif
|
||||
if (error) {
|
||||
uni.showModal({
|
||||
title: "温馨提示",
|
||||
// content: JSON.stringify(error.errMsg)
|
||||
content: "获取位置失败,请检查是否开启定位!",
|
||||
});
|
||||
return;
|
||||
}
|
||||
// #ifdef APP-PLUS
|
||||
|
||||
if (!res) return toast({ title: "获取位置失败" });
|
||||
// #endif
|
||||
dispatch("getGeocoderFunc", {
|
||||
location: `${res.latitude},${res.longitude}`,
|
||||
});
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
// toast({ title: err.errMsg })
|
||||
// throw new Error(err + '获取位置')
|
||||
}
|
||||
},
|
||||
// 逆解析地址
|
||||
getGeocoderFunc({ commit }, location) {
|
||||
console.log(location);
|
||||
getGeocoder({ ...location }).then((res) => {
|
||||
console.log(res);
|
||||
if (res.code == 1) {
|
||||
const result = res.data.result;
|
||||
const city_id = res.data.city_id;
|
||||
commit("setCityInfo", {
|
||||
id: city_id,
|
||||
name: result.ad_info.city,
|
||||
gcj02_lat: result.location.lat,
|
||||
gcj02_lng: result.location.lng,
|
||||
});
|
||||
} else {
|
||||
toast({ title: res.msg });
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
export default {
|
||||
state,
|
||||
mutations,
|
||||
actions,
|
||||
};
|
||||
Reference in New Issue
Block a user