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";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./common/vendor.js"),n=require("./util/index.js"),e=require("./utils/orderMonitor.js");Math;const t={onLaunch:function(){console.log("App Launch")},onShow:async function(){console.log("App Show"),await this.autoLogin()},onHide:function(){console.log("App Hide")},methods:{async autoLogin(){try{const o=await n.wxLogin();console.log("自动登录成功:",o)}catch(o){console.error("自动登录失败:",o)}}}};function r(){const n=o.createSSRApp(t);return n.config.globalProperties.$orderMonitor=e.orderMonitor,{app:n}}r().app.mount("#app"),exports.createApp=r;
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./common/vendor.js"),n=require("./util/index.js"),e=require("./utils/orderMonitor.js");Math;const t={onLaunch:function(){console.log("App Launch")},onShow:async function(){console.log("App Show"),await this.autoLogin()},onHide:function(){console.log("App Hide")},methods:{async autoLogin(){try{await n.wxLogin()}catch(o){console.error("自动登录失败:",o)}}}};function r(){const n=o.createSSRApp(t);return n.config.globalProperties.$orderMonitor=e.orderMonitor,{app:n}}r().app.mount("#app"),exports.createApp=r;
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"),d=require("./url.js");exports.request=a=>new Promise(((o,t)=>{console.log(`发起请求: ${a.method} ${d.URL+a.url}`,a.data),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=>(console.log(`请求响应: ${a.url}`,e),200!==e.statusCode?(console.error(`HTTP状态码错误: ${e.statusCode}`,e.data),e.data?void o(e.data):void t({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 o({code:200,msg:"操作成功",data:[]}):void o(e.data)):void o(e.data)),fail(e){console.error(`请求失败: ${a.url}`,e),t(e)},complete(){a.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
View File
@@ -1 +1 @@
"use strict";exports.URL="https://unifans.gxfs123.com/api",exports.appid="wxe752f45e7f7aa271";
"use strict";exports.URL="https://unifans.gxfs123.com/api",exports.appid="wx2165f0be356ae7a9";
+1 -1
View File
@@ -1 +1 @@
"use strict";const e=require("./http.js");exports.cancelOrder=r=>e.request({url:"/orderInfo/cancelOrder",method:"get",data:r}),exports.checkOrdersByStatus=(r,t)=>{const o=t.join(",");return e.request({url:`/app/order/list?deviceNo=${r}&orderStatus=${o}`,method:"get",hideLoading:!0,ignoreEmptyError:!0})},exports.confirmPaymentAndRent=r=>(console.log(`确认支付并弹出风扇, orderId: ${r}`),e.request({url:`/app/device/confirmPaymentAndRent?orderId=${r}`,method:"post"})),exports.getDeviceInfo=r=>e.request({url:`/app/device/${r}`,method:"get"}),exports.getMyIndexInfo=r=>e.request({url:"/app/user/userInfo",method:"get",data:r}),exports.getOrderByOrderNo=r=>e.request({url:`/app/order/byOrderNo/${r}`,method:"get",hideLoading:!0}),exports.getOrderByOrderNoScore=r=>(console.log("通过订单号获取支付分订单信息",r),e.request({url:`/app/wx-payment/score/create/${r}`,method:"get",hideLoading:!0})),exports.getOrderByOrderNoScorePayStatus=r=>(console.log("通过订单号获取支付分订单状态",r),e.request({url:`/app/wx-payment/score/status/${r}`,method:"get",hideLoading:!0})),exports.getOrderList=r=>e.request({url:"/app/order/list",method:"get",data:r,hideLoading:!0}),exports.login=r=>e.request({url:"/app/user/login",method:"get",data:r}),exports.queryById=r=>(console.log(`查询订单详情, orderId: ${r}`),e.request({url:`/app/order/${r}`,method:"get",hideLoading:!0})),exports.rentPowerBank=(r,t)=>e.request({url:"/app/device/rentPowerBank",method:"post",data:{deviceNo:r,phone:t}}),exports.updateOrderPackage=r=>(console.log("更新订单套餐信息:",r),e.request({url:"/app/device/updateOrderPackage",method:"post",data:r})),exports.updateUserBalance=r=>e.request({url:`/app/user/updateBalance/${r}`,method:"post",hideLoading:!0}),exports.withdrawDeposit=r=>(console.log("调用提现API,订单号:",r),e.request({url:`/app/withdraw/add/${r}`,method:"get",hideLoading:!0}));
"use strict";const e=require("./http.js");exports.cancelOrder=r=>e.request({url:`/device/order/clear/${r.orderId}`,method:"get",data:r}),exports.checkOrdersByStatus=(r,t)=>{const o=t.join(",");return e.request({url:`/app/order/list?deviceNo=${r}&orderStatus=${o}`,method:"get",hideLoading:!0,ignoreEmptyError:!0})},exports.confirmPaymentAndRent=r=>(console.log(`确认支付并弹出风扇, orderId: ${r}`),e.request({url:`/app/device/confirmPaymentAndRent?orderId=${r}`,method:"GET"})),exports.getDeviceInfo=r=>e.request({url:`/app/device/${r}`,method:"get"}),exports.getMyIndexInfo=r=>e.request({url:"/app/user/userInfo",method:"get",data:r}),exports.getOrderByOrderNo=r=>e.request({url:`/app/order/byOrderNo/${r}`,method:"get",hideLoading:!0}),exports.getOrderByOrderNoScore=r=>(console.log("通过订单号获取支付分订单信息",r),e.request({url:`/app/wx-payment/score/create/${r}`,method:"get",hideLoading:!0})),exports.getOrderByOrderNoScorePayStatus=r=>(console.log("通过订单号获取支付分订单状态",r),e.request({url:`/app/wx-payment/score/status/${r}`,method:"get",hideLoading:!0})),exports.getOrderList=r=>e.request({url:"/app/order/list",method:"get",data:r,hideLoading:!0}),exports.login=r=>e.request({url:"/app/user/login",method:"get",data:r}),exports.queryById=r=>(console.log(`查询订单详情, orderId: ${r}`),e.request({url:`/app/order/${r}`,method:"get",hideLoading:!0})),exports.rentPowerBank=(r,t)=>e.request({url:"/app/device/rentPowerBank",method:"post",data:{deviceNo:r,phone:t}}),exports.updateOrderPackage=r=>(console.log("更新订单套餐信息:",r),e.request({url:"/app/device/updateOrderPackage",method:"post",data:r})),exports.updateUserBalance=r=>e.request({url:`/app/user/updateBalance/${r}`,method:"post",hideLoading:!0}),exports.withdrawDeposit=r=>(console.log("调用提现API,订单号:",r),e.request({url:`/app/withdraw/add/${r}`,method:"get",hideLoading:!0}));
+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
+1 -1
View File
@@ -13,7 +13,7 @@
},
"compileType": "miniprogram",
"libVersion": "",
"appid": "wxe752f45e7f7aa271",
"appid": "wx2165f0be356ae7a9",
"projectname": "uni-fans-score",
"condition": {
"search": {
+1 -1
View File
@@ -1 +1 @@
"use strict";const e=require("../common/vendor.js"),o=require("../config/user.js");exports.getQueryString=function(e,o){var n=new RegExp("(^|&|/?)"+o+"=([^&|/?]*)(&|/?|$)","i"),s=e.substr(1).match(n);return null!=s?s[2]:null},exports.getUserInfo=()=>new Promise((async(e,n)=>{e(await o.getMyIndexInfo({isHide:!1}))})),exports.initiateWeChatScorePayment=o=>new Promise(((n,s)=>{o&&o.data&&o.data.package?e.wx$1.openBusinessView({businessType:"wxpayScoreUse",extraData:{mch_id:o.data.mch_id,package:o.data.package},success:e=>{console.log("微信支付分小程序调用成功",e),"openBusinessView:ok"===e.errMsg?n(e):s(new Error("支付流程未完成"))},fail:o=>{console.error("微信支付分小程序调用失败",o),e.index.showToast({title:o.errMsg||"支付分接口调用失败",icon:"none"}),s(o)}}):s(new Error("支付参数不完整"))})),exports.wxLogin=()=>new Promise(((n,s)=>{e.index.login({provider:"weixin",success:async i=>{try{if(!i.code)throw new Error("获取微信登录凭证失败");{const s=await o.login({code:i.code,appid:"wxe752f45e7f7aa271"});if(200!==s.code)throw new Error(s.message||"登录失败");e.index.setStorageSync("token",s.data.LoginWxVo.access_token),e.index.setStorageSync("client_id",s.data.LoginWxVo.client_id),n(s.data)}}catch(t){e.index.showToast({title:t.message||"登录失败",icon:"none"}),s(t)}},fail:o=>{e.index.showToast({title:"微信登录失败",icon:"none"}),s(o)}})}));
"use strict";const e=require("../common/vendor.js"),n=require("../config/user.js");exports.getQueryString=function(e,n){var o=new RegExp("(^|&|/?)"+n+"=([^&|/?]*)(&|/?|$)","i"),i=e.substr(1).match(o);return null!=i?i[2]:null},exports.getUserInfo=()=>new Promise((async(e,o)=>{e(await n.getMyIndexInfo({isHide:!1}))})),exports.initiateWeChatScorePayment=n=>new Promise(((o,i)=>{n&&n.data&&n.data.package?e.wx$1.openBusinessView({businessType:"wxpayScoreUse",extraData:{mch_id:n.data.mch_id,package:n.data.package},success:e=>{"openBusinessView:ok"===e.errMsg?o(e):i(new Error("支付流程未完成"))},fail:n=>{console.error("微信支付分小程序调用失败",n),e.index.showToast({title:n.errMsg||"支付分接口调用失败",icon:"none"}),i(n)}}):i(new Error("支付参数不完整"))})),exports.wxLogin=()=>new Promise(((o,i)=>{e.index.login({provider:"weixin",success:async s=>{try{if(!s.code)throw new Error("获取微信登录凭证失败");{const i=await n.login({code:s.code,appid:"wx2165f0be356ae7a9"});if(200!==i.code)throw new Error(i.message||"登录失败");e.index.setStorageSync("token",i.data.LoginWxVo.access_token),e.index.setStorageSync("client_id",i.data.LoginWxVo.client_id),o(i.data)}}catch(t){e.index.showToast({title:t.message||"登录失败",icon:"none"}),i(t)}},fail:n=>{e.index.showToast({title:"微信登录失败",icon:"none"}),i(n)}})}));
+1 -1
View File
@@ -1 +1 @@
"use strict";const e=require("../common/vendor.js"),r=require("../config/user.js");const t=new class{constructor(){this.activeOrders=new Map,this.timer=null,this.checkInterval=1e4,this.isRunning=!1,this.currentPage=null}addOrder(e,r="return"){e&&e.orderId?(console.log(`添加订单到监控队列: ${e.orderId}, 页面: ${r}`),this.activeOrders.set(e.orderId,{...e,pageName:r}),this.isRunning||this.start()):console.error("添加订单监控失败:无效的订单数据")}removeOrder(e){if(e){if(e.orderId&&this.activeOrders.has(e.orderId))console.log("从监控队列移除订单:",e.orderId),this.activeOrders.delete(e.orderId);else if(e.pageName){console.log("从监控队列移除页面相关订单:",e.pageName);for(const[r,t]of this.activeOrders.entries())t.pageName===e.pageName&&this.activeOrders.delete(r)}0===this.activeOrders.size&&this.stop()}}setActivePage(e){this.currentPage=e,console.log("设置当前活跃页面:",e)}start(){this.isRunning||(console.log("启动订单监控服务"),this.isRunning=!0,this.checkOrders(),this.timer=setInterval((()=>{this.checkOrders()}),this.checkInterval))}stop(){this.isRunning&&(console.log("停止订单监控服务"),this.isRunning=!1,this.timer&&(clearInterval(this.timer),this.timer=null))}async checkOrders(){if(0!==this.activeOrders.size){console.log(`检查 ${this.activeOrders.size} 个活跃订单状态, 当前页面: ${this.currentPage}`);for(const[r,t]of this.activeOrders.entries())try{t.pageName&&"return"!==t.pageName||("return"===this.currentPage||null===this.currentPage?await this.checkOrderStatus(r):console.log(`跳过订单状态检查: ${r}, 当前不在归还页面`))}catch(e){console.error(`检查订单状态失败: ${r}`,e)}}}async checkOrderStatus(t){try{console.log(`检查订单 ${t} 的状态`);const s=await r.queryById(t);if(200===s.code&&s.data){const r=s.data,i=this.activeOrders.get(t),o=i?i.pageName:null;if(this.activeOrders.set(t,{...r,pageName:o}),"used_done"===r.orderStatus||"used_down"===r.orderStatus){console.log(`订单 ${t} 已完成!`),e.index.$emit("orderCompleted",r),e.index.showToast({title:"风扇归还成功",icon:"success",duration:2e3});const s=e.index.createInnerAudioContext();s.src="/static/audio/return_success.mp3",s.play(),this.removeOrder({orderId:t}),setTimeout((()=>{e.index.showModal({title:"归还成功",content:"风扇已归还成功,剩余押金将退还到您的账户",confirmText:"查看详情",success:r=>{r.confirm&&e.index.redirectTo({url:`/pages/order/return-success?orderId=${t}`})}})}),500)}}}catch(s){console.error(`检查订单 ${t} 状态出错:`,s)}}};e.index.onAppRoute((e=>{const r=e.path||"",s=r.split("/"),i=s[s.length-1];t.setActivePage(i||null),console.log("页面切换:",r,"当前活跃页面:",i)}));(()=>{const r=e.index.getStorageSync("activeOrderId");if(r){const e={orderId:r};t.addOrder(e,"return")}})(),exports.orderMonitor=t;
"use strict";const e=require("../common/vendor.js"),r=require("../config/user.js");const t=new class{constructor(){this.activeOrders=new Map,this.timer=null,this.checkInterval=1e4,this.isRunning=!1,this.currentPage=null}addOrder(e,r="return"){e&&e.orderId?(console.log(`添加订单到监控队列: ${e.orderId}, 页面: ${r}`),this.activeOrders.set(e.orderId,{...e,pageName:r}),this.isRunning||this.start()):console.error("添加订单监控失败:无效的订单数据")}removeOrder(e){if(e){if(e.orderId&&this.activeOrders.has(e.orderId))console.log("从监控队列移除订单:",e.orderId),this.activeOrders.delete(e.orderId);else if(e.pageName){console.log("从监控队列移除页面相关订单:",e.pageName);for(const[r,t]of this.activeOrders.entries())t.pageName===e.pageName&&this.activeOrders.delete(r)}0===this.activeOrders.size&&this.stop()}}setActivePage(e){this.currentPage=e,console.log("设置当前活跃页面:",e)}start(){this.isRunning||(console.log("启动订单监控服务"),this.isRunning=!0,this.checkOrders(),this.timer=setInterval((()=>{this.checkOrders()}),this.checkInterval))}stop(){this.isRunning&&(console.log("停止订单监控服务"),this.isRunning=!1,this.timer&&(clearInterval(this.timer),this.timer=null))}async checkOrders(){if(0!==this.activeOrders.size){console.log(`检查 ${this.activeOrders.size} 个活跃订单状态, 当前页面: ${this.currentPage}`);for(const[r,t]of this.activeOrders.entries())try{t.pageName&&"return"!==t.pageName||"return"!==this.currentPage&&null!==this.currentPage||await this.checkOrderStatus(r)}catch(e){}}}async checkOrderStatus(t){try{console.log(`检查订单 ${t} 的状态`);const s=await r.queryById(t);if(200===s.code&&s.data){const r=s.data,i=this.activeOrders.get(t),o=i?i.pageName:null;if(this.activeOrders.set(t,{...r,pageName:o}),"used_done"===r.orderStatus||"used_down"===r.orderStatus){console.log(`订单 ${t} 已完成!`),e.index.$emit("orderCompleted",r),e.index.showToast({title:"风扇归还成功",icon:"success",duration:2e3});const s=e.index.createInnerAudioContext();s.src="/static/audio/return_success.mp3",s.play(),this.removeOrder({orderId:t}),setTimeout((()=>{e.index.showModal({title:"归还成功",content:"风扇已归还成功,剩余押金将退还到您的账户",confirmText:"查看详情",success:r=>{r.confirm&&e.index.redirectTo({url:`/pages/order/return-success?orderId=${t}`})}})}),500)}}}catch(s){console.error(`检查订单 ${t} 状态出错:`,s)}}};e.index.onAppRoute((e=>{const r=e.path||"",s=r.split("/"),i=s[s.length-1];t.setActivePage(i||null),console.log("页面切换:",r,"当前活跃页面:",i)}));(()=>{const r=e.index.getStorageSync("activeOrderId");if(r){const e={orderId:r};t.addOrder(e,"return")}})(),exports.orderMonitor=t;