浏览代码

地址bug修复

chenjj 1 天之前
父节点
当前提交
2713a35e07
共有 2 个文件被更改,包括 38 次插入31 次删除
  1. 6 30
      pages_home/components/cust-form/index.vue
  2. 32 1
      utils/adress.js

+ 6 - 30
pages_home/components/cust-form/index.vue

@@ -111,7 +111,7 @@ import {
     onShow,
     onUnload
 } from "@dcloudio/uni-app";
-import { splitAddress, getCityCode } from '@/utils/adress'
+import { splitAddress, getCityCode,getAdressCode } from '@/utils/adress'
 import { regionAddresstree } from '@/api/home.js'
 
 import pickerAddress from '../pickerAddress/pickerAddress.vue'
@@ -359,44 +359,20 @@ function onCityWx(row) {
     console.log('地区选点', row);
     wx.chooseLocation({
         success: async function (res) {
-            console.log('res.address', res.address);
+            console.log('res.address', res);
 
             const result = splitAddress(res.address);
-            console.log("TCL: onCityWx -> result", result)
             const res_dara = await regionAddresstree();
             const handlecityData = getCityCode([result.province, result.city, result.district].join(' '), res_dara.data)
-            console.log("TCL: onCityWx -> handlecityData", handlecityData)
-            addressChange(handlecityData, row)
 
+  
+            const api_res =await getAdressCode({  latitude: res.latitude, longitude: res.longitude },res_dara.data)
+			console.log("=================>", handlecityData,api_res)
+            addressChange(api_res.cityCode, row)
             Object.assign(formData, {
                 // [row.key]: `${result.province}${result.city}${result.district}`,
                 address: result.detail
             })
-
-            // Object.assign(cityData, {     
-            //     province: result.province,
-            //     city: result.city,
-            //     area:result.district,
-            // })
-
-            // Object.assign(formData, {
-            // provinceName: result.province,
-            // provinceCode: info.code[0],
-            // provinceInd:indexArray[0] || 0,
-            // cityName: result.city,
-            // cityCode:info.code[1],
-            // cityInd:indexArray[1] || 0,
-            // districtName: result.district,
-            // districtCode:info.code[2],
-            // districtInd:indexArray[2] || 0,
-
-            // address:result.detail
-            // })
-
-            // Object.assign(formData, {
-            //     [row.key]: `${result.province}${result.city}${result.district}`,
-            //     address:result.detail
-            // })
         },
         fail: function (err) {
             console.log(err);

+ 32 - 1
utils/adress.js

@@ -41,6 +41,36 @@ const chooseLocationInit = (data,addressData) => {
   })
 }
 
+const getAdressCode = ({ latitude, longitude },ad_array) => {
+	console.log("+++++", { latitude, longitude })
+  return new Promise((resolve, reject) => {
+    const qqmapsdk = new QQMapWX({ key: mapKey });
+    qqmapsdk.reverseGeocoder({ 
+    location: [latitude,longitude].join(','), // GCJ-02经纬度(纬度在前,经度在后)
+    success: (res) => {
+      console.log('------',res.result);
+      const {address_component,formatted_addresses} =  res.result;
+      const {province,city,district} = address_component;
+      const handlecityData = getCityCode([province,city,district].join(' '),ad_array)
+      console.log('ccc',{
+        name:formatted_addresses.standard_address,
+        cityCode:handlecityData,
+        latitude,
+        longitude
+      });
+      
+      resolve({
+        name:formatted_addresses.standard_address,
+        cityCode:handlecityData,
+        latitude,
+        longitude
+      })
+    },
+    fail: (err) => { console.error(err);reject();  }
+  });
+})
+}
+
 /**
  * 腾讯位置服务城市选择器
  * @param {*} city 城市名称
@@ -232,5 +262,6 @@ export {
   splitAddress,
   getCityCode,
   locateTheCurrentAddress,
-  getLatLong
+  getLatLong,
+  getAdressCode
 }