浏览代码

Merge branch 'feautre_20240909_地图poi选择确定问题' into uat

zhujindu 1 年之前
父节点
当前提交
880e5f8c51
共有 1 个文件被更改,包括 27 次插入25 次删除
  1. 27 25
      src/utils/getPosition.js

+ 27 - 25
src/utils/getPosition.js

@@ -1,27 +1,27 @@
-import Vue from "vue";
-import { getTicket } from "@/api/index";
-import { toastLoading } from "@/utils/commonVant";
-import { CJ02BD, gcj02BD } from "@/utils/index";
-import { jsonp } from "vue-jsonp";
+import Vue from 'vue';
+import { getTicket } from '@/api/index';
+import { toastLoading } from '@/utils/commonVant';
+import { CJ02BD, gcj02BD } from '@/utils/index';
+import { jsonp } from 'vue-jsonp';
 // 微信JSSDK实例
 const wx = Vue.prototype.wx;
 // 腾讯位置服务 key
-const TxMapKey = "WLCBZ-HRM6L-YOMPV-ME62B-AQOG6-JUBW6";
+const TxMapKey = 'WLCBZ-HRM6L-YOMPV-ME62B-AQOG6-JUBW6';
 
 /**
  * 获取当前定位 调用之前确保当前页面已经授权(getTicketFun)
  * */
 export function getPosition() {
   return new Promise((resolve, reject) => {
-    toastLoading(0, "定位中...", true);
+    toastLoading(0, '定位中...', true);
     // 本地开发 test 环境时跳过获取定位功能 模拟定位
-    if (process.env.NODE_ENV === "test") {
+    if (process.env.NODE_ENV === 'test') {
       let resData = {
         latitude: 34.615684509277344,
         longitude: 112.4474105834961,
       };
-      localStorage.setItem("lat", resData.latitude);
-      localStorage.setItem("lon", resData.longitude);
+      localStorage.setItem('lat', resData.latitude);
+      localStorage.setItem('lon', resData.longitude);
       // 定位坐标转换 腾讯转百度
       let TXisBD = CJ02BD(resData.latitude, resData.longitude);
       toastLoading().clear();
@@ -45,29 +45,29 @@ export function getPosition() {
       //     });
       wx.ready(() => {
         wx.getLocation({
-          type: "gcj02",
+          type: 'gcj02',
           success: (resData) => {
             toastLoading().clear();
-            console.log("处理前");
+            console.log('处理前');
             console.log(resData.latitude, resData.longitude);
             // 定位坐标转换 腾讯转百度
             let TXisBD = CJ02BD(resData.latitude, resData.longitude);
-            console.log("处理后");
+            console.log('处理后');
             console.log(TXisBD);
-            localStorage.setItem("lat", resData.latitude);
-            localStorage.setItem("lon", resData.longitude);
+            localStorage.setItem('lat', resData.latitude);
+            localStorage.setItem('lon', resData.longitude);
             resolve({ TXisBD, resData });
           },
           fail: () => {
             toastLoading().clear();
-            reject("GPS未开启");
+            reject('GPS未开启');
           },
         });
       });
       wx.error((err) => {
         toastLoading().clear();
         console.log(err);
-        reject("定位失败,请开启企微定位权限");
+        reject('定位失败,请开启企微定位权限');
       });
       // } else {
       //   toastLoading().clear();
@@ -79,9 +79,11 @@ export function getPosition() {
 }
 
 /**
- *当前页面授权 一个url只需要授权一次
+ *当前页面授权 一个url只需要授权一次,wx.config 调用多次,只有第一次会调用成功,后面的都会走失败
+ * @param {*object} jsApiList //授权接口列表
+ * @param {*String} getLocation //获取定位
  */
-export function getTicketFun() {
+export function getTicketFun(jsApiList = ['getLocation']) {
   return new Promise((resolve, reject) => {
     // 当前页面
     let url = window.location.href;
@@ -98,11 +100,11 @@ export function getTicketFun() {
           timestamp: qiyeData.timestamp, // 必填,生成签名的时间戳
           nonceStr: qiyeData.nonceStr, // 必填,生成签名的随机串
           signature: qiyeData.signature, // 必填,签名,见 附录-JS-SDK使用权限签名算法
-          jsApiList: ["ready", "getLocation"], // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
+          jsApiList: ['ready', ...jsApiList], // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
         });
-        resolve("获取签名成功");
+        resolve('获取签名成功');
       } else {
-        reject("获取签名失败");
+        reject('获取签名失败');
       }
     });
   });
@@ -117,7 +119,7 @@ export function getTicketFun() {
 export function getMapPoi(location, radius = 500, auto_extend = 0) {
   return new Promise((resolve, reject) => {
     let api =
-      "https://apis.map.qq.com/ws/place/v1/search?page_size=10&page_index=1&orderby=_distance&output=jsonp";
+      'https://apis.map.qq.com/ws/place/v1/search?page_size=10&page_index=1&orderby=_distance&output=jsonp';
     let boundary = `&boundary=nearby(${location.latitude},${location.longitude},${radius},${auto_extend})`;
     let key = `&key=${TxMapKey}`;
     jsonp(api + boundary + key)
@@ -142,10 +144,10 @@ export function getMapPoi(location, radius = 500, auto_extend = 0) {
  */
 export function getkeywordPoi(location, keywordValue) {
   return new Promise((resolve, reject) => {
-    let keyword = keywordValue ? "&keyword=" + encodeURI(keywordValue) : "";
+    let keyword = keywordValue ? '&keyword=' + encodeURI(keywordValue) : '';
     // 关键词搜索
     let api =
-      "https://apis.map.qq.com/ws/place/v1/suggestion?output=jsonp&page_size=10&region_fix=1";
+      'https://apis.map.qq.com/ws/place/v1/suggestion?output=jsonp&page_size=10&region_fix=1';
     let key = `&key=${TxMapKey}`;
     let locationPos = `&location=${location.latitude},${location.longitude}`;
     jsonp(api + locationPos + keyword + key)