定位打卡提示完善

This commit is contained in:
donqi 2022-12-11 21:12:38 +08:00
parent 95d649f32a
commit c92a2d1557
2 changed files with 84 additions and 25 deletions

View File

@ -665,7 +665,7 @@ export default {
let res1 = await wx.getSetting();
if (res1) {
if (!res1.authSetting[authScope]) {
let res = _this[callbackName]();
let res = await _this[callbackName]();
if (res && res[callbackSuccessKey]) {
return res;
}
@ -677,7 +677,7 @@ export default {
})
return 'rejected';
} else {
return _this[callbackName]();
return await _this[callbackName]();
}
}
},
@ -697,10 +697,25 @@ export default {
return false;
},
async wxGetLocation() {
let errCode = null;
let res = await wx.getLocation({
type: 'gcj02'
type: 'gcj02',
fail: async (result) => {
if (result.errCode === 2) {
uni.showToast({
title: '定位获取失败,请确认是否开启定位',
icon: 'none',
duration: 2500
})
}
},
success: async (result) => {
console.log("success");
return result;
}
})
// res.latitude, res.longitude
console.log(res)
return res;
}
}

View File

@ -1178,31 +1178,75 @@
}
},
async recordClockInLocation(order) {
let res = await this.$request.checkAuth('scope.userLocation', 'wxGetLocation', 'latitude');
if (res && res === 'rejected') {
this.hasAuthLocation = false;
return;
}
if (!res || !res.latitude) {
uni.showToast({
title: '定位获取失败,打卡失败,请稍后重试',
icon: 'none',
duration: 2500
})
} else {
let params = {
id: order.orderDetailId,
clockInLocation: res.longitude + "," + res.latitude
}
let updateOrderRes = await this.$request.updateDetailOrder(params);
if (updateOrderRes && updateOrderRes.code === 0) {
this.reloadMasterOrderPage();
uni.showToast({
icon: 'success',
duration: 1000
let _this = this;
// wx.getSetting authScope
let res1 = await wx.getSetting();
if (res1) {
if (!res1.authSetting['scope.userLocation']) {
let res2 = await wx.getLocation({
type: 'gcj02',
fail: async (result) => {
console.log(result)
if (result.errno === 103) {
this.hasAuthLocation = false;
//
uni.showToast({
title: '请先授权',
icon: 'none',
duration: 1500
})
} else {
//
uni.showToast({
title: '请确认是否开启定位',
icon: 'none',
duration: 1500
})
}
},
success: async (result) => {
_this.persistClockInLocation(order, result);
}
})
} else {
wx.getLocation({
type: 'gcj02',
fail: async (result) => {
console.log(result)
if (result.errCode === 2 || result.errCode === 404) {
uni.showToast({
title: '定位获取失败,请确认是否开启定位',
icon: 'none',
duration: 2500
})
} else {
uni.showToast({
title: '定位获取失败,请稍后重试',
icon: 'none',
duration: 2500
})
}
},
success: async (result) => {
_this.persistClockInLocation(order, result);
}
})
}
}
},
async persistClockInLocation(order, res) {
let params = {
id: order.orderDetailId,
clockInLocation: res.longitude + "," + res.latitude
}
let updateOrderRes = await this.$request.updateDetailOrder(params);
if (updateOrderRes && updateOrderRes.code === 0) {
this.reloadMasterOrderPage();
uni.showToast({
icon: 'success',
duration: 1000
})
}
}
}
}