fix:替换appID为7a9,修复支付分调用失败订单无法正确取消的问题

This commit is contained in:
2025-07-08 09:03:06 +08:00
parent 309963755d
commit 893a2a55c6
51 changed files with 157 additions and 148 deletions
+1 -1
View File
@@ -1 +1 @@
"use strict";const e=require("../../common/vendor.js"),a=require("../../common/assets.js"),t=require("../../config/user.js"),o=require("../../util/index.js"),i={__name:"detail",setup(i){const r=e.ref({}),n=e.ref(""),s=e.ref("一号教学楼大厅"),d=e.ref(95),c=e.ref(!1),l=e.reactive({text:"可使用",class:"available"}),u=e.ref(!0),v=e.ref("");e.onLoad((e=>{n.value=e.deviceNo,g(),console.log(e.deviceNo),p()}));const p=async()=>{const e=await t.getDeviceInfo(n.value);200==e.code&&(r.value=e.data.device||{},r.value.deviceLocation?s.value=r.value.deviceLocation:e.data.position&&e.data.position.name&&(s.value=e.data.position.name),r.value.status&&("online"===r.value.status?(l.text="可使用",l.class="available"):"offline"===r.value.status&&(l.text="离线",l.class="offline")))},g=async()=>{try{const a=await e.index.$api.checkActiveOrder();if(a.hasOrder){const t=a.order;"waiting_for_payment"===t.status?e.index.redirectTo({url:`/pages/order/payment?orderId=${t.orderId}&deviceId=${n.value}`}):"in_used"===t.status&&e.index.redirectTo({url:`/pages/device/return?deviceId=${n.value}`})}}catch(a){e.index.showToast({title:"订单状态查询失败",icon:"none"})}},m=a=>{u.value?w(a):e.index.showModal({title:"提示",content:"请先登录后再操作",confirmText:"去登录",success:a=>{a.confirm&&e.index.navigateTo({url:"/pages/login/index"})}})},x=e.reactive({time:"1小时",price:"5.00"}),f=e.ref("99.00"),w=async a=>{try{e.index.showLoading({title:"处理中"});const d=await t.rentPowerBank(n.value,v.value);if(200!==d.code)throw new Error(d.msg||"设备租借失败");const c=d.data;if("wx-pay"==a){e.index.hideLoading();const a=await t.getOrderByOrderNo(c.orderNo);console.log(a);try{let e=0;e=x.time.includes("小时")?60*parseInt(x.time):x.time.includes("分钟")?parseInt(x.time):60*parseInt(x.time);const a=await t.updateOrderPackage({orderId:c.orderId,packageTime:e,packagePrice:parseFloat(x.price)});200!==a.code?console.warn("更新订单套餐信息失败:",a.msg):console.log("订单套餐信息已提前更新")}catch(i){console.error("更新订单套餐信息时出错:",i)}const o=parseFloat(r.value.depositAmount),n=(o+parseFloat(x.price)).toFixed(2);e.index.hideLoading(),e.index.redirectTo({url:`/pages/order/payment?orderId=${c.orderId}&packageTimeHours=${x.time.replace("小时","")}&packagePrice=${x.price}&totalAmount=${n}&depositAmount=${f.value}${r.value&&r.value.feeConfig?"&feeConfig="+encodeURIComponent(r.value.feeConfig):""}`})}else{{e.index.hideLoading();const a=await t.getOrderByOrderNoScore(c.orderNo);if(e.index.hideLoading(),a&&200===a.code)try{if("0"==(await o.initiateWeChatScorePayment(a)).errCode){await t.getOrderByOrderNoScorePayStatus(c.orderNo);e.index.showToast({title:"设备租借成功",icon:"success"}),setTimeout((()=>{e.index.redirectTo({url:"/pages/order/index"})}),1500)}}catch(s){e.index.showToast({title:"支付分调用失败,请重试",icon:"none"})}else e.index.showToast({title:(null==a?void 0:a.msg)||"获取支付参数失败",icon:"none"})}}}catch(d){e.index.hideLoading(),e.index.showToast({title:d.message||"租借失败,请重试",icon:"none"})}};return(t,o)=>({a:e.t(l.text),b:e.n(l.class),c:e.t(n.value),d:a._imports_0$3,e:e.t(s.value),f:a._imports_1$2,g:d.value<20?1:"",h:e.t(d.value),i:a._imports_0$2,j:e.t(c.value?"归还设备":"免押金租借"),k:c.value?1:"",l:e.o((e=>m("wx-score-pay"))),m:e.o((e=>m("wx-pay")))})}},r=e._export_sfc(i,[["__scopeId","data-v-22a861f0"]]);wx.createPage(r);
"use strict";const e=require("../../common/vendor.js"),a=require("../../common/assets.js"),t=require("../../config/user.js"),o=require("../../util/index.js"),i={__name:"detail",setup(i){const r=e.ref({}),n=e.ref(""),d=e.ref("一号教学楼大厅"),s=e.ref(95),c=e.ref(!1),l=e.reactive({text:"可使用",class:"available"}),u=e.ref(!0),v=e.ref("");e.onLoad((e=>{n.value=e.deviceNo,g(),console.log(e.deviceNo),p()}));const p=async()=>{const e=await t.getDeviceInfo(n.value);200==e.code&&(r.value=e.data.device||{},r.value.deviceLocation?d.value=r.value.deviceLocation:e.data.position&&e.data.position.name&&(d.value=e.data.position.name),r.value.status&&("online"===r.value.status?(l.text="可使用",l.class="available"):"offline"===r.value.status&&(l.text="离线",l.class="offline")))},g=async()=>{try{const a=await e.index.$api.checkActiveOrder();if(a.hasOrder){const t=a.order;"waiting_for_payment"===t.status?e.index.redirectTo({url:`/pages/order/payment?orderId=${t.orderId}&deviceId=${n.value}`}):"in_used"===t.status&&e.index.redirectTo({url:`/pages/device/return?deviceId=${n.value}`})}}catch(a){e.index.showToast({title:"订单状态查询失败",icon:"none"})}},m=a=>{u.value?w(a):e.index.showModal({title:"提示",content:"请先登录后再操作",confirmText:"去登录",success:a=>{a.confirm&&e.index.navigateTo({url:"/pages/login/index"})}})},x=e.reactive({time:"1小时",price:"5.00"}),f=e.ref("99.00"),w=async a=>{try{e.index.showLoading({title:"处理中"});const s=await t.rentPowerBank(n.value,v.value);if(200!==s.code)throw new Error(s.msg||"设备租借失败");const c=s.data;if("wx-pay"==a){e.index.hideLoading();const a=await t.getOrderByOrderNo(c.orderNo);console.log(a);try{let e=0;e=x.time.includes("小时")?60*parseInt(x.time):x.time.includes("分钟")?parseInt(x.time):60*parseInt(x.time);const a=await t.updateOrderPackage({orderId:c.orderId,packageTime:e,packagePrice:parseFloat(x.price)});200!==a.code?console.warn("更新订单套餐信息失败:",a.msg):console.log("订单套餐信息已提前更新")}catch(i){console.error("更新订单套餐信息时出错:",i)}const o=parseFloat(r.value.depositAmount),n=(o+parseFloat(x.price)).toFixed(2);e.index.hideLoading(),e.index.redirectTo({url:`/pages/order/payment?orderId=${c.orderId}&packageTimeHours=${x.time.replace("小时","")}&packagePrice=${x.price}&totalAmount=${n}&depositAmount=${f.value}${r.value&&r.value.feeConfig?"&feeConfig="+encodeURIComponent(r.value.feeConfig):""}`})}else if("wx-score-pay"==a){e.index.hideLoading();const a=await t.getOrderByOrderNoScore(c.orderNo);if(e.index.hideLoading(),a&&200===a.code)try{if("0"==(await o.initiateWeChatScorePayment(a)).errCode){const a=await t.getOrderByOrderNoScorePayStatus(c.orderNo);console.log(a.data.orderStatus),"in_used"==a.data.orderStatus?(e.index.showToast({title:"设备租借成功",icon:"success"}),setTimeout((()=>{e.index.redirectTo({url:"/pages/order/index"})}),1500)):"waiting_for_payment"==a.data.orderStatus&&(e.index.showToast({title:"设备租借失败,订单已取消",icon:"error"}),await t.cancelOrder({orderId:c.orderNo}),setTimeout((()=>{e.index.switchTab({url:"/pages/index/index"})}),1500))}}catch(d){e.index.showToast({title:"支付分调用失败,请重试",icon:"none"})}else e.index.showToast({title:(null==a?void 0:a.msg)||"获取支付参数失败",icon:"none"})}}catch(s){e.index.hideLoading(),e.index.showToast({title:s.message||"租借失败,请重试",icon:"none"})}};return(t,o)=>({a:e.t(l.text),b:e.n(l.class),c:e.t(n.value),d:a._imports_0$3,e:e.t(d.value),f:a._imports_1$2,g:s.value<20?1:"",h:e.t(s.value),i:a._imports_0$2,j:e.t(c.value?"归还设备":"免押金租借"),k:c.value?1:"",l:e.o((e=>m("wx-score-pay"))),m:e.o((e=>m("wx-pay")))})}},r=e._export_sfc(i,[["__scopeId","data-v-2faa63bb"]]);wx.createPage(r);
+1 -1
View File
@@ -1 +1 @@
<view class="container data-v-22a861f0"><view class="device-header data-v-22a861f0"><view class="{{['device-status-card', 'data-v-22a861f0', b]}}"><view class="status-indicator data-v-22a861f0"></view><text class="status-text data-v-22a861f0">{{a}}</text></view><view class="device-title data-v-22a861f0"><text class="name data-v-22a861f0">共享风扇</text><view class="device-meta data-v-22a861f0"><text class="id-label data-v-22a861f0">设备号:</text><text class="id-value data-v-22a861f0">{{c}}</text></view></view></view><view class="card device-info-card data-v-22a861f0"><view class="card-row data-v-22a861f0"><view class="card-item data-v-22a861f0"><view class="item-icon location-icon data-v-22a861f0"><image class="data-v-22a861f0" src="{{d}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-22a861f0"><text class="item-label data-v-22a861f0">当前位置</text><text class="item-value data-v-22a861f0">{{e}}</text></view></view><view class="card-item data-v-22a861f0"><view class="{{['item-icon', 'battery-icon', 'data-v-22a861f0', g && 'battery-low']}}"><image class="data-v-22a861f0" src="{{f}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-22a861f0"><text class="item-label data-v-22a861f0">电池电量</text><text class="item-value data-v-22a861f0">{{h}}%</text></view></view></view></view><view class="card pricing-card data-v-22a861f0"><view class="card-header data-v-22a861f0"><text class="card-title data-v-22a861f0">计费规则</text></view><view class="pricing-banner data-v-22a861f0"><view class="pricing-main data-v-22a861f0"><text class="price data-v-22a861f0">¥5.00</text><text class="unit data-v-22a861f0">/小时</text></view><text class="cap-price data-v-22a861f0">封顶 ¥99</text></view><view class="pricing-rules data-v-22a861f0"><view class="rule-item data-v-22a861f0"><view class="rule-dot data-v-22a861f0"></view><text class="rule-text data-v-22a861f0">前15分钟内归还<text class="highlight data-v-22a861f0">免费</text></text></view><view class="rule-item data-v-22a861f0"><view class="rule-dot data-v-22a861f0"></view><text class="rule-text data-v-22a861f0">不足60分钟按60分钟计费</text></view><view class="rule-item data-v-22a861f0"><view class="rule-dot data-v-22a861f0"></view><text class="rule-text data-v-22a861f0">持续计费至99元视为买断</text></view></view></view><view class="card notice-card data-v-22a861f0"><view class="card-header data-v-22a861f0"><text class="card-title data-v-22a861f0">使用须知</text></view><view class="notice-items data-v-22a861f0"><view class="notice-item data-v-22a861f0"><view class="notice-dot data-v-22a861f0"></view><text class="notice-text data-v-22a861f0">请在使用前检查设备是否完好</text></view><view class="notice-item data-v-22a861f0"><view class="notice-dot data-v-22a861f0"></view><text class="notice-text data-v-22a861f0">请在指定区域内使用设备</text></view><view class="notice-item data-v-22a861f0"><view class="notice-dot data-v-22a861f0"></view><text class="notice-text data-v-22a861f0">归还时请确保设备完好,避免损坏</text></view></view></view><view class="footer data-v-22a861f0"><view class="wechat-credit data-v-22a861f0"><image src="{{i}}" mode="aspectFit" class="wx-icon data-v-22a861f0"></image><view class="credit-text data-v-22a861f0"><text class="data-v-22a861f0">微信支付分</text><text class="credit-divider data-v-22a861f0">|</text><text class="credit-score data-v-22a861f0">支付分200分及以上优享</text></view></view><button class="{{['rent-button', 'data-v-22a861f0', k && 'return-button']}}" bindtap="{{l}}"><text class="data-v-22a861f0">{{j}}</text></button><view class=" data-v-22a861f0" style="align-items:center;align-content:center;text-align:center;line-height:50rpx" bindtap="{{m}}"> 无法免押点这里></view></view></view>
<view class="container data-v-2faa63bb"><view class="device-header data-v-2faa63bb"><view class="{{['device-status-card', 'data-v-2faa63bb', b]}}"><view class="status-indicator data-v-2faa63bb"></view><text class="status-text data-v-2faa63bb">{{a}}</text></view><view class="device-title data-v-2faa63bb"><text class="name data-v-2faa63bb">共享风扇</text><view class="device-meta data-v-2faa63bb"><text class="id-label data-v-2faa63bb">设备号:</text><text class="id-value data-v-2faa63bb">{{c}}</text></view></view></view><view class="card device-info-card data-v-2faa63bb"><view class="card-row data-v-2faa63bb"><view class="card-item data-v-2faa63bb"><view class="item-icon location-icon data-v-2faa63bb"><image class="data-v-2faa63bb" src="{{d}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-2faa63bb"><text class="item-label data-v-2faa63bb">当前位置</text><text class="item-value data-v-2faa63bb">{{e}}</text></view></view><view class="card-item data-v-2faa63bb"><view class="{{['item-icon', 'battery-icon', 'data-v-2faa63bb', g && 'battery-low']}}"><image class="data-v-2faa63bb" src="{{f}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-2faa63bb"><text class="item-label data-v-2faa63bb">电池电量</text><text class="item-value data-v-2faa63bb">{{h}}%</text></view></view></view></view><view class="card pricing-card data-v-2faa63bb"><view class="card-header data-v-2faa63bb"><text class="card-title data-v-2faa63bb">计费规则</text></view><view class="pricing-banner data-v-2faa63bb"><view class="pricing-main data-v-2faa63bb"><text class="price data-v-2faa63bb">¥5.00</text><text class="unit data-v-2faa63bb">/小时</text></view><text class="cap-price data-v-2faa63bb">封顶 ¥99</text></view><view class="pricing-rules data-v-2faa63bb"><view class="rule-item data-v-2faa63bb"><view class="rule-dot data-v-2faa63bb"></view><text class="rule-text data-v-2faa63bb">前15分钟内归还<text class="highlight data-v-2faa63bb">免费</text></text></view><view class="rule-item data-v-2faa63bb"><view class="rule-dot data-v-2faa63bb"></view><text class="rule-text data-v-2faa63bb">不足60分钟按60分钟计费</text></view><view class="rule-item data-v-2faa63bb"><view class="rule-dot data-v-2faa63bb"></view><text class="rule-text data-v-2faa63bb">持续计费至99元视为买断</text></view></view></view><view class="card notice-card data-v-2faa63bb"><view class="card-header data-v-2faa63bb"><text class="card-title data-v-2faa63bb">使用须知</text></view><view class="notice-items data-v-2faa63bb"><view class="notice-item data-v-2faa63bb"><view class="notice-dot data-v-2faa63bb"></view><text class="notice-text data-v-2faa63bb">请在使用前检查设备是否完好</text></view><view class="notice-item data-v-2faa63bb"><view class="notice-dot data-v-2faa63bb"></view><text class="notice-text data-v-2faa63bb">请在指定区域内使用设备</text></view><view class="notice-item data-v-2faa63bb"><view class="notice-dot data-v-2faa63bb"></view><text class="notice-text data-v-2faa63bb">归还时请确保设备完好,避免损坏</text></view></view></view><view class="footer data-v-2faa63bb"><view class="wechat-credit data-v-2faa63bb"><image src="{{i}}" mode="aspectFit" class="wx-icon data-v-2faa63bb"></image><view class="credit-text data-v-2faa63bb"><text class="data-v-2faa63bb">微信支付分</text><text class="credit-divider data-v-2faa63bb">|</text><text class="credit-score data-v-2faa63bb">支付分200分及以上优享</text></view></view><button class="{{['rent-button', 'data-v-2faa63bb', k && 'return-button']}}" bindtap="{{l}}"><text class="data-v-2faa63bb">{{j}}</text></button><view class=" data-v-2faa63bb" style="align-items:center;align-content:center;text-align:center;line-height:50rpx" bindtap="{{m}}"> 无法免押点这里></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"),o=require("../../util/index.js"),n=require("../../config/url.js"),t=require("../../config/user.js"),i=require("../../common/assets.js"),a={methods:{async handleScan(){try{const d=await new Promise(((o,n)=>{e.index.scanCode({success:o,fail:n})}));console.log(d.path);let r=o.getQueryString(d.path,"deviceNo");if(console.log("扫码路径:",d.path),console.log("解析到的设备号:",r),!r)return void e.index.showToast({title:"无效的设备二维码",icon:"none"});e.index.getStorageSync("token")||await o.wxLogin();const c=await e.index.request({url:`${n.URL||"http://127.0.0.1:8080"}/app/order/inUse`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(console.log("使用中订单检查结果:",JSON.stringify(c)),200==c.statusCode&&200==c.data.code&&c.data.data){const o=c.data.data;return console.log("检测到使用中订单,准备跳转:",o),e.index.reLaunch({url:`/pages/return/index?orderId=${o.orderId}&deviceId=${r||o.deviceNo}`}),void console.log("已发起页面跳转")}const s=await e.index.request({url:`${n.URL||"http://127.0.0.1:8080"}/app/order/unpaid`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(console.log("待支付订单检查结果:",JSON.stringify(s)),200==s.statusCode&&200==s.data.code&&s.data.data){const o=s.data.data;console.log("检测到待支付订单,准备跳转:",o),e.index.navigateTo({url:`/pages/order/payment?orderId=${o.orderId}`})}else{console.log("无待支付订单,获取设备信息, deviceNo:",r);try{const o=await t.getDeviceInfo(r);if(200==o.code&&o.data&&o.data.device){const n=o.data.device;if(n.feeConfig){console.log("获取到设备feeConfig信息:",n.feeConfig);try{JSON.parse(n.feeConfig);e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}&feeConfig=${encodeURIComponent(n.feeConfig)}`})}catch(i){console.error("解析feeConfig失败:",i),e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}}else e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}else console.error("获取设备信息失败:",o.msg||"未知错误"),e.index.showToast({title:"获取设备信息失败",icon:"none"}),e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}catch(a){console.error("获取设备信息异常:",a),e.index.showToast({title:"获取设备信息失败",icon:"none"}),e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}}}catch(a){console.error("扫码处理失败:",a),e.index.showToast({title:"扫码失败",icon:"none"})}}}};const d=e._export_sfc(a,[["render",function(o,n,t,a,d,r){return{a:i._imports_0,b:i._imports_1,c:e.o(((...e)=>r.handleScan&&r.handleScan(...e)))}}],["__scopeId","data-v-deeaf54a"]]);wx.createPage(d);
"use strict";const e=require("../../common/vendor.js"),o=require("../../util/index.js"),n=require("../../config/url.js"),t=require("../../config/user.js"),i=require("../../common/assets.js"),a={methods:{async handleScan(){try{const d=await new Promise(((o,n)=>{e.index.scanCode({success:o,fail:n})}));console.log(d.path);let r=o.getQueryString(d.path,"deviceNo");if(console.log("扫码路径:",d.path),console.log("解析到的设备号:",r),!r)return void e.index.showToast({title:"无效的设备二维码",icon:"none"});e.index.getStorageSync("token")||await o.wxLogin();const c=await e.index.request({url:`${n.URL||"http://127.0.0.1:8080"}/app/order/inUse`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(console.log("使用中订单检查结果:",JSON.stringify(c)),200==c.statusCode&&200==c.data.code&&c.data.data){const o=c.data.data;return console.log("检测到使用中订单,准备跳转:",o),e.index.reLaunch({url:`/pages/return/index?orderId=${o.orderId}&deviceId=${r||o.deviceNo}`}),void console.log("已发起页面跳转")}const s=await e.index.request({url:`${n.URL||"http://127.0.0.1:8080"}/app/order/unpaid`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(console.log("待支付订单检查结果:",JSON.stringify(s)),200==s.statusCode&&200==s.data.code&&s.data.data){const o=s.data.data;console.log("检测到待支付订单,准备跳转:",o),e.index.navigateTo({url:`/pages/order/payment?orderId=${o.orderId}`})}else{console.log("无待支付订单,获取设备信息, deviceNo:",r);try{const o=await t.getDeviceInfo(r);if(200==o.code&&o.data&&o.data.device){const n=o.data.device;if(n.feeConfig){console.log("获取到设备feeConfig信息:",n.feeConfig);try{JSON.parse(n.feeConfig);e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}&feeConfig=${encodeURIComponent(n.feeConfig)}`})}catch(i){console.error("解析feeConfig失败:",i),e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}}else e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}else console.error("获取设备信息失败:",o.msg||"未知错误"),e.index.showToast({title:"获取设备信息失败",icon:"none"}),e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}catch(a){console.error("获取设备信息异常:",a),e.index.showToast({title:"获取设备信息失败",icon:"none"}),e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}}}catch(a){console.error("扫码处理失败:",a),e.index.showToast({title:"扫码失败",icon:"none"})}}}};const d=e._export_sfc(a,[["render",function(o,n,t,a,d,r){return{a:i._imports_0,b:i._imports_1,c:e.o(((...e)=>r.handleScan&&r.handleScan(...e)))}}],["__scopeId","data-v-764894e1"]]);wx.createPage(d);
+1 -1
View File
@@ -1 +1 @@
<view class="container data-v-deeaf54a"><view class="header data-v-deeaf54a"><view class="header-bg data-v-deeaf54a"><view class="circle-decoration circle-1 data-v-deeaf54a"></view><view class="circle-decoration circle-2 data-v-deeaf54a"></view><view class="wave-decoration data-v-deeaf54a"></view></view><view class="header-content data-v-deeaf54a"><view class="brand-area data-v-deeaf54a"><image class="brand-logo data-v-deeaf54a" src="{{a}}" mode="aspectFit"></image><view class="brand-text data-v-deeaf54a"><text class="title data-v-deeaf54a">共享风扇</text><text class="subtitle data-v-deeaf54a">随时随地,享受清凉</text></view></view><view class="header-info data-v-deeaf54a"><view class="service-tag data-v-deeaf54a"><text class="data-v-deeaf54a">便捷租赁</text><text class="dot data-v-deeaf54a">·</text><text class="data-v-deeaf54a">品质保障</text></view></view></view></view><view class="scan-section data-v-deeaf54a"><view class="scan-card data-v-deeaf54a"><view class="scan-btn data-v-deeaf54a" bindtap="{{c}}"><image class="scan-icon data-v-deeaf54a" src="{{b}}" mode="aspectFit"/><text class="scan-text data-v-deeaf54a">扫码使用</text></view><view class="scan-desc data-v-deeaf54a"><text class="data-v-deeaf54a">扫描设备二维码即可使用或归还</text></view></view></view><view class="price-card data-v-deeaf54a"><view class="card-header data-v-deeaf54a"><text class="card-title data-v-deeaf54a">收费规则</text></view><view class="price-rules data-v-deeaf54a"><view class="price-item data-v-deeaf54a"><view class="price-tag data-v-deeaf54a">5.0<text class="unit data-v-deeaf54a">元/小时</text></view></view><view class="divider data-v-deeaf54a"></view><view class="rule-list data-v-deeaf54a"><view class="rule-item data-v-deeaf54a"><view class="rule-dot data-v-deeaf54a"></view><text class="data-v-deeaf54a">15分钟内归还免费</text></view><view class="rule-item data-v-deeaf54a"><view class="rule-dot data-v-deeaf54a"></view><text class="data-v-deeaf54a">不足1小时按1小时计费</text></view><view class="rule-item data-v-deeaf54a"><view class="rule-dot data-v-deeaf54a"></view><text class="data-v-deeaf54a">封顶99元,计费达99元视为买断</text></view></view></view></view><view class="usage-steps data-v-deeaf54a"><view class="steps-header data-v-deeaf54a"><text class="steps-title data-v-deeaf54a">使用流程</text></view><view class="steps-container data-v-deeaf54a"><view class="step-item data-v-deeaf54a"><view class="step-icon data-v-deeaf54a"><text class="step-number data-v-deeaf54a">1</text></view><text class="step-text data-v-deeaf54a">扫码开锁</text></view><view class="step-arrow data-v-deeaf54a"></view><view class="step-item data-v-deeaf54a"><view class="step-icon data-v-deeaf54a"><text class="step-number data-v-deeaf54a">2</text></view><text class="step-text data-v-deeaf54a">使用风扇</text></view><view class="step-arrow data-v-deeaf54a"></view><view class="step-item data-v-deeaf54a"><view class="step-icon data-v-deeaf54a"><text class="step-number data-v-deeaf54a">3</text></view><text class="step-text data-v-deeaf54a">归还结算</text></view></view></view></view>
<view class="container data-v-764894e1"><view class="header data-v-764894e1"><view class="header-bg data-v-764894e1"><view class="circle-decoration circle-1 data-v-764894e1"></view><view class="circle-decoration circle-2 data-v-764894e1"></view><view class="wave-decoration data-v-764894e1"></view></view><view class="header-content data-v-764894e1"><view class="brand-area data-v-764894e1"><image class="brand-logo data-v-764894e1" src="{{a}}" mode="aspectFit"></image><view class="brand-text data-v-764894e1"><text class="title data-v-764894e1">共享风扇</text><text class="subtitle data-v-764894e1">随时随地,享受清凉</text></view></view><view class="header-info data-v-764894e1"><view class="service-tag data-v-764894e1"><text class="data-v-764894e1">便捷租赁</text><text class="dot data-v-764894e1">·</text><text class="data-v-764894e1">品质保障</text></view></view></view></view><view class="scan-section data-v-764894e1"><view class="scan-card data-v-764894e1"><view class="scan-btn data-v-764894e1" bindtap="{{c}}"><image class="scan-icon data-v-764894e1" src="{{b}}" mode="aspectFit"/><text class="scan-text data-v-764894e1">扫码使用</text></view><view class="scan-desc data-v-764894e1"><text class="data-v-764894e1">扫描设备二维码即可使用或归还</text></view></view></view><view class="price-card data-v-764894e1"><view class="card-header data-v-764894e1"><text class="card-title data-v-764894e1">收费规则</text></view><view class="price-rules data-v-764894e1"><view class="price-item data-v-764894e1"><view class="price-tag data-v-764894e1">5.0<text class="unit data-v-764894e1">元/小时</text></view></view><view class="divider data-v-764894e1"></view><view class="rule-list data-v-764894e1"><view class="rule-item data-v-764894e1"><view class="rule-dot data-v-764894e1"></view><text class="data-v-764894e1">15分钟内归还免费</text></view><view class="rule-item data-v-764894e1"><view class="rule-dot data-v-764894e1"></view><text class="data-v-764894e1">不足1小时按1小时计费</text></view><view class="rule-item data-v-764894e1"><view class="rule-dot data-v-764894e1"></view><text class="data-v-764894e1">封顶99元,计费达99元视为买断</text></view></view></view></view><view class="usage-steps data-v-764894e1"><view class="steps-header data-v-764894e1"><text class="steps-title data-v-764894e1">使用流程</text></view><view class="steps-container data-v-764894e1"><view class="step-item data-v-764894e1"><view class="step-icon data-v-764894e1"><text class="step-number data-v-764894e1">1</text></view><text class="step-text data-v-764894e1">扫码弹出</text></view><view class="step-arrow data-v-764894e1"></view><view class="step-item data-v-764894e1"><view class="step-icon data-v-764894e1"><text class="step-number data-v-764894e1">2</text></view><text class="step-text data-v-764894e1">使用风扇</text></view><view class="step-arrow data-v-764894e1"></view><view class="step-item data-v-764894e1"><view class="step-icon data-v-764894e1"><text class="step-number data-v-764894e1">3</text></view><text class="step-text data-v-764894e1">插入归还</text></view><view class="step-arrow data-v-764894e1"></view><view class="step-item data-v-764894e1"><view class="step-icon data-v-764894e1"><text class="step-number data-v-764894e1">4</text></view><text class="step-text data-v-764894e1">结束订单</text></view></view></view></view>
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
"use strict";const t=require("../../common/vendor.js"),e=require("../../common/assets.js"),a=require("../../config/user.js"),s={__name:"index",setup(s){const o=t.ref(0),r=t.ref([]),n=t.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=t.reactive([{text:"全部",status:[]},{text:"待付款",status:["waiting_for_payment"]},{text:"使用中",status:["in_used"]},{text:"已完成",status:["used_done"]},{text:"已取消",status:["order_cancelled"]}]);t.onLoad((async t=>{if(t&&t.orderId)try{const e=await a.queryById(t.orderId);if(200===e.code&&e.data){const t=e.data,a=t.startTime||t.createTime||"",s={orderNo:t.orderId,status:t.orderStatus,deviceId:t.deviceNo,payWay:t.payWay,startTime:a,endTime:t.endTime||"",amount:t.payAmount||t.actualDeviceAmount||"0.00"};r.value=[s,...r.value];const o=i.findIndex((e=>e.status.includes(t.orderStatus)));-1!==o&&d(o)}}catch(e){console.error("获取订单详情失败:",e)}await c()}));const d=async t=>{o.value=t;const e=i[t].status[0];await c(e)},c=async e=>{try{null!=e&&(e={orderStatus:e});const t=await a.getOrderList(e);200===t.code&&t.data&&t.data.records&&(r.value=t.data.records.map((t=>{const e=t.startTime||t.createTime||"";return{orderNo:t.orderNo,orderId:t.orderId,orderStatus:t.orderStatus,deviceId:t.deviceNo,payWay:t.payWay,startTime:e,endTime:t.endTime||"",amount:t.payAmount||t.actualDeviceAmount||"0.00"}})))}catch(s){console.error("获取订单列表失败:",s),t.index.showToast({title:"获取订单列表失败",icon:"none"})}};return(s,u)=>t.e({a:t.f(i,((e,a,s)=>({a:t.t(e.text),b:a,c:o.value===a?1:"",d:t.o((t=>d(a)),a)}))),b:0===r.value.length},(r.value.length,{}),{c:t.f(r.value,((s,r,d)=>{var u,l;return t.e({a:t.t(s.orderNo),b:t.t(null==(u=n[s.orderStatus])?void 0:u.text),c:t.n(null==(l=n[s.orderStatus])?void 0:l.class),d:t.t(s.deviceId),e:"wx_score_pay"==s.payWay},"wx_score_pay"==s.payWay?{f:e._imports_0$2}:{},{g:t.t(s.startTime),h:t.t(s.endTime||"-"),i:t.t(s.amount),j:"waiting_for_payment"===s.status||"waiting_for_payment"===s.orderStatus},"waiting_for_payment"===s.status||"waiting_for_payment"===s.orderStatus?{k:t.o((e=>(async e=>{try{t.index.showLoading({title:"处理中"});const s=await a.confirmPaymentAndRent(e.orderId);if(200!==s.code)throw new Error(s.msg||"支付失败");t.index.hideLoading(),t.index.showToast({title:"支付成功",icon:"success"}),await c(i[o.value].status)}catch(s){t.index.hideLoading(),t.index.showToast({title:s.message||"支付失败",icon:"none"})}})(s)),r)}:{},{l:"waiting_for_payment"===s.status||"waiting_for_payment"===s.orderStatus},"waiting_for_payment"===s.status||"waiting_for_payment"===s.orderStatus?{m:t.o((e=>(async e=>{try{t.index.showModal({title:"确认取消",content:"确定要取消此订单吗?",success:async s=>{if(s.confirm){t.index.showLoading({title:"处理中"});const s=await a.cancelOrder({orderId:e.orderId});if(200!==s.code)throw new Error(s.msg||"取消订单失败");t.index.hideLoading(),t.index.showToast({title:"订单已取消",icon:"success"}),await c(i[o.value].status)}}})}catch(s){t.index.hideLoading(),t.index.showToast({title:s.message||"取消订单失败",icon:"none"})}})(s)),r)}:{},{n:"in_used"==s.status||"in_used"==s.orderStatus},"in_used"==s.status||"in_used"==s.orderStatus?{o:t.o((e=>{return a=s.deviceId,o=s.orderId,console.log(o),void t.index.navigateTo({url:`/pages/return/index?deviceId=${a}&orderId=${o}`});var a,o}),r)}:{},{p:t.o((e=>(e=>{t.index.navigateTo({url:`/pages/order/details?orderId=${e.orderId||e.orderNo}`})})(s)),r),q:"waiting_for_payment"===s.status||"waiting_for_payment"===s.orderStatus},"waiting_for_payment"===s.status||"waiting_for_payment"===s.orderStatus?{r:t.o((e=>(async e=>{try{200===(await a.getOrderByOrderNoScorePayStatus(e.orderNo)).code&&(t.index.showToast({title:"状态同步成功",icon:"success"}),await c(i[o.value].status))}catch(s){t.index.showToast({title:"同步状态失败",icon:"none"})}})(s)),r)}:{},{s:r})}))})}},o=t._export_sfc(s,[["__scopeId","data-v-385ef1a6"]]);wx.createPage(o);
"use strict";const t=require("../../common/vendor.js"),e=require("../../common/assets.js"),a=require("../../config/user.js"),s={__name:"index",setup(s){const o=t.ref(0),r=t.ref([]),n=t.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"}}),d=t.reactive([{text:"全部",status:[]},{text:"待付款",status:["waiting_for_payment"]},{text:"使用中",status:["in_used"]},{text:"已完成",status:["used_done"]},{text:"已取消",status:["order_cancelled"]}]);t.onLoad((async t=>{if(t&&t.orderId)try{const e=await a.queryById(t.orderId);if(200===e.code&&e.data){const t=e.data,a=t.startTime||t.createTime||"",s={orderNo:t.orderId,status:t.orderStatus,deviceId:t.deviceNo,payWay:t.payWay,startTime:a,endTime:t.endTime||"",amount:t.payAmount||t.actualDeviceAmount||"0.00"};r.value=[s,...r.value];const o=d.findIndex((e=>e.status.includes(t.orderStatus)));-1!==o&&i(o)}}catch(e){console.error("获取订单详情失败:",e)}await c()}));const i=async t=>{o.value=t;const e=d[t].status[0];await c(e)},c=async e=>{try{null!=e&&(e={orderStatus:e});const t=await a.getOrderList(e);200===t.code&&t.data&&t.data.records&&(r.value=t.data.records.map((t=>{const e=t.startTime||t.createTime||"";return{orderNo:t.orderNo,orderId:t.orderId,orderStatus:t.orderStatus,deviceId:t.deviceNo,payWay:t.payWay,startTime:e,endTime:t.endTime||"",amount:t.payAmount||t.actualDeviceAmount||"0.00"}})))}catch(s){console.error("获取订单列表失败:",s),t.index.showToast({title:"获取订单列表失败",icon:"none"})}};return(s,u)=>t.e({a:t.f(d,((e,a,s)=>({a:t.t(e.text),b:a,c:o.value===a?1:"",d:t.o((t=>i(a)),a)}))),b:0===r.value.length},(r.value.length,{}),{c:t.f(r.value,((s,r,i)=>{var u,l;return t.e({a:t.t(s.orderNo),b:t.t(null==(u=n[s.orderStatus])?void 0:u.text),c:t.n(null==(l=n[s.orderStatus])?void 0:l.class),d:t.t(s.deviceId),e:"wx_score_pay"==s.payWay},"wx_score_pay"==s.payWay?{f:e._imports_0$2}:{},{g:t.t(s.startTime),h:t.t(s.endTime||"-"),i:t.t(s.amount),j:"waiting_for_payment"===s.status||"waiting_for_payment"===s.orderStatus},"waiting_for_payment"===s.status||"waiting_for_payment"===s.orderStatus?{k:t.o((e=>(async e=>{try{t.index.showLoading({title:"处理中"});const s=await a.confirmPaymentAndRent(e.orderNo);if(200!==s.code)throw new Error(s.msg||"支付失败");t.index.hideLoading(),t.index.showToast({title:"支付成功",icon:"success"}),await c(d[o.value].status)}catch(s){t.index.hideLoading(),t.index.showToast({title:s.message||"支付失败",icon:"none"})}})(s)),r)}:{},{l:"waiting_for_payment"===s.status||"waiting_for_payment"===s.orderStatus},"waiting_for_payment"===s.status||"waiting_for_payment"===s.orderStatus?{m:t.o((e=>(async e=>{try{t.index.showModal({title:"确认取消",content:"确定要取消此订单吗?",success:async s=>{if(s.confirm){t.index.showLoading({title:"处理中"});const s=await a.cancelOrder({orderId:e.orderNo});if(!s)throw new Error(s.msg||"取消订单失败");t.index.hideLoading(),t.index.showToast({title:"订单已取消",icon:"success"}),await c()}}})}catch(s){t.index.hideLoading(),t.index.showToast({title:s.message||"取消订单失败",icon:"none"})}})(s)),r)}:{},{n:"in_used"==s.status||"in_used"==s.orderStatus},"in_used"==s.status||"in_used"==s.orderStatus?{o:t.o((e=>{return a=s.deviceId,o=s.orderId,console.log(o),void t.index.navigateTo({url:`/pages/return/index?deviceId=${a}&orderId=${o}`});var a,o}),r)}:{},{p:t.o((e=>(e=>{t.index.navigateTo({url:`/pages/order/details?orderId=${e.orderId||e.orderNo}`})})(s)),r),q:r})}))})}},o=t._export_sfc(s,[["__scopeId","data-v-2998ff8e"]]);wx.createPage(o);
+1 -1
View File
@@ -1 +1 @@
<view class="order-container data-v-385ef1a6"><view class="status-tabs data-v-385ef1a6"><view wx:for="{{a}}" wx:for-item="tab" wx:key="b" class="{{['tab-item', 'data-v-385ef1a6', tab.c && 'active']}}" bindtap="{{tab.d}}">{{tab.a}}</view></view><view class="order-list data-v-385ef1a6"><view wx:if="{{b}}" class="empty-state data-v-385ef1a6"><view class="empty-icon data-v-385ef1a6"></view><text class="empty-text data-v-385ef1a6">暂无订单记录</text></view><view wx:for="{{c}}" wx:for-item="order" wx:key="s" class="order-item data-v-385ef1a6"><view class="order-header data-v-385ef1a6"><view class="order-id data-v-385ef1a6"><text class="data-v-385ef1a6">订单号:{{order.a}}</text></view><view class="{{['order-status', 'data-v-385ef1a6', order.c]}}">{{order.b}}</view></view><view class="order-body data-v-385ef1a6"><view class="device-info data-v-385ef1a6"><view class="device-left data-v-385ef1a6"><view class="device-name data-v-385ef1a6">共享风扇</view><view class="device-id data-v-385ef1a6">设备号:{{order.d}}</view></view><view class="device-right data-v-385ef1a6"><view wx:if="{{order.e}}" class="payment-badge wx-score data-v-385ef1a6"><image src="{{order.f}}" mode="aspectFit" class="badge-icon data-v-385ef1a6"></image><view class="badge-text data-v-385ef1a6"><text class="data-v-385ef1a6">微信支付分</text><text class="divider data-v-385ef1a6">|</text><text class="highlight data-v-385ef1a6">免押租借</text></view></view><view wx:else class="payment-badge deposit data-v-385ef1a6"><text class="badge-text data-v-385ef1a6">押金租借</text></view></view></view><view class="order-times data-v-385ef1a6"><view class="time-row data-v-385ef1a6"><text class="time-label data-v-385ef1a6">开始时间:</text><text class="time-value data-v-385ef1a6">{{order.g}}</text></view><view class="time-row data-v-385ef1a6"><text class="time-label data-v-385ef1a6">结束时间:</text><text class="time-value data-v-385ef1a6">{{order.h}}</text></view></view></view><view class="order-footer data-v-385ef1a6"><view class="price data-v-385ef1a6">¥{{order.i}}</view><view class="actions data-v-385ef1a6"><view wx:if="{{order.j}}" class="action-item primary data-v-385ef1a6" bindtap="{{order.k}}"> 立即支付 </view><view wx:if="{{order.l}}" class="action-item secondary data-v-385ef1a6" bindtap="{{order.m}}"> 取消订单 </view><view wx:if="{{order.n}}" class="action-item primary data-v-385ef1a6" bindtap="{{order.o}}"> 归还设备 </view><view class="action-item secondary data-v-385ef1a6" bindtap="{{order.p}}"> 查看详情 </view><view wx:if="{{order.q}}" class="action-item secondary data-v-385ef1a6" bindtap="{{order.r}}"> 同步状态 </view></view></view></view></view></view>
<view class="order-container data-v-2998ff8e"><view class="status-tabs data-v-2998ff8e"><view wx:for="{{a}}" wx:for-item="tab" wx:key="b" class="{{['tab-item', 'data-v-2998ff8e', tab.c && 'active']}}" bindtap="{{tab.d}}">{{tab.a}}</view></view><view class="order-list data-v-2998ff8e"><view wx:if="{{b}}" class="empty-state data-v-2998ff8e"><view class="empty-icon data-v-2998ff8e"></view><text class="empty-text data-v-2998ff8e">暂无订单记录</text></view><view wx:for="{{c}}" wx:for-item="order" wx:key="q" class="order-item data-v-2998ff8e"><view class="order-header data-v-2998ff8e"><view class="order-id data-v-2998ff8e"><text class="data-v-2998ff8e">订单号:{{order.a}}</text></view><view class="{{['order-status', 'data-v-2998ff8e', order.c]}}">{{order.b}}</view></view><view class="order-body data-v-2998ff8e"><view class="device-info data-v-2998ff8e"><view class="device-left data-v-2998ff8e"><view class="device-name data-v-2998ff8e">共享风扇</view><view class="device-id data-v-2998ff8e">设备号:{{order.d}}</view></view><view class="device-right data-v-2998ff8e"><view wx:if="{{order.e}}" class="payment-badge wx-score data-v-2998ff8e"><image src="{{order.f}}" mode="aspectFit" class="badge-icon data-v-2998ff8e"></image><view class="badge-text data-v-2998ff8e"><text class="data-v-2998ff8e">微信支付分</text><text class="divider data-v-2998ff8e">|</text><text class="highlight data-v-2998ff8e">免押租借</text></view></view><view wx:else class="payment-badge deposit data-v-2998ff8e"><text class="badge-text data-v-2998ff8e">押金租借</text></view></view></view><view class="order-times data-v-2998ff8e"><view class="time-row data-v-2998ff8e"><text class="time-label data-v-2998ff8e">开始时间:</text><text class="time-value data-v-2998ff8e">{{order.g}}</text></view><view class="time-row data-v-2998ff8e"><text class="time-label data-v-2998ff8e">结束时间:</text><text class="time-value data-v-2998ff8e">{{order.h}}</text></view></view></view><view class="order-footer data-v-2998ff8e"><view class="price data-v-2998ff8e">¥{{order.i}}</view><view class="actions data-v-2998ff8e"><view wx:if="{{order.j}}" class="action-item primary data-v-2998ff8e" bindtap="{{order.k}}"> 立即支付 </view><view wx:if="{{order.l}}" class="action-item secondary data-v-2998ff8e" bindtap="{{order.m}}"> 取消订单 </view><view wx:if="{{order.n}}" class="action-item primary data-v-2998ff8e" bindtap="{{order.o}}"> 归还设备 </view><view class="action-item secondary data-v-2998ff8e" bindtap="{{order.p}}"> 查看详情 </view></view></view></view></view></view>
File diff suppressed because one or more lines are too long