fix:修复订单监控总会显示弹窗的bug(采用时间比较形式)
This commit is contained in:
+1
-1
@@ -19,7 +19,7 @@ const request = (option) => {
|
|||||||
method: option.method,
|
method: option.method,
|
||||||
data: option.data,
|
data: option.data,
|
||||||
header: {
|
header: {
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/x-www-form-urlencoded",
|
||||||
...option.headers,
|
...option.headers,
|
||||||
'appid': appid,
|
'appid': appid,
|
||||||
'Authorization': "Bearer " + uni.getStorageSync('token'),
|
'Authorization': "Bearer " + uni.getStorageSync('token'),
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
export const URL = "https://my.gxfs123.com/api" //正式服务器
|
export const URL = "https://my.gxfs123.com/api" //正式服务器
|
||||||
// export const URL = "https://fansdev.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
|
export const appid = "wx2165f0be356ae7a9" //小程序appid
|
||||||
@@ -425,7 +425,7 @@
|
|||||||
uni.showLoading({
|
uni.showLoading({
|
||||||
title: '处理中'
|
title: '处理中'
|
||||||
})
|
})
|
||||||
|
console.log(deviceId.value);
|
||||||
// 调用设备租借接口
|
// 调用设备租借接口
|
||||||
const rentResult = await rentPowerBank(deviceId.value, phoneNumber.value)
|
const rentResult = await rentPowerBank(deviceId.value, phoneNumber.value)
|
||||||
if (rentResult.code !== 200) {
|
if (rentResult.code !== 200) {
|
||||||
|
|||||||
@@ -257,6 +257,7 @@
|
|||||||
latitude: location.latitude
|
latitude: location.latitude
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log(userLocation.value);
|
||||||
// 将经纬度写入本地缓存(基础信息)
|
// 将经纬度写入本地缓存(基础信息)
|
||||||
try {
|
try {
|
||||||
uni.setStorageSync('userLocation', {
|
uni.setStorageSync('userLocation', {
|
||||||
@@ -332,6 +333,7 @@
|
|||||||
longitude: userLocation.value.longitude
|
longitude: userLocation.value.longitude
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
console.log(res);
|
||||||
|
|
||||||
if (res.statusCode === 200 && res.data.code === 200) {
|
if (res.statusCode === 200 && res.data.code === 200) {
|
||||||
positionList.value = res.data.rows || []
|
positionList.value = res.data.rows || []
|
||||||
|
|||||||
@@ -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`: 本文档
|
|
||||||
+1
-1
@@ -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()}})}));
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
|||||||
<view class="container data-v-23b2f720"><view class="device-header data-v-23b2f720"><view class="{{['device-status-card', 'data-v-23b2f720', b]}}"><view class="status-indicator data-v-23b2f720"></view><text class="status-text data-v-23b2f720">{{a}}</text></view><view class="device-title data-v-23b2f720"><text class="name data-v-23b2f720">共享风扇</text><view class="device-meta data-v-23b2f720"><text class="id-label data-v-23b2f720">设备号:</text><text class="id-value data-v-23b2f720">{{c}}</text></view></view></view><view class="card device-info-card data-v-23b2f720"><view class="card-row data-v-23b2f720"><view class="card-item data-v-23b2f720"><view class="item-icon location-icon data-v-23b2f720"><image class="data-v-23b2f720" src="{{d}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-23b2f720"><text class="item-label data-v-23b2f720">当前位置</text><text class="item-value data-v-23b2f720">{{e}}</text></view></view></view></view><view class="card pricing-card data-v-23b2f720"><view class="card-header data-v-23b2f720"><text class="card-title data-v-23b2f720">计费规则</text></view><view class="pricing-banner data-v-23b2f720"><view class="pricing-main data-v-23b2f720"><text class="price data-v-23b2f720">¥{{f}}</text><text class="unit data-v-23b2f720">/小时</text></view><text class="cap-price data-v-23b2f720">封顶 ¥{{g}}</text></view><view class="pricing-rules data-v-23b2f720"><view class="rule-item data-v-23b2f720"><view class="rule-dot data-v-23b2f720"></view><text class="rule-text data-v-23b2f720">不足60分钟按60分钟计费</text></view><view class="rule-item data-v-23b2f720"><view class="rule-dot data-v-23b2f720"></view><text class="rule-text data-v-23b2f720">持续计费至99元视为买断</text></view></view></view><view class="card notice-card data-v-23b2f720"><view class="card-header data-v-23b2f720"><text class="card-title data-v-23b2f720">使用须知</text></view><view class="notice-items data-v-23b2f720"><view class="notice-item data-v-23b2f720"><view class="notice-dot data-v-23b2f720"></view><text class="notice-text data-v-23b2f720">请在使用前检查设备是否完好</text></view><view class="notice-item data-v-23b2f720"><view class="notice-dot data-v-23b2f720"></view><text class="notice-text data-v-23b2f720">请在指定区域内使用设备</text></view><view class="notice-item data-v-23b2f720"><view class="notice-dot data-v-23b2f720"></view><text class="notice-text data-v-23b2f720">归还时请确保设备完好,避免损坏</text></view></view></view><view class="footer data-v-23b2f720"><button class="{{['rent-button', 'data-v-23b2f720', i && 'return-button']}}" bindtap="{{j}}"><text class="data-v-23b2f720">{{h}}</text></button><view class="wechat-credit data-v-23b2f720"><image src="{{k}}" mode="aspectFit" class="wx-icon data-v-23b2f720"></image><view class="credit-text data-v-23b2f720"><text class="data-v-23b2f720">微信支付分</text><text class="credit-divider data-v-23b2f720">|</text><text class="credit-score data-v-23b2f720">550分及以上优享</text></view></view></view><view wx:if="{{l}}" class="phone-auth-popup data-v-23b2f720"><view class="popup-mask data-v-23b2f720" catchtap="{{m}}"></view><view class="popup-content data-v-23b2f720"><view class="popup-header data-v-23b2f720"><text class="popup-title data-v-23b2f720">授权获取手机号</text></view><view class="popup-body data-v-23b2f720"><view class="auth-desc data-v-23b2f720"><text class="data-v-23b2f720">为了提供更好的服务,需要授权获取您的手机号</text></view><button class="auth-btn data-v-23b2f720" open-type="getPhoneNumber" bindgetphonenumber="{{n}}"> 一键获取手机号 </button><view class="auth-cancel data-v-23b2f720" bindtap="{{o}}"><text class="data-v-23b2f720">暂不授权</text></view></view></view></view></view>
|
<view class="container data-v-43d897c5"><view class="device-header data-v-43d897c5"><view class="{{['device-status-card', 'data-v-43d897c5', b]}}"><view class="status-indicator data-v-43d897c5"></view><text class="status-text data-v-43d897c5">{{a}}</text></view><view class="device-title data-v-43d897c5"><text class="name data-v-43d897c5">共享风扇</text><view class="device-meta data-v-43d897c5"><text class="id-label data-v-43d897c5">设备号:</text><text class="id-value data-v-43d897c5">{{c}}</text></view></view></view><view class="card device-info-card data-v-43d897c5"><view class="card-row data-v-43d897c5"><view class="card-item data-v-43d897c5"><view class="item-icon location-icon data-v-43d897c5"><image class="data-v-43d897c5" src="{{d}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-43d897c5"><text class="item-label data-v-43d897c5">当前位置</text><text class="item-value data-v-43d897c5">{{e}}</text></view></view></view></view><view class="card pricing-card data-v-43d897c5"><view class="card-header data-v-43d897c5"><text class="card-title data-v-43d897c5">计费规则</text></view><view class="pricing-banner data-v-43d897c5"><view class="pricing-main data-v-43d897c5"><text class="price data-v-43d897c5">¥{{f}}</text><text class="unit data-v-43d897c5">/小时</text></view><text class="cap-price data-v-43d897c5">封顶 ¥{{g}}</text></view><view class="pricing-rules data-v-43d897c5"><view class="rule-item data-v-43d897c5"><view class="rule-dot data-v-43d897c5"></view><text class="rule-text data-v-43d897c5">不足60分钟按60分钟计费</text></view><view class="rule-item data-v-43d897c5"><view class="rule-dot data-v-43d897c5"></view><text class="rule-text data-v-43d897c5">持续计费至99元视为买断</text></view></view></view><view class="card notice-card data-v-43d897c5"><view class="card-header data-v-43d897c5"><text class="card-title data-v-43d897c5">使用须知</text></view><view class="notice-items data-v-43d897c5"><view class="notice-item data-v-43d897c5"><view class="notice-dot data-v-43d897c5"></view><text class="notice-text data-v-43d897c5">请在使用前检查设备是否完好</text></view><view class="notice-item data-v-43d897c5"><view class="notice-dot data-v-43d897c5"></view><text class="notice-text data-v-43d897c5">请在指定区域内使用设备</text></view><view class="notice-item data-v-43d897c5"><view class="notice-dot data-v-43d897c5"></view><text class="notice-text data-v-43d897c5">归还时请确保设备完好,避免损坏</text></view></view></view><view class="footer data-v-43d897c5"><button class="{{['rent-button', 'data-v-43d897c5', i && 'return-button']}}" bindtap="{{j}}"><text class="data-v-43d897c5">{{h}}</text></button><view class="wechat-credit data-v-43d897c5"><image src="{{k}}" mode="aspectFit" class="wx-icon data-v-43d897c5"></image><view class="credit-text data-v-43d897c5"><text class="data-v-43d897c5">微信支付分</text><text class="credit-divider data-v-43d897c5">|</text><text class="credit-score data-v-43d897c5">550分及以上优享</text></view></view></view><view wx:if="{{l}}" class="phone-auth-popup data-v-43d897c5"><view class="popup-mask data-v-43d897c5" catchtap="{{m}}"></view><view class="popup-content data-v-43d897c5"><view class="popup-header data-v-43d897c5"><text class="popup-title data-v-43d897c5">授权获取手机号</text></view><view class="popup-body data-v-43d897c5"><view class="auth-desc data-v-43d897c5"><text class="data-v-43d897c5">为了提供更好的服务,需要授权获取您的手机号</text></view><button class="auth-btn data-v-43d897c5" open-type="getPhoneNumber" bindgetphonenumber="{{n}}"> 一键获取手机号 </button><view class="auth-cancel data-v-43d897c5" bindtap="{{o}}"><text class="data-v-43d897c5">暂不授权</text></view></view></view></view></view>
|
||||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
|||||||
<view class="container data-v-d45cdca7"><view class="header-section data-v-d45cdca7"><view class="logo-container data-v-d45cdca7"><image class="logo-image data-v-d45cdca7" src="{{a}}" mode="aspectFit"/><text class="app-name data-v-d45cdca7">共享风扇</text></view><uv-notice-bar wx:if="{{b}}" class="data-v-d45cdca7" u-i="d45cdca7-0" bind:__l="__l" u-p="{{b}}"></uv-notice-bar></view><map-component wx:if="{{c}}" class="r data-v-d45cdca7" u-r="mapRef" bindrelocate="{{e}}" bindscan="{{f}}" bindshowList="{{g}}" bindmarkerTap="{{h}}" bindmapCenterChange="{{i}}" u-i="d45cdca7-1" bind:__l="__l" u-p="{{j}}"/><view class="steps-guide data-v-d45cdca7"><view class="guide-header data-v-d45cdca7"><text class="guide-title data-v-d45cdca7">使用指南</text></view><view class="steps-container data-v-d45cdca7"><view wx:for="{{k}}" wx:for-item="step" wx:key="d" class="step-item data-v-d45cdca7"><view class="step-number data-v-d45cdca7">{{step.a}}</view><view class="step-content data-v-d45cdca7"><text class="step-title data-v-d45cdca7">{{step.b}}</text><text class="step-desc data-v-d45cdca7">{{step.c}}</text></view></view></view></view><view wx:if="{{l}}" class="map-loading-placeholder data-v-d45cdca7"><view class="loading-content data-v-d45cdca7"><view class="loading-spinner data-v-d45cdca7"></view><text class="data-v-d45cdca7">正在获取位置信息...</text></view></view><view wx:if="{{m}}" class="location-popup data-v-d45cdca7"><view class="popup-mask data-v-d45cdca7" bindtap="{{n}}"></view><view class="{{['location-sheet', 'data-v-d45cdca7', v && 'expanded']}}"><view class="sheet-header data-v-d45cdca7"><text class="sheet-title data-v-d45cdca7">附近设备场地 ({{o}})</text><view class="close-btn data-v-d45cdca7" bindtap="{{q}}"><uv-icon wx:if="{{p}}" class="data-v-d45cdca7" u-i="d45cdca7-2" bind:__l="__l" u-p="{{p}}"></uv-icon></view></view><scroll-view class="sheet-content data-v-d45cdca7" scroll-y="true"><view wx:for="{{r}}" wx:for-item="item" wx:key="k" class="position-item data-v-d45cdca7" bindtap="{{item.l}}"><view class="position-info data-v-d45cdca7"><view class="position-name data-v-d45cdca7">{{item.a}}</view><view class="{{['status-tag', 'data-v-d45cdca7', item.c]}}"><text class="data-v-d45cdca7">{{item.b}}</text></view><view wx:if="{{item.d}}" class="position-time data-v-d45cdca7"><text class="data-v-d45cdca7">营业时间:{{item.e}}</text></view></view><view class="position-actions data-v-d45cdca7"><view wx:if="{{item.f}}" class="distance-info data-v-d45cdca7"><text class="data-v-d45cdca7">{{item.g}}</text></view><view class="{{['status-tag', 'data-v-d45cdca7', item.i]}}"><text class="data-v-d45cdca7">{{item.h}}</text></view><view class="nav-btn data-v-d45cdca7" catchtap="{{item.j}}"><text class="data-v-d45cdca7">导航</text></view></view></view><view wx:if="{{s}}" class="empty-state data-v-d45cdca7"><image class="empty-icon data-v-d45cdca7" src="{{t}}" mode="aspectFit"/><text class="empty-text data-v-d45cdca7">附近5公里内暂无设备</text></view></scroll-view></view></view><view wx:if="{{w}}" class="loading-overlay data-v-d45cdca7"><view class="loading-content data-v-d45cdca7"><view class="loading-spinner data-v-d45cdca7"></view><text class="data-v-d45cdca7">正在获取场地信息...</text></view></view><view wx:if="{{x}}" class="phone-auth-popup data-v-d45cdca7"><view class="popup-mask data-v-d45cdca7" catchtap="{{y}}"></view><view class="popup-content data-v-d45cdca7"><view class="popup-header data-v-d45cdca7"><text class="popup-title data-v-d45cdca7">授权获取手机号</text></view><view class="popup-body data-v-d45cdca7"><view class="auth-desc data-v-d45cdca7"><text class="data-v-d45cdca7">为了提供更好的服务和紧急联系,需要授权获取您的手机号</text></view><button class="auth-btn data-v-d45cdca7" open-type="getPhoneNumber" bindgetphonenumber="{{z}}"><text class="data-v-d45cdca7">一键获取手机号</text></button><view class="auth-cancel data-v-d45cdca7" bindtap="{{A}}"><text class="data-v-d45cdca7">暂不授权</text></view></view></view></view></view>
|
<view class="container data-v-cfb209b7"><view class="header-section data-v-cfb209b7"><view class="logo-container data-v-cfb209b7"><image class="logo-image data-v-cfb209b7" src="{{a}}" mode="aspectFit"/><text class="app-name data-v-cfb209b7">共享风扇</text></view><uv-notice-bar wx:if="{{b}}" class="data-v-cfb209b7" u-i="cfb209b7-0" bind:__l="__l" u-p="{{b}}"></uv-notice-bar></view><map-component wx:if="{{c}}" class="r data-v-cfb209b7" u-r="mapRef" bindrelocate="{{e}}" bindscan="{{f}}" bindshowList="{{g}}" bindmarkerTap="{{h}}" bindmapCenterChange="{{i}}" u-i="cfb209b7-1" bind:__l="__l" u-p="{{j}}"/><view class="steps-guide data-v-cfb209b7"><view class="guide-header data-v-cfb209b7"><text class="guide-title data-v-cfb209b7">使用指南</text></view><view class="steps-container data-v-cfb209b7"><view wx:for="{{k}}" wx:for-item="step" wx:key="d" class="step-item data-v-cfb209b7"><view class="step-number data-v-cfb209b7">{{step.a}}</view><view class="step-content data-v-cfb209b7"><text class="step-title data-v-cfb209b7">{{step.b}}</text><text class="step-desc data-v-cfb209b7">{{step.c}}</text></view></view></view></view><view wx:if="{{l}}" class="map-loading-placeholder data-v-cfb209b7"><view class="loading-content data-v-cfb209b7"><view class="loading-spinner data-v-cfb209b7"></view><text class="data-v-cfb209b7">正在获取位置信息...</text></view></view><view wx:if="{{m}}" class="location-popup data-v-cfb209b7"><view class="popup-mask data-v-cfb209b7" bindtap="{{n}}"></view><view class="{{['location-sheet', 'data-v-cfb209b7', v && 'expanded']}}"><view class="sheet-header data-v-cfb209b7"><text class="sheet-title data-v-cfb209b7">附近设备场地 ({{o}})</text><view class="close-btn data-v-cfb209b7" bindtap="{{q}}"><uv-icon wx:if="{{p}}" class="data-v-cfb209b7" u-i="cfb209b7-2" bind:__l="__l" u-p="{{p}}"></uv-icon></view></view><scroll-view class="sheet-content data-v-cfb209b7" scroll-y="true"><view wx:for="{{r}}" wx:for-item="item" wx:key="k" class="position-item data-v-cfb209b7" bindtap="{{item.l}}"><view class="position-info data-v-cfb209b7"><view class="position-name data-v-cfb209b7">{{item.a}}</view><view class="{{['status-tag', 'data-v-cfb209b7', item.c]}}"><text class="data-v-cfb209b7">{{item.b}}</text></view><view wx:if="{{item.d}}" class="position-time data-v-cfb209b7"><text class="data-v-cfb209b7">营业时间:{{item.e}}</text></view></view><view class="position-actions data-v-cfb209b7"><view wx:if="{{item.f}}" class="distance-info data-v-cfb209b7"><text class="data-v-cfb209b7">{{item.g}}</text></view><view class="{{['status-tag', 'data-v-cfb209b7', item.i]}}"><text class="data-v-cfb209b7">{{item.h}}</text></view><view class="nav-btn data-v-cfb209b7" catchtap="{{item.j}}"><text class="data-v-cfb209b7">导航</text></view></view></view><view wx:if="{{s}}" class="empty-state data-v-cfb209b7"><image class="empty-icon data-v-cfb209b7" src="{{t}}" mode="aspectFit"/><text class="empty-text data-v-cfb209b7">附近5公里内暂无设备</text></view></scroll-view></view></view><view wx:if="{{w}}" class="loading-overlay data-v-cfb209b7"><view class="loading-content data-v-cfb209b7"><view class="loading-spinner data-v-cfb209b7"></view><text class="data-v-cfb209b7">正在获取场地信息...</text></view></view><view wx:if="{{x}}" class="phone-auth-popup data-v-cfb209b7"><view class="popup-mask data-v-cfb209b7" catchtap="{{y}}"></view><view class="popup-content data-v-cfb209b7"><view class="popup-header data-v-cfb209b7"><text class="popup-title data-v-cfb209b7">授权获取手机号</text></view><view class="popup-body data-v-cfb209b7"><view class="auth-desc data-v-cfb209b7"><text class="data-v-cfb209b7">为了提供更好的服务和紧急联系,需要授权获取您的手机号</text></view><button class="auth-btn data-v-cfb209b7" open-type="getPhoneNumber" bindgetphonenumber="{{z}}"><text class="data-v-cfb209b7">一键获取手机号</text></button><view class="auth-cancel data-v-cfb209b7" bindtap="{{A}}"><text class="data-v-cfb209b7">暂不授权</text></view></view></view></view></view>
|
||||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
@@ -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;;"}
|
{"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;;"}
|
||||||
@@ -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;;;"}
|
{"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;;;"}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-1
@@ -7049,7 +7049,7 @@ function isConsoleWritable() {
|
|||||||
function initRuntimeSocketService() {
|
function initRuntimeSocketService() {
|
||||||
const hosts = "192.168.5.17,127.0.0.1";
|
const hosts = "192.168.5.17,127.0.0.1";
|
||||||
const port = "8090";
|
const port = "8090";
|
||||||
const id = "mp-weixin_Pk5qpf";
|
const id = "mp-weixin_7kve6_";
|
||||||
const lazy = typeof swan !== "undefined";
|
const lazy = typeof swan !== "undefined";
|
||||||
let restoreError = lazy ? () => {
|
let restoreError = lazy ? () => {
|
||||||
} : initOnError();
|
} : initOnError();
|
||||||
|
|||||||
+1
-1
@@ -14,7 +14,7 @@ const request = (option) => {
|
|||||||
method: option.method,
|
method: option.method,
|
||||||
data: option.data,
|
data: option.data,
|
||||||
header: {
|
header: {
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/x-www-form-urlencoded",
|
||||||
...option.headers,
|
...option.headers,
|
||||||
"appid": config_url.appid,
|
"appid": config_url.appid,
|
||||||
"Authorization": "Bearer " + common_vendor.index.getStorageSync("token"),
|
"Authorization": "Bearer " + common_vendor.index.getStorageSync("token"),
|
||||||
|
|||||||
@@ -194,6 +194,7 @@ const _sfc_main = {
|
|||||||
common_vendor.index.showLoading({
|
common_vendor.index.showLoading({
|
||||||
title: "处理中"
|
title: "处理中"
|
||||||
});
|
});
|
||||||
|
common_vendor.index.__f__("log", "at pages/device/detail.vue:428", deviceId.value);
|
||||||
const rentResult = await config_user.rentPowerBank(deviceId.value, phoneNumber.value);
|
const rentResult = await config_user.rentPowerBank(deviceId.value, phoneNumber.value);
|
||||||
if (rentResult.code !== 200) {
|
if (rentResult.code !== 200) {
|
||||||
throw new Error(rentResult.msg || "设备租借失败");
|
throw new Error(rentResult.msg || "设备租借失败");
|
||||||
|
|||||||
+12
-10
@@ -88,13 +88,14 @@ const _sfc_main = {
|
|||||||
longitude: location.longitude,
|
longitude: location.longitude,
|
||||||
latitude: location.latitude
|
latitude: location.latitude
|
||||||
};
|
};
|
||||||
|
common_vendor.index.__f__("log", "at pages/index/index.vue:260", userLocation.value);
|
||||||
try {
|
try {
|
||||||
common_vendor.index.setStorageSync("userLocation", {
|
common_vendor.index.setStorageSync("userLocation", {
|
||||||
longitude: location.longitude,
|
longitude: location.longitude,
|
||||||
latitude: location.latitude
|
latitude: location.latitude
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} 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) {
|
if (!isLocationInitialized.value) {
|
||||||
isLocationInitialized.value = true;
|
isLocationInitialized.value = true;
|
||||||
@@ -115,7 +116,7 @@ const _sfc_main = {
|
|||||||
district: userLocation.value.district
|
district: userLocation.value.district
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} 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) {
|
} catch (error) {
|
||||||
@@ -125,7 +126,7 @@ const _sfc_main = {
|
|||||||
common_vendor.index.hideLoading();
|
common_vendor.index.hideLoading();
|
||||||
}, 800);
|
}, 800);
|
||||||
} catch (error) {
|
} 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({
|
common_vendor.index.showToast({
|
||||||
title: "获取位置失败,显示默认地图",
|
title: "获取位置失败,显示默认地图",
|
||||||
icon: "none"
|
icon: "none"
|
||||||
@@ -149,15 +150,16 @@ const _sfc_main = {
|
|||||||
longitude: userLocation.value.longitude
|
longitude: userLocation.value.longitude
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
common_vendor.index.__f__("log", "at pages/index/index.vue:336", res);
|
||||||
if (res.statusCode === 200 && res.data.code === 200) {
|
if (res.statusCode === 200 && res.data.code === 200) {
|
||||||
positionList.value = res.data.rows || [];
|
positionList.value = res.data.rows || [];
|
||||||
calculateDistances();
|
calculateDistances();
|
||||||
filteredPositions.value = [...positionList.value];
|
filteredPositions.value = [...positionList.value];
|
||||||
} else {
|
} 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) {
|
} 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) => {
|
const calculateDistances = async (centerPoint = null) => {
|
||||||
@@ -178,7 +180,7 @@ const _sfc_main = {
|
|||||||
item.distance = formatDistance(distanceInMeters);
|
item.distance = formatDistance(distanceInMeters);
|
||||||
item.distanceInMeters = distanceInMeters;
|
item.distanceInMeters = distanceInMeters;
|
||||||
} catch (error) {
|
} 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.distance = "999.0km";
|
||||||
item.distanceInMeters = 999e3;
|
item.distanceInMeters = 999e3;
|
||||||
}
|
}
|
||||||
@@ -209,12 +211,12 @@ const _sfc_main = {
|
|||||||
return !item.distanceInMeters || item.distanceInMeters <= maxDistanceInMeters;
|
return !item.distanceInMeters || item.distanceInMeters <= maxDistanceInMeters;
|
||||||
});
|
});
|
||||||
} else {
|
} 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 = [];
|
positionList.value = [];
|
||||||
filteredPositions.value = [];
|
filteredPositions.value = [];
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} 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 () => {
|
const handleRelocate = async () => {
|
||||||
@@ -337,14 +339,14 @@ const _sfc_main = {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} 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({
|
common_vendor.index.navigateTo({
|
||||||
url: `/pages/device/detail?deviceNo=${deviceNo}`
|
url: `/pages/device/detail?deviceNo=${deviceNo}`
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} 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({
|
common_vendor.index.showToast({
|
||||||
title: "扫码失败",
|
title: "扫码失败",
|
||||||
icon: "none"
|
icon: "none"
|
||||||
|
|||||||
+8
-6
@@ -369,13 +369,15 @@ function getUserLocation() {
|
|||||||
common_vendor.wx$1.getLocation({
|
common_vendor.wx$1.getLocation({
|
||||||
type: "gcj02",
|
type: "gcj02",
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
|
const longitude = parseFloat(res.longitude.toFixed(5));
|
||||||
|
const latitude = parseFloat(res.latitude.toFixed(5));
|
||||||
resolve({
|
resolve({
|
||||||
longitude: res.longitude,
|
longitude,
|
||||||
latitude: res.latitude
|
latitude
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
fail: (error) => {
|
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);
|
reject(error);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -410,7 +412,7 @@ function getRegeo(longitude, latitude) {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
fail: (error) => {
|
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 || "逆地理编码失败" });
|
reject({ success: false, message: error.message || "逆地理编码失败" });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -428,8 +430,8 @@ function testDistanceCalculation() {
|
|||||||
const tiananmen = { lat: 39.908823, lng: 116.39747 };
|
const tiananmen = { lat: 39.908823, lng: 116.39747 };
|
||||||
const gugong = { lat: 39.916527, lng: 116.397128 };
|
const gugong = { lat: 39.916527, lng: 116.397128 };
|
||||||
const distance = calculateDistanceSync(tiananmen.lat, tiananmen.lng, gugong.lat, gugong.lng);
|
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:608", "天安门到故宫的距离:", distance, "米");
|
||||||
common_vendor.index.__f__("log", "at utils/mapUtils.js:587", "转换为公里:", (distance / 1e3).toFixed(2), "公里");
|
common_vendor.index.__f__("log", "at utils/mapUtils.js:609", "转换为公里:", (distance / 1e3).toFixed(2), "公里");
|
||||||
return distance;
|
return distance;
|
||||||
}
|
}
|
||||||
exports.calculateDistanceSync = calculateDistanceSync;
|
exports.calculateDistanceSync = calculateDistanceSync;
|
||||||
|
|||||||
+24
-2
@@ -414,9 +414,13 @@ function getUserLocation() {
|
|||||||
wx.getLocation({
|
wx.getLocation({
|
||||||
type: 'gcj02',
|
type: 'gcj02',
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
|
// 对经度和纬度进行四舍五入,保留小数点后五位
|
||||||
|
const longitude = parseFloat(res.longitude.toFixed(5));
|
||||||
|
const latitude = parseFloat(res.latitude.toFixed(5));
|
||||||
|
|
||||||
resolve({
|
resolve({
|
||||||
longitude: res.longitude,
|
longitude,
|
||||||
latitude: res.latitude
|
latitude
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
fail: (error) => {
|
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) {
|
function getRegeo(longitude, latitude) {
|
||||||
|
|||||||
Reference in New Issue
Block a user