From ccea2c8fb299046910c7c5ae77acd9f5e3529aa4 Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Sat, 16 Aug 2025 23:16:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xg/xsjcxx/xsqj/cancelLeaveEdit/index.vue | 66 ++++++++++++++++++- .../pages/xg/xsjcxx/xsqj/leaveEdit/index.vue | 28 +++++++- 2 files changed, 91 insertions(+), 3 deletions(-) diff --git a/mobile/src/pages/xg/xsjcxx/xsqj/cancelLeaveEdit/index.vue b/mobile/src/pages/xg/xsjcxx/xsqj/cancelLeaveEdit/index.vue index 544e5a7e..3a7eb28d 100644 --- a/mobile/src/pages/xg/xsjcxx/xsqj/cancelLeaveEdit/index.vue +++ b/mobile/src/pages/xg/xsjcxx/xsqj/cancelLeaveEdit/index.vue @@ -928,9 +928,40 @@ export default { const [latStr, lngStr] = this.cancelForm.cancelLocation.split(','); const latitude = parseFloat(latStr); const longitude = parseFloat(lngStr); + + // 调用后台API进行逆地理编码 + try { + const geocodingResponse = await request({ + url: '/system/SysRegion/reverse-geocode', + method: 'POST', + data: { + longitude: longitude, + latitude: latitude, + }, + }); + + if (geocodingResponse.code === 200 && geocodingResponse.data) { + const formattedAddress = geocodingResponse.data.regeocode?.formattedAddress; + if (formattedAddress) { + console.log('销假位置逆地理编码成功:', formattedAddress); + // 可以选择将地址信息显示给用户或保存到表单中 + // this.cancelForm.cancelLocationAddress = formattedAddress; // 如果需要保存地址信息 + } + } else { + console.warn('销假位置逆地理编码失败:', geocodingResponse.msg); + } + } catch (error) { + console.error('销假位置逆地理编码请求失败:', error); + // 逆地理编码失败不影响地图打开功能 + } + try { if (this.isWechatBrowser && this.wechatSDK.isInitialized) { - await this.wechatSDK.openLocation({ latitude, longitude, name: '销假位置' }); + await this.wechatSDK.openLocation({ + latitude, + longitude, + name: formattedAddress, + }); return; } } catch (e) { @@ -949,9 +980,40 @@ export default { const latitude = parseFloat(latStr); const longitude = parseFloat(lngStr); if (Number.isNaN(latitude) || Number.isNaN(longitude)) return; + + // 调用后台API进行逆地理编码 + try { + const geocodingResponse = await request({ + url: '/system/SysRegion/reverse-geocode', + method: 'POST', + data: { + longitude: longitude, + latitude: latitude, + }, + }); + + if (geocodingResponse.code === 200 && geocodingResponse.data) { + const formattedAddress = geocodingResponse.data.regeocode?.formattedAddress; + if (formattedAddress) { + console.log('请假位置逆地理编码成功:', formattedAddress); + // 可以选择将地址信息显示给用户或保存到表单中 + // this.leaveInfo.leaveLocationAddress = formattedAddress; // 如果需要保存地址信息 + } + } else { + console.warn('请假位置逆地理编码失败:', geocodingResponse.msg); + } + } catch (error) { + console.error('请假位置逆地理编码请求失败:', error); + // 逆地理编码失败不影响地图打开功能 + } + try { if (this.isWechatBrowser && this.wechatSDK.isInitialized) { - await this.wechatSDK.openLocation({ latitude, longitude, name: '请假位置' }); + await this.wechatSDK.openLocation({ + latitude, + longitude, + name: formattedAddress, + }); return; } } catch (e) { diff --git a/mobile/src/pages/xg/xsjcxx/xsqj/leaveEdit/index.vue b/mobile/src/pages/xg/xsjcxx/xsqj/leaveEdit/index.vue index e0ec4b8c..831be72f 100644 --- a/mobile/src/pages/xg/xsjcxx/xsqj/leaveEdit/index.vue +++ b/mobile/src/pages/xg/xsjcxx/xsqj/leaveEdit/index.vue @@ -825,13 +825,39 @@ export default { }); return; } + // 调用高德sdk 逆地理编码 + try { + // 调用后台API进行逆地理编码 + const geocodingResponse = await request({ + url: '/system/SysRegion/reverse-geocode', + method: 'POST', + data: { + longitude: longitude, + latitude: latitude, + }, + }); + + if (geocodingResponse.code === 200 && geocodingResponse.data) { + const formattedAddress = geocodingResponse.data.regeocode?.formattedAddress; + if (formattedAddress) { + console.log('逆地理编码成功:', formattedAddress); + // 可以选择将地址信息显示给用户或保存到表单中 + // this.form.leaveLocationAddress = formattedAddress; // 如果需要保存地址信息 + } + } else { + console.warn('逆地理编码失败:', geocodingResponse.msg); + } + } catch (error) { + console.error('逆地理编码请求失败:', error); + // 逆地理编码失败不影响地图打开功能 + } if (this.isWechatBrowser && this.wechatSDK.isInitialized) { try { await this.wechatSDK.openLocation({ latitude: latitude, longitude: longitude, - name: '请假地点', + name: formattedAddress, address: this.form.leaveLocation || '当前位置', scale: 16, });