88 lines
2.8 KiB
JavaScript
88 lines
2.8 KiB
JavaScript
import {
|
|
defineStore
|
|
} from 'pinia';
|
|
import {
|
|
ref
|
|
} from 'vue'
|
|
import {
|
|
msg
|
|
} from '@/common/globalFunction.js'
|
|
import config from '../config';
|
|
|
|
const useLocationStore = defineStore("location", () => {
|
|
// 定义状态
|
|
const longitudeVal = ref(null) // 经度
|
|
const latitudeVal = ref(null) //纬度
|
|
|
|
function getLocation() { // 获取经纬度两个平台
|
|
return new Promise((resole, reject) => {
|
|
try {
|
|
if (lightAppJssdk.map) {
|
|
lightAppJssdk.map.getLocation({
|
|
success: function(data) {
|
|
longitudeVal.value = Number(data.longitude)
|
|
latitudeVal.value = Number(data.latitude)
|
|
resole(data)
|
|
},
|
|
fail: function(data) {
|
|
longitudeVal.value = 120.382665
|
|
latitudeVal.value = 36.066938
|
|
resole({
|
|
longitude: 120.382665,
|
|
latitude: 36.066938
|
|
})
|
|
msg('用户位置获取失败')
|
|
}
|
|
})
|
|
} else {
|
|
uni.getLocation({
|
|
type: 'gcj02',
|
|
highAccuracyExpireTime: 3000,
|
|
isHighAccuracy: true,
|
|
success: function(data) {
|
|
longitudeVal.value = Number(data.longitude)
|
|
latitudeVal.value = Number(data.latitude)
|
|
resole(data)
|
|
},
|
|
fail: function(data) {
|
|
longitudeVal.value = 120.382665
|
|
latitudeVal.value = 36.066938
|
|
resole({
|
|
longitude: 120.382665,
|
|
latitude: 36.066938
|
|
})
|
|
msg('用户位置获取失败')
|
|
}
|
|
});
|
|
}
|
|
} catch (e) {
|
|
longitudeVal.value = 120.382665
|
|
latitudeVal.value = 36.066938
|
|
resole({
|
|
longitude: 120.382665,
|
|
latitude: 36.066938
|
|
})
|
|
msg('测试环境,使用模拟定位')
|
|
console.log('失败', data)
|
|
}
|
|
})
|
|
}
|
|
|
|
function longitude() {
|
|
return longitudeVal.value
|
|
}
|
|
|
|
function latitude() {
|
|
return latitudeVal.value
|
|
}
|
|
|
|
// 导入
|
|
return {
|
|
getLocation,
|
|
longitudeVal,
|
|
latitudeVal
|
|
|
|
}
|
|
})
|
|
|
|
export default useLocationStore; |