From 703f80ad75b7d3c2f0967deb5e73b041364c91e6 Mon Sep 17 00:00:00 2001 From: ISFP_T <68358856@qq.com> Date: Fri, 19 Sep 2025 09:06:18 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=9B=91=E6=8E=A7=E6=80=BB=E4=BC=9A=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E7=9A=84bug=EF=BC=88=E9=87=87=E7=94=A8?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=AF=94=E8=BE=83=E5=BD=A2=E5=BC=8F=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/http.js | 2 +- config/url.js | 2 +- pages/device/detail.vue | 2 +- pages/index/index.vue | 4 +- .../distance_calculation_optimization.md | 49 ------------------- unpackage/dist/build/mp-weixin/config/http.js | 2 +- .../build/mp-weixin/pages/device/detail.js | 2 +- .../build/mp-weixin/pages/device/detail.wxml | 2 +- .../build/mp-weixin/pages/device/detail.wxss | 2 +- .../dist/build/mp-weixin/pages/index/index.js | 2 +- .../build/mp-weixin/pages/index/index.wxml | 2 +- .../build/mp-weixin/pages/index/index.wxss | 2 +- .../dist/build/mp-weixin/utils/mapUtils.js | 2 +- .../.sourcemap/mp-weixin/config/http.js.map | 2 +- .../.sourcemap/mp-weixin/config/url.js.map | 2 +- .../mp-weixin/pages/device/detail.js.map | 2 +- .../mp-weixin/pages/index/index.js.map | 2 +- .../mp-weixin/utils/mapUtils.js.map | 2 +- unpackage/dist/dev/mp-weixin/common/vendor.js | 2 +- unpackage/dist/dev/mp-weixin/config/http.js | 2 +- .../dist/dev/mp-weixin/pages/device/detail.js | 1 + .../dist/dev/mp-weixin/pages/index/index.js | 22 +++++---- .../dist/dev/mp-weixin/utils/mapUtils.js | 14 +++--- utils/mapUtils.js | 26 +++++++++- 24 files changed, 66 insertions(+), 86 deletions(-) delete mode 100644 project_document/distance_calculation_optimization.md diff --git a/config/http.js b/config/http.js index 4a4e618..1b70aaa 100644 --- a/config/http.js +++ b/config/http.js @@ -19,7 +19,7 @@ const request = (option) => { method: option.method, data: option.data, header: { - "Content-Type": "application/json", + "Content-Type": "application/x-www-form-urlencoded", ...option.headers, 'appid': appid, 'Authorization': "Bearer " + uni.getStorageSync('token'), diff --git a/config/url.js b/config/url.js index e186903..49e687f 100644 --- a/config/url.js +++ b/config/url.js @@ -1,5 +1,5 @@ export const URL = "https://my.gxfs123.com/api" //正式服务器 // export const URL = "https://fansdev.gxfs123.com/api" //测试服务器 -// export const URL = "http://192.168.5.13:8080" //本地调试 +// export const URL = "http://192.168.5.22:8080" //本地调试 export const appid = "wx2165f0be356ae7a9" //小程序appid \ No newline at end of file diff --git a/pages/device/detail.vue b/pages/device/detail.vue index 41cedbb..b34c31d 100644 --- a/pages/device/detail.vue +++ b/pages/device/detail.vue @@ -425,7 +425,7 @@ uni.showLoading({ title: '处理中' }) - + console.log(deviceId.value); // 调用设备租借接口 const rentResult = await rentPowerBank(deviceId.value, phoneNumber.value) if (rentResult.code !== 200) { diff --git a/pages/index/index.vue b/pages/index/index.vue index 7cf1369..c47aaf7 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -256,7 +256,8 @@ longitude: location.longitude, latitude: location.latitude } - + + console.log(userLocation.value); // 将经纬度写入本地缓存(基础信息) try { uni.setStorageSync('userLocation', { @@ -332,6 +333,7 @@ longitude: userLocation.value.longitude } }) + console.log(res); if (res.statusCode === 200 && res.data.code === 200) { positionList.value = res.data.rows || [] diff --git a/project_document/distance_calculation_optimization.md b/project_document/distance_calculation_optimization.md deleted file mode 100644 index 771ea97..0000000 --- a/project_document/distance_calculation_optimization.md +++ /dev/null @@ -1,49 +0,0 @@ -# 距离计算优化文档 - -## 问题描述 -原代码中距离计算存在单位问题: -- `calculateDistanceSync` 函数返回的是米为单位的距离 -- 但代码中直接使用 `distance.toFixed(1)` 并显示为 "km" -- 导致距离显示不准确 - -## 解决方案 - -### 1. 距离格式化函数 -添加了智能距离格式化函数 `formatDistance`: -```javascript -const formatDistance = (distanceInMeters) => { - if (distanceInMeters < 1000) { - return `${Math.round(distanceInMeters)}m` - } else { - return `${(distanceInMeters / 1000).toFixed(1)}km` - } -} -``` - -### 2. 距离数据结构优化 -- `item.distance`: 格式化的距离字符串(如 "1.5km" 或 "800m") -- `item.distanceInMeters`: 原始米数,用于排序和过滤 - -### 3. 排序和过滤逻辑优化 -- 排序使用 `distanceInMeters` 进行数值比较 -- 过滤使用米数进行距离判断(10km = 10000米) - -### 4. 模板显示优化 -- 直接显示 `item.distance`,因为已经包含单位 -- 移除了模板中的 "km" 后缀 - -## 测试验证 -添加了测试函数 `testDistanceCalculation()` 用于验证距离计算准确性: -- 测试用例:北京天安门到故宫(约1.5公里) -- 开发环境自动运行测试 - -## 优化效果 -1. 距离显示更准确:小于1公里显示为米,大于等于1公里显示为千米 -2. 排序更准确:使用数值比较而非字符串比较 -3. 过滤更精确:使用米数进行距离判断 -4. 用户体验更好:距离显示更直观 - -## 文件修改清单 -- `utils/mapUtils.js`: 添加注释说明单位,添加测试函数 -- `pages/index/index.vue`: 优化距离计算逻辑,添加格式化函数 -- `project_document/distance_calculation_optimization.md`: 本文档 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/config/http.js b/unpackage/dist/build/mp-weixin/config/http.js index c1e83f7..466e91e 100644 --- a/unpackage/dist/build/mp-weixin/config/http.js +++ b/unpackage/dist/build/mp-weixin/config/http.js @@ -1 +1 @@ -"use strict";const e=require("../common/vendor.js"),a=require("./url.js");exports.request=d=>new Promise(((t,o)=>{d.hideLoading||e.index.showLoading({title:d.loadingText||"加载中...",mask:!0}),e.index.request({url:a.URL+d.url,method:d.method,data:d.data,header:{"Content-Type":"application/json",...d.headers,appid:a.appid,Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")},success:e=>200!==e.statusCode?(console.error(`HTTP状态码错误: ${e.statusCode}`,e.data),e.data?void t(e.data):void o({msg:`请求失败,状态码:${e.statusCode}`})):e.data&&200!==e.data.code?(console.warn(`业务状态码错误: ${e.data.code}`,e.data),d.ignoreEmptyError&&500===e.data.code&&e.data.msg&&(e.data.msg.includes("未找到")||e.data.msg.includes("不存在"))?void t({code:200,msg:"操作成功",data:[]}):void t(e.data)):void t(e.data),fail(e){console.error(`请求失败: ${d.url}`,e),o(e)},complete(){d.hideLoading||e.index.hideLoading()}})})); +"use strict";const e=require("../common/vendor.js"),d=require("./url.js");exports.request=a=>new Promise(((t,o)=>{a.hideLoading||e.index.showLoading({title:a.loadingText||"加载中...",mask:!0}),e.index.request({url:d.URL+a.url,method:a.method,data:a.data,header:{"Content-Type":"application/x-www-form-urlencoded",...a.headers,appid:d.appid,Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")},success:e=>200!==e.statusCode?(console.error(`HTTP状态码错误: ${e.statusCode}`,e.data),e.data?void t(e.data):void o({msg:`请求失败,状态码:${e.statusCode}`})):e.data&&200!==e.data.code?(console.warn(`业务状态码错误: ${e.data.code}`,e.data),a.ignoreEmptyError&&500===e.data.code&&e.data.msg&&(e.data.msg.includes("未找到")||e.data.msg.includes("不存在"))?void t({code:200,msg:"操作成功",data:[]}):void t(e.data)):void t(e.data),fail(e){console.error(`请求失败: ${a.url}`,e),o(e)},complete(){a.hideLoading||e.index.hideLoading()}})})); diff --git a/unpackage/dist/build/mp-weixin/pages/device/detail.js b/unpackage/dist/build/mp-weixin/pages/device/detail.js index b903d4e..2af9e98 100644 --- a/unpackage/dist/build/mp-weixin/pages/device/detail.js +++ b/unpackage/dist/build/mp-weixin/pages/device/detail.js @@ -1 +1 @@ -"use strict";const e=require("../../common/vendor.js"),o=require("../../common/assets.js"),t=require("../../config/user.js"),a=require("../../util/index.js"),n={__name:"detail",setup(n){const i=e.ref({}),d=e.ref(""),r=e.ref({}),s=e.ref("一号教学楼大厅");e.ref(95);const c=e.ref(!1),l=e.reactive({text:"可使用",class:"available"}),u=e.ref(!0),g=e.ref(""),v=e.ref(!1);e.onLoad((async o=>{o.deviceNo==e.index.getStorageSync("deviceId")&&e.index.getStorageSync("deviceId")?d.value=e.index.getStorageSync("deviceId"):(d.value=o.deviceNo,e.index.setStorageSync("deviceId",o.deviceNo)),await f(),await p()})),e.onMounted((async()=>{await h()}));const h=async()=>{try{const e=await a.getUserInfo();console.log(e.data.phone,"getUserInfoPhone"),200==e.code&&e.data&&e.data.phone?g.value=e.data.phone:v.value=!0}catch(e){console.error("获取用户信息失败:",e)}},x=o=>{if(console.log("getPhoneNumber event:",o.detail),o.detail.errMsg&&o.detail.errMsg.includes("deny"))e.index.showToast({title:"需要授权手机号才能使用设备",icon:"none"});else if(o.detail.code){e.index.showLoading({title:"获取中..."}),console.log("获取到的授权code:",o.detail.code);try{a.getUserPhoneNumber(o.detail.code).then((o=>{if(console.log("获取手机号API响应原始数据:",JSON.stringify(o)),e.index.hideLoading(),!o)return console.error("API返回数据为空"),void e.index.showModal({title:"数据异常",content:"API返回为空",showCancel:!1});console.log("响应code:",o.code,"响应类型:",typeof o.code),console.log("是否有data:",!!o.data,"是否有phone:",o.data&&!!o.data.phone),200==o.code&&o.data&&o.data.phoneNumber?(g.value=o.data.phoneNumber,v.value=!1,e.index.showToast({title:"手机号获取成功",icon:"success"})):(console.warn("获取手机号响应异常:",o.msg||"未知错误"),e.index.showModal({title:"获取手机号异常",content:`状态码: ${o.code}, 消息: ${o.msg||"无"}`,showCancel:!1}))})).catch((o=>{e.index.hideLoading(),console.error("获取手机号码失败(catch):",o);let t=o.message||o.toString();e.index.showModal({title:"获取手机号失败",content:"错误信息: "+t,showCancel:!1})}))}catch(t){e.index.hideLoading(),console.error("获取手机号外部错误:",t),e.index.showModal({title:"意外错误",content:"处理过程发生异常: "+(t.message||t),showCancel:!1})}}else e.index.showToast({title:"获取授权码失败",icon:"none"})},p=async()=>{const e=await t.getDeviceInfo(d.value);200==e.code&&(i.value=e.data.device||{},i.value.deviceLocation?s.value=i.value.deviceLocation:e.data.position&&e.data.position.name&&(s.value=e.data.position.name),i.value.status&&("online"===i.value.status?(l.text="可使用",l.class="available"):"offline"===i.value.status&&(l.text="离线",l.class="offline")),console.log("feeconfig",i.value.feeConfig),r.value=JSON.parse(i.value.feeConfig)[0]||{})},f=async()=>{try{const o=await e.index.$api.checkActiveOrder();if(o.hasOrder){const t=o.order;"waiting_for_payment"===t.status?e.index.redirectTo({url:`/pages/order/payment?orderId=${t.orderId}&deviceId=${d.value}`}):"in_used"===t.status&&e.index.redirectTo({url:`/pages/device/return?deviceId=${d.value}`})}}catch(o){e.index.showToast({title:"订单状态查询失败",icon:"none"})}},m=o=>{u.value?g.value?I(o):v.value=!0:e.index.showModal({title:"提示",content:"请先登录后再操作",confirmText:"去登录",success:o=>{o.confirm&&e.index.navigateTo({url:"/pages/login/index"})}})},w=e.reactive({time:"1小时",price:"5.00"}),y=e.ref("99.00"),I=async o=>{try{e.index.showLoading({title:"处理中"});const s=await t.rentPowerBank(d.value,g.value);if(200!==s.code)throw new Error(s.msg||"设备租借失败");const c=s.data;try{let e=0;e=w.time.includes("小时")?60*parseInt(w.time):w.time.includes("分钟")?parseInt(w.time):60*parseInt(w.time);const o=await t.updateOrderPackage({orderId:c.orderId,packageTime:e,packagePrice:parseFloat(w.price)});200!==o.code?console.warn("更新订单套餐信息失败:",o.msg):console.log("订单套餐信息已提前更新")}catch(n){console.error("更新订单套餐信息时出错:",n)}if("wx-pay"==o){e.index.hideLoading();const o=await t.getOrderByOrderNo(c.orderNo);console.log(o);const a=parseFloat(i.value.depositAmount),n=(a+parseFloat(w.price)).toFixed(2);e.index.hideLoading(),e.index.redirectTo({url:`/pages/order/payment?orderId=${c.orderId}&packageTimeHours=${w.time.replace("小时","")}&packagePrice=${w.price}&totalAmount=${n}&depositAmount=${y.value}${i.value&&i.value.feeConfig?"&feeConfig="+encodeURIComponent(i.value.feeConfig):""}`})}else if("wx-score-pay"==o){e.index.hideLoading();const o=await t.getOrderByOrderNoScore(c.orderNo);if(e.index.hideLoading(),o&&200===o.code)try{if("0"==(await a.initiateWeChatScorePayment(o)).errCode){const o=await t.getOrderByOrderNoScorePayStatus(c.orderNo);console.log(o.data.orderStatus),"in_used"==o.data.orderStatus?(e.index.showToast({title:"设备租借成功",icon:"success"}),setTimeout((()=>{e.index.redirectTo({url:"/pages/order/index"})}),1500)):"waiting_for_payment"==o.data.orderStatus&&(e.index.showToast({title:"设备租借失败,订单已取消",icon:"error"}),await t.cancelOrder({orderId:c.orderNo}),setTimeout((()=>{e.index.switchTab({url:"/pages/index/index"})}),1500))}}catch(r){e.index.showToast({title:"支付分调用失败,请重试",icon:"none"})}else e.index.showToast({title:(null==o?void 0:o.msg)||"获取支付参数失败",icon:"none"})}}catch(s){e.index.hideLoading(),e.index.showToast({title:s.message||"租借失败,请重试",icon:"none"})}};return(t,a)=>e.e({a:e.t(l.text),b:e.n(l.class),c:e.t(d.value),d:o._imports_0$4,e:e.t(s.value),f:e.t(r.value.maxHourPrice),g:e.t(i.value.depositAmount),h:e.t(c.value?"归还设备":"免押租借"),i:c.value?1:"",j:e.o((e=>m("wx-score-pay"))),k:o._imports_0$3,l:v.value},v.value?{m:e.o((()=>{})),n:e.o(x),o:e.o((e=>v.value=!1))}:{})}},i=e._export_sfc(n,[["__scopeId","data-v-23b2f720"]]);wx.createPage(i); +"use strict";const e=require("../../common/vendor.js"),o=require("../../common/assets.js"),a=require("../../config/user.js"),t=require("../../util/index.js"),n={__name:"detail",setup(n){const i=e.ref({}),d=e.ref(""),r=e.ref({}),s=e.ref("一号教学楼大厅");e.ref(95);const c=e.ref(!1),l=e.reactive({text:"可使用",class:"available"}),u=e.ref(!0),g=e.ref(""),v=e.ref(!1);e.onLoad((async o=>{o.deviceNo==e.index.getStorageSync("deviceId")&&e.index.getStorageSync("deviceId")?d.value=e.index.getStorageSync("deviceId"):(d.value=o.deviceNo,e.index.setStorageSync("deviceId",o.deviceNo)),await f(),await p()})),e.onMounted((async()=>{await h()}));const h=async()=>{try{const e=await t.getUserInfo();console.log(e.data.phone,"getUserInfoPhone"),200==e.code&&e.data&&e.data.phone?g.value=e.data.phone:v.value=!0}catch(e){console.error("获取用户信息失败:",e)}},x=o=>{if(console.log("getPhoneNumber event:",o.detail),o.detail.errMsg&&o.detail.errMsg.includes("deny"))e.index.showToast({title:"需要授权手机号才能使用设备",icon:"none"});else if(o.detail.code){e.index.showLoading({title:"获取中..."}),console.log("获取到的授权code:",o.detail.code);try{t.getUserPhoneNumber(o.detail.code).then((o=>{if(console.log("获取手机号API响应原始数据:",JSON.stringify(o)),e.index.hideLoading(),!o)return console.error("API返回数据为空"),void e.index.showModal({title:"数据异常",content:"API返回为空",showCancel:!1});console.log("响应code:",o.code,"响应类型:",typeof o.code),console.log("是否有data:",!!o.data,"是否有phone:",o.data&&!!o.data.phone),200==o.code&&o.data&&o.data.phoneNumber?(g.value=o.data.phoneNumber,v.value=!1,e.index.showToast({title:"手机号获取成功",icon:"success"})):(console.warn("获取手机号响应异常:",o.msg||"未知错误"),e.index.showModal({title:"获取手机号异常",content:`状态码: ${o.code}, 消息: ${o.msg||"无"}`,showCancel:!1}))})).catch((o=>{e.index.hideLoading(),console.error("获取手机号码失败(catch):",o);let a=o.message||o.toString();e.index.showModal({title:"获取手机号失败",content:"错误信息: "+a,showCancel:!1})}))}catch(a){e.index.hideLoading(),console.error("获取手机号外部错误:",a),e.index.showModal({title:"意外错误",content:"处理过程发生异常: "+(a.message||a),showCancel:!1})}}else e.index.showToast({title:"获取授权码失败",icon:"none"})},p=async()=>{const e=await a.getDeviceInfo(d.value);200==e.code&&(i.value=e.data.device||{},i.value.deviceLocation?s.value=i.value.deviceLocation:e.data.position&&e.data.position.name&&(s.value=e.data.position.name),i.value.status&&("online"===i.value.status?(l.text="可使用",l.class="available"):"offline"===i.value.status&&(l.text="离线",l.class="offline")),console.log("feeconfig",i.value.feeConfig),r.value=JSON.parse(i.value.feeConfig)[0]||{})},f=async()=>{try{const o=await e.index.$api.checkActiveOrder();if(o.hasOrder){const a=o.order;"waiting_for_payment"===a.status?e.index.redirectTo({url:`/pages/order/payment?orderId=${a.orderId}&deviceId=${d.value}`}):"in_used"===a.status&&e.index.redirectTo({url:`/pages/device/return?deviceId=${d.value}`})}}catch(o){e.index.showToast({title:"订单状态查询失败",icon:"none"})}},m=o=>{u.value?g.value?I(o):v.value=!0:e.index.showModal({title:"提示",content:"请先登录后再操作",confirmText:"去登录",success:o=>{o.confirm&&e.index.navigateTo({url:"/pages/login/index"})}})},w=e.reactive({time:"1小时",price:"5.00"}),y=e.ref("99.00"),I=async o=>{try{e.index.showLoading({title:"处理中"}),console.log(d.value);const s=await a.rentPowerBank(d.value,g.value);if(200!==s.code)throw new Error(s.msg||"设备租借失败");const c=s.data;try{let e=0;e=w.time.includes("小时")?60*parseInt(w.time):w.time.includes("分钟")?parseInt(w.time):60*parseInt(w.time);const o=await a.updateOrderPackage({orderId:c.orderId,packageTime:e,packagePrice:parseFloat(w.price)});200!==o.code?console.warn("更新订单套餐信息失败:",o.msg):console.log("订单套餐信息已提前更新")}catch(n){console.error("更新订单套餐信息时出错:",n)}if("wx-pay"==o){e.index.hideLoading();const o=await a.getOrderByOrderNo(c.orderNo);console.log(o);const t=parseFloat(i.value.depositAmount),n=(t+parseFloat(w.price)).toFixed(2);e.index.hideLoading(),e.index.redirectTo({url:`/pages/order/payment?orderId=${c.orderId}&packageTimeHours=${w.time.replace("小时","")}&packagePrice=${w.price}&totalAmount=${n}&depositAmount=${y.value}${i.value&&i.value.feeConfig?"&feeConfig="+encodeURIComponent(i.value.feeConfig):""}`})}else if("wx-score-pay"==o){e.index.hideLoading();const o=await a.getOrderByOrderNoScore(c.orderNo);if(e.index.hideLoading(),o&&200===o.code)try{if("0"==(await t.initiateWeChatScorePayment(o)).errCode){const o=await a.getOrderByOrderNoScorePayStatus(c.orderNo);console.log(o.data.orderStatus),"in_used"==o.data.orderStatus?(e.index.showToast({title:"设备租借成功",icon:"success"}),setTimeout((()=>{e.index.redirectTo({url:"/pages/order/index"})}),1500)):"waiting_for_payment"==o.data.orderStatus&&(e.index.showToast({title:"设备租借失败,订单已取消",icon:"error"}),await a.cancelOrder({orderId:c.orderNo}),setTimeout((()=>{e.index.switchTab({url:"/pages/index/index"})}),1500))}}catch(r){e.index.showToast({title:"支付分调用失败,请重试",icon:"none"})}else e.index.showToast({title:(null==o?void 0:o.msg)||"获取支付参数失败",icon:"none"})}}catch(s){e.index.hideLoading(),e.index.showToast({title:s.message||"租借失败,请重试",icon:"none"})}};return(a,t)=>e.e({a:e.t(l.text),b:e.n(l.class),c:e.t(d.value),d:o._imports_0$4,e:e.t(s.value),f:e.t(r.value.maxHourPrice),g:e.t(i.value.depositAmount),h:e.t(c.value?"归还设备":"免押租借"),i:c.value?1:"",j:e.o((e=>m("wx-score-pay"))),k:o._imports_0$3,l:v.value},v.value?{m:e.o((()=>{})),n:e.o(x),o:e.o((e=>v.value=!1))}:{})}},i=e._export_sfc(n,[["__scopeId","data-v-43d897c5"]]);wx.createPage(i); diff --git a/unpackage/dist/build/mp-weixin/pages/device/detail.wxml b/unpackage/dist/build/mp-weixin/pages/device/detail.wxml index 3663585..c1bcafe 100644 --- a/unpackage/dist/build/mp-weixin/pages/device/detail.wxml +++ b/unpackage/dist/build/mp-weixin/pages/device/detail.wxml @@ -1 +1 @@ -{{a}}共享风扇设备号:{{c}}当前位置{{e}}计费规则¥{{f}}/小时封顶 ¥{{g}}不足60分钟按60分钟计费持续计费至99元视为买断使用须知请在使用前检查设备是否完好请在指定区域内使用设备归还时请确保设备完好,避免损坏微信支付分|550分及以上优享授权获取手机号为了提供更好的服务,需要授权获取您的手机号暂不授权 \ No newline at end of file +{{a}}共享风扇设备号:{{c}}当前位置{{e}}计费规则¥{{f}}/小时封顶 ¥{{g}}不足60分钟按60分钟计费持续计费至99元视为买断使用须知请在使用前检查设备是否完好请在指定区域内使用设备归还时请确保设备完好,避免损坏微信支付分|550分及以上优享授权获取手机号为了提供更好的服务,需要授权获取您的手机号暂不授权 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/device/detail.wxss b/unpackage/dist/build/mp-weixin/pages/device/detail.wxss index 8f15ea6..f44c5ed 100644 --- a/unpackage/dist/build/mp-weixin/pages/device/detail.wxss +++ b/unpackage/dist/build/mp-weixin/pages/device/detail.wxss @@ -1 +1 @@ -.container.data-v-23b2f720{min-height:100vh;background-color:#f5f7fa;padding:30rpx 30rpx 300rpx;box-sizing:border-box}.device-header.data-v-23b2f720{display:flex;flex-direction:column;margin-bottom:30rpx}.device-header .device-status-card.data-v-23b2f720{display:flex;align-items:center;margin-bottom:20rpx}.device-header .device-status-card .status-indicator.data-v-23b2f720{width:20rpx;height:20rpx;border-radius:50%;margin-right:10rpx}.device-header .device-status-card.available .status-indicator.data-v-23b2f720{background-color:#10c469;box-shadow:0 0 10rpx rgba(16,196,105,.5)}.device-header .device-status-card.available .status-text.data-v-23b2f720{color:#10c469}.device-header .device-status-card.offline .status-indicator.data-v-23b2f720{background-color:#9a9a9a}.device-header .device-status-card.offline .status-text.data-v-23b2f720{color:#9a9a9a}.device-header .device-status-card .status-text.data-v-23b2f720{font-size:28rpx;font-weight:500}.device-header .device-title .name.data-v-23b2f720{font-size:48rpx;font-weight:700;color:#333}.device-header .device-title .device-meta.data-v-23b2f720{margin-top:10rpx;display:flex;align-items:center}.device-header .device-title .device-meta .id-label.data-v-23b2f720{font-size:26rpx;color:#999}.device-header .device-title .device-meta .id-value.data-v-23b2f720{font-size:26rpx;color:#666}.card.data-v-23b2f720{background-color:#fff;border-radius:24rpx;box-shadow:0 4rpx 24rpx rgba(0,0,0,.03);padding:30rpx;margin-bottom:30rpx}.card .card-header.data-v-23b2f720{display:flex;align-items:center;justify-content:space-between;margin-bottom:24rpx}.card .card-header .card-title.data-v-23b2f720{font-size:32rpx;font-weight:600;color:#333}.device-info-card .card-row.data-v-23b2f720{display:flex;justify-content:space-between}.device-info-card .card-item.data-v-23b2f720{display:flex;align-items:center;flex:1}.device-info-card .card-item .item-icon.data-v-23b2f720{width:60rpx;height:60rpx;border-radius:12rpx;margin-right:20rpx;display:flex;align-items:center;justify-content:center;font-size:30rpx;color:#fff}.device-info-card .card-item .item-icon.location-icon.data-v-23b2f720{background:linear-gradient(135deg,#40c9ff,#32a5ff)}.device-info-card .card-item .item-icon.battery-icon.data-v-23b2f720{background:linear-gradient(135deg,#33db92,#10c469)}.device-info-card .card-item .item-icon.battery-icon.battery-low.data-v-23b2f720{background:linear-gradient(135deg,#ff7676,#f54f4f)}.device-info-card .card-item .item-content.data-v-23b2f720{display:flex;flex-direction:column}.device-info-card .card-item .item-content .item-label.data-v-23b2f720{font-size:26rpx;color:#999;margin-bottom:4rpx}.device-info-card .card-item .item-content .item-value.data-v-23b2f720{font-size:30rpx;color:#333;font-weight:500}.pricing-card .pricing-banner.data-v-23b2f720{background:linear-gradient(to right,#f8f9ff,#e8f0ff);border-radius:16rpx;padding:30rpx;margin-bottom:30rpx;display:flex;flex-direction:column;align-items:center}.pricing-card .pricing-banner .pricing-main.data-v-23b2f720{display:flex;align-items:flex-end}.pricing-card .pricing-banner .pricing-main .price.data-v-23b2f720{font-size:60rpx;font-weight:700;color:#ff6b6b}.pricing-card .pricing-banner .pricing-main .unit.data-v-23b2f720{font-size:28rpx;color:#999;margin-left:4rpx;margin-bottom:10rpx}.pricing-card .pricing-banner .cap-price.data-v-23b2f720{margin-top:10rpx;font-size:26rpx;color:#666;background-color:rgba(255,107,107,.1);padding:6rpx 20rpx;border-radius:20rpx}.pricing-card .pricing-rules .rule-item.data-v-23b2f720{display:flex;align-items:center;margin-bottom:16rpx}.pricing-card .pricing-rules .rule-item.data-v-23b2f720:last-child{margin-bottom:0}.pricing-card .pricing-rules .rule-item .rule-dot.data-v-23b2f720{width:10rpx;height:10rpx;border-radius:50%;background-color:#ff6b6b;margin-right:16rpx}.pricing-card .pricing-rules .rule-item .rule-text.data-v-23b2f720{font-size:28rpx;color:#666}.pricing-card .pricing-rules .rule-item .rule-text .highlight.data-v-23b2f720{color:#ff6b6b;font-weight:700}.phone-card .phone-input-container .input-wrapper.data-v-23b2f720{display:flex;align-items:center;height:88rpx;background-color:#f5f7fa;border-radius:16rpx;padding:0 24rpx}.phone-card .phone-input-container .input-wrapper .prefix.data-v-23b2f720{font-size:28rpx;color:#666;margin-right:16rpx;padding-right:16rpx;border-right:1px solid #e0e0e0}.phone-card .phone-input-container .input-wrapper .phone-input.data-v-23b2f720{flex:1;height:88rpx;font-size:28rpx;color:#333;padding-left:10rpx}.phone-card .phone-input-container .phone-tip.data-v-23b2f720{font-size:24rpx;color:#999;margin-top:16rpx;display:block}.notice-card .notice-items .notice-item.data-v-23b2f720{display:flex;align-items:flex-start;margin-bottom:20rpx}.notice-card .notice-items .notice-item.data-v-23b2f720:last-child{margin-bottom:0}.notice-card .notice-items .notice-item .notice-dot.data-v-23b2f720{width:10rpx;height:10rpx;border-radius:50%;background-color:#32a5ff;margin-right:16rpx;margin-top:12rpx}.notice-card .notice-items .notice-item .notice-text.data-v-23b2f720{font-size:28rpx;color:#666;line-height:1.6}.footer.data-v-23b2f720{position:fixed;bottom:0;left:0;right:0;background-color:#fff;padding:20rpx 30rpx;padding-bottom:calc(20rpx + env(safe-area-inset-bottom));box-shadow:0 -2rpx 20rpx rgba(0,0,0,.05);z-index:100;display:flex;flex-direction:column;--footer-height: 180rpx}.footer .wechat-credit.data-v-23b2f720{display:flex;align-items:center;justify-content:center;margin-top:10rpx}.footer .wechat-credit .wx-icon.data-v-23b2f720{width:50rpx;height:40rpx;margin-right:10rpx}.footer .wechat-credit .credit-text.data-v-23b2f720{font-size:24rpx;color:#07c160;display:flex;align-items:center}.footer .wechat-credit .credit-text .credit-divider.data-v-23b2f720{margin:0 10rpx}.footer .wechat-credit .credit-text .credit-score.data-v-23b2f720{font-weight:500}.footer .rent-button.data-v-23b2f720{height:92rpx;border-radius:46rpx;background:linear-gradient(135deg,#07c160,#10d673);color:#fff;font-size:32rpx;font-weight:600;display:flex;align-items:center;justify-content:center;border:none;width:90%}.footer .rent-button.return-button.data-v-23b2f720{background:linear-gradient(135deg,#ff9800,#ffb74d)}.footer .rent-button.data-v-23b2f720:active{transform:scale(.98);opacity:.9}.phone-auth-popup.data-v-23b2f720{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center;background-color:rgba(0,0,0,.5)}.popup-mask.data-v-23b2f720{position:absolute;top:0;left:0;right:0;bottom:0}.popup-content.data-v-23b2f720{background-color:#fff;border-radius:24rpx;box-shadow:0 8rpx 32rpx rgba(0,0,0,.15);width:90%;max-width:500rpx;padding:40rpx 30rpx;position:relative;z-index:1001;display:flex;flex-direction:column;align-items:center}.popup-header.data-v-23b2f720{margin-bottom:30rpx;text-align:center}.popup-title.data-v-23b2f720{font-size:36rpx;font-weight:700;color:#333}.popup-body.data-v-23b2f720{width:100%;display:flex;flex-direction:column;align-items:center;margin-bottom:30rpx}.auth-desc.data-v-23b2f720{font-size:28rpx;color:#666;text-align:center;margin-bottom:30rpx;line-height:1.6}.auth-btn.data-v-23b2f720{width:100%;height:92rpx;border-radius:46rpx;background:linear-gradient(135deg,#07c160,#10d673);color:#fff;font-size:32rpx;font-weight:600;display:flex;align-items:center;justify-content:center;border:none;margin-bottom:20rpx}.auth-btn.data-v-23b2f720:active{transform:scale(.98);opacity:.9}.auth-cancel.data-v-23b2f720{width:100%;height:92rpx;border-radius:46rpx;background-color:#f5f7fa;color:#333;font-size:32rpx;font-weight:600;display:flex;align-items:center;justify-content:center;border:none}.auth-cancel.data-v-23b2f720:active{transform:scale(.98);opacity:.9} +.container.data-v-43d897c5{min-height:100vh;background-color:#f5f7fa;padding:30rpx 30rpx 300rpx;box-sizing:border-box}.device-header.data-v-43d897c5{display:flex;flex-direction:column;margin-bottom:30rpx}.device-header .device-status-card.data-v-43d897c5{display:flex;align-items:center;margin-bottom:20rpx}.device-header .device-status-card .status-indicator.data-v-43d897c5{width:20rpx;height:20rpx;border-radius:50%;margin-right:10rpx}.device-header .device-status-card.available .status-indicator.data-v-43d897c5{background-color:#10c469;box-shadow:0 0 10rpx rgba(16,196,105,.5)}.device-header .device-status-card.available .status-text.data-v-43d897c5{color:#10c469}.device-header .device-status-card.offline .status-indicator.data-v-43d897c5{background-color:#9a9a9a}.device-header .device-status-card.offline .status-text.data-v-43d897c5{color:#9a9a9a}.device-header .device-status-card .status-text.data-v-43d897c5{font-size:28rpx;font-weight:500}.device-header .device-title .name.data-v-43d897c5{font-size:48rpx;font-weight:700;color:#333}.device-header .device-title .device-meta.data-v-43d897c5{margin-top:10rpx;display:flex;align-items:center}.device-header .device-title .device-meta .id-label.data-v-43d897c5{font-size:26rpx;color:#999}.device-header .device-title .device-meta .id-value.data-v-43d897c5{font-size:26rpx;color:#666}.card.data-v-43d897c5{background-color:#fff;border-radius:24rpx;box-shadow:0 4rpx 24rpx rgba(0,0,0,.03);padding:30rpx;margin-bottom:30rpx}.card .card-header.data-v-43d897c5{display:flex;align-items:center;justify-content:space-between;margin-bottom:24rpx}.card .card-header .card-title.data-v-43d897c5{font-size:32rpx;font-weight:600;color:#333}.device-info-card .card-row.data-v-43d897c5{display:flex;justify-content:space-between}.device-info-card .card-item.data-v-43d897c5{display:flex;align-items:center;flex:1}.device-info-card .card-item .item-icon.data-v-43d897c5{width:60rpx;height:60rpx;border-radius:12rpx;margin-right:20rpx;display:flex;align-items:center;justify-content:center;font-size:30rpx;color:#fff}.device-info-card .card-item .item-icon.location-icon.data-v-43d897c5{background:linear-gradient(135deg,#40c9ff,#32a5ff)}.device-info-card .card-item .item-icon.battery-icon.data-v-43d897c5{background:linear-gradient(135deg,#33db92,#10c469)}.device-info-card .card-item .item-icon.battery-icon.battery-low.data-v-43d897c5{background:linear-gradient(135deg,#ff7676,#f54f4f)}.device-info-card .card-item .item-content.data-v-43d897c5{display:flex;flex-direction:column}.device-info-card .card-item .item-content .item-label.data-v-43d897c5{font-size:26rpx;color:#999;margin-bottom:4rpx}.device-info-card .card-item .item-content .item-value.data-v-43d897c5{font-size:30rpx;color:#333;font-weight:500}.pricing-card .pricing-banner.data-v-43d897c5{background:linear-gradient(to right,#f8f9ff,#e8f0ff);border-radius:16rpx;padding:30rpx;margin-bottom:30rpx;display:flex;flex-direction:column;align-items:center}.pricing-card .pricing-banner .pricing-main.data-v-43d897c5{display:flex;align-items:flex-end}.pricing-card .pricing-banner .pricing-main .price.data-v-43d897c5{font-size:60rpx;font-weight:700;color:#ff6b6b}.pricing-card .pricing-banner .pricing-main .unit.data-v-43d897c5{font-size:28rpx;color:#999;margin-left:4rpx;margin-bottom:10rpx}.pricing-card .pricing-banner .cap-price.data-v-43d897c5{margin-top:10rpx;font-size:26rpx;color:#666;background-color:rgba(255,107,107,.1);padding:6rpx 20rpx;border-radius:20rpx}.pricing-card .pricing-rules .rule-item.data-v-43d897c5{display:flex;align-items:center;margin-bottom:16rpx}.pricing-card .pricing-rules .rule-item.data-v-43d897c5:last-child{margin-bottom:0}.pricing-card .pricing-rules .rule-item .rule-dot.data-v-43d897c5{width:10rpx;height:10rpx;border-radius:50%;background-color:#ff6b6b;margin-right:16rpx}.pricing-card .pricing-rules .rule-item .rule-text.data-v-43d897c5{font-size:28rpx;color:#666}.pricing-card .pricing-rules .rule-item .rule-text .highlight.data-v-43d897c5{color:#ff6b6b;font-weight:700}.phone-card .phone-input-container .input-wrapper.data-v-43d897c5{display:flex;align-items:center;height:88rpx;background-color:#f5f7fa;border-radius:16rpx;padding:0 24rpx}.phone-card .phone-input-container .input-wrapper .prefix.data-v-43d897c5{font-size:28rpx;color:#666;margin-right:16rpx;padding-right:16rpx;border-right:1px solid #e0e0e0}.phone-card .phone-input-container .input-wrapper .phone-input.data-v-43d897c5{flex:1;height:88rpx;font-size:28rpx;color:#333;padding-left:10rpx}.phone-card .phone-input-container .phone-tip.data-v-43d897c5{font-size:24rpx;color:#999;margin-top:16rpx;display:block}.notice-card .notice-items .notice-item.data-v-43d897c5{display:flex;align-items:flex-start;margin-bottom:20rpx}.notice-card .notice-items .notice-item.data-v-43d897c5:last-child{margin-bottom:0}.notice-card .notice-items .notice-item .notice-dot.data-v-43d897c5{width:10rpx;height:10rpx;border-radius:50%;background-color:#32a5ff;margin-right:16rpx;margin-top:12rpx}.notice-card .notice-items .notice-item .notice-text.data-v-43d897c5{font-size:28rpx;color:#666;line-height:1.6}.footer.data-v-43d897c5{position:fixed;bottom:0;left:0;right:0;background-color:#fff;padding:20rpx 30rpx;padding-bottom:calc(20rpx + env(safe-area-inset-bottom));box-shadow:0 -2rpx 20rpx rgba(0,0,0,.05);z-index:100;display:flex;flex-direction:column;--footer-height: 180rpx}.footer .wechat-credit.data-v-43d897c5{display:flex;align-items:center;justify-content:center;margin-top:10rpx}.footer .wechat-credit .wx-icon.data-v-43d897c5{width:50rpx;height:40rpx;margin-right:10rpx}.footer .wechat-credit .credit-text.data-v-43d897c5{font-size:24rpx;color:#07c160;display:flex;align-items:center}.footer .wechat-credit .credit-text .credit-divider.data-v-43d897c5{margin:0 10rpx}.footer .wechat-credit .credit-text .credit-score.data-v-43d897c5{font-weight:500}.footer .rent-button.data-v-43d897c5{height:92rpx;border-radius:46rpx;background:linear-gradient(135deg,#07c160,#10d673);color:#fff;font-size:32rpx;font-weight:600;display:flex;align-items:center;justify-content:center;border:none;width:90%}.footer .rent-button.return-button.data-v-43d897c5{background:linear-gradient(135deg,#ff9800,#ffb74d)}.footer .rent-button.data-v-43d897c5:active{transform:scale(.98);opacity:.9}.phone-auth-popup.data-v-43d897c5{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center;background-color:rgba(0,0,0,.5)}.popup-mask.data-v-43d897c5{position:absolute;top:0;left:0;right:0;bottom:0}.popup-content.data-v-43d897c5{background-color:#fff;border-radius:24rpx;box-shadow:0 8rpx 32rpx rgba(0,0,0,.15);width:90%;max-width:500rpx;padding:40rpx 30rpx;position:relative;z-index:1001;display:flex;flex-direction:column;align-items:center}.popup-header.data-v-43d897c5{margin-bottom:30rpx;text-align:center}.popup-title.data-v-43d897c5{font-size:36rpx;font-weight:700;color:#333}.popup-body.data-v-43d897c5{width:100%;display:flex;flex-direction:column;align-items:center;margin-bottom:30rpx}.auth-desc.data-v-43d897c5{font-size:28rpx;color:#666;text-align:center;margin-bottom:30rpx;line-height:1.6}.auth-btn.data-v-43d897c5{width:100%;height:92rpx;border-radius:46rpx;background:linear-gradient(135deg,#07c160,#10d673);color:#fff;font-size:32rpx;font-weight:600;display:flex;align-items:center;justify-content:center;border:none;margin-bottom:20rpx}.auth-btn.data-v-43d897c5:active{transform:scale(.98);opacity:.9}.auth-cancel.data-v-43d897c5{width:100%;height:92rpx;border-radius:46rpx;background-color:#f5f7fa;color:#333;font-size:32rpx;font-weight:600;display:flex;align-items:center;justify-content:center;border:none}.auth-cancel.data-v-43d897c5:active{transform:scale(.98);opacity:.9} diff --git a/unpackage/dist/build/mp-weixin/pages/index/index.js b/unpackage/dist/build/mp-weixin/pages/index/index.js index a872b26..9e3c113 100644 --- a/unpackage/dist/build/mp-weixin/pages/index/index.js +++ b/unpackage/dist/build/mp-weixin/pages/index/index.js @@ -1 +1 @@ -"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),a=require("../../util/index.js"),o=require("../../config/url.js"),i=require("../../config/user.js"),n=require("../../utils/mapUtils.js");if(!Array){(e.resolveComponent("uv-notice-bar")+e.resolveComponent("uv-icon"))()}Math||((()=>"../../node-modules/@climblee/uv-ui/components/uv-notice-bar/uv-notice-bar.js")+d+(()=>"../../node-modules/@climblee/uv-ui/components/uv-icon/uv-icon.js"))();const d=()=>"../../components/MapComponent.js",r={__name:"index",setup(d){const r=e.ref(""),s=e.ref(null),l=e.ref([]),c=e.ref([]),u=e.ref(!1),v=e.ref(!1),g=e.ref(!1),p=e.ref(!1),m=e.ref(!1),x=e.ref([{title:"扫码使用",desc:"找到附近设备,扫描设备上的二维码即可开始租借"},{title:"免押金支付",desc:"无需支付押金,使用支付分免押即可完成租借"},{title:"开始使用",desc:"设备自动解锁,风扇弹出后取出即可开始使用"},{title:"归还设备",desc:"使用完毕后,按照设备规格要求将风扇还入即可结束订单"}]),h=e.ref("消费规则:每小时5元,不足1小时按1小时计费,最高24小时封顶,请爱护设备,使用后请及时归还"),f=e.ref(null);e.computed((()=>s.value&&s.value.address?`${s.value.district||"当前位置"} - 搜索附近场地`:"搜索附近场地")),e.onMounted((()=>{y()})),e.onUnmounted((()=>{}));const y=async()=>{v.value=!0;try{0,await w(),await S()}catch(e){console.error("初始化失败:",e),await S()}finally{v.value=!1}},w=async()=>{try{const o=await n.getUserLocation();s.value={longitude:o.longitude,latitude:o.latitude};try{e.index.setStorageSync("userLocation",{longitude:o.longitude,latitude:o.latitude})}catch(t){console.warn("缓存基础定位信息失败:",t)}p.value||(p.value=!0);try{const a=await n.getRegeo(o.longitude,o.latitude);if(a.success){const o=a.data;s.value.address=o.formatted_address,s.value.city=o.addressComponent.city,s.value.district=o.addressComponent.district;try{e.index.setStorageSync("userLocation",{longitude:s.value.longitude,latitude:s.value.latitude,address:s.value.address,city:s.value.city,district:s.value.district})}catch(t){console.warn("缓存带地址的定位信息失败:",t)}}}catch(a){}setTimeout((async()=>{await S(),e.index.hideLoading()}),800)}catch(a){console.error("获取位置失败:",a),e.index.showToast({title:"获取位置失败,显示默认地图",icon:"none"})}},S=async()=>{try{e.index.getStorageSync("token")||await a.wxLogin();const t=await e.index.request({url:`${o.URL}/device/position/app/list`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")},data:{latitude:s.value.latitude,longitude:s.value.longitude}});200===t.statusCode&&200===t.data.code?(l.value=t.data.rows||[],T(),c.value=[...l.value]):console.error("获取场地列表失败:",t.data.msg)}catch(t){console.error("获取场地列表异常:",t)}},T=async(e=null)=>{var t;const a=e||s.value||(null==(t=f.value)?void 0:t.mapCenter);a&&void 0!==a.longitude&&void 0!==a.latitude&&(l.value.forEach((e=>{if(e.longitude&&e.latitude)try{const t=n.calculateDistanceSync(a.latitude,a.longitude,parseFloat(e.latitude),parseFloat(e.longitude));e.distance=(e=>e<1e3?`${Math.round(e)}m`:`${(e/1e3).toFixed(1)}km`)(t),e.distanceInMeters=t}catch(t){console.error("计算距离异常:",t,e),e.distance="999.0km",e.distanceInMeters=999e3}})),l.value.sort(((e,t)=>(e.distanceInMeters||999e3)-(t.distanceInMeters||999e3))))},k=async()=>{e.index.showLoading({title:"定位中..."}),e.index.reLaunch({url:"/pages/index/index"})},C=t=>{(async t=>{try{e.index.getStorageSync("token")||await a.wxLogin();const i=await e.index.request({url:`${o.URL}/device/position/list`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(200===i.statusCode&&200===i.data.code){l.value=i.data.rows||[],T(t);const e=1e4;c.value=l.value.filter((t=>!t.distanceInMeters||t.distanceInMeters<=e))}else console.error("根据地图中心加载场地失败:",i.data.msg),l.value=[],c.value=[]}catch(i){console.error("根据地图中心加载场地异常:",i)}})(t)},I=t=>{e.index.showActionSheet({itemList:["扫码使用","导航前往"],success:e=>{switch(e.tapIndex){case 0:$();break;case 1:L(t)}}})},L=t=>{const a=parseFloat(t.latitude),o=parseFloat(t.longitude);e.index.openLocation({latitude:a,longitude:o,name:t.name,address:t.location})},$=async()=>{try{const d=await new Promise(((t,a)=>{e.index.scanCode({success:t,fail:a})}));let r=a.getQueryString(d.path,"deviceNo");if(!r)return void e.index.showToast({title:"无效的设备二维码",icon:"none"});e.index.getStorageSync("token")||await a.wxLogin();const s=await e.index.request({url:`${o.URL}/app/order/inUse`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(200==s.statusCode&&200==s.data.code&&s.data.data){const t=s.data.data;return void e.index.reLaunch({url:`/pages/return/index?orderId=${t.orderId}&deviceId=${r||t.deviceNo}`})}const l=await e.index.request({url:`${o.URL}/app/order/unpaid`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(200==l.statusCode&&200==l.data.code&&l.data.data){const t=l.data.data;e.index.navigateTo({url:`/pages/order/payment?orderId=${t.orderId}`})}else try{const a=await i.getDeviceInfo(r);if(200==a.code&&a.data&&a.data.device){const o=a.data.device;if(o.feeConfig)try{JSON.parse(o.feeConfig);e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}&feeConfig=${encodeURIComponent(o.feeConfig)}`})}catch(t){e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}else e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}else e.index.showToast({title:"获取设备信息失败",icon:"none"}),e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}catch(n){console.error("获取设备信息异常:",n),e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}}catch(n){console.error("扫码处理失败:",n),e.index.showToast({title:"扫码失败",icon:"none"})}},_=()=>{m.value=!0},b=()=>{m.value=!1},j=e=>{"getPhoneNumber:ok"===e.detail.errMsg&&(g.value=!1)};return(a,o)=>e.e({a:t._imports_0$1,b:e.p({text:h.value,mode:"link",speed:50,"show-icon":!0,color:"#2196F3","bg-color":"#E3F2FD",icon:"volume"}),c:!v.value&&s.value},!v.value&&s.value?{d:e.sr(f,"d45cdca7-1",{k:"mapRef"}),e:e.o(k),f:e.o($),g:e.o(_),h:e.o(I),i:e.o(C),j:e.p({userLocation:s.value,positionList:l.value,filteredPositions:c.value,searchKeyword:r.value})}:{},{k:e.f(x.value,((t,a,o)=>({a:e.t(a+1),b:e.t(t.title),c:e.t(t.desc),d:a}))),l:v.value||!s.value},(v.value||s.value,{}),{m:m.value},m.value?e.e({n:e.o(b),o:e.t(c.value.length),p:e.p({name:"close"}),q:e.o(b),r:e.f(c.value,((t,a,o)=>e.e({a:e.t(t.name),b:e.t("online"===t.status?"可租借/归还":"不可租借/归还"),c:e.n(t.status),d:t.workTime&&"0"!==t.workTime},t.workTime&&"0"!==t.workTime?{e:e.t(t.workTime)}:{},{f:t.distance},t.distance?{g:e.t(t.distance)}:{},{h:e.t("online"===t.status?"营业中":"暂停服务"),i:e.n(t.status),j:e.o((e=>L(t)),t.positionId),k:t.positionId,l:e.o((e=>{return a=t,b(),void setTimeout((()=>{I(a)}),200);var a}),t.positionId)}))),s:0===c.value.length&&!v.value},0!==c.value.length||v.value?{}:{t:t._imports_0},{v:u.value?1:""}):{},{w:v.value},(v.value,{}),{x:g.value},g.value?{y:e.o((e=>g.value=!1)),z:e.o(j),A:e.o((e=>g.value=!1))}:{})}},s=e._export_sfc(r,[["__scopeId","data-v-d45cdca7"]]);wx.createPage(s); +"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),a=require("../../util/index.js"),o=require("../../config/url.js"),i=require("../../config/user.js"),n=require("../../utils/mapUtils.js");if(!Array){(e.resolveComponent("uv-notice-bar")+e.resolveComponent("uv-icon"))()}Math||((()=>"../../node-modules/@climblee/uv-ui/components/uv-notice-bar/uv-notice-bar.js")+d+(()=>"../../node-modules/@climblee/uv-ui/components/uv-icon/uv-icon.js"))();const d=()=>"../../components/MapComponent.js",s={__name:"index",setup(d){const s=e.ref(""),r=e.ref(null),l=e.ref([]),c=e.ref([]),u=e.ref(!1),v=e.ref(!1),g=e.ref(!1),p=e.ref(!1),m=e.ref(!1),x=e.ref([{title:"扫码使用",desc:"找到附近设备,扫描设备上的二维码即可开始租借"},{title:"免押金支付",desc:"无需支付押金,使用支付分免押即可完成租借"},{title:"开始使用",desc:"设备自动解锁,风扇弹出后取出即可开始使用"},{title:"归还设备",desc:"使用完毕后,按照设备规格要求将风扇还入即可结束订单"}]),f=e.ref("消费规则:每小时5元,不足1小时按1小时计费,最高24小时封顶,请爱护设备,使用后请及时归还"),h=e.ref(null);e.computed((()=>r.value&&r.value.address?`${r.value.district||"当前位置"} - 搜索附近场地`:"搜索附近场地")),e.onMounted((()=>{y()})),e.onUnmounted((()=>{}));const y=async()=>{v.value=!0;try{0,await w(),await S()}catch(e){console.error("初始化失败:",e),await S()}finally{v.value=!1}},w=async()=>{try{const o=await n.getUserLocation();r.value={longitude:o.longitude,latitude:o.latitude},console.log(r.value);try{e.index.setStorageSync("userLocation",{longitude:o.longitude,latitude:o.latitude})}catch(t){console.warn("缓存基础定位信息失败:",t)}p.value||(p.value=!0);try{const a=await n.getRegeo(o.longitude,o.latitude);if(a.success){const o=a.data;r.value.address=o.formatted_address,r.value.city=o.addressComponent.city,r.value.district=o.addressComponent.district;try{e.index.setStorageSync("userLocation",{longitude:r.value.longitude,latitude:r.value.latitude,address:r.value.address,city:r.value.city,district:r.value.district})}catch(t){console.warn("缓存带地址的定位信息失败:",t)}}}catch(a){}setTimeout((async()=>{await S(),e.index.hideLoading()}),800)}catch(a){console.error("获取位置失败:",a),e.index.showToast({title:"获取位置失败,显示默认地图",icon:"none"})}},S=async()=>{try{e.index.getStorageSync("token")||await a.wxLogin();const t=await e.index.request({url:`${o.URL}/device/position/app/list`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")},data:{latitude:r.value.latitude,longitude:r.value.longitude}});console.log(t),200===t.statusCode&&200===t.data.code?(l.value=t.data.rows||[],T(),c.value=[...l.value]):console.error("获取场地列表失败:",t.data.msg)}catch(t){console.error("获取场地列表异常:",t)}},T=async(e=null)=>{var t;const a=e||r.value||(null==(t=h.value)?void 0:t.mapCenter);a&&void 0!==a.longitude&&void 0!==a.latitude&&(l.value.forEach((e=>{if(e.longitude&&e.latitude)try{const t=n.calculateDistanceSync(a.latitude,a.longitude,parseFloat(e.latitude),parseFloat(e.longitude));e.distance=(e=>e<1e3?`${Math.round(e)}m`:`${(e/1e3).toFixed(1)}km`)(t),e.distanceInMeters=t}catch(t){console.error("计算距离异常:",t,e),e.distance="999.0km",e.distanceInMeters=999e3}})),l.value.sort(((e,t)=>(e.distanceInMeters||999e3)-(t.distanceInMeters||999e3))))},k=async()=>{e.index.showLoading({title:"定位中..."}),e.index.reLaunch({url:"/pages/index/index"})},C=t=>{(async t=>{try{e.index.getStorageSync("token")||await a.wxLogin();const i=await e.index.request({url:`${o.URL}/device/position/list`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(200===i.statusCode&&200===i.data.code){l.value=i.data.rows||[],T(t);const e=1e4;c.value=l.value.filter((t=>!t.distanceInMeters||t.distanceInMeters<=e))}else console.error("根据地图中心加载场地失败:",i.data.msg),l.value=[],c.value=[]}catch(i){console.error("根据地图中心加载场地异常:",i)}})(t)},I=t=>{e.index.showActionSheet({itemList:["扫码使用","导航前往"],success:e=>{switch(e.tapIndex){case 0:$();break;case 1:L(t)}}})},L=t=>{const a=parseFloat(t.latitude),o=parseFloat(t.longitude);e.index.openLocation({latitude:a,longitude:o,name:t.name,address:t.location})},$=async()=>{try{const d=await new Promise(((t,a)=>{e.index.scanCode({success:t,fail:a})}));let s=a.getQueryString(d.path,"deviceNo");if(!s)return void e.index.showToast({title:"无效的设备二维码",icon:"none"});e.index.getStorageSync("token")||await a.wxLogin();const r=await e.index.request({url:`${o.URL}/app/order/inUse`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(200==r.statusCode&&200==r.data.code&&r.data.data){const t=r.data.data;return void e.index.reLaunch({url:`/pages/return/index?orderId=${t.orderId}&deviceId=${s||t.deviceNo}`})}const l=await e.index.request({url:`${o.URL}/app/order/unpaid`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(200==l.statusCode&&200==l.data.code&&l.data.data){const t=l.data.data;e.index.navigateTo({url:`/pages/order/payment?orderId=${t.orderId}`})}else try{const a=await i.getDeviceInfo(s);if(200==a.code&&a.data&&a.data.device){const o=a.data.device;if(o.feeConfig)try{JSON.parse(o.feeConfig);e.index.navigateTo({url:`/pages/device/detail?deviceNo=${s}&feeConfig=${encodeURIComponent(o.feeConfig)}`})}catch(t){e.index.navigateTo({url:`/pages/device/detail?deviceNo=${s}`})}else e.index.navigateTo({url:`/pages/device/detail?deviceNo=${s}`})}else e.index.showToast({title:"获取设备信息失败",icon:"none"}),e.index.navigateTo({url:`/pages/device/detail?deviceNo=${s}`})}catch(n){console.error("获取设备信息异常:",n),e.index.navigateTo({url:`/pages/device/detail?deviceNo=${s}`})}}catch(n){console.error("扫码处理失败:",n),e.index.showToast({title:"扫码失败",icon:"none"})}},b=()=>{m.value=!0},_=()=>{m.value=!1},j=e=>{"getPhoneNumber:ok"===e.detail.errMsg&&(g.value=!1)};return(a,o)=>e.e({a:t._imports_0$1,b:e.p({text:f.value,mode:"link",speed:50,"show-icon":!0,color:"#2196F3","bg-color":"#E3F2FD",icon:"volume"}),c:!v.value&&r.value},!v.value&&r.value?{d:e.sr(h,"cfb209b7-1",{k:"mapRef"}),e:e.o(k),f:e.o($),g:e.o(b),h:e.o(I),i:e.o(C),j:e.p({userLocation:r.value,positionList:l.value,filteredPositions:c.value,searchKeyword:s.value})}:{},{k:e.f(x.value,((t,a,o)=>({a:e.t(a+1),b:e.t(t.title),c:e.t(t.desc),d:a}))),l:v.value||!r.value},(v.value||r.value,{}),{m:m.value},m.value?e.e({n:e.o(_),o:e.t(c.value.length),p:e.p({name:"close"}),q:e.o(_),r:e.f(c.value,((t,a,o)=>e.e({a:e.t(t.name),b:e.t("online"===t.status?"可租借/归还":"不可租借/归还"),c:e.n(t.status),d:t.workTime&&"0"!==t.workTime},t.workTime&&"0"!==t.workTime?{e:e.t(t.workTime)}:{},{f:t.distance},t.distance?{g:e.t(t.distance)}:{},{h:e.t("online"===t.status?"营业中":"暂停服务"),i:e.n(t.status),j:e.o((e=>L(t)),t.positionId),k:t.positionId,l:e.o((e=>{return a=t,_(),void setTimeout((()=>{I(a)}),200);var a}),t.positionId)}))),s:0===c.value.length&&!v.value},0!==c.value.length||v.value?{}:{t:t._imports_0},{v:u.value?1:""}):{},{w:v.value},(v.value,{}),{x:g.value},g.value?{y:e.o((e=>g.value=!1)),z:e.o(j),A:e.o((e=>g.value=!1))}:{})}},r=e._export_sfc(s,[["__scopeId","data-v-cfb209b7"]]);wx.createPage(r); diff --git a/unpackage/dist/build/mp-weixin/pages/index/index.wxml b/unpackage/dist/build/mp-weixin/pages/index/index.wxml index 9599759..620ad53 100644 --- a/unpackage/dist/build/mp-weixin/pages/index/index.wxml +++ b/unpackage/dist/build/mp-weixin/pages/index/index.wxml @@ -1 +1 @@ -共享风扇使用指南{{step.a}}{{step.b}}{{step.c}}正在获取位置信息...附近设备场地 ({{o}}){{item.a}}{{item.b}}营业时间:{{item.e}}{{item.g}}{{item.h}}导航附近5公里内暂无设备正在获取场地信息...授权获取手机号为了提供更好的服务和紧急联系,需要授权获取您的手机号暂不授权 \ No newline at end of file +共享风扇使用指南{{step.a}}{{step.b}}{{step.c}}正在获取位置信息...附近设备场地 ({{o}}){{item.a}}{{item.b}}营业时间:{{item.e}}{{item.g}}{{item.h}}导航附近5公里内暂无设备正在获取场地信息...授权获取手机号为了提供更好的服务和紧急联系,需要授权获取您的手机号暂不授权 \ No newline at end of file diff --git a/unpackage/dist/build/mp-weixin/pages/index/index.wxss b/unpackage/dist/build/mp-weixin/pages/index/index.wxss index 22052ff..dced033 100644 --- a/unpackage/dist/build/mp-weixin/pages/index/index.wxss +++ b/unpackage/dist/build/mp-weixin/pages/index/index.wxss @@ -1 +1 @@ -.container.data-v-d45cdca7{height:100%;width:100%;background-color:#f6f7fb;display:flex;flex-direction:column;padding-top:20rpx}.header-section.data-v-d45cdca7{width:92%;margin:0 auto 20rpx}.logo-container.data-v-d45cdca7{display:flex;align-items:center}.logo-container .logo-image.data-v-d45cdca7{width:80rpx;height:80rpx;margin-right:8rpx}.logo-container .app-name.data-v-d45cdca7{font-size:36rpx;font-weight:600;color:#333}.map-title.data-v-d45cdca7{width:92%;margin:0 auto 10rpx;padding:10rpx 0}.map-title text.data-v-d45cdca7{font-size:32rpx;font-weight:600;color:#333}.header-search.data-v-d45cdca7{padding:20rpx 30rpx;background:#fff;border-bottom:1px solid #f0f0f0;z-index:10}.header-search .search-box.data-v-d45cdca7{display:flex;align-items:center;background:#f8f9fa;border-radius:50rpx;padding:0 20rpx;height:80rpx}.header-search .search-box .search-icon.data-v-d45cdca7{width:32rpx;height:32rpx;margin-right:16rpx}.header-search .search-box .search-input.data-v-d45cdca7{flex:1;font-size:28rpx;color:#333}.header-search .search-box .location-btn.data-v-d45cdca7{width:60rpx;height:60rpx;display:flex;align-items:center;justify-content:center;background:#2196f3;border-radius:50%;margin-left:16rpx}.header-search .search-box .location-btn .location-icon.data-v-d45cdca7{width:24rpx;height:24rpx}.location-popup.data-v-d45cdca7{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;display:flex;align-items:flex-end;justify-content:center}.location-popup .popup-mask.data-v-d45cdca7{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5)}.location-popup .location-sheet.data-v-d45cdca7{background:#fff;border-radius:32rpx 32rpx 0 0;box-shadow:0 -4rpx 20rpx rgba(0,0,0,.1);max-height:70vh;transition:all .3s ease;z-index:1;position:relative;width:100%;display:flex;flex-direction:column;animation:slideUp-d45cdca7 .3s ease-out}.location-popup .location-sheet.expanded.data-v-d45cdca7{max-height:85vh}.location-popup .location-sheet .sheet-handle.data-v-d45cdca7{display:flex;justify-content:center;padding:20rpx 0;cursor:pointer}.location-popup .location-sheet .sheet-handle .handle-bar.data-v-d45cdca7{width:80rpx;height:8rpx;background:#e0e0e0;border-radius:4rpx}.location-popup .location-sheet .sheet-header.data-v-d45cdca7{padding:20rpx 30rpx;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;align-items:center}.location-popup .location-sheet .sheet-header .sheet-title.data-v-d45cdca7{font-size:32rpx;font-weight:600;color:#333}.location-popup .location-sheet .sheet-header .close-btn.data-v-d45cdca7{width:60rpx;height:60rpx;display:flex;align-items:center;justify-content:center;background:#f0f0f0;border-radius:50%;transition:all .2s ease}.location-popup .location-sheet .sheet-header .close-btn.data-v-d45cdca7:active{background:#e0e0e0;transform:scale(.95)}.location-popup .location-sheet .sheet-header .close-btn .close-icon.data-v-d45cdca7{width:24rpx;height:24rpx}.location-popup .location-sheet .sheet-content.data-v-d45cdca7{padding:20rpx 0;height:60vh}@keyframes slideUp-d45cdca7{0%{transform:translateY(100%)}to{transform:translateY(0)}}.position-item.data-v-d45cdca7{display:flex;align-items:center;padding:24rpx 30rpx;border-bottom:1px solid #f8f9fa}.position-item .position-info.data-v-d45cdca7{flex:1}.position-item .position-info .position-name.data-v-d45cdca7{font-size:32rpx;font-weight:500;color:#333;margin-bottom:8rpx}.position-item .position-info .position-desc.data-v-d45cdca7{font-size:26rpx;color:#666;margin-bottom:8rpx}.position-item .position-info .position-location.data-v-d45cdca7{display:flex;align-items:center;margin-bottom:8rpx}.position-item .position-info .position-location .location-icon-small.data-v-d45cdca7{width:24rpx;height:24rpx;margin-right:8rpx}.position-item .position-info .position-location text.data-v-d45cdca7{font-size:24rpx;color:#999}.position-item .position-info .position-time.data-v-d45cdca7{font-size:24rpx;color:#999}.position-item .position-actions.data-v-d45cdca7{display:flex;flex-direction:column;align-items:flex-end;gap:8rpx}.position-item .position-actions .distance-info.data-v-d45cdca7{font-size:24rpx;color:#2196f3;font-weight:500}.position-item .position-actions .status-tag.data-v-d45cdca7{padding:8rpx 16rpx;border-radius:20rpx;font-size:22rpx}.position-item .position-actions .status-tag.online.data-v-d45cdca7{background:#e8f5e8;color:#4caf50}.position-item .position-actions .status-tag.offline.data-v-d45cdca7{background:#ffeaea;color:#f44336}.position-item .position-actions .nav-btn.data-v-d45cdca7{padding:12rpx 20rpx;background:#2196f3;border-radius:20rpx;font-size:24rpx;color:#fff}.empty-state.data-v-d45cdca7{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80rpx 0}.empty-state .empty-icon.data-v-d45cdca7{width:120rpx;height:120rpx;margin-bottom:24rpx;opacity:.5}.empty-state .empty-text.data-v-d45cdca7{font-size:28rpx;color:#999}.status-tag.data-v-d45cdca7{padding:8rpx 16rpx;border-radius:20rpx;font-size:22rpx;width:-webkit-fit-content;width:fit-content}.status-tag.online.data-v-d45cdca7{background:#e8f5e8;color:#4caf50}.status-tag.offline.data-v-d45cdca7,.status-tag.wait.data-v-d45cdca7{background:#ffeaea;color:#f44336}.loading-overlay.data-v-d45cdca7{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.loading-overlay .loading-content.data-v-d45cdca7{background:#fff;border-radius:16rpx;padding:40rpx;display:flex;flex-direction:column;align-items:center}.loading-overlay .loading-content .loading-spinner.data-v-d45cdca7{width:60rpx;height:60rpx;border:4rpx solid #f0f0f0;border-top:4rpx solid #2196F3;border-radius:50%;animation:spin-d45cdca7 1s linear infinite;margin-bottom:24rpx}.loading-overlay .loading-content text.data-v-d45cdca7{font-size:28rpx;color:#666}@keyframes spin-d45cdca7{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.map-loading-placeholder.data-v-d45cdca7{position:absolute;top:0;left:0;right:0;bottom:0;background:#f6f7fb;display:flex;align-items:center;justify-content:center;z-index:100}.map-loading-placeholder .loading-content.data-v-d45cdca7{background:#fff;border-radius:16rpx;padding:40rpx;display:flex;flex-direction:column;align-items:center}.map-loading-placeholder .loading-content .loading-spinner.data-v-d45cdca7{width:60rpx;height:60rpx;border:4rpx solid #f0f0f0;border-top:4rpx solid #2196F3;border-radius:50%;animation:spin-d45cdca7 1s linear infinite;margin-bottom:24rpx}.map-loading-placeholder .loading-content text.data-v-d45cdca7{font-size:28rpx;color:#666}.phone-auth-popup.data-v-d45cdca7{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;display:flex;align-items:center;justify-content:center}.phone-auth-popup .popup-mask.data-v-d45cdca7{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5)}.phone-auth-popup .popup-content.data-v-d45cdca7{background:#fff;border-radius:24rpx;margin:0 60rpx;padding:40rpx;position:relative;z-index:1}.phone-auth-popup .popup-content .popup-header.data-v-d45cdca7{text-align:center;margin-bottom:30rpx}.phone-auth-popup .popup-content .popup-header .popup-title.data-v-d45cdca7{font-size:36rpx;font-weight:600;color:#333}.phone-auth-popup .popup-content .popup-body .auth-desc.data-v-d45cdca7{text-align:center;margin-bottom:40rpx}.phone-auth-popup .popup-content .popup-body .auth-desc text.data-v-d45cdca7{font-size:28rpx;color:#666;line-height:1.6}.phone-auth-popup .popup-content .popup-body .auth-btn.data-v-d45cdca7{width:100%;height:88rpx;background:#2196f3;border-radius:44rpx;border:none;color:#fff;font-size:32rpx;display:flex;align-items:center;justify-content:center;margin-bottom:20rpx}.phone-auth-popup .popup-content .popup-body .auth-cancel.data-v-d45cdca7{text-align:center;padding:20rpx}.phone-auth-popup .popup-content .popup-body .auth-cancel text.data-v-d45cdca7{font-size:28rpx;color:#999}.steps-guide.data-v-d45cdca7{align-items:center;align-content:center;background-color:rgba(255,255,255,.95);border-radius:20rpx;padding:0;box-shadow:0 8rpx 32rpx rgba(0,0,0,.12);z-index:10;-webkit-backdrop-filter:blur(15rpx);backdrop-filter:blur(15rpx);border:1rpx solid rgba(255,255,255,.9);overflow:hidden;width:92%;margin:0 auto 20rpx}.guide-header.data-v-d45cdca7{padding:20rpx 24rpx;background:linear-gradient(135deg,#2196f3,#1976d2);border-bottom:1rpx solid rgba(255,255,255,.2)}.guide-header .guide-title.data-v-d45cdca7{font-size:32rpx;font-weight:600;color:#fff;text-align:center;display:block}.steps-container.data-v-d45cdca7{display:flex;flex-direction:column;gap:16rpx;padding:24rpx;background-color:rgba(255,255,255,.9)}.step-item.data-v-d45cdca7{display:flex;align-items:flex-start;width:100%;padding:16rpx 0;border-bottom:1rpx solid rgba(0,0,0,.05)}.step-item.data-v-d45cdca7:last-child{border-bottom:none}.step-item .step-number.data-v-d45cdca7{width:40rpx;height:40rpx;background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24rpx;font-weight:700;margin-right:20rpx;flex-shrink:0;box-shadow:0 4rpx 12rpx rgba(33,150,243,.4)}.step-item .step-content.data-v-d45cdca7{flex:1;padding-top:4rpx}.step-item .step-content .step-title.data-v-d45cdca7{font-size:30rpx;font-weight:600;color:#333;margin-bottom:8rpx;display:block}.step-item .step-content .step-desc.data-v-d45cdca7{font-size:26rpx;color:#666;display:block;line-height:1.5} +.container.data-v-cfb209b7{height:100%;width:100%;background-color:#f6f7fb;display:flex;flex-direction:column;padding-top:20rpx}.header-section.data-v-cfb209b7{width:92%;margin:0 auto 20rpx}.logo-container.data-v-cfb209b7{display:flex;align-items:center}.logo-container .logo-image.data-v-cfb209b7{width:80rpx;height:80rpx;margin-right:8rpx}.logo-container .app-name.data-v-cfb209b7{font-size:36rpx;font-weight:600;color:#333}.map-title.data-v-cfb209b7{width:92%;margin:0 auto 10rpx;padding:10rpx 0}.map-title text.data-v-cfb209b7{font-size:32rpx;font-weight:600;color:#333}.header-search.data-v-cfb209b7{padding:20rpx 30rpx;background:#fff;border-bottom:1px solid #f0f0f0;z-index:10}.header-search .search-box.data-v-cfb209b7{display:flex;align-items:center;background:#f8f9fa;border-radius:50rpx;padding:0 20rpx;height:80rpx}.header-search .search-box .search-icon.data-v-cfb209b7{width:32rpx;height:32rpx;margin-right:16rpx}.header-search .search-box .search-input.data-v-cfb209b7{flex:1;font-size:28rpx;color:#333}.header-search .search-box .location-btn.data-v-cfb209b7{width:60rpx;height:60rpx;display:flex;align-items:center;justify-content:center;background:#2196f3;border-radius:50%;margin-left:16rpx}.header-search .search-box .location-btn .location-icon.data-v-cfb209b7{width:24rpx;height:24rpx}.location-popup.data-v-cfb209b7{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;display:flex;align-items:flex-end;justify-content:center}.location-popup .popup-mask.data-v-cfb209b7{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5)}.location-popup .location-sheet.data-v-cfb209b7{background:#fff;border-radius:32rpx 32rpx 0 0;box-shadow:0 -4rpx 20rpx rgba(0,0,0,.1);max-height:70vh;transition:all .3s ease;z-index:1;position:relative;width:100%;display:flex;flex-direction:column;animation:slideUp-cfb209b7 .3s ease-out}.location-popup .location-sheet.expanded.data-v-cfb209b7{max-height:85vh}.location-popup .location-sheet .sheet-handle.data-v-cfb209b7{display:flex;justify-content:center;padding:20rpx 0;cursor:pointer}.location-popup .location-sheet .sheet-handle .handle-bar.data-v-cfb209b7{width:80rpx;height:8rpx;background:#e0e0e0;border-radius:4rpx}.location-popup .location-sheet .sheet-header.data-v-cfb209b7{padding:20rpx 30rpx;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;align-items:center}.location-popup .location-sheet .sheet-header .sheet-title.data-v-cfb209b7{font-size:32rpx;font-weight:600;color:#333}.location-popup .location-sheet .sheet-header .close-btn.data-v-cfb209b7{width:60rpx;height:60rpx;display:flex;align-items:center;justify-content:center;background:#f0f0f0;border-radius:50%;transition:all .2s ease}.location-popup .location-sheet .sheet-header .close-btn.data-v-cfb209b7:active{background:#e0e0e0;transform:scale(.95)}.location-popup .location-sheet .sheet-header .close-btn .close-icon.data-v-cfb209b7{width:24rpx;height:24rpx}.location-popup .location-sheet .sheet-content.data-v-cfb209b7{padding:20rpx 0;height:60vh}@keyframes slideUp-cfb209b7{0%{transform:translateY(100%)}to{transform:translateY(0)}}.position-item.data-v-cfb209b7{display:flex;align-items:center;padding:24rpx 30rpx;border-bottom:1px solid #f8f9fa}.position-item .position-info.data-v-cfb209b7{flex:1}.position-item .position-info .position-name.data-v-cfb209b7{font-size:32rpx;font-weight:500;color:#333;margin-bottom:8rpx}.position-item .position-info .position-desc.data-v-cfb209b7{font-size:26rpx;color:#666;margin-bottom:8rpx}.position-item .position-info .position-location.data-v-cfb209b7{display:flex;align-items:center;margin-bottom:8rpx}.position-item .position-info .position-location .location-icon-small.data-v-cfb209b7{width:24rpx;height:24rpx;margin-right:8rpx}.position-item .position-info .position-location text.data-v-cfb209b7{font-size:24rpx;color:#999}.position-item .position-info .position-time.data-v-cfb209b7{font-size:24rpx;color:#999}.position-item .position-actions.data-v-cfb209b7{display:flex;flex-direction:column;align-items:flex-end;gap:8rpx}.position-item .position-actions .distance-info.data-v-cfb209b7{font-size:24rpx;color:#2196f3;font-weight:500}.position-item .position-actions .status-tag.data-v-cfb209b7{padding:8rpx 16rpx;border-radius:20rpx;font-size:22rpx}.position-item .position-actions .status-tag.online.data-v-cfb209b7{background:#e8f5e8;color:#4caf50}.position-item .position-actions .status-tag.offline.data-v-cfb209b7{background:#ffeaea;color:#f44336}.position-item .position-actions .nav-btn.data-v-cfb209b7{padding:12rpx 20rpx;background:#2196f3;border-radius:20rpx;font-size:24rpx;color:#fff}.empty-state.data-v-cfb209b7{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80rpx 0}.empty-state .empty-icon.data-v-cfb209b7{width:120rpx;height:120rpx;margin-bottom:24rpx;opacity:.5}.empty-state .empty-text.data-v-cfb209b7{font-size:28rpx;color:#999}.status-tag.data-v-cfb209b7{padding:8rpx 16rpx;border-radius:20rpx;font-size:22rpx;width:-webkit-fit-content;width:fit-content}.status-tag.online.data-v-cfb209b7{background:#e8f5e8;color:#4caf50}.status-tag.offline.data-v-cfb209b7,.status-tag.wait.data-v-cfb209b7{background:#ffeaea;color:#f44336}.loading-overlay.data-v-cfb209b7{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.loading-overlay .loading-content.data-v-cfb209b7{background:#fff;border-radius:16rpx;padding:40rpx;display:flex;flex-direction:column;align-items:center}.loading-overlay .loading-content .loading-spinner.data-v-cfb209b7{width:60rpx;height:60rpx;border:4rpx solid #f0f0f0;border-top:4rpx solid #2196F3;border-radius:50%;animation:spin-cfb209b7 1s linear infinite;margin-bottom:24rpx}.loading-overlay .loading-content text.data-v-cfb209b7{font-size:28rpx;color:#666}@keyframes spin-cfb209b7{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.map-loading-placeholder.data-v-cfb209b7{position:absolute;top:0;left:0;right:0;bottom:0;background:#f6f7fb;display:flex;align-items:center;justify-content:center;z-index:100}.map-loading-placeholder .loading-content.data-v-cfb209b7{background:#fff;border-radius:16rpx;padding:40rpx;display:flex;flex-direction:column;align-items:center}.map-loading-placeholder .loading-content .loading-spinner.data-v-cfb209b7{width:60rpx;height:60rpx;border:4rpx solid #f0f0f0;border-top:4rpx solid #2196F3;border-radius:50%;animation:spin-cfb209b7 1s linear infinite;margin-bottom:24rpx}.map-loading-placeholder .loading-content text.data-v-cfb209b7{font-size:28rpx;color:#666}.phone-auth-popup.data-v-cfb209b7{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;display:flex;align-items:center;justify-content:center}.phone-auth-popup .popup-mask.data-v-cfb209b7{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5)}.phone-auth-popup .popup-content.data-v-cfb209b7{background:#fff;border-radius:24rpx;margin:0 60rpx;padding:40rpx;position:relative;z-index:1}.phone-auth-popup .popup-content .popup-header.data-v-cfb209b7{text-align:center;margin-bottom:30rpx}.phone-auth-popup .popup-content .popup-header .popup-title.data-v-cfb209b7{font-size:36rpx;font-weight:600;color:#333}.phone-auth-popup .popup-content .popup-body .auth-desc.data-v-cfb209b7{text-align:center;margin-bottom:40rpx}.phone-auth-popup .popup-content .popup-body .auth-desc text.data-v-cfb209b7{font-size:28rpx;color:#666;line-height:1.6}.phone-auth-popup .popup-content .popup-body .auth-btn.data-v-cfb209b7{width:100%;height:88rpx;background:#2196f3;border-radius:44rpx;border:none;color:#fff;font-size:32rpx;display:flex;align-items:center;justify-content:center;margin-bottom:20rpx}.phone-auth-popup .popup-content .popup-body .auth-cancel.data-v-cfb209b7{text-align:center;padding:20rpx}.phone-auth-popup .popup-content .popup-body .auth-cancel text.data-v-cfb209b7{font-size:28rpx;color:#999}.steps-guide.data-v-cfb209b7{align-items:center;align-content:center;background-color:rgba(255,255,255,.95);border-radius:20rpx;padding:0;box-shadow:0 8rpx 32rpx rgba(0,0,0,.12);z-index:10;-webkit-backdrop-filter:blur(15rpx);backdrop-filter:blur(15rpx);border:1rpx solid rgba(255,255,255,.9);overflow:hidden;width:92%;margin:0 auto 20rpx}.guide-header.data-v-cfb209b7{padding:20rpx 24rpx;background:linear-gradient(135deg,#2196f3,#1976d2);border-bottom:1rpx solid rgba(255,255,255,.2)}.guide-header .guide-title.data-v-cfb209b7{font-size:32rpx;font-weight:600;color:#fff;text-align:center;display:block}.steps-container.data-v-cfb209b7{display:flex;flex-direction:column;gap:16rpx;padding:24rpx;background-color:rgba(255,255,255,.9)}.step-item.data-v-cfb209b7{display:flex;align-items:flex-start;width:100%;padding:16rpx 0;border-bottom:1rpx solid rgba(0,0,0,.05)}.step-item.data-v-cfb209b7:last-child{border-bottom:none}.step-item .step-number.data-v-cfb209b7{width:40rpx;height:40rpx;background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24rpx;font-weight:700;margin-right:20rpx;flex-shrink:0;box-shadow:0 4rpx 12rpx rgba(33,150,243,.4)}.step-item .step-content.data-v-cfb209b7{flex:1;padding-top:4rpx}.step-item .step-content .step-title.data-v-cfb209b7{font-size:30rpx;font-weight:600;color:#333;margin-bottom:8rpx;display:block}.step-item .step-content .step-desc.data-v-cfb209b7{font-size:26rpx;color:#666;display:block;line-height:1.5} diff --git a/unpackage/dist/build/mp-weixin/utils/mapUtils.js b/unpackage/dist/build/mp-weixin/utils/mapUtils.js index fbb2e41..8585b35 100644 --- a/unpackage/dist/build/mp-weixin/utils/mapUtils.js +++ b/unpackage/dist/build/mp-weixin/utils/mapUtils.js @@ -1 +1 @@ -"use strict";const e=require("../common/vendor.js"),t=function(){const t=310,o="请求参数信息有误",s=600,n="系统错误",i=1e3,r=200,l="https://apis.map.qq.com/ws/",a=l+"place/v1/search",c=l+"place/v1/suggestion",d=l+"geocoder/v1/",u=l+"distance/v1/",f={getLocationParam(e){if("string"==typeof e){const t=e.split(",");e=2===t.length?{latitude:e.split(",")[0],longitude:e.split(",")[1]}:{}}return e},checkLocation(e){const s=this.getLocationParam(e.location);if(!s||!s.latitude||!s.longitude){const s=this.buildErrorConfig(t,o+" location参数格式有误");return e.fail(s),e.complete(s),!1}return!0},buildErrorConfig:(e,t)=>({status:e,message:t}),polyfillParam(e){e.success=e.success||function(){},e.fail=e.fail||function(){},e.complete=e.complete||function(){}},locationProcess(t,o,s,n){const r=this;if(s=s||function(e){e.statusCode=i,t.fail(r.buildErrorConfig(i,e.errMsg))},n=n||function(e){e.statusCode==i&&t.complete(r.buildErrorConfig(i,e.errMsg))},t.location){if(r.checkLocation(t)){o(f.getLocationParam(t.location))}}else e.wx$1.getLocation({type:"gcj02",success:o,fail:s,complete:n})},buildWxRequestConfig(e,t,o){const l=this;return t.header={"content-type":"application/json"},t.method="GET",t.success=function(t){const s=t.data;0===s.status?l.handleData(e,s,o):e.fail(s)},t.fail=function(t){t.statusCode=i,e.fail(l.buildErrorConfig(i,t.errMsg))},t.complete=function(t){switch(+t.statusCode){case i:e.complete(l.buildErrorConfig(i,t.errMsg));break;case r:{const o=t.data;0===o.status?e.complete(o):e.complete(l.buildErrorConfig(o.status,o.message));break}default:e.complete(l.buildErrorConfig(s,n))}},t},handleData(e,t,o){if("search"==o){const o=t.data,s=[];for(let e=0;e{const i=s();i?i.reverseGeocoder({location:{latitude:t,longitude:e},success:(e,t)=>{const s=t.reverseGeocoderSimplify;o({success:!0,data:{formatted_address:s.address,addressComponent:{city:s.city,district:s.district,province:s.province,street:s.street,street_number:s.street_number}}})},fail:e=>{console.error("逆地理编码失败:",e),n({success:!1,message:e.message||"逆地理编码失败"})}}):n({success:!1,message:"腾讯地图SDK未初始化"})}))},exports.getUserLocation=function(){return new Promise(((t,o)=>{e.wx$1.getLocation({type:"gcj02",success:e=>{t({longitude:e.longitude,latitude:e.latitude})},fail:e=>{console.error("获取位置失败:",e),o(e)}})}))},exports.testDistanceCalculation=function(){const e=n(39.908823,116.39747,39.916527,116.397128);return console.log("天安门到故宫的距离:",e,"米"),console.log("转换为公里:",(e/1e3).toFixed(2),"公里"),e}; +"use strict";const e=require("../common/vendor.js"),t=function(){const t=310,o="请求参数信息有误",s=600,n="系统错误",i=1e3,r=200,l="https://apis.map.qq.com/ws/",a=l+"place/v1/search",c=l+"place/v1/suggestion",d=l+"geocoder/v1/",u=l+"distance/v1/",f={getLocationParam(e){if("string"==typeof e){const t=e.split(",");e=2===t.length?{latitude:e.split(",")[0],longitude:e.split(",")[1]}:{}}return e},checkLocation(e){const s=this.getLocationParam(e.location);if(!s||!s.latitude||!s.longitude){const s=this.buildErrorConfig(t,o+" location参数格式有误");return e.fail(s),e.complete(s),!1}return!0},buildErrorConfig:(e,t)=>({status:e,message:t}),polyfillParam(e){e.success=e.success||function(){},e.fail=e.fail||function(){},e.complete=e.complete||function(){}},locationProcess(t,o,s,n){const r=this;if(s=s||function(e){e.statusCode=i,t.fail(r.buildErrorConfig(i,e.errMsg))},n=n||function(e){e.statusCode==i&&t.complete(r.buildErrorConfig(i,e.errMsg))},t.location){if(r.checkLocation(t)){o(f.getLocationParam(t.location))}}else e.wx$1.getLocation({type:"gcj02",success:o,fail:s,complete:n})},buildWxRequestConfig(e,t,o){const l=this;return t.header={"content-type":"application/json"},t.method="GET",t.success=function(t){const s=t.data;0===s.status?l.handleData(e,s,o):e.fail(s)},t.fail=function(t){t.statusCode=i,e.fail(l.buildErrorConfig(i,t.errMsg))},t.complete=function(t){switch(+t.statusCode){case i:e.complete(l.buildErrorConfig(i,t.errMsg));break;case r:{const o=t.data;0===o.status?e.complete(o):e.complete(l.buildErrorConfig(o.status,o.message));break}default:e.complete(l.buildErrorConfig(s,n))}},t},handleData(e,t,o){if("search"==o){const o=t.data,s=[];for(let e=0;e{const i=s();i?i.reverseGeocoder({location:{latitude:t,longitude:e},success:(e,t)=>{const s=t.reverseGeocoderSimplify;o({success:!0,data:{formatted_address:s.address,addressComponent:{city:s.city,district:s.district,province:s.province,street:s.street,street_number:s.street_number}}})},fail:e=>{console.error("逆地理编码失败:",e),n({success:!1,message:e.message||"逆地理编码失败"})}}):n({success:!1,message:"腾讯地图SDK未初始化"})}))},exports.getUserLocation=function(){return new Promise(((t,o)=>{e.wx$1.getLocation({type:"gcj02",success:e=>{const o=parseFloat(e.longitude.toFixed(5)),s=parseFloat(e.latitude.toFixed(5));t({longitude:o,latitude:s})},fail:e=>{console.error("获取位置失败:",e),o(e)}})}))},exports.testDistanceCalculation=function(){const e=n(39.908823,116.39747,39.916527,116.397128);return console.log("天安门到故宫的距离:",e,"米"),console.log("转换为公里:",(e/1e3).toFixed(2),"公里"),e}; diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/config/http.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/config/http.js.map index f07657d..17b7693 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/config/http.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/config/http.js.map @@ -1 +1 @@ -{"version":3,"file":"http.js","sources":["config/http.js"],"sourcesContent":["import {\r\n\tURL,\r\n\tappid\r\n} from './url'\r\n\r\nconst request = (option) => {\r\n\treturn new Promise((resolve, reject) => {\r\n\r\n\t\t// 默认不显示加载中提示\r\n\t\tif (!option.hideLoading) {\r\n\t\t\tuni.showLoading({\r\n\t\t\t\ttitle: option.loadingText || '加载中...',\r\n\t\t\t\tmask: true\r\n\t\t\t})\r\n\t\t}\r\n\t\t\r\n\t\tuni.request({\r\n\t\t\turl: URL + option.url,\r\n\t\t\tmethod: option.method,\r\n\t\t\tdata: option.data,\r\n\t\t\theader: {\r\n\t\t\t\t\"Content-Type\": \"application/json\",\r\n\t\t\t\t\t...option.headers,\r\n\t\t\t\t'appid': appid,\r\n\t\t\t\t'Authorization': \"Bearer \" + uni.getStorageSync('token'),\r\n\t\t\t\t'Clientid': uni.getStorageSync('client_id')\r\n\t\t\t},\r\n\t\t\tsuccess(res) {\r\n\r\n\t\t\t\t\r\n\t\t\t\t// 检查响应状态码\r\n\t\t\t\tif (res.statusCode !== 200) {\r\n\t\t\t\t\tconsole.error(`HTTP状态码错误: ${res.statusCode}`, res.data)\r\n\t\t\t\t\t\r\n\t\t\t\t\t// 为了适应某些服务器的异常响应,我们仍然返回数据\r\n\t\t\t\t\tif (res.data) {\r\n\t\t\t\t\t\tresolve(res.data)\r\n\t\t\t\t\t\treturn\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\treject({msg: `请求失败,状态码:${res.statusCode}`})\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t// 检查业务状态码\r\n\t\t\t\tif (res.data && res.data.code !== 200) {\r\n\t\t\t\t\tconsole.warn(`业务状态码错误: ${res.data.code}`, res.data)\r\n\t\t\t\t\t\r\n\t\t\t\t\t// 判断是否需要忽略数据为空的错误\r\n\t\t\t\t\tif (option.ignoreEmptyError && \r\n\t\t\t\t\t\t(res.data.code === 500 && res.data.msg && \r\n\t\t\t\t\t\t(res.data.msg.includes('未找到') || res.data.msg.includes('不存在')))) {\r\n\t\t\t\t\t\t// 对于指定需要忽略的错误,返回一个标准的\"成功但数据为空\"的响应\r\n\t\t\t\t\t\tresolve({\r\n\t\t\t\t\t\t\tcode: 200,\r\n\t\t\t\t\t\t\tmsg: \"操作成功\",\r\n\t\t\t\t\t\t\tdata: []\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\treturn\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t// 仍然返回数据,由业务逻辑处理\r\n\t\t\t\t\tresolve(res.data)\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tresolve(res.data)\r\n\t\t\t},\r\n\t\t\tfail(err) {\r\n\t\t\t\t// 网络请求本身失败\r\n\t\t\t\tconsole.error(`请求失败: ${option.url}`, err)\r\n\t\t\t\treject(err)\r\n\t\t\t},\r\n\t\t\tcomplete() {\r\n\t\t\t\t// 隐藏加载提示\r\n\t\t\t\tif (!option.hideLoading) {\r\n\t\t\t\t\tuni.hideLoading()\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t})\r\n}\r\n\r\n\r\nexport default request"],"names":["uni","URL","appid"],"mappings":";;;AAKK,MAAC,UAAU,CAAC,WAAW;AAC3B,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAGvC,QAAI,CAAC,OAAO,aAAa;AACxBA,oBAAAA,MAAI,YAAY;AAAA,QACf,OAAO,OAAO,eAAe;AAAA,QAC7B,MAAM;AAAA,MACV,CAAI;AAAA,IACD;AAEDA,kBAAAA,MAAI,QAAQ;AAAA,MACX,KAAKC,WAAAA,MAAM,OAAO;AAAA,MAClB,QAAQ,OAAO;AAAA,MACf,MAAM,OAAO;AAAA,MACb,QAAQ;AAAA,QACP,gBAAgB;AAAA,QACf,GAAG,OAAO;AAAA,QACX,SAASC,WAAK;AAAA,QACd,iBAAiB,YAAYF,oBAAI,eAAe,OAAO;AAAA,QACvD,YAAYA,cAAAA,MAAI,eAAe,WAAW;AAAA,MAC1C;AAAA,MACD,QAAQ,KAAK;AAIZ,YAAI,IAAI,eAAe,KAAK;AAC3BA,wBAAAA,6CAAc,cAAc,IAAI,UAAU,IAAI,IAAI,IAAI;AAGtD,cAAI,IAAI,MAAM;AACb,oBAAQ,IAAI,IAAI;AAChB;AAAA,UACA;AAED,iBAAO,EAAC,KAAK,YAAY,IAAI,UAAU,GAAE,CAAC;AAC1C;AAAA,QACA;AAGD,YAAI,IAAI,QAAQ,IAAI,KAAK,SAAS,KAAK;AACtCA,wBAAAA,MAAa,MAAA,QAAA,wBAAA,YAAY,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI;AAGlD,cAAI,OAAO,qBACT,IAAI,KAAK,SAAS,OAAO,IAAI,KAAK,QAClC,IAAI,KAAK,IAAI,SAAS,KAAK,KAAK,IAAI,KAAK,IAAI,SAAS,KAAK,KAAK;AAEjE,oBAAQ;AAAA,cACP,MAAM;AAAA,cACN,KAAK;AAAA,cACL,MAAM,CAAE;AAAA,YACf,CAAO;AACD;AAAA,UACA;AAGD,kBAAQ,IAAI,IAAI;AAChB;AAAA,QACA;AAED,gBAAQ,IAAI,IAAI;AAAA,MAChB;AAAA,MACD,KAAK,KAAK;AAETA,4BAAA,MAAA,SAAA,wBAAc,SAAS,OAAO,GAAG,IAAI,GAAG;AACxC,eAAO,GAAG;AAAA,MACV;AAAA,MACD,WAAW;AAEV,YAAI,CAAC,OAAO,aAAa;AACxBA,wBAAAA,MAAI,YAAa;AAAA,QACjB;AAAA,MACD;AAAA,IACJ,CAAG;AAAA,EACH,CAAE;AACF;;"} \ No newline at end of file +{"version":3,"file":"http.js","sources":["config/http.js"],"sourcesContent":["import {\r\n\tURL,\r\n\tappid\r\n} from './url'\r\n\r\nconst request = (option) => {\r\n\treturn new Promise((resolve, reject) => {\r\n\r\n\t\t// 默认不显示加载中提示\r\n\t\tif (!option.hideLoading) {\r\n\t\t\tuni.showLoading({\r\n\t\t\t\ttitle: option.loadingText || '加载中...',\r\n\t\t\t\tmask: true\r\n\t\t\t})\r\n\t\t}\r\n\t\t\r\n\t\tuni.request({\r\n\t\t\turl: URL + option.url,\r\n\t\t\tmethod: option.method,\r\n\t\t\tdata: option.data,\r\n\t\t\theader: {\r\n\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\",\r\n\t\t\t\t\t...option.headers,\r\n\t\t\t\t'appid': appid,\r\n\t\t\t\t'Authorization': \"Bearer \" + uni.getStorageSync('token'),\r\n\t\t\t\t'Clientid': uni.getStorageSync('client_id')\r\n\t\t\t},\r\n\t\t\tsuccess(res) {\r\n\r\n\t\t\t\t\r\n\t\t\t\t// 检查响应状态码\r\n\t\t\t\tif (res.statusCode !== 200) {\r\n\t\t\t\t\tconsole.error(`HTTP状态码错误: ${res.statusCode}`, res.data)\r\n\t\t\t\t\t\r\n\t\t\t\t\t// 为了适应某些服务器的异常响应,我们仍然返回数据\r\n\t\t\t\t\tif (res.data) {\r\n\t\t\t\t\t\tresolve(res.data)\r\n\t\t\t\t\t\treturn\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\treject({msg: `请求失败,状态码:${res.statusCode}`})\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t// 检查业务状态码\r\n\t\t\t\tif (res.data && res.data.code !== 200) {\r\n\t\t\t\t\tconsole.warn(`业务状态码错误: ${res.data.code}`, res.data)\r\n\t\t\t\t\t\r\n\t\t\t\t\t// 判断是否需要忽略数据为空的错误\r\n\t\t\t\t\tif (option.ignoreEmptyError && \r\n\t\t\t\t\t\t(res.data.code === 500 && res.data.msg && \r\n\t\t\t\t\t\t(res.data.msg.includes('未找到') || res.data.msg.includes('不存在')))) {\r\n\t\t\t\t\t\t// 对于指定需要忽略的错误,返回一个标准的\"成功但数据为空\"的响应\r\n\t\t\t\t\t\tresolve({\r\n\t\t\t\t\t\t\tcode: 200,\r\n\t\t\t\t\t\t\tmsg: \"操作成功\",\r\n\t\t\t\t\t\t\tdata: []\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\treturn\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t// 仍然返回数据,由业务逻辑处理\r\n\t\t\t\t\tresolve(res.data)\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tresolve(res.data)\r\n\t\t\t},\r\n\t\t\tfail(err) {\r\n\t\t\t\t// 网络请求本身失败\r\n\t\t\t\tconsole.error(`请求失败: ${option.url}`, err)\r\n\t\t\t\treject(err)\r\n\t\t\t},\r\n\t\t\tcomplete() {\r\n\t\t\t\t// 隐藏加载提示\r\n\t\t\t\tif (!option.hideLoading) {\r\n\t\t\t\t\tuni.hideLoading()\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t})\r\n}\r\n\r\n\r\nexport default request"],"names":["uni","URL","appid"],"mappings":";;;AAKK,MAAC,UAAU,CAAC,WAAW;AAC3B,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAGvC,QAAI,CAAC,OAAO,aAAa;AACxBA,oBAAAA,MAAI,YAAY;AAAA,QACf,OAAO,OAAO,eAAe;AAAA,QAC7B,MAAM;AAAA,MACV,CAAI;AAAA,IACD;AAEDA,kBAAAA,MAAI,QAAQ;AAAA,MACX,KAAKC,WAAAA,MAAM,OAAO;AAAA,MAClB,QAAQ,OAAO;AAAA,MACf,MAAM,OAAO;AAAA,MACb,QAAQ;AAAA,QACP,gBAAgB;AAAA,QACf,GAAG,OAAO;AAAA,QACX,SAASC,WAAK;AAAA,QACd,iBAAiB,YAAYF,oBAAI,eAAe,OAAO;AAAA,QACvD,YAAYA,cAAAA,MAAI,eAAe,WAAW;AAAA,MAC1C;AAAA,MACD,QAAQ,KAAK;AAIZ,YAAI,IAAI,eAAe,KAAK;AAC3BA,wBAAAA,6CAAc,cAAc,IAAI,UAAU,IAAI,IAAI,IAAI;AAGtD,cAAI,IAAI,MAAM;AACb,oBAAQ,IAAI,IAAI;AAChB;AAAA,UACA;AAED,iBAAO,EAAC,KAAK,YAAY,IAAI,UAAU,GAAE,CAAC;AAC1C;AAAA,QACA;AAGD,YAAI,IAAI,QAAQ,IAAI,KAAK,SAAS,KAAK;AACtCA,wBAAAA,MAAa,MAAA,QAAA,wBAAA,YAAY,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI;AAGlD,cAAI,OAAO,qBACT,IAAI,KAAK,SAAS,OAAO,IAAI,KAAK,QAClC,IAAI,KAAK,IAAI,SAAS,KAAK,KAAK,IAAI,KAAK,IAAI,SAAS,KAAK,KAAK;AAEjE,oBAAQ;AAAA,cACP,MAAM;AAAA,cACN,KAAK;AAAA,cACL,MAAM,CAAE;AAAA,YACf,CAAO;AACD;AAAA,UACA;AAGD,kBAAQ,IAAI,IAAI;AAChB;AAAA,QACA;AAED,gBAAQ,IAAI,IAAI;AAAA,MAChB;AAAA,MACD,KAAK,KAAK;AAETA,4BAAA,MAAA,SAAA,wBAAc,SAAS,OAAO,GAAG,IAAI,GAAG;AACxC,eAAO,GAAG;AAAA,MACV;AAAA,MACD,WAAW;AAEV,YAAI,CAAC,OAAO,aAAa;AACxBA,wBAAAA,MAAI,YAAa;AAAA,QACjB;AAAA,MACD;AAAA,IACJ,CAAG;AAAA,EACH,CAAE;AACF;;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/config/url.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/config/url.js.map index ff27170..918cde5 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/config/url.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/config/url.js.map @@ -1 +1 @@ -{"version":3,"file":"url.js","sources":["config/url.js"],"sourcesContent":["export const URL = \"https://my.gxfs123.com/api\" //正式服务器\r\n// export const URL = \"https://fansdev.gxfs123.com/api\" //测试服务器\r\n// export const URL = \"http://192.168.5.13:8080\" \t\t//本地调试\r\n\r\nexport const appid = \"wx2165f0be356ae7a9\" //小程序appid"],"names":[],"mappings":";AAAY,MAAC,MAAM;AAIP,MAAC,QAAQ;;;"} \ No newline at end of file +{"version":3,"file":"url.js","sources":["config/url.js"],"sourcesContent":["export const URL = \"https://my.gxfs123.com/api\" //正式服务器\r\n// export const URL = \"https://fansdev.gxfs123.com/api\" //测试服务器\r\n// export const URL = \"http://192.168.5.22:8080\" \t\t//本地调试\r\n\r\nexport const appid = \"wx2165f0be356ae7a9\" //小程序appid"],"names":[],"mappings":";AAAY,MAAC,MAAM;AAIP,MAAC,QAAQ;;;"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/device/detail.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/device/detail.js.map index c3e7708..120c58e 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/device/detail.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/device/detail.js.map @@ -1 +1 @@ -{"version":3,"file":"detail.js","sources":["pages/device/detail.vue","E:/HBuilderX.4.24.2024072208/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvZGV2aWNlL2RldGFpbC52dWU"],"sourcesContent":["\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/1/uni-fans-score/pages/device/detail.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","reactive","onLoad","uni","onMounted","getUserInfo","getUserPhoneNumber","getDeviceInfo","rentPowerBank","updateOrderPackage","getOrderByOrderNo","getOrderByOrderNoScore","initiateWeChatScorePayment","res","getOrderByOrderNoScorePayStatus","cancelOrder"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"detail.js","sources":["pages/device/detail.vue","E:/HBuilderX.4.24.2024072208/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvZGV2aWNlL2RldGFpbC52dWU"],"sourcesContent":["\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/1/uni-fans-score/pages/device/detail.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","reactive","onLoad","uni","onMounted","getUserInfo","getUserPhoneNumber","getDeviceInfo","rentPowerBank","updateOrderPackage","getOrderByOrderNo","getOrderByOrderNoScore","initiateWeChatScorePayment","res","getOrderByOrderNoScorePayStatus","cancelOrder"],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map index c7085fa..2d36351 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["pages/index/index.vue","E:/HBuilderX.4.24.2024072208/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvaW5kZXgvaW5kZXgudnVl"],"sourcesContent":["\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/1/uni-fans-score/pages/index/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","computed","onMounted","onUnmounted","testDistanceCalculation","uni","getUserLocation","getRegeo","wxLogin","URL","calculateDistanceSync","getQueryString","getDeviceInfo"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["pages/index/index.vue","E:/HBuilderX.4.24.2024072208/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvaW5kZXgvaW5kZXgudnVl"],"sourcesContent":["\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/1/uni-fans-score/pages/index/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","computed","onMounted","onUnmounted","testDistanceCalculation","uni","getUserLocation","getRegeo","wxLogin","URL","calculateDistanceSync","getQueryString","getDeviceInfo"],"mappings":"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"} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/utils/mapUtils.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/utils/mapUtils.js.map index f15d016..a299d4d 100644 --- a/unpackage/dist/dev/.sourcemap/mp-weixin/utils/mapUtils.js.map +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/utils/mapUtils.js.map @@ -1 +1 @@ -{"version":3,"file":"mapUtils.js","sources":["utils/mapUtils.js"],"sourcesContent":["// 地图工具函数 - 内联腾讯地图SDK核心代码\r\n\r\n// 腾讯地图Key\r\nconst QQMAP_KEY = 'RO5BZ-ECZ63-7US3C-RT5QW-TIDZE-2FF35';\r\n\r\n// 内联腾讯地图SDK核心代码\r\nconst QQMapWX = (function() {\r\n // 错误配置\r\n const ERROR_CONF = {\r\n KEY_ERR: 311,\r\n KEY_ERR_MSG: 'key格式错误',\r\n PARAM_ERR: 310,\r\n PARAM_ERR_MSG: '请求参数信息有误',\r\n SYSTEM_ERR: 600,\r\n SYSTEM_ERR_MSG: '系统错误',\r\n WX_ERR_CODE: 1000,\r\n WX_OK_CODE: 200\r\n };\r\n\r\n // API基础URL\r\n const BASE_URL = 'https://apis.map.qq.com/ws/';\r\n const URL_SEARCH = BASE_URL + 'place/v1/search';\r\n const URL_SUGGESTION = BASE_URL + 'place/v1/suggestion';\r\n const URL_GET_GEOCODER = BASE_URL + 'geocoder/v1/';\r\n const URL_DISTANCE = BASE_URL + 'distance/v1/';\r\n\r\n // 工具函数\r\n const Utils = {\r\n // 获取location参数\r\n getLocationParam(location) {\r\n if (typeof location == 'string') {\r\n const locationArr = location.split(',');\r\n if (locationArr.length === 2) {\r\n location = {\r\n latitude: location.split(',')[0],\r\n longitude: location.split(',')[1]\r\n };\r\n } else {\r\n location = {};\r\n }\r\n }\r\n return location;\r\n },\r\n\r\n // 验证location值\r\n checkLocation(param) {\r\n const location = this.getLocationParam(param.location);\r\n if (!location || !location.latitude || !location.longitude) {\r\n const errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' location参数格式有误');\r\n param.fail(errconf);\r\n param.complete(errconf);\r\n return false;\r\n }\r\n return true;\r\n },\r\n\r\n // 构造错误数据结构\r\n buildErrorConfig(errCode, errMsg) {\r\n return {\r\n status: errCode,\r\n message: errMsg\r\n };\r\n },\r\n\r\n // 回调函数默认处理\r\n polyfillParam(param) {\r\n param.success = param.success || function () { };\r\n param.fail = param.fail || function () { };\r\n param.complete = param.complete || function () { };\r\n },\r\n\r\n // 处理用户参数是否传入坐标进行不同的处理\r\n locationProcess(param, locationsuccess, locationfail, locationcomplete) {\r\n const that = this;\r\n locationfail = locationfail || function (res) {\r\n res.statusCode = ERROR_CONF.WX_ERR_CODE;\r\n param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));\r\n };\r\n locationcomplete = locationcomplete || function (res) {\r\n if (res.statusCode == ERROR_CONF.WX_ERR_CODE) {\r\n param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));\r\n }\r\n };\r\n if (!param.location) {\r\n wx.getLocation({\r\n type: 'gcj02',\r\n success: locationsuccess,\r\n fail: locationfail,\r\n complete: locationcomplete\r\n });\r\n } else if (that.checkLocation(param)) {\r\n const location = Utils.getLocationParam(param.location);\r\n locationsuccess(location);\r\n }\r\n },\r\n\r\n // 构造微信请求参数\r\n buildWxRequestConfig(param, options, feature) {\r\n const that = this;\r\n options.header = { \"content-type\": \"application/json\" };\r\n options.method = 'GET';\r\n options.success = function (res) {\r\n const data = res.data;\r\n if (data.status === 0) {\r\n that.handleData(param, data, feature);\r\n } else {\r\n param.fail(data);\r\n }\r\n };\r\n options.fail = function (res) {\r\n res.statusCode = ERROR_CONF.WX_ERR_CODE;\r\n param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));\r\n };\r\n options.complete = function (res) {\r\n const statusCode = +res.statusCode;\r\n switch(statusCode) {\r\n case ERROR_CONF.WX_ERR_CODE: {\r\n param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));\r\n break;\r\n }\r\n case ERROR_CONF.WX_OK_CODE: {\r\n const data = res.data;\r\n if (data.status === 0) {\r\n param.complete(data);\r\n } else {\r\n param.complete(that.buildErrorConfig(data.status, data.message));\r\n }\r\n break;\r\n }\r\n default:{\r\n param.complete(that.buildErrorConfig(ERROR_CONF.SYSTEM_ERR, ERROR_CONF.SYSTEM_ERR_MSG));\r\n }\r\n }\r\n };\r\n return options;\r\n },\r\n\r\n // 数据处理函数\r\n handleData(param, data, feature) {\r\n if (feature == 'search') {\r\n const searchResult = data.data;\r\n const searchSimplify = [];\r\n for (let i = 0; i < searchResult.length; i++) {\r\n searchSimplify.push({\r\n id: searchResult[i].id || null,\r\n title: searchResult[i].title || null,\r\n latitude: searchResult[i].location && searchResult[i].location.lat || null,\r\n longitude: searchResult[i].location && searchResult[i].location.lng || null,\r\n address: searchResult[i].address || null,\r\n category: searchResult[i].category || null,\r\n tel: searchResult[i].tel || null,\r\n adcode: searchResult[i].ad_info && searchResult[i].ad_info.adcode || null,\r\n city: searchResult[i].ad_info && searchResult[i].ad_info.city || null,\r\n district: searchResult[i].ad_info && searchResult[i].ad_info.district || null,\r\n province: searchResult[i].ad_info && searchResult[i].ad_info.province || null\r\n });\r\n }\r\n param.success(data, {\r\n searchResult: searchResult,\r\n searchSimplify: searchSimplify\r\n });\r\n } else if (feature == 'suggest') {\r\n const suggestResult = data.data;\r\n const suggestSimplify = [];\r\n for (let i = 0; i < suggestResult.length; i++) {\r\n suggestSimplify.push({\r\n adcode: suggestResult[i].adcode || null,\r\n address: suggestResult[i].address || null,\r\n category: suggestResult[i].category || null,\r\n city: suggestResult[i].city || null,\r\n district: suggestResult[i].district || null,\r\n id: suggestResult[i].id || null,\r\n latitude: suggestResult[i].location && suggestResult[i].location.lat || null,\r\n longitude: suggestResult[i].location && suggestResult[i].location.lng || null,\r\n province: suggestResult[i].province || null,\r\n title: suggestResult[i].title || null,\r\n type: suggestResult[i].type || null\r\n });\r\n }\r\n param.success(data, {\r\n suggestResult: suggestResult,\r\n suggestSimplify: suggestSimplify\r\n });\r\n } else if (feature == 'reverseGeocoder') {\r\n const reverseGeocoderResult = data.result;\r\n const reverseGeocoderSimplify = {\r\n address: reverseGeocoderResult.address || null,\r\n latitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lat || null,\r\n longitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lng || null,\r\n adcode: reverseGeocoderResult.ad_info && reverseGeocoderResult.ad_info.adcode || null,\r\n city: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.city || null,\r\n district: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.district || null,\r\n nation: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.nation || null,\r\n province: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.province || null,\r\n street: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street || null,\r\n street_number: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street_number || null,\r\n recommend: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.recommend || null,\r\n rough: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.rough || null\r\n };\r\n param.success(data, {\r\n reverseGeocoderResult: reverseGeocoderResult,\r\n reverseGeocoderSimplify: reverseGeocoderSimplify\r\n });\r\n } else if (feature == 'calculateDistance') {\r\n const calculateDistanceResult = data.result.elements; \r\n const distance = [];\r\n for (let i = 0; i < calculateDistanceResult.length; i++){\r\n distance.push(calculateDistanceResult[i].distance);\r\n } \r\n param.success(data, {\r\n calculateDistanceResult: calculateDistanceResult,\r\n distance: distance\r\n });\r\n } else {\r\n param.success(data);\r\n }\r\n }\r\n };\r\n\r\n // QQMapWX类\r\n class QQMapWX {\r\n constructor(options) {\r\n if (!options.key) {\r\n throw Error('key值不能为空');\r\n }\r\n this.key = options.key;\r\n }\r\n\r\n // 逆地址解析\r\n reverseGeocoder(options) {\r\n const that = this;\r\n options = options || {};\r\n Utils.polyfillParam(options);\r\n \r\n const requestParam = {\r\n coord_type: options.coord_type || 5,\r\n get_poi: options.get_poi || 0,\r\n output: 'json',\r\n key: that.key\r\n };\r\n if (options.poi_options) {\r\n requestParam.poi_options = options.poi_options;\r\n }\r\n\r\n const locationsuccess = function (result) {\r\n requestParam.location = result.latitude + ',' + result.longitude;\r\n wx.request(Utils.buildWxRequestConfig(options, {\r\n url: URL_GET_GEOCODER,\r\n data: requestParam\r\n }, 'reverseGeocoder'));\r\n };\r\n Utils.locationProcess(options, locationsuccess);\r\n }\r\n\r\n // POI周边检索\r\n search(options) {\r\n const that = this;\r\n options = options || {};\r\n Utils.polyfillParam(options);\r\n\r\n if (!options.keyword) {\r\n const errconf = Utils.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' keyword参数格式有误');\r\n options.fail(errconf);\r\n options.complete(errconf);\r\n return;\r\n }\r\n\r\n const requestParam = {\r\n keyword: options.keyword,\r\n orderby: options.orderby || '_distance',\r\n page_size: options.page_size || 10,\r\n page_index: options.page_index || 1,\r\n output: 'json',\r\n key: that.key\r\n };\r\n\r\n if (options.address_format) {\r\n requestParam.address_format = options.address_format;\r\n }\r\n\r\n if (options.filter) {\r\n requestParam.filter = options.filter;\r\n }\r\n\r\n const distance = options.distance || \"1000\";\r\n const auto_extend = options.auto_extend || 1;\r\n\r\n const locationsuccess = function (result) {\r\n requestParam.boundary = \"nearby(\" + result.latitude + \",\" + result.longitude + \",\" + distance + \",\" + auto_extend + \")\";\r\n wx.request(Utils.buildWxRequestConfig(options, {\r\n url: URL_SEARCH,\r\n data: requestParam\r\n }, 'search'));\r\n };\r\n\r\n Utils.locationProcess(options, locationsuccess);\r\n }\r\n\r\n // sug模糊检索\r\n getSuggestion(options) {\r\n const that = this;\r\n options = options || {};\r\n Utils.polyfillParam(options);\r\n\r\n if (!options.keyword) {\r\n const errconf = Utils.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' keyword参数格式有误');\r\n options.fail(errconf);\r\n options.complete(errconf);\r\n return;\r\n }\r\n\r\n const requestParam = {\r\n keyword: options.keyword,\r\n region: options.region || '全国',\r\n region_fix: options.region_fix || 0,\r\n policy: options.policy || 0,\r\n page_size: options.page_size || 10,\r\n page_index: options.page_index || 1,\r\n get_subpois: options.get_subpois || 0,\r\n output: 'json',\r\n key: that.key\r\n };\r\n\r\n if (options.address_format) {\r\n requestParam.address_format = options.address_format;\r\n }\r\n\r\n if (options.filter) {\r\n requestParam.filter = options.filter;\r\n }\r\n\r\n if (options.location) {\r\n const locationsuccess = function (result) {\r\n requestParam.location = result.latitude + ',' + result.longitude;\r\n wx.request(Utils.buildWxRequestConfig(options, {\r\n url: URL_SUGGESTION,\r\n data: requestParam\r\n }, \"suggest\"));\r\n };\r\n Utils.locationProcess(options, locationsuccess);\r\n } else {\r\n wx.request(Utils.buildWxRequestConfig(options, {\r\n url: URL_SUGGESTION,\r\n data: requestParam\r\n }, \"suggest\"));\r\n }\r\n }\r\n\r\n // 距离计算\r\n calculateDistance(options) {\r\n const that = this;\r\n options = options || {};\r\n Utils.polyfillParam(options);\r\n\r\n if (!options.to) {\r\n const errconf = Utils.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' to参数格式有误');\r\n options.fail(errconf);\r\n options.complete(errconf);\r\n return;\r\n }\r\n\r\n const requestParam = {\r\n mode: options.mode || 'walking',\r\n to: options.to,\r\n output: 'json',\r\n key: that.key\r\n };\r\n\r\n if (options.from) {\r\n options.location = options.from;\r\n }\r\n\r\n const locationsuccess = function (result) {\r\n requestParam.from = result.latitude + ',' + result.longitude;\r\n wx.request(Utils.buildWxRequestConfig(options, {\r\n url: URL_DISTANCE,\r\n data: requestParam\r\n }, 'calculateDistance'));\r\n };\r\n\r\n Utils.locationProcess(options, locationsuccess);\r\n }\r\n }\r\n\r\n return QQMapWX;\r\n})();\r\n\r\n// 全局QQMap实例\r\nlet qqmapInstance = null;\r\n\r\n// 初始化腾讯地图SDK\r\nfunction initQQMap() {\r\n if (!qqmapInstance) {\r\n try {\r\n qqmapInstance = new QQMapWX({\r\n key: QQMAP_KEY\r\n });\r\n console.log('腾讯地图SDK初始化成功');\r\n } catch (err) {\r\n console.error('初始化腾讯地图SDK失败:', err);\r\n }\r\n }\r\n return qqmapInstance;\r\n}\r\n\r\n// 获取腾讯地图SDK实例\r\nfunction getQQMapInstance() {\r\n return qqmapInstance || initQQMap();\r\n}\r\n\r\n// 获取用户位置(使用微信的接口获取位置)\r\nfunction getUserLocation() {\r\n return new Promise((resolve, reject) => {\r\n wx.getLocation({\r\n type: 'gcj02',\r\n success: (res) => {\r\n resolve({\r\n longitude: res.longitude,\r\n latitude: res.latitude\r\n });\r\n },\r\n fail: (error) => {\r\n console.error('获取位置失败:', error);\r\n reject(error);\r\n }\r\n });\r\n });\r\n}\r\n\r\n// 逆地理编码 - 根据经纬度获取地址信息\r\nfunction getRegeo(longitude, latitude) {\r\n return new Promise((resolve, reject) => {\r\n const qqmap = getQQMapInstance();\r\n if (!qqmap) {\r\n reject({ success: false, message: '腾讯地图SDK未初始化' });\r\n return;\r\n }\r\n \r\n qqmap.reverseGeocoder({\r\n location: {\r\n latitude,\r\n longitude\r\n },\r\n success: (data, result) => {\r\n // 官方SDK返回的数据结构:data是原始数据,result是简化数据\r\n const reverseGeocoderSimplify = result.reverseGeocoderSimplify;\r\n resolve({\r\n success: true,\r\n data: {\r\n formatted_address: reverseGeocoderSimplify.address,\r\n addressComponent: {\r\n city: reverseGeocoderSimplify.city,\r\n district: reverseGeocoderSimplify.district,\r\n province: reverseGeocoderSimplify.province,\r\n street: reverseGeocoderSimplify.street,\r\n street_number: reverseGeocoderSimplify.street_number\r\n }\r\n }\r\n });\r\n },\r\n fail: (error) => {\r\n console.error('逆地理编码失败:', error);\r\n reject({ success: false, message: error.message || '逆地理编码失败' });\r\n }\r\n });\r\n });\r\n}\r\n\r\n// 搜索周边POI\r\nfunction getPoiAround(longitude, latitude, keyword = '', radius = 1000) {\r\n return new Promise((resolve, reject) => {\r\n const qqmap = getQQMapInstance();\r\n if (!qqmap) {\r\n reject({ success: false, message: '腾讯地图SDK未初始化' });\r\n return;\r\n }\r\n \r\n qqmap.search({\r\n keyword: keyword,\r\n location: {\r\n latitude,\r\n longitude\r\n },\r\n distance: radius,\r\n success: (data, result) => {\r\n const searchSimplify = result.searchSimplify;\r\n resolve({\r\n success: true,\r\n data: searchSimplify\r\n });\r\n },\r\n fail: (error) => {\r\n console.error('搜索POI失败:', error);\r\n reject({ success: false, message: error.message || '搜索POI失败' });\r\n }\r\n });\r\n });\r\n}\r\n\r\n// 计算距离(异步)\r\nfunction calculateDistance(from, to) {\r\n return new Promise((resolve, reject) => {\r\n const qqmap = getQQMapInstance();\r\n if (!qqmap) {\r\n reject({ success: false, message: '腾讯地图SDK未初始化' });\r\n return;\r\n }\r\n \r\n qqmap.calculateDistance({\r\n from: from,\r\n to: to,\r\n mode: 'walking',\r\n success: (data, result) => {\r\n const distance = result.distance;\r\n resolve({\r\n success: true,\r\n data: distance\r\n });\r\n },\r\n fail: (error) => {\r\n console.error('计算距离失败:', error);\r\n reject({ success: false, message: error.message || '计算距离失败' });\r\n }\r\n });\r\n });\r\n}\r\n\r\n// 计算距离(同步,使用球面距离公式)\r\nfunction calculateDistanceSync(lat1, lng1, lat2, lng2) {\r\n const R = 6371000; // 地球半径(米)\r\n const dLat = (lat2 - lat1) * Math.PI / 180;\r\n const dLng = (lng2 - lng1) * Math.PI / 180;\r\n const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +\r\n Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) *\r\n Math.sin(dLng / 2) * Math.sin(dLng / 2);\r\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\r\n return Math.round(R * c); // 返回距离,单位为米\r\n}\r\n\r\n// 关键词提示\r\nfunction getSuggestion(keyword, region = '全国') {\r\n return new Promise((resolve, reject) => {\r\n const qqmap = getQQMapInstance();\r\n if (!qqmap) {\r\n reject({ success: false, message: '腾讯地图SDK未初始化' });\r\n return;\r\n }\r\n \r\n qqmap.getSuggestion({\r\n keyword: keyword,\r\n region: region,\r\n success: (data, result) => {\r\n const suggestSimplify = result.suggestSimplify;\r\n resolve({\r\n success: true,\r\n data: suggestSimplify\r\n });\r\n },\r\n fail: (error) => {\r\n console.error('关键词提示失败:', error);\r\n reject({ success: false, message: error.message || '关键词提示失败' });\r\n }\r\n });\r\n });\r\n}\r\n\r\n// 导出函数\r\nexport {\r\n getUserLocation,\r\n getRegeo,\r\n getPoiAround,\r\n calculateDistance,\r\n calculateDistanceSync,\r\n getSuggestion,\r\n initQQMap,\r\n getQQMapInstance\r\n};\r\n\r\n// 测试距离计算函数(开发调试用)\r\nexport function testDistanceCalculation() {\r\n // 测试用例:北京天安门到故宫的距离(约1.5公里)\r\n const tiananmen = { lat: 39.908823, lng: 116.397470 };\r\n const gugong = { lat: 39.916527, lng: 116.397128 };\r\n \r\n const distance = calculateDistanceSync(tiananmen.lat, tiananmen.lng, gugong.lat, gugong.lng);\r\n console.log('天安门到故宫的距离:', distance, '米');\r\n console.log('转换为公里:', (distance / 1000).toFixed(2), '公里');\r\n \r\n return distance;\r\n} "],"names":["wx","QQMapWX","uni"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"mapUtils.js","sources":["utils/mapUtils.js"],"sourcesContent":["// 地图工具函数 - 内联腾讯地图SDK核心代码\r\n\r\n// 腾讯地图Key\r\nconst QQMAP_KEY = 'RO5BZ-ECZ63-7US3C-RT5QW-TIDZE-2FF35';\r\n\r\n// 内联腾讯地图SDK核心代码\r\nconst QQMapWX = (function() {\r\n // 错误配置\r\n const ERROR_CONF = {\r\n KEY_ERR: 311,\r\n KEY_ERR_MSG: 'key格式错误',\r\n PARAM_ERR: 310,\r\n PARAM_ERR_MSG: '请求参数信息有误',\r\n SYSTEM_ERR: 600,\r\n SYSTEM_ERR_MSG: '系统错误',\r\n WX_ERR_CODE: 1000,\r\n WX_OK_CODE: 200\r\n };\r\n\r\n // API基础URL\r\n const BASE_URL = 'https://apis.map.qq.com/ws/';\r\n const URL_SEARCH = BASE_URL + 'place/v1/search';\r\n const URL_SUGGESTION = BASE_URL + 'place/v1/suggestion';\r\n const URL_GET_GEOCODER = BASE_URL + 'geocoder/v1/';\r\n const URL_DISTANCE = BASE_URL + 'distance/v1/';\r\n\r\n // 工具函数\r\n const Utils = {\r\n // 获取location参数\r\n getLocationParam(location) {\r\n if (typeof location == 'string') {\r\n const locationArr = location.split(',');\r\n if (locationArr.length === 2) {\r\n location = {\r\n latitude: location.split(',')[0],\r\n longitude: location.split(',')[1]\r\n };\r\n } else {\r\n location = {};\r\n }\r\n }\r\n return location;\r\n },\r\n\r\n // 验证location值\r\n checkLocation(param) {\r\n const location = this.getLocationParam(param.location);\r\n if (!location || !location.latitude || !location.longitude) {\r\n const errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' location参数格式有误');\r\n param.fail(errconf);\r\n param.complete(errconf);\r\n return false;\r\n }\r\n return true;\r\n },\r\n\r\n // 构造错误数据结构\r\n buildErrorConfig(errCode, errMsg) {\r\n return {\r\n status: errCode,\r\n message: errMsg\r\n };\r\n },\r\n\r\n // 回调函数默认处理\r\n polyfillParam(param) {\r\n param.success = param.success || function () { };\r\n param.fail = param.fail || function () { };\r\n param.complete = param.complete || function () { };\r\n },\r\n\r\n // 处理用户参数是否传入坐标进行不同的处理\r\n locationProcess(param, locationsuccess, locationfail, locationcomplete) {\r\n const that = this;\r\n locationfail = locationfail || function (res) {\r\n res.statusCode = ERROR_CONF.WX_ERR_CODE;\r\n param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));\r\n };\r\n locationcomplete = locationcomplete || function (res) {\r\n if (res.statusCode == ERROR_CONF.WX_ERR_CODE) {\r\n param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));\r\n }\r\n };\r\n if (!param.location) {\r\n wx.getLocation({\r\n type: 'gcj02',\r\n success: locationsuccess,\r\n fail: locationfail,\r\n complete: locationcomplete\r\n });\r\n } else if (that.checkLocation(param)) {\r\n const location = Utils.getLocationParam(param.location);\r\n locationsuccess(location);\r\n }\r\n },\r\n\r\n // 构造微信请求参数\r\n buildWxRequestConfig(param, options, feature) {\r\n const that = this;\r\n options.header = { \"content-type\": \"application/json\" };\r\n options.method = 'GET';\r\n options.success = function (res) {\r\n const data = res.data;\r\n if (data.status === 0) {\r\n that.handleData(param, data, feature);\r\n } else {\r\n param.fail(data);\r\n }\r\n };\r\n options.fail = function (res) {\r\n res.statusCode = ERROR_CONF.WX_ERR_CODE;\r\n param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));\r\n };\r\n options.complete = function (res) {\r\n const statusCode = +res.statusCode;\r\n switch(statusCode) {\r\n case ERROR_CONF.WX_ERR_CODE: {\r\n param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));\r\n break;\r\n }\r\n case ERROR_CONF.WX_OK_CODE: {\r\n const data = res.data;\r\n if (data.status === 0) {\r\n param.complete(data);\r\n } else {\r\n param.complete(that.buildErrorConfig(data.status, data.message));\r\n }\r\n break;\r\n }\r\n default:{\r\n param.complete(that.buildErrorConfig(ERROR_CONF.SYSTEM_ERR, ERROR_CONF.SYSTEM_ERR_MSG));\r\n }\r\n }\r\n };\r\n return options;\r\n },\r\n\r\n // 数据处理函数\r\n handleData(param, data, feature) {\r\n if (feature == 'search') {\r\n const searchResult = data.data;\r\n const searchSimplify = [];\r\n for (let i = 0; i < searchResult.length; i++) {\r\n searchSimplify.push({\r\n id: searchResult[i].id || null,\r\n title: searchResult[i].title || null,\r\n latitude: searchResult[i].location && searchResult[i].location.lat || null,\r\n longitude: searchResult[i].location && searchResult[i].location.lng || null,\r\n address: searchResult[i].address || null,\r\n category: searchResult[i].category || null,\r\n tel: searchResult[i].tel || null,\r\n adcode: searchResult[i].ad_info && searchResult[i].ad_info.adcode || null,\r\n city: searchResult[i].ad_info && searchResult[i].ad_info.city || null,\r\n district: searchResult[i].ad_info && searchResult[i].ad_info.district || null,\r\n province: searchResult[i].ad_info && searchResult[i].ad_info.province || null\r\n });\r\n }\r\n param.success(data, {\r\n searchResult: searchResult,\r\n searchSimplify: searchSimplify\r\n });\r\n } else if (feature == 'suggest') {\r\n const suggestResult = data.data;\r\n const suggestSimplify = [];\r\n for (let i = 0; i < suggestResult.length; i++) {\r\n suggestSimplify.push({\r\n adcode: suggestResult[i].adcode || null,\r\n address: suggestResult[i].address || null,\r\n category: suggestResult[i].category || null,\r\n city: suggestResult[i].city || null,\r\n district: suggestResult[i].district || null,\r\n id: suggestResult[i].id || null,\r\n latitude: suggestResult[i].location && suggestResult[i].location.lat || null,\r\n longitude: suggestResult[i].location && suggestResult[i].location.lng || null,\r\n province: suggestResult[i].province || null,\r\n title: suggestResult[i].title || null,\r\n type: suggestResult[i].type || null\r\n });\r\n }\r\n param.success(data, {\r\n suggestResult: suggestResult,\r\n suggestSimplify: suggestSimplify\r\n });\r\n } else if (feature == 'reverseGeocoder') {\r\n const reverseGeocoderResult = data.result;\r\n const reverseGeocoderSimplify = {\r\n address: reverseGeocoderResult.address || null,\r\n latitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lat || null,\r\n longitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lng || null,\r\n adcode: reverseGeocoderResult.ad_info && reverseGeocoderResult.ad_info.adcode || null,\r\n city: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.city || null,\r\n district: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.district || null,\r\n nation: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.nation || null,\r\n province: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.province || null,\r\n street: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street || null,\r\n street_number: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street_number || null,\r\n recommend: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.recommend || null,\r\n rough: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.rough || null\r\n };\r\n param.success(data, {\r\n reverseGeocoderResult: reverseGeocoderResult,\r\n reverseGeocoderSimplify: reverseGeocoderSimplify\r\n });\r\n } else if (feature == 'calculateDistance') {\r\n const calculateDistanceResult = data.result.elements; \r\n const distance = [];\r\n for (let i = 0; i < calculateDistanceResult.length; i++){\r\n distance.push(calculateDistanceResult[i].distance);\r\n } \r\n param.success(data, {\r\n calculateDistanceResult: calculateDistanceResult,\r\n distance: distance\r\n });\r\n } else {\r\n param.success(data);\r\n }\r\n }\r\n };\r\n\r\n // QQMapWX类\r\n class QQMapWX {\r\n constructor(options) {\r\n if (!options.key) {\r\n throw Error('key值不能为空');\r\n }\r\n this.key = options.key;\r\n }\r\n\r\n // 逆地址解析\r\n reverseGeocoder(options) {\r\n const that = this;\r\n options = options || {};\r\n Utils.polyfillParam(options);\r\n \r\n const requestParam = {\r\n coord_type: options.coord_type || 5,\r\n get_poi: options.get_poi || 0,\r\n output: 'json',\r\n key: that.key\r\n };\r\n if (options.poi_options) {\r\n requestParam.poi_options = options.poi_options;\r\n }\r\n\r\n const locationsuccess = function (result) {\r\n requestParam.location = result.latitude + ',' + result.longitude;\r\n wx.request(Utils.buildWxRequestConfig(options, {\r\n url: URL_GET_GEOCODER,\r\n data: requestParam\r\n }, 'reverseGeocoder'));\r\n };\r\n Utils.locationProcess(options, locationsuccess);\r\n }\r\n\r\n // POI周边检索\r\n search(options) {\r\n const that = this;\r\n options = options || {};\r\n Utils.polyfillParam(options);\r\n\r\n if (!options.keyword) {\r\n const errconf = Utils.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' keyword参数格式有误');\r\n options.fail(errconf);\r\n options.complete(errconf);\r\n return;\r\n }\r\n\r\n const requestParam = {\r\n keyword: options.keyword,\r\n orderby: options.orderby || '_distance',\r\n page_size: options.page_size || 10,\r\n page_index: options.page_index || 1,\r\n output: 'json',\r\n key: that.key\r\n };\r\n\r\n if (options.address_format) {\r\n requestParam.address_format = options.address_format;\r\n }\r\n\r\n if (options.filter) {\r\n requestParam.filter = options.filter;\r\n }\r\n\r\n const distance = options.distance || \"1000\";\r\n const auto_extend = options.auto_extend || 1;\r\n\r\n const locationsuccess = function (result) {\r\n requestParam.boundary = \"nearby(\" + result.latitude + \",\" + result.longitude + \",\" + distance + \",\" + auto_extend + \")\";\r\n wx.request(Utils.buildWxRequestConfig(options, {\r\n url: URL_SEARCH,\r\n data: requestParam\r\n }, 'search'));\r\n };\r\n\r\n Utils.locationProcess(options, locationsuccess);\r\n }\r\n\r\n // sug模糊检索\r\n getSuggestion(options) {\r\n const that = this;\r\n options = options || {};\r\n Utils.polyfillParam(options);\r\n\r\n if (!options.keyword) {\r\n const errconf = Utils.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' keyword参数格式有误');\r\n options.fail(errconf);\r\n options.complete(errconf);\r\n return;\r\n }\r\n\r\n const requestParam = {\r\n keyword: options.keyword,\r\n region: options.region || '全国',\r\n region_fix: options.region_fix || 0,\r\n policy: options.policy || 0,\r\n page_size: options.page_size || 10,\r\n page_index: options.page_index || 1,\r\n get_subpois: options.get_subpois || 0,\r\n output: 'json',\r\n key: that.key\r\n };\r\n\r\n if (options.address_format) {\r\n requestParam.address_format = options.address_format;\r\n }\r\n\r\n if (options.filter) {\r\n requestParam.filter = options.filter;\r\n }\r\n\r\n if (options.location) {\r\n const locationsuccess = function (result) {\r\n requestParam.location = result.latitude + ',' + result.longitude;\r\n wx.request(Utils.buildWxRequestConfig(options, {\r\n url: URL_SUGGESTION,\r\n data: requestParam\r\n }, \"suggest\"));\r\n };\r\n Utils.locationProcess(options, locationsuccess);\r\n } else {\r\n wx.request(Utils.buildWxRequestConfig(options, {\r\n url: URL_SUGGESTION,\r\n data: requestParam\r\n }, \"suggest\"));\r\n }\r\n }\r\n\r\n // 距离计算\r\n calculateDistance(options) {\r\n const that = this;\r\n options = options || {};\r\n Utils.polyfillParam(options);\r\n\r\n if (!options.to) {\r\n const errconf = Utils.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' to参数格式有误');\r\n options.fail(errconf);\r\n options.complete(errconf);\r\n return;\r\n }\r\n\r\n const requestParam = {\r\n mode: options.mode || 'walking',\r\n to: options.to,\r\n output: 'json',\r\n key: that.key\r\n };\r\n\r\n if (options.from) {\r\n options.location = options.from;\r\n }\r\n\r\n const locationsuccess = function (result) {\r\n requestParam.from = result.latitude + ',' + result.longitude;\r\n wx.request(Utils.buildWxRequestConfig(options, {\r\n url: URL_DISTANCE,\r\n data: requestParam\r\n }, 'calculateDistance'));\r\n };\r\n\r\n Utils.locationProcess(options, locationsuccess);\r\n }\r\n }\r\n\r\n return QQMapWX;\r\n})();\r\n\r\n// 全局QQMap实例\r\nlet qqmapInstance = null;\r\n\r\n// 初始化腾讯地图SDK\r\nfunction initQQMap() {\r\n if (!qqmapInstance) {\r\n try {\r\n qqmapInstance = new QQMapWX({\r\n key: QQMAP_KEY\r\n });\r\n console.log('腾讯地图SDK初始化成功');\r\n } catch (err) {\r\n console.error('初始化腾讯地图SDK失败:', err);\r\n }\r\n }\r\n return qqmapInstance;\r\n}\r\n\r\n// 获取腾讯地图SDK实例\r\nfunction getQQMapInstance() {\r\n return qqmapInstance || initQQMap();\r\n}\r\n\r\n// 获取用户位置(使用微信的接口获取位置)\r\nfunction getUserLocation() {\n return new Promise((resolve, reject) => {\n wx.getLocation({\n type: 'gcj02',\n success: (res) => {\n // 对经度和纬度进行四舍五入,保留小数点后五位\n const longitude = parseFloat(res.longitude.toFixed(5));\n const latitude = parseFloat(res.latitude.toFixed(5));\n \n resolve({\n longitude,\n latitude\n });\n },\n fail: (error) => {\n console.error('获取位置失败:', error);\n reject(error);\n }\n });\n });\n}\r\n//TODO : 修改getUserLocation函数,使其返回Promise(暂时弃用)\r\n// function getUserLocation() {\r\n// return new Promise((resolve, reject) => {\r\n// wx.getLocation({\r\n// type: 'gcj02',\r\n// success: (res) => {\r\n// resolve({\r\n// longitude: res.longitude,\r\n// latitude: res.latitude\r\n// });\r\n// },\r\n// fail: (error) => {\r\n// console.error('获取位置失败:', error);\r\n// reject(error);\r\n// }\r\n// });\r\n// });\r\n// }\r\n\r\n// 逆地理编码 - 根据经纬度获取地址信息\r\nfunction getRegeo(longitude, latitude) {\r\n return new Promise((resolve, reject) => {\r\n const qqmap = getQQMapInstance();\r\n if (!qqmap) {\r\n reject({ success: false, message: '腾讯地图SDK未初始化' });\r\n return;\r\n }\r\n \r\n qqmap.reverseGeocoder({\r\n location: {\r\n latitude,\r\n longitude\r\n },\r\n success: (data, result) => {\r\n // 官方SDK返回的数据结构:data是原始数据,result是简化数据\r\n const reverseGeocoderSimplify = result.reverseGeocoderSimplify;\r\n resolve({\r\n success: true,\r\n data: {\r\n formatted_address: reverseGeocoderSimplify.address,\r\n addressComponent: {\r\n city: reverseGeocoderSimplify.city,\r\n district: reverseGeocoderSimplify.district,\r\n province: reverseGeocoderSimplify.province,\r\n street: reverseGeocoderSimplify.street,\r\n street_number: reverseGeocoderSimplify.street_number\r\n }\r\n }\r\n });\r\n },\r\n fail: (error) => {\r\n console.error('逆地理编码失败:', error);\r\n reject({ success: false, message: error.message || '逆地理编码失败' });\r\n }\r\n });\r\n });\r\n}\r\n\r\n// 搜索周边POI\r\nfunction getPoiAround(longitude, latitude, keyword = '', radius = 1000) {\r\n return new Promise((resolve, reject) => {\r\n const qqmap = getQQMapInstance();\r\n if (!qqmap) {\r\n reject({ success: false, message: '腾讯地图SDK未初始化' });\r\n return;\r\n }\r\n \r\n qqmap.search({\r\n keyword: keyword,\r\n location: {\r\n latitude,\r\n longitude\r\n },\r\n distance: radius,\r\n success: (data, result) => {\r\n const searchSimplify = result.searchSimplify;\r\n resolve({\r\n success: true,\r\n data: searchSimplify\r\n });\r\n },\r\n fail: (error) => {\r\n console.error('搜索POI失败:', error);\r\n reject({ success: false, message: error.message || '搜索POI失败' });\r\n }\r\n });\r\n });\r\n}\r\n\r\n// 计算距离(异步)\r\nfunction calculateDistance(from, to) {\r\n return new Promise((resolve, reject) => {\r\n const qqmap = getQQMapInstance();\r\n if (!qqmap) {\r\n reject({ success: false, message: '腾讯地图SDK未初始化' });\r\n return;\r\n }\r\n \r\n qqmap.calculateDistance({\r\n from: from,\r\n to: to,\r\n mode: 'walking',\r\n success: (data, result) => {\r\n const distance = result.distance;\r\n resolve({\r\n success: true,\r\n data: distance\r\n });\r\n },\r\n fail: (error) => {\r\n console.error('计算距离失败:', error);\r\n reject({ success: false, message: error.message || '计算距离失败' });\r\n }\r\n });\r\n });\r\n}\r\n\r\n// 计算距离(同步,使用球面距离公式)\r\nfunction calculateDistanceSync(lat1, lng1, lat2, lng2) {\r\n const R = 6371000; // 地球半径(米)\r\n const dLat = (lat2 - lat1) * Math.PI / 180;\r\n const dLng = (lng2 - lng1) * Math.PI / 180;\r\n const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +\r\n Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) *\r\n Math.sin(dLng / 2) * Math.sin(dLng / 2);\r\n const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\r\n return Math.round(R * c); // 返回距离,单位为米\r\n}\r\n\r\n// 关键词提示\r\nfunction getSuggestion(keyword, region = '全国') {\r\n return new Promise((resolve, reject) => {\r\n const qqmap = getQQMapInstance();\r\n if (!qqmap) {\r\n reject({ success: false, message: '腾讯地图SDK未初始化' });\r\n return;\r\n }\r\n \r\n qqmap.getSuggestion({\r\n keyword: keyword,\r\n region: region,\r\n success: (data, result) => {\r\n const suggestSimplify = result.suggestSimplify;\r\n resolve({\r\n success: true,\r\n data: suggestSimplify\r\n });\r\n },\r\n fail: (error) => {\r\n console.error('关键词提示失败:', error);\r\n reject({ success: false, message: error.message || '关键词提示失败' });\r\n }\r\n });\r\n });\r\n}\r\n\r\n// 导出函数\r\nexport {\r\n getUserLocation,\r\n getRegeo,\r\n getPoiAround,\r\n calculateDistance,\r\n calculateDistanceSync,\r\n getSuggestion,\r\n initQQMap,\r\n getQQMapInstance\r\n};\r\n\r\n// 测试距离计算函数(开发调试用)\r\nexport function testDistanceCalculation() {\r\n // 测试用例:北京天安门到故宫的距离(约1.5公里)\r\n const tiananmen = { lat: 39.908823, lng: 116.397470 };\r\n const gugong = { lat: 39.916527, lng: 116.397128 };\r\n \r\n const distance = calculateDistanceSync(tiananmen.lat, tiananmen.lng, gugong.lat, gugong.lng);\r\n console.log('天安门到故宫的距离:', distance, '米');\r\n console.log('转换为公里:', (distance / 1000).toFixed(2), '公里');\r\n \r\n return distance;\r\n} "],"names":["wx","QQMapWX","uni"],"mappings":";;AAGA,MAAM,YAAY;AAGlB,MAAM,UAAW,WAAW;AAE1B,QAAM,aAAa;AAAA,IACjB,SAAS;AAAA,IACT,aAAa;AAAA,IACb,WAAW;AAAA,IACX,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,YAAY;AAAA,EAChB;AAGE,QAAM,WAAW;AACjB,QAAM,aAAa,WAAW;AAC9B,QAAM,iBAAiB,WAAW;AAClC,QAAM,mBAAmB,WAAW;AACpC,QAAM,eAAe,WAAW;AAGhC,QAAM,QAAQ;AAAA;AAAA,IAEZ,iBAAiB,UAAU;AACzB,UAAI,OAAO,YAAY,UAAU;AAC/B,cAAM,cAAc,SAAS,MAAM,GAAG;AACtC,YAAI,YAAY,WAAW,GAAG;AAC5B,qBAAW;AAAA,YACT,UAAU,SAAS,MAAM,GAAG,EAAE,CAAC;AAAA,YAC/B,WAAW,SAAS,MAAM,GAAG,EAAE,CAAC;AAAA,UAC5C;AAAA,QACA,OAAe;AACL,qBAAW,CAAA;AAAA,QACZ;AAAA,MACF;AACD,aAAO;AAAA,IACR;AAAA;AAAA,IAGD,cAAc,OAAO;AACnB,YAAM,WAAW,KAAK,iBAAiB,MAAM,QAAQ;AACrD,UAAI,CAAC,YAAY,CAAC,SAAS,YAAY,CAAC,SAAS,WAAW;AAC1D,cAAM,UAAU,KAAK,iBAAiB,WAAW,WAAW,WAAW,gBAAgB,iBAAiB;AACxG,cAAM,KAAK,OAAO;AAClB,cAAM,SAAS,OAAO;AACtB,eAAO;AAAA,MACR;AACD,aAAO;AAAA,IACR;AAAA;AAAA,IAGD,iBAAiB,SAAS,QAAQ;AAChC,aAAO;AAAA,QACL,QAAQ;AAAA,QACR,SAAS;AAAA,MACjB;AAAA,IACK;AAAA;AAAA,IAGD,cAAc,OAAO;AACnB,YAAM,UAAU,MAAM,WAAW,WAAY;AAAA,MAAA;AAC7C,YAAM,OAAO,MAAM,QAAQ,WAAY;AAAA,MAAA;AACvC,YAAM,WAAW,MAAM,YAAY,WAAY;AAAA,MAAA;AAAA,IAChD;AAAA;AAAA,IAGD,gBAAgB,OAAO,iBAAiB,cAAc,kBAAkB;AACtE,YAAM,OAAO;AACb,qBAAe,gBAAgB,SAAU,KAAK;AAC5C,YAAI,aAAa,WAAW;AAC5B,cAAM,KAAK,KAAK,iBAAiB,WAAW,aAAa,IAAI,MAAM,CAAC;AAAA,MAC5E;AACM,yBAAmB,oBAAoB,SAAU,KAAK;AACpD,YAAI,IAAI,cAAc,WAAW,aAAa;AAC5C,gBAAM,SAAS,KAAK,iBAAiB,WAAW,aAAa,IAAI,MAAM,CAAC;AAAA,QACzE;AAAA,MACT;AACM,UAAI,CAAC,MAAM,UAAU;AACnBA,sBAAAA,KAAG,YAAY;AAAA,UACb,MAAM;AAAA,UACN,SAAS;AAAA,UACT,MAAM;AAAA,UACN,UAAU;AAAA,QACpB,CAAS;AAAA,MACF,WAAU,KAAK,cAAc,KAAK,GAAG;AACpC,cAAM,WAAW,MAAM,iBAAiB,MAAM,QAAQ;AACtD,wBAAgB,QAAQ;AAAA,MACzB;AAAA,IACF;AAAA;AAAA,IAGD,qBAAqB,OAAO,SAAS,SAAS;AAC5C,YAAM,OAAO;AACb,cAAQ,SAAS,EAAE,gBAAgB,mBAAkB;AACrD,cAAQ,SAAS;AACjB,cAAQ,UAAU,SAAU,KAAK;AAC/B,cAAM,OAAO,IAAI;AACjB,YAAI,KAAK,WAAW,GAAG;AACrB,eAAK,WAAW,OAAO,MAAM,OAAO;AAAA,QAC9C,OAAe;AACL,gBAAM,KAAK,IAAI;AAAA,QAChB;AAAA,MACT;AACM,cAAQ,OAAO,SAAU,KAAK;AAC5B,YAAI,aAAa,WAAW;AAC5B,cAAM,KAAK,KAAK,iBAAiB,WAAW,aAAa,IAAI,MAAM,CAAC;AAAA,MAC5E;AACM,cAAQ,WAAW,SAAU,KAAK;AAChC,cAAM,aAAa,CAAC,IAAI;AACxB,gBAAO,YAAU;AAAA,UACf,KAAK,WAAW,aAAa;AAC3B,kBAAM,SAAS,KAAK,iBAAiB,WAAW,aAAa,IAAI,MAAM,CAAC;AACxE;AAAA,UACD;AAAA,UACD,KAAK,WAAW,YAAY;AAC1B,kBAAM,OAAO,IAAI;AACjB,gBAAI,KAAK,WAAW,GAAG;AACrB,oBAAM,SAAS,IAAI;AAAA,YACjC,OAAmB;AACL,oBAAM,SAAS,KAAK,iBAAiB,KAAK,QAAQ,KAAK,OAAO,CAAC;AAAA,YAChE;AACD;AAAA,UACD;AAAA,UACD,SAAQ;AACN,kBAAM,SAAS,KAAK,iBAAiB,WAAW,YAAY,WAAW,cAAc,CAAC;AAAA,UACvF;AAAA,QACF;AAAA,MACT;AACM,aAAO;AAAA,IACR;AAAA;AAAA,IAGA,WAAW,OAAO,MAAM,SAAS;AAC/B,UAAI,WAAW,UAAU;AACvB,cAAM,eAAe,KAAK;AAC1B,cAAM,iBAAiB,CAAA;AACvB,iBAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,yBAAe,KAAK;AAAA,YAClB,IAAI,aAAa,CAAC,EAAE,MAAM;AAAA,YAC1B,OAAO,aAAa,CAAC,EAAE,SAAS;AAAA,YAChC,UAAU,aAAa,CAAC,EAAE,YAAY,aAAa,CAAC,EAAE,SAAS,OAAO;AAAA,YACtE,WAAW,aAAa,CAAC,EAAE,YAAY,aAAa,CAAC,EAAE,SAAS,OAAO;AAAA,YACvE,SAAS,aAAa,CAAC,EAAE,WAAW;AAAA,YACpC,UAAU,aAAa,CAAC,EAAE,YAAY;AAAA,YACtC,KAAK,aAAa,CAAC,EAAE,OAAO;AAAA,YAC5B,QAAQ,aAAa,CAAC,EAAE,WAAW,aAAa,CAAC,EAAE,QAAQ,UAAU;AAAA,YACrE,MAAM,aAAa,CAAC,EAAE,WAAW,aAAa,CAAC,EAAE,QAAQ,QAAQ;AAAA,YACjE,UAAU,aAAa,CAAC,EAAE,WAAW,aAAa,CAAC,EAAE,QAAQ,YAAY;AAAA,YACzE,UAAU,aAAa,CAAC,EAAE,WAAW,aAAa,CAAC,EAAE,QAAQ,YAAY;AAAA,UACtF,CAAY;AAAA,QACF;AACD,cAAM,QAAQ,MAAM;AAAA,UAClB;AAAA,UACA;AAAA,QACX,CAAU;AAAA,MACV,WAAkB,WAAW,WAAW;AAC/B,cAAM,gBAAgB,KAAK;AAC3B,cAAM,kBAAkB,CAAA;AACxB,iBAAS,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK;AAC7C,0BAAgB,KAAK;AAAA,YACnB,QAAQ,cAAc,CAAC,EAAE,UAAU;AAAA,YACnC,SAAS,cAAc,CAAC,EAAE,WAAW;AAAA,YACrC,UAAU,cAAc,CAAC,EAAE,YAAY;AAAA,YACvC,MAAM,cAAc,CAAC,EAAE,QAAQ;AAAA,YAC/B,UAAU,cAAc,CAAC,EAAE,YAAY;AAAA,YACvC,IAAI,cAAc,CAAC,EAAE,MAAM;AAAA,YAC3B,UAAU,cAAc,CAAC,EAAE,YAAY,cAAc,CAAC,EAAE,SAAS,OAAO;AAAA,YACxE,WAAW,cAAc,CAAC,EAAE,YAAY,cAAc,CAAC,EAAE,SAAS,OAAO;AAAA,YACzE,UAAU,cAAc,CAAC,EAAE,YAAY;AAAA,YACvC,OAAO,cAAc,CAAC,EAAE,SAAS;AAAA,YACjC,MAAM,cAAc,CAAC,EAAE,QAAQ;AAAA,UAC5C,CAAY;AAAA,QACF;AACD,cAAM,QAAQ,MAAM;AAAA,UAClB;AAAA,UACA;AAAA,QACX,CAAU;AAAA,MACV,WAAkB,WAAW,mBAAmB;AACvC,cAAM,wBAAwB,KAAK;AACnC,cAAM,0BAA0B;AAAA,UAC9B,SAAS,sBAAsB,WAAW;AAAA,UAC1C,UAAU,sBAAsB,YAAY,sBAAsB,SAAS,OAAO;AAAA,UAClF,WAAW,sBAAsB,YAAY,sBAAsB,SAAS,OAAO;AAAA,UACnF,QAAQ,sBAAsB,WAAW,sBAAsB,QAAQ,UAAU;AAAA,UACjF,MAAM,sBAAsB,qBAAqB,sBAAsB,kBAAkB,QAAQ;AAAA,UACjG,UAAU,sBAAsB,qBAAqB,sBAAsB,kBAAkB,YAAY;AAAA,UACzG,QAAQ,sBAAsB,qBAAqB,sBAAsB,kBAAkB,UAAU;AAAA,UACrG,UAAU,sBAAsB,qBAAqB,sBAAsB,kBAAkB,YAAY;AAAA,UACzG,QAAQ,sBAAsB,qBAAqB,sBAAsB,kBAAkB,UAAU;AAAA,UACrG,eAAe,sBAAsB,qBAAqB,sBAAsB,kBAAkB,iBAAiB;AAAA,UACnH,WAAW,sBAAsB,uBAAuB,sBAAsB,oBAAoB,aAAa;AAAA,UAC/G,OAAO,sBAAsB,uBAAuB,sBAAsB,oBAAoB,SAAS;AAAA,QAClH;AACS,cAAM,QAAQ,MAAM;AAAA,UAClB;AAAA,UACA;AAAA,QACX,CAAU;AAAA,MACV,WAAkB,WAAW,qBAAqB;AACzC,cAAM,0BAA0B,KAAK,OAAO;AAC5C,cAAM,WAAW,CAAA;AACjB,iBAAS,IAAI,GAAG,IAAI,wBAAwB,QAAQ,KAAI;AACtD,mBAAS,KAAK,wBAAwB,CAAC,EAAE,QAAQ;AAAA,QAClD;AACD,cAAM,QAAQ,MAAM;AAAA,UAClB;AAAA,UACA;AAAA,QACX,CAAU;AAAA,MACV,OAAc;AACL,cAAM,QAAQ,IAAI;AAAA,MACnB;AAAA,IACF;AAAA,EACN;AAAA,EAGE,MAAMC,SAAQ;AAAA,IACZ,YAAY,SAAS;AACnB,UAAI,CAAC,QAAQ,KAAK;AAChB,cAAM,MAAM,UAAU;AAAA,MACvB;AACD,WAAK,MAAM,QAAQ;AAAA,IACpB;AAAA;AAAA,IAGD,gBAAgB,SAAS;AACvB,YAAM,OAAO;AACb,gBAAU,WAAW;AACrB,YAAM,cAAc,OAAO;AAE3B,YAAM,eAAe;AAAA,QACnB,YAAY,QAAQ,cAAc;AAAA,QAClC,SAAS,QAAQ,WAAW;AAAA,QAC5B,QAAQ;AAAA,QACR,KAAK,KAAK;AAAA,MAClB;AACM,UAAI,QAAQ,aAAa;AACvB,qBAAa,cAAc,QAAQ;AAAA,MACpC;AAED,YAAM,kBAAkB,SAAU,QAAQ;AACxC,qBAAa,WAAW,OAAO,WAAW,MAAM,OAAO;AACvDD,sBAAAA,KAAG,QAAQ,MAAM,qBAAqB,SAAS;AAAA,UAC7C,KAAK;AAAA,UACL,MAAM;AAAA,QAChB,GAAW,iBAAiB,CAAC;AAAA,MAC7B;AACM,YAAM,gBAAgB,SAAS,eAAe;AAAA,IAC/C;AAAA;AAAA,IAGA,OAAO,SAAS;AACd,YAAM,OAAO;AACb,gBAAU,WAAW;AACrB,YAAM,cAAc,OAAO;AAE3B,UAAI,CAAC,QAAQ,SAAS;AACpB,cAAM,UAAU,MAAM,iBAAiB,WAAW,WAAW,WAAW,gBAAgB,gBAAgB;AACxG,gBAAQ,KAAK,OAAO;AACpB,gBAAQ,SAAS,OAAO;AACxB;AAAA,MACD;AAED,YAAM,eAAe;AAAA,QACnB,SAAS,QAAQ;AAAA,QACjB,SAAS,QAAQ,WAAW;AAAA,QAC5B,WAAW,QAAQ,aAAa;AAAA,QAChC,YAAY,QAAQ,cAAc;AAAA,QAClC,QAAQ;AAAA,QACR,KAAK,KAAK;AAAA,MACnB;AAEO,UAAI,QAAQ,gBAAgB;AAC1B,qBAAa,iBAAiB,QAAQ;AAAA,MACvC;AAED,UAAI,QAAQ,QAAQ;AAClB,qBAAa,SAAS,QAAQ;AAAA,MAC/B;AAED,YAAM,WAAW,QAAQ,YAAY;AACrC,YAAM,cAAc,QAAQ,eAAe;AAE3C,YAAM,kBAAkB,SAAU,QAAQ;AACxC,qBAAa,WAAW,YAAY,OAAO,WAAW,MAAM,OAAO,YAAY,MAAM,WAAW,MAAM,cAAc;AACpHA,sBAAAA,KAAG,QAAQ,MAAM,qBAAqB,SAAS;AAAA,UAC7C,KAAK;AAAA,UACL,MAAM;AAAA,QACjB,GAAY,QAAQ,CAAC;AAAA,MACrB;AAEO,YAAM,gBAAgB,SAAS,eAAe;AAAA,IAC/C;AAAA;AAAA,IAGD,cAAc,SAAS;AACrB,YAAM,OAAO;AACb,gBAAU,WAAW;AACrB,YAAM,cAAc,OAAO;AAE3B,UAAI,CAAC,QAAQ,SAAS;AACpB,cAAM,UAAU,MAAM,iBAAiB,WAAW,WAAW,WAAW,gBAAgB,gBAAgB;AACxG,gBAAQ,KAAK,OAAO;AACpB,gBAAQ,SAAS,OAAO;AACxB;AAAA,MACD;AAED,YAAM,eAAe;AAAA,QACnB,SAAS,QAAQ;AAAA,QACjB,QAAQ,QAAQ,UAAU;AAAA,QAC1B,YAAY,QAAQ,cAAc;AAAA,QAClC,QAAQ,QAAQ,UAAU;AAAA,QAC1B,WAAW,QAAQ,aAAa;AAAA,QAChC,YAAY,QAAQ,cAAc;AAAA,QAClC,aAAa,QAAQ,eAAe;AAAA,QACpC,QAAQ;AAAA,QACR,KAAK,KAAK;AAAA,MACnB;AAEO,UAAI,QAAQ,gBAAgB;AAC1B,qBAAa,iBAAiB,QAAQ;AAAA,MACvC;AAED,UAAI,QAAQ,QAAQ;AAClB,qBAAa,SAAS,QAAQ;AAAA,MAC/B;AAED,UAAI,QAAQ,UAAU;AACpB,cAAM,kBAAkB,SAAU,QAAQ;AACxC,uBAAa,WAAW,OAAO,WAAW,MAAM,OAAO;AACvDA,wBAAAA,KAAG,QAAQ,MAAM,qBAAqB,SAAS;AAAA,YAC7C,KAAK;AAAA,YACL,MAAM;AAAA,UACnB,GAAc,SAAS,CAAC;AAAA,QACxB;AACS,cAAM,gBAAgB,SAAS,eAAe;AAAA,MACvD,OAAc;AACLA,sBAAAA,KAAG,QAAQ,MAAM,qBAAqB,SAAS;AAAA,UAC7C,KAAK;AAAA,UACL,MAAM;AAAA,QACjB,GAAY,SAAS,CAAC;AAAA,MACd;AAAA,IACF;AAAA;AAAA,IAGD,kBAAkB,SAAS;AACzB,YAAM,OAAO;AACb,gBAAU,WAAW;AACrB,YAAM,cAAc,OAAO;AAE3B,UAAI,CAAC,QAAQ,IAAI;AACf,cAAM,UAAU,MAAM,iBAAiB,WAAW,WAAW,WAAW,gBAAgB,WAAW;AACnG,gBAAQ,KAAK,OAAO;AACpB,gBAAQ,SAAS,OAAO;AACxB;AAAA,MACD;AAED,YAAM,eAAe;AAAA,QACnB,MAAM,QAAQ,QAAQ;AAAA,QACtB,IAAI,QAAQ;AAAA,QACZ,QAAQ;AAAA,QACR,KAAK,KAAK;AAAA,MACnB;AAEO,UAAI,QAAQ,MAAM;AAChB,gBAAQ,WAAW,QAAQ;AAAA,MAC5B;AAED,YAAM,kBAAkB,SAAU,QAAQ;AACxC,qBAAa,OAAO,OAAO,WAAW,MAAM,OAAO;AACnDA,sBAAAA,KAAG,QAAQ,MAAM,qBAAqB,SAAS;AAAA,UAC7C,KAAK;AAAA,UACL,MAAM;AAAA,QACjB,GAAY,mBAAmB,CAAC;AAAA,MAChC;AAEO,YAAM,gBAAgB,SAAS,eAAe;AAAA,IAC/C;AAAA,EACH;AAED,SAAOC;AACT;AAGA,IAAI,gBAAgB;AAGpB,SAAS,YAAY;AACnB,MAAI,CAAC,eAAe;AAClB,QAAI;AACF,sBAAgB,IAAI,QAAQ;AAAA,QAC1B,KAAK;AAAA,MACb,CAAO;AACDC,oBAAAA,MAAY,MAAA,OAAA,4BAAA,cAAc;AAAA,IAC3B,SAAQ,KAAK;AACZA,oBAAA,MAAA,MAAA,SAAA,4BAAc,iBAAiB,GAAG;AAAA,IACnC;AAAA,EACF;AACD,SAAO;AACT;AAGA,SAAS,mBAAmB;AAC1B,SAAO,iBAAiB;AAC1B;AAGA,SAAS,kBAAkB;AACzB,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtCF,kBAAAA,KAAG,YAAY;AAAA,MACb,MAAM;AAAA,MACN,SAAS,CAAC,QAAQ;AAEhB,cAAM,YAAY,WAAW,IAAI,UAAU,QAAQ,CAAC,CAAC;AACrD,cAAM,WAAW,WAAW,IAAI,SAAS,QAAQ,CAAC,CAAC;AAEnD,gBAAQ;AAAA,UACN;AAAA,UACA;AAAA,QACV,CAAS;AAAA,MACF;AAAA,MACD,MAAM,CAAC,UAAU;AACfE,sBAAA,MAAA,MAAA,SAAA,4BAAc,WAAW,KAAK;AAC9B,eAAO,KAAK;AAAA,MACb;AAAA,IACP,CAAK;AAAA,EACL,CAAG;AACH;AAqBA,SAAS,SAAS,WAAW,UAAU;AACrC,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,QAAQ;AACd,QAAI,CAAC,OAAO;AACV,aAAO,EAAE,SAAS,OAAO,SAAS,cAAe,CAAA;AACjD;AAAA,IACD;AAED,UAAM,gBAAgB;AAAA,MACpB,UAAU;AAAA,QACR;AAAA,QACA;AAAA,MACD;AAAA,MACD,SAAS,CAAC,MAAM,WAAW;AAEzB,cAAM,0BAA0B,OAAO;AACvC,gBAAQ;AAAA,UACN,SAAS;AAAA,UACT,MAAM;AAAA,YACJ,mBAAmB,wBAAwB;AAAA,YAC3C,kBAAkB;AAAA,cAChB,MAAM,wBAAwB;AAAA,cAC9B,UAAU,wBAAwB;AAAA,cAClC,UAAU,wBAAwB;AAAA,cAClC,QAAQ,wBAAwB;AAAA,cAChC,eAAe,wBAAwB;AAAA,YACxC;AAAA,UACF;AAAA,QACX,CAAS;AAAA,MACF;AAAA,MACD,MAAM,CAAC,UAAU;AACfA,sBAAc,MAAA,MAAA,SAAA,4BAAA,YAAY,KAAK;AAC/B,eAAO,EAAE,SAAS,OAAO,SAAS,MAAM,WAAW,UAAS,CAAE;AAAA,MAC/D;AAAA,IACP,CAAK;AAAA,EACL,CAAG;AACH;AA8DA,SAAS,sBAAsB,MAAM,MAAM,MAAM,MAAM;AACrD,QAAM,IAAI;AACV,QAAM,QAAQ,OAAO,QAAQ,KAAK,KAAK;AACvC,QAAM,QAAQ,OAAO,QAAQ,KAAK,KAAK;AACvC,QAAM,IAAI,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,OAAO,CAAC,IAC9C,KAAK,IAAI,OAAO,KAAK,KAAK,GAAG,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,GAAG,IAC9D,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,OAAO,CAAC;AACxC,QAAM,IAAI,IAAI,KAAK,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC;AACvD,SAAO,KAAK,MAAM,IAAI,CAAC;AACzB;AA0CO,SAAS,0BAA0B;AAExC,QAAM,YAAY,EAAE,KAAK,WAAW,KAAK,UAAU;AACnD,QAAM,SAAS,EAAE,KAAK,WAAW,KAAK,WAAU;AAEhD,QAAM,WAAW,sBAAsB,UAAU,KAAK,UAAU,KAAK,OAAO,KAAK,OAAO,GAAG;AAC3FA,gBAAA,MAAA,MAAA,OAAA,4BAAY,cAAc,UAAU,GAAG;AACvCA,gBAAAA,+CAAY,WAAW,WAAW,KAAM,QAAQ,CAAC,GAAG,IAAI;AAExD,SAAO;AACT;;;;;"} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/common/vendor.js b/unpackage/dist/dev/mp-weixin/common/vendor.js index 20d422b..c8e4ddc 100644 --- a/unpackage/dist/dev/mp-weixin/common/vendor.js +++ b/unpackage/dist/dev/mp-weixin/common/vendor.js @@ -7049,7 +7049,7 @@ function isConsoleWritable() { function initRuntimeSocketService() { const hosts = "192.168.5.17,127.0.0.1"; const port = "8090"; - const id = "mp-weixin_Pk5qpf"; + const id = "mp-weixin_7kve6_"; const lazy = typeof swan !== "undefined"; let restoreError = lazy ? () => { } : initOnError(); diff --git a/unpackage/dist/dev/mp-weixin/config/http.js b/unpackage/dist/dev/mp-weixin/config/http.js index b7910b6..c9724a0 100644 --- a/unpackage/dist/dev/mp-weixin/config/http.js +++ b/unpackage/dist/dev/mp-weixin/config/http.js @@ -14,7 +14,7 @@ const request = (option) => { method: option.method, data: option.data, header: { - "Content-Type": "application/json", + "Content-Type": "application/x-www-form-urlencoded", ...option.headers, "appid": config_url.appid, "Authorization": "Bearer " + common_vendor.index.getStorageSync("token"), diff --git a/unpackage/dist/dev/mp-weixin/pages/device/detail.js b/unpackage/dist/dev/mp-weixin/pages/device/detail.js index 816fb64..7c2b8f6 100644 --- a/unpackage/dist/dev/mp-weixin/pages/device/detail.js +++ b/unpackage/dist/dev/mp-weixin/pages/device/detail.js @@ -194,6 +194,7 @@ const _sfc_main = { common_vendor.index.showLoading({ title: "处理中" }); + common_vendor.index.__f__("log", "at pages/device/detail.vue:428", deviceId.value); const rentResult = await config_user.rentPowerBank(deviceId.value, phoneNumber.value); if (rentResult.code !== 200) { throw new Error(rentResult.msg || "设备租借失败"); diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.js b/unpackage/dist/dev/mp-weixin/pages/index/index.js index 029a54c..846ec34 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/index.js +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.js @@ -88,13 +88,14 @@ const _sfc_main = { longitude: location.longitude, latitude: location.latitude }; + common_vendor.index.__f__("log", "at pages/index/index.vue:260", userLocation.value); try { common_vendor.index.setStorageSync("userLocation", { longitude: location.longitude, latitude: location.latitude }); } catch (e) { - common_vendor.index.__f__("warn", "at pages/index/index.vue:267", "缓存基础定位信息失败:", e); + common_vendor.index.__f__("warn", "at pages/index/index.vue:268", "缓存基础定位信息失败:", e); } if (!isLocationInitialized.value) { isLocationInitialized.value = true; @@ -115,7 +116,7 @@ const _sfc_main = { district: userLocation.value.district }); } catch (e) { - common_vendor.index.__f__("warn", "at pages/index/index.vue:294", "缓存带地址的定位信息失败:", e); + common_vendor.index.__f__("warn", "at pages/index/index.vue:295", "缓存带地址的定位信息失败:", e); } } } catch (error) { @@ -125,7 +126,7 @@ const _sfc_main = { common_vendor.index.hideLoading(); }, 800); } catch (error) { - common_vendor.index.__f__("error", "at pages/index/index.vue:309", "获取位置失败:", error); + common_vendor.index.__f__("error", "at pages/index/index.vue:310", "获取位置失败:", error); common_vendor.index.showToast({ title: "获取位置失败,显示默认地图", icon: "none" @@ -149,15 +150,16 @@ const _sfc_main = { longitude: userLocation.value.longitude } }); + common_vendor.index.__f__("log", "at pages/index/index.vue:336", res); if (res.statusCode === 200 && res.data.code === 200) { positionList.value = res.data.rows || []; calculateDistances(); filteredPositions.value = [...positionList.value]; } else { - common_vendor.index.__f__("error", "at pages/index/index.vue:341", "获取场地列表失败:", res.data.msg); + common_vendor.index.__f__("error", "at pages/index/index.vue:343", "获取场地列表失败:", res.data.msg); } } catch (error) { - common_vendor.index.__f__("error", "at pages/index/index.vue:344", "获取场地列表异常:", error); + common_vendor.index.__f__("error", "at pages/index/index.vue:346", "获取场地列表异常:", error); } }; const calculateDistances = async (centerPoint = null) => { @@ -178,7 +180,7 @@ const _sfc_main = { item.distance = formatDistance(distanceInMeters); item.distanceInMeters = distanceInMeters; } catch (error) { - common_vendor.index.__f__("error", "at pages/index/index.vue:372", "计算距离异常:", error, item); + common_vendor.index.__f__("error", "at pages/index/index.vue:374", "计算距离异常:", error, item); item.distance = "999.0km"; item.distanceInMeters = 999e3; } @@ -209,12 +211,12 @@ const _sfc_main = { return !item.distanceInMeters || item.distanceInMeters <= maxDistanceInMeters; }); } else { - common_vendor.index.__f__("error", "at pages/index/index.vue:413", "根据地图中心加载场地失败:", res.data.msg); + common_vendor.index.__f__("error", "at pages/index/index.vue:415", "根据地图中心加载场地失败:", res.data.msg); positionList.value = []; filteredPositions.value = []; } } catch (error) { - common_vendor.index.__f__("error", "at pages/index/index.vue:418", "根据地图中心加载场地异常:", error); + common_vendor.index.__f__("error", "at pages/index/index.vue:420", "根据地图中心加载场地异常:", error); } }; const handleRelocate = async () => { @@ -337,14 +339,14 @@ const _sfc_main = { }); } } catch (error) { - common_vendor.index.__f__("error", "at pages/index/index.vue:581", "获取设备信息异常:", error); + common_vendor.index.__f__("error", "at pages/index/index.vue:583", "获取设备信息异常:", error); common_vendor.index.navigateTo({ url: `/pages/device/detail?deviceNo=${deviceNo}` }); } } } catch (error) { - common_vendor.index.__f__("error", "at pages/index/index.vue:588", "扫码处理失败:", error); + common_vendor.index.__f__("error", "at pages/index/index.vue:590", "扫码处理失败:", error); common_vendor.index.showToast({ title: "扫码失败", icon: "none" diff --git a/unpackage/dist/dev/mp-weixin/utils/mapUtils.js b/unpackage/dist/dev/mp-weixin/utils/mapUtils.js index dd83275..c5b7b17 100644 --- a/unpackage/dist/dev/mp-weixin/utils/mapUtils.js +++ b/unpackage/dist/dev/mp-weixin/utils/mapUtils.js @@ -369,13 +369,15 @@ function getUserLocation() { common_vendor.wx$1.getLocation({ type: "gcj02", success: (res) => { + const longitude = parseFloat(res.longitude.toFixed(5)); + const latitude = parseFloat(res.latitude.toFixed(5)); resolve({ - longitude: res.longitude, - latitude: res.latitude + longitude, + latitude }); }, fail: (error) => { - common_vendor.index.__f__("error", "at utils/mapUtils.js:423", "获取位置失败:", error); + common_vendor.index.__f__("error", "at utils/mapUtils.js:427", "获取位置失败:", error); reject(error); } }); @@ -410,7 +412,7 @@ function getRegeo(longitude, latitude) { }); }, fail: (error) => { - common_vendor.index.__f__("error", "at utils/mapUtils.js:462", "逆地理编码失败:", error); + common_vendor.index.__f__("error", "at utils/mapUtils.js:484", "逆地理编码失败:", error); reject({ success: false, message: error.message || "逆地理编码失败" }); } }); @@ -428,8 +430,8 @@ function testDistanceCalculation() { const tiananmen = { lat: 39.908823, lng: 116.39747 }; const gugong = { lat: 39.916527, lng: 116.397128 }; const distance = calculateDistanceSync(tiananmen.lat, tiananmen.lng, gugong.lat, gugong.lng); - common_vendor.index.__f__("log", "at utils/mapUtils.js:586", "天安门到故宫的距离:", distance, "米"); - common_vendor.index.__f__("log", "at utils/mapUtils.js:587", "转换为公里:", (distance / 1e3).toFixed(2), "公里"); + common_vendor.index.__f__("log", "at utils/mapUtils.js:608", "天安门到故宫的距离:", distance, "米"); + common_vendor.index.__f__("log", "at utils/mapUtils.js:609", "转换为公里:", (distance / 1e3).toFixed(2), "公里"); return distance; } exports.calculateDistanceSync = calculateDistanceSync; diff --git a/utils/mapUtils.js b/utils/mapUtils.js index 45da67b..342b7ea 100644 --- a/utils/mapUtils.js +++ b/utils/mapUtils.js @@ -414,9 +414,13 @@ function getUserLocation() { wx.getLocation({ type: 'gcj02', success: (res) => { + // 对经度和纬度进行四舍五入,保留小数点后五位 + const longitude = parseFloat(res.longitude.toFixed(5)); + const latitude = parseFloat(res.latitude.toFixed(5)); + resolve({ - longitude: res.longitude, - latitude: res.latitude + longitude, + latitude }); }, fail: (error) => { @@ -426,6 +430,24 @@ function getUserLocation() { }); }); } +//TODO : 修改getUserLocation函数,使其返回Promise(暂时弃用) +// function getUserLocation() { +// return new Promise((resolve, reject) => { +// wx.getLocation({ +// type: 'gcj02', +// success: (res) => { +// resolve({ +// longitude: res.longitude, +// latitude: res.latitude +// }); +// }, +// fail: (error) => { +// console.error('获取位置失败:', error); +// reject(error); +// } +// }); +// }); +// } // 逆地理编码 - 根据经纬度获取地址信息 function getRegeo(longitude, latitude) {