feat:新增地图模块,用于查找附近设备场地

This commit is contained in:
2025-08-18 14:52:39 +08:00
parent c5b8026fba
commit 38eb05fefd
122 changed files with 8317 additions and 1768 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+2
View File
@@ -1,6 +1,8 @@
{
"navigationBarTitleText": "附近场地",
"usingComponents": {
"uv-notice-bar": "../../node-modules/@climblee/uv-ui/components/uv-notice-bar/uv-notice-bar",
"uv-icon": "../../node-modules/@climblee/uv-ui/components/uv-icon/uv-icon",
"map-component": "../../components/MapComponent"
}
}
+1 -1
View File
@@ -1 +1 @@
<view class="container data-v-ef66b09a"><map-component wx:if="{{a}}" class="r data-v-ef66b09a" u-r="mapRef" bindrelocate="{{c}}" bindscan="{{d}}" bindshowList="{{e}}" bindmarkerTap="{{f}}" bindmapCenterChange="{{g}}" u-i="ef66b09a-0" bind:__l="__l" u-p="{{h}}"/><view wx:if="{{i}}" class="map-loading-placeholder data-v-ef66b09a"><view class="loading-content data-v-ef66b09a"><view class="loading-spinner data-v-ef66b09a"></view><text class="data-v-ef66b09a">正在获取位置信息...</text></view></view><view wx:if="{{j}}" class="location-popup data-v-ef66b09a"><view class="popup-mask data-v-ef66b09a" bindtap="{{k}}"></view><view class="{{['location-sheet', 'data-v-ef66b09a', t && 'expanded']}}"><view class="sheet-handle data-v-ef66b09a" bindtap="{{l}}"><view class="handle-bar data-v-ef66b09a"></view></view><view class="sheet-header data-v-ef66b09a"><text class="sheet-title data-v-ef66b09a">附近场地 ({{m}})</text><view class="close-btn data-v-ef66b09a" bindtap="{{o}}"><image class="close-icon data-v-ef66b09a" src="{{n}}" mode="aspectFit"/></view></view><scroll-view class="sheet-content data-v-ef66b09a" scroll-y="true"><view wx:for="{{p}}" wx:for-item="item" wx:key="k" class="position-item data-v-ef66b09a" bindtap="{{item.l}}"><view class="position-info data-v-ef66b09a"><view class="position-name data-v-ef66b09a">{{item.a}}</view><view class="position-desc data-v-ef66b09a">{{item.b}}</view><view class="position-location data-v-ef66b09a"><image class="location-icon-small data-v-ef66b09a" src="{{q}}" mode="aspectFit"/><text class="data-v-ef66b09a">{{item.c}}</text></view><view wx:if="{{item.d}}" class="position-time data-v-ef66b09a"><text class="data-v-ef66b09a">营业时间:{{item.e}}</text></view></view><view class="position-actions data-v-ef66b09a"><view wx:if="{{item.f}}" class="distance-info data-v-ef66b09a"><text class="data-v-ef66b09a">{{item.g}}km</text></view><view class="{{['status-tag', 'data-v-ef66b09a', item.i]}}"><text class="data-v-ef66b09a">{{item.h}}</text></view><view class="nav-btn data-v-ef66b09a" catchtap="{{item.j}}"><text class="data-v-ef66b09a">导航</text></view></view></view><view wx:if="{{r}}" class="empty-state data-v-ef66b09a"><image class="empty-icon data-v-ef66b09a" src="{{s}}" mode="aspectFit"/><text class="empty-text data-v-ef66b09a">暂无附近场地</text></view></scroll-view></view></view><view wx:if="{{v}}" class="loading-overlay data-v-ef66b09a"><view class="loading-content data-v-ef66b09a"><view class="loading-spinner data-v-ef66b09a"></view><text class="data-v-ef66b09a">正在获取场地信息...</text></view></view><view wx:if="{{w}}" class="phone-auth-popup data-v-ef66b09a"><view class="popup-mask data-v-ef66b09a" catchtap="{{x}}"></view><view class="popup-content data-v-ef66b09a"><view class="popup-header data-v-ef66b09a"><text class="popup-title data-v-ef66b09a">授权获取手机号</text></view><view class="popup-body data-v-ef66b09a"><view class="auth-desc data-v-ef66b09a"><text class="data-v-ef66b09a">为了提供更好的服务和紧急联系,需要授权获取您的手机号</text></view><button class="auth-btn data-v-ef66b09a" open-type="getPhoneNumber" bindgetphonenumber="{{y}}"><text class="data-v-ef66b09a">一键获取手机号</text></button><view class="auth-cancel data-v-ef66b09a" bindtap="{{z}}"><text class="data-v-ef66b09a">暂不授权</text></view></view></view></view></view>
<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>
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
"use strict";const e=require("../../common/vendor.js"),a=require("../../common/assets.js"),o=require("../../util/index.js");if(!Array){e.resolveComponent("uni-icons")()}const n={__name:"index",setup(n){const t=e.ref({}),r=e.ref("0.00"),i=e.ref(""),s=e.ref(null),d=e.ref(!1);e.onMounted((()=>{l()}));const l=async()=>{try{if(!e.index.getStorageSync("token"))return void(await o.wxLogin());const a=await o.getUserInfo();console.log("User info response:",a),200==a.code&&(a.data.openId&&(i.value=a.data.openId,e.index.setStorageSync("openId",a.data.openId)),t.value={nickName:a.data.nickname,phone:a.data.phone,avatar:a.data.iconUrl,isAdmin:a.data.isAdmin},e.index.setStorageSync("userInfo",t.value),r.value=a.data.balanceAmount||"0.00")}catch(a){console.error("获取用户信息失败:",a),e.index.showToast({title:"获取用户信息失败",icon:"none"})}},c=a=>{e.index.navigateTo({url:a})},p=()=>{c("/pages/deposit/index")},u=()=>{t.value||v()},v=()=>{s.value&&(s.value.open(),d.value=!0)};return(o,n)=>{return e.e({a:t.value.avatar},t.value.avatar?{b:t.value.avatar}:{c:a._imports_0$1},{d:t.value.isAdmin},(t.value.isAdmin,{}),{e:t.value},t.value?{f:e.t(t.value.nickName),g:e.t(t.value.phone?(i=t.value.phone,i?i.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"):""):"未绑定手机号")}:{},{h:e.p({type:"right",size:"16",color:"#999"}),i:e.o(u),j:e.t(r.value),k:e.o(p),l:a._imports_1,m:e.p({type:"right",size:"16",color:"#999"}),n:e.o((e=>c("/pages/order/index"))),o:a._imports_2,p:e.p({type:"right",size:"16",color:"#999"}),q:e.o((e=>c("/pages/feedback/index"))),r:a._imports_3,s:e.p({type:"right",size:"16",color:"#999"}),t:e.o((e=>c("/pages/help/index")))});var i}}},t=e._export_sfc(n,[["__scopeId","data-v-6fbc3933"]]);wx.createPage(t);
"use strict";const e=require("../../common/vendor.js"),a=require("../../common/assets.js"),o=require("../../util/index.js");if(!Array){e.resolveComponent("uni-icons")()}const n={__name:"index",setup(n){const t=e.ref({}),r=e.ref("0.00"),i=e.ref(""),s=e.ref(null),d=e.ref(!1);e.onMounted((()=>{l()}));const l=async()=>{try{if(!e.index.getStorageSync("token"))return void(await o.wxLogin());const a=await o.getUserInfo();console.log("User info response:",a),200==a.code&&(a.data.openId&&(i.value=a.data.openId,e.index.setStorageSync("openId",a.data.openId)),t.value={nickName:a.data.nickname,phone:a.data.phone,avatar:a.data.iconUrl,isAdmin:a.data.isAdmin},e.index.setStorageSync("userInfo",t.value),r.value=a.data.balanceAmount||"0.00")}catch(a){console.error("获取用户信息失败:",a),e.index.showToast({title:"获取用户信息失败",icon:"none"})}},c=a=>{e.index.navigateTo({url:a})},p=()=>{c("/pages/deposit/index")},u=()=>{t.value||v()},v=()=>{s.value&&(s.value.open(),d.value=!0)};return(o,n)=>{return e.e({a:t.value.avatar},t.value.avatar?{b:t.value.avatar}:{c:a._imports_0$2},{d:t.value.isAdmin},(t.value.isAdmin,{}),{e:t.value},t.value?{f:e.t(t.value.nickName),g:e.t(t.value.phone?(i=t.value.phone,i?i.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"):""):"未绑定手机号")}:{},{h:e.p({type:"right",size:"16",color:"#999"}),i:e.o(u),j:e.t(r.value),k:e.o(p),l:a._imports_1,m:e.p({type:"right",size:"16",color:"#999"}),n:e.o((e=>c("/pages/order/index"))),o:a._imports_2,p:e.p({type:"right",size:"16",color:"#999"}),q:e.o((e=>c("/pages/feedback/index"))),r:a._imports_3,s:e.p({type:"right",size:"16",color:"#999"}),t:e.o((e=>c("/pages/help/index")))});var i}}},t=e._export_sfc(n,[["__scopeId","data-v-6fbc3933"]]);wx.createPage(t);
+1 -1
View File
@@ -1 +1 @@
"use strict";const e=require("../../common/vendor.js"),a=require("../../common/assets.js"),t=require("../../config/user.js"),r={__name:"details",setup(r){const n=e.ref(""),o=e.ref({}),i=e.computed((()=>{switch(o.value.orderStatus){case"waiting_for_payment":return"待支付";case"in_used":default:return"使用中";case"used_done":return"已完成";case"order_cancelled":return"已取消"}}));e.onLoad((async a=>{a&&a.orderId?(n.value=a.orderId,await u()):(e.index.showToast({title:"订单信息不存在",icon:"none"}),setTimeout((()=>{e.index.navigateBack()}),1500))}));const u=async()=>{try{e.index.showLoading({title:"加载中"});const a=await t.queryById(n.value);if(200!==a.code||!a.data)throw new Error("获取订单详情失败");o.value=a.data,o.value.createTime&&(o.value.createTime=s(new Date(o.value.createTime))),o.value.startTime&&(o.value.startTime=s(new Date(o.value.startTime))),o.value.endTime&&(o.value.endTime=s(new Date(o.value.endTime))),e.index.hideLoading()}catch(a){e.index.hideLoading(),e.index.showToast({title:a.message||"获取订单详情失败",icon:"none"})}},s=e=>`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")} ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}`,d=e=>{if(!e)return"";const a=parseInt(e);if(a<60)return`${a}分钟`;{const e=Math.floor(a/60),t=a%60;return t>0?`${e}小时${t}分钟`:`${e}小时`}};return(t,r)=>e.e({a:e.t(i.value),b:e.t(o.value.orderNo||"-"),c:e.t(o.value.deviceNo||"-"),d:"wx_score_pay"===o.value.payWay},"wx_score_pay"===o.value.payWay?{e:a._imports_0$2}:{},{f:e.t(o.value.startTime||"-"),g:o.value.endTime},o.value.endTime?{h:e.t(o.value.endTime)}:{},{i:o.value.phone},o.value.phone?{j:e.t(o.value.phone)}:{},{k:o.value.depositAmount},o.value.depositAmount?{l:e.t(o.value.depositAmount)}:{},{m:o.value.packageTime&&o.value.packagePrice},o.value.packageTime&&o.value.packagePrice?{n:e.t(o.value.packagePrice),o:e.t(d(o.value.packageTime))}:{},{p:e.t(o.value.payAmount||0)})}},n=e._export_sfc(r,[["__scopeId","data-v-f9b4f795"]]);wx.createPage(n);
"use strict";const e=require("../../common/vendor.js"),a=require("../../common/assets.js"),t=require("../../config/user.js"),r={__name:"details",setup(r){const n=e.ref(""),o=e.ref({}),i=e.computed((()=>{switch(o.value.orderStatus){case"waiting_for_payment":return"待支付";case"in_used":default:return"使用中";case"used_done":return"已完成";case"order_cancelled":return"已取消"}}));e.onLoad((async a=>{a&&a.orderId?(n.value=a.orderId,await u()):(e.index.showToast({title:"订单信息不存在",icon:"none"}),setTimeout((()=>{e.index.navigateBack()}),1500))}));const u=async()=>{try{e.index.showLoading({title:"加载中"});const a=await t.queryById(n.value);if(200!==a.code||!a.data)throw new Error("获取订单详情失败");o.value=a.data,o.value.createTime&&(o.value.createTime=s(new Date(o.value.createTime))),o.value.startTime&&(o.value.startTime=s(new Date(o.value.startTime))),o.value.endTime&&(o.value.endTime=s(new Date(o.value.endTime))),e.index.hideLoading()}catch(a){e.index.hideLoading(),e.index.showToast({title:a.message||"获取订单详情失败",icon:"none"})}},s=e=>`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")} ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}`,d=e=>{if(!e)return"";const a=parseInt(e);if(a<60)return`${a}分钟`;{const e=Math.floor(a/60),t=a%60;return t>0?`${e}小时${t}分钟`:`${e}小时`}};return(t,r)=>e.e({a:e.t(i.value),b:e.t(o.value.orderNo||"-"),c:e.t(o.value.deviceNo||"-"),d:"wx_score_pay"===o.value.payWay},"wx_score_pay"===o.value.payWay?{e:a._imports_0$3}:{},{f:e.t(o.value.startTime||"-"),g:o.value.endTime},o.value.endTime?{h:e.t(o.value.endTime)}:{},{i:o.value.phone},o.value.phone?{j:e.t(o.value.phone)}:{},{k:o.value.depositAmount},o.value.depositAmount?{l:e.t(o.value.depositAmount)}:{},{m:o.value.packageTime&&o.value.packagePrice},o.value.packageTime&&o.value.packagePrice?{n:e.t(o.value.packagePrice),o:e.t(d(o.value.packageTime))}:{},{p:e.t(o.value.payAmount||0)})}},n=e._export_sfc(r,[["__scopeId","data-v-f9b4f795"]]);wx.createPage(n);
+1 -1
View File
@@ -1 +1 @@
"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),a=require("../../config/user.js"),s=require("../../config/url.js"),r={__name:"index",setup(r){const o=e.ref(0),n=e.ref([]),d=e.reactive({0:{text:"待支付",class:"status-waiting"},1:{text:"使用中",class:"status-using"},2:{text:"已完成",class:"status-finished"},3:{text:"已取消",class:"status-cancelled"},waiting_for_payment:{text:"待支付",class:"status-waiting"},in_used:{text:"使用中",class:"status-using"},used_done:{text:"已完成",class:"status-finished"},order_cancelled:{text:"已取消",class:"status-cancelled"}}),i=e.reactive([{text:"全部",status:[]},{text:"待付款",status:["waiting_for_payment"]},{text:"使用中",status:["in_used"]},{text:"已完成",status:["used_done"]},{text:"已取消",status:["order_cancelled"]}]);e.onLoad((async e=>{if(e&&e.orderId)try{const t=await a.queryById(e.orderId);if(200===t.code&&t.data){const e=t.data,a=e.startTime||e.createTime||"",s={orderNo:e.orderId,status:e.orderStatus,deviceId:e.deviceNo,payWay:e.payWay,startTime:a,endTime:e.endTime||"",amount:e.payAmount||e.actualDeviceAmount||"0.00"};n.value=[s,...n.value];const r=i.findIndex((t=>t.status.includes(e.orderStatus)));-1!==r&&c(r)}}catch(t){console.error("获取订单详情失败:",t)}await u()}));const c=async e=>{o.value=e;const t=i[e].status[0];await u(t)},u=async t=>{try{null!=t&&(t={orderStatus:t});const e=await a.getOrderList(t);200===e.code&&e.data&&e.data.records&&(n.value=e.data.records.map((e=>{const t=e.startTime||e.createTime||"";return{orderNo:e.orderNo,orderId:e.orderId,orderStatus:e.orderStatus,deviceId:e.deviceNo,payWay:e.payWay,startTime:t,endTime:e.endTime||"",amount:e.payAmount||e.actualDeviceAmount||"0.00"}})))}catch(s){console.error("获取订单列表失败:",s),e.index.showToast({title:"获取订单列表失败",icon:"none"})}};return(r,l)=>e.e({a:e.f(i,((t,a,s)=>({a:e.t(t.text),b:a,c:o.value===a?1:"",d:e.o((e=>c(a)),a)}))),b:0===n.value.length},(n.value.length,{}),{c:e.f(n.value,((r,n,c)=>{var l,m;return e.e({a:e.t(r.orderNo),b:e.t(null==(l=d[r.orderStatus])?void 0:l.text),c:e.n(null==(m=d[r.orderStatus])?void 0:m.class),d:e.t(r.deviceId),e:"wx_score_pay"==r.payWay},"wx_score_pay"==r.payWay?{f:t._imports_0$2}:{},{g:e.t(r.startTime),h:e.t(r.endTime||"-"),i:e.t(r.amount),j:"waiting_for_payment"===r.status||"waiting_for_payment"===r.orderStatus},"waiting_for_payment"===r.status||"waiting_for_payment"===r.orderStatus?{k:e.o((t=>(async t=>{try{e.index.showLoading({title:"处理中"});const r=await e.index.request({url:`${s.URL||"http://127.0.0.1:8080"}/app/wx-payment/create/${t.orderNo}`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(200!==r.statusCode||200!==r.data.code)throw new Error(r.data.msg||"创建支付订单失败");{const s=r.data.data;await e.index.requestPayment({...s,success:async()=>{e.index.showToast({title:"支付成功",icon:"success"});try{await a.updateUserBalance(t.orderId||t.orderNo)}catch(s){console.warn("更新用户余额失败:",s)}await u(i[o.value].status)},fail:e=>{throw console.error("支付失败:",e),new Error("支付失败,请重试")}})}e.index.hideLoading()}catch(r){e.index.hideLoading(),e.index.showToast({title:r.message||"支付失败",icon:"none"})}})(r)),n)}:{},{l:"waiting_for_payment"===r.status||"waiting_for_payment"===r.orderStatus},"waiting_for_payment"===r.status||"waiting_for_payment"===r.orderStatus?{m:e.o((t=>(async t=>{try{e.index.showModal({title:"确认取消",content:"确定要取消此订单吗?",success:async s=>{if(s.confirm){e.index.showLoading({title:"处理中"});const s=await a.cancelOrder({orderId:t.orderNo});if(!s)throw new Error(s.msg||"取消订单失败");e.index.hideLoading(),e.index.showToast({title:"订单已取消",icon:"success"}),await u()}}})}catch(s){e.index.hideLoading(),e.index.showToast({title:s.message||"取消订单失败",icon:"none"})}})(r)),n)}:{},{n:"in_used"==r.status||"in_used"==r.orderStatus},"in_used"==r.status||"in_used"==r.orderStatus?{o:e.o((t=>{return a=r.deviceId,s=r.orderId,console.log(s),void e.index.navigateTo({url:`/pages/return/index?deviceId=${a}&orderId=${s}`});var a,s}),n)}:{},{p:e.o((t=>(t=>{e.index.navigateTo({url:`/pages/order/details?orderId=${t.orderId||t.orderNo}`})})(r)),n),q:n})}))})}},o=e._export_sfc(r,[["__scopeId","data-v-57aa6fd9"]]);wx.createPage(o);
"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),a=require("../../config/user.js"),s=require("../../config/url.js"),r={__name:"index",setup(r){const o=e.ref(0),n=e.ref([]),d=e.reactive({0:{text:"待支付",class:"status-waiting"},1:{text:"使用中",class:"status-using"},2:{text:"已完成",class:"status-finished"},3:{text:"已取消",class:"status-cancelled"},waiting_for_payment:{text:"待支付",class:"status-waiting"},in_used:{text:"使用中",class:"status-using"},used_done:{text:"已完成",class:"status-finished"},order_cancelled:{text:"已取消",class:"status-cancelled"}}),i=e.reactive([{text:"全部",status:[]},{text:"待付款",status:["waiting_for_payment"]},{text:"使用中",status:["in_used"]},{text:"已完成",status:["used_done"]},{text:"已取消",status:["order_cancelled"]}]);e.onLoad((async e=>{if(e&&e.orderId)try{const t=await a.queryById(e.orderId);if(200===t.code&&t.data){const e=t.data,a=e.startTime||e.createTime||"",s={orderNo:e.orderId,status:e.orderStatus,deviceId:e.deviceNo,payWay:e.payWay,startTime:a,endTime:e.endTime||"",amount:e.payAmount||e.actualDeviceAmount||"0.00"};n.value=[s,...n.value];const r=i.findIndex((t=>t.status.includes(e.orderStatus)));-1!==r&&c(r)}}catch(t){console.error("获取订单详情失败:",t)}await u()}));const c=async e=>{o.value=e;const t=i[e].status[0];await u(t)},u=async t=>{try{null!=t&&(t={orderStatus:t});const e=await a.getOrderList(t);200===e.code&&e.data&&e.data.records&&(n.value=e.data.records.map((e=>{const t=e.startTime||e.createTime||"";return{orderNo:e.orderNo,orderId:e.orderId,orderStatus:e.orderStatus,deviceId:e.deviceNo,payWay:e.payWay,startTime:t,endTime:e.endTime||"",amount:e.payAmount||e.actualDeviceAmount||"0.00"}})))}catch(s){console.error("获取订单列表失败:",s),e.index.showToast({title:"获取订单列表失败",icon:"none"})}};return(r,l)=>e.e({a:e.f(i,((t,a,s)=>({a:e.t(t.text),b:a,c:o.value===a?1:"",d:e.o((e=>c(a)),a)}))),b:0===n.value.length},(n.value.length,{}),{c:e.f(n.value,((r,n,c)=>{var l,m;return e.e({a:e.t(r.orderNo),b:e.t(null==(l=d[r.orderStatus])?void 0:l.text),c:e.n(null==(m=d[r.orderStatus])?void 0:m.class),d:e.t(r.deviceId),e:"wx_score_pay"==r.payWay},"wx_score_pay"==r.payWay?{f:t._imports_0$3}:{},{g:e.t(r.startTime),h:e.t(r.endTime||"-"),i:e.t(r.amount),j:"waiting_for_payment"===r.status||"waiting_for_payment"===r.orderStatus},"waiting_for_payment"===r.status||"waiting_for_payment"===r.orderStatus?{k:e.o((t=>(async t=>{try{e.index.showLoading({title:"处理中"});const r=await e.index.request({url:`${s.URL||"http://127.0.0.1:8080"}/app/wx-payment/create/${t.orderNo}`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(200!==r.statusCode||200!==r.data.code)throw new Error(r.data.msg||"创建支付订单失败");{const s=r.data.data;await e.index.requestPayment({...s,success:async()=>{e.index.showToast({title:"支付成功",icon:"success"});try{await a.updateUserBalance(t.orderId||t.orderNo)}catch(s){console.warn("更新用户余额失败:",s)}await u(i[o.value].status)},fail:e=>{throw console.error("支付失败:",e),new Error("支付失败,请重试")}})}e.index.hideLoading()}catch(r){e.index.hideLoading(),e.index.showToast({title:r.message||"支付失败",icon:"none"})}})(r)),n)}:{},{l:"waiting_for_payment"===r.status||"waiting_for_payment"===r.orderStatus},"waiting_for_payment"===r.status||"waiting_for_payment"===r.orderStatus?{m:e.o((t=>(async t=>{try{e.index.showModal({title:"确认取消",content:"确定要取消此订单吗?",success:async s=>{if(s.confirm){e.index.showLoading({title:"处理中"});const s=await a.cancelOrder({orderId:t.orderNo});if(!s)throw new Error(s.msg||"取消订单失败");e.index.hideLoading(),e.index.showToast({title:"订单已取消",icon:"success"}),await u()}}})}catch(s){e.index.hideLoading(),e.index.showToast({title:s.message||"取消订单失败",icon:"none"})}})(r)),n)}:{},{n:"in_used"==r.status||"in_used"==r.orderStatus},"in_used"==r.status||"in_used"==r.orderStatus?{o:e.o((t=>{return a=r.deviceId,s=r.orderId,console.log(s),void e.index.navigateTo({url:`/pages/return/index?deviceId=${a}&orderId=${s}`});var a,s}),n)}:{},{p:e.o((t=>(t=>{e.index.navigateTo({url:`/pages/order/details?orderId=${t.orderId||t.orderNo}`})})(r)),n),q:n})}))})}},o=e._export_sfc(r,[["__scopeId","data-v-57aa6fd9"]]);wx.createPage(o);
File diff suppressed because one or more lines are too long