feat:更改小程序id由7a9替换为271
This commit is contained in:
+1
@@ -5,6 +5,7 @@
|
||||
"pages/deposit/index",
|
||||
"pages/order/index",
|
||||
"pages/order/payment",
|
||||
"pages/order/details",
|
||||
"pages/feedback/index",
|
||||
"pages/help/index",
|
||||
"pages/device/detail",
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
"use strict";exports.URL="https://my.gxfs123.com/api",exports.appid="wx2165f0be356ae7a9";
|
||||
"use strict";exports.URL="https://unifans.gxfs123.com/api",exports.appid="wxe752f45e7f7aa271";
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
"use strict";const e=require("./http.js");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:"/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}));
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
"use strict";const e=require("../../common/vendor.js"),o=require("../../common/assets.js"),a=require("../../config/user.js"),t=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 a.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 o=await e.index.$api.checkActiveOrder();if(o.hasOrder){const a=o.order;"waiting_for_payment"===a.status?e.index.redirectTo({url:`/pages/order/payment?orderId=${a.orderId}&deviceId=${n.value}`}):"in_used"===a.status&&e.index.redirectTo({url:`/pages/device/return?deviceId=${n.value}`})}}catch(o){e.index.showToast({title:"订单状态查询失败",icon:"none"})}},m=o=>{u.value?w(o):e.index.showModal({title:"提示",content:"请先登录后再操作",confirmText:"去登录",success:o=>{o.confirm&&e.index.navigateTo({url:"/pages/login/index"})}})},x=e.reactive({time:"1小时",price:"5.00"}),f=e.ref("99.00"),w=async o=>{try{e.index.showLoading({title:"处理中"});const d=await a.rentPowerBank(n.value,v.value);if(200!==d.code)throw new Error(d.msg||"设备租借失败");const c=d.data;if("wx-pay"==o){e.index.hideLoading();const o=await a.getOrderByOrderNo(c.orderNo);console.log(o);try{let e=0;e=x.time.includes("小时")?60*parseInt(x.time):x.time.includes("分钟")?parseInt(x.time):60*parseInt(x.time);const o=await a.updateOrderPackage({orderId:c.orderId,packageTime:e,packagePrice:parseFloat(x.price)});200!==o.code?console.warn("更新订单套餐信息失败:",o.msg):console.log("订单套餐信息已提前更新")}catch(i){console.error("更新订单套餐信息时出错:",i)}const t=parseFloat(r.value.depositAmount),n=(t+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 o=await a.getOrderByOrderNoScore(c.orderNo);if(console.log(o),e.index.hideLoading(),o&&200===o.code)try{if("0"==(await t.initiateWeChatScorePayment(o)).errCode){await a.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==o?void 0:o.msg)||"获取支付参数失败",icon:"none"})}}}catch(d){e.index.hideLoading(),e.index.showToast({title:d.message||"租借失败,请重试",icon:"none"})}};return(a,t)=>({a:e.t(l.text),b:e.n(l.class),c:e.t(n.value),d:o._imports_0$3,e:e.t(s.value),f:o._imports_1$2,g:d.value<20?1:"",h:e.t(d.value),i:o._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-24e33e2c"]]);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(""),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);
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<view class="container data-v-24e33e2c"><view class="device-header data-v-24e33e2c"><view class="{{['device-status-card', 'data-v-24e33e2c', b]}}"><view class="status-indicator data-v-24e33e2c"></view><text class="status-text data-v-24e33e2c">{{a}}</text></view><view class="device-title data-v-24e33e2c"><text class="name data-v-24e33e2c">共享风扇</text><view class="device-meta data-v-24e33e2c"><text class="id-label data-v-24e33e2c">设备号:</text><text class="id-value data-v-24e33e2c">{{c}}</text></view></view></view><view class="card device-info-card data-v-24e33e2c"><view class="card-row data-v-24e33e2c"><view class="card-item data-v-24e33e2c"><view class="item-icon location-icon data-v-24e33e2c"><image class="data-v-24e33e2c" src="{{d}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-24e33e2c"><text class="item-label data-v-24e33e2c">当前位置</text><text class="item-value data-v-24e33e2c">{{e}}</text></view></view><view class="card-item data-v-24e33e2c"><view class="{{['item-icon', 'battery-icon', 'data-v-24e33e2c', g && 'battery-low']}}"><image class="data-v-24e33e2c" src="{{f}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-24e33e2c"><text class="item-label data-v-24e33e2c">电池电量</text><text class="item-value data-v-24e33e2c">{{h}}%</text></view></view></view></view><view class="card pricing-card data-v-24e33e2c"><view class="card-header data-v-24e33e2c"><text class="card-title data-v-24e33e2c">计费规则</text></view><view class="pricing-banner data-v-24e33e2c"><view class="pricing-main data-v-24e33e2c"><text class="price data-v-24e33e2c">¥5.00</text><text class="unit data-v-24e33e2c">/小时</text></view><text class="cap-price data-v-24e33e2c">封顶 ¥99</text></view><view class="pricing-rules data-v-24e33e2c"><view class="rule-item data-v-24e33e2c"><view class="rule-dot data-v-24e33e2c"></view><text class="rule-text data-v-24e33e2c">前15分钟内归还<text class="highlight data-v-24e33e2c">免费</text></text></view><view class="rule-item data-v-24e33e2c"><view class="rule-dot data-v-24e33e2c"></view><text class="rule-text data-v-24e33e2c">不足60分钟按60分钟计费</text></view><view class="rule-item data-v-24e33e2c"><view class="rule-dot data-v-24e33e2c"></view><text class="rule-text data-v-24e33e2c">持续计费至99元视为买断</text></view></view></view><view class="card notice-card data-v-24e33e2c"><view class="card-header data-v-24e33e2c"><text class="card-title data-v-24e33e2c">使用须知</text></view><view class="notice-items data-v-24e33e2c"><view class="notice-item data-v-24e33e2c"><view class="notice-dot data-v-24e33e2c"></view><text class="notice-text data-v-24e33e2c">请在使用前检查设备是否完好</text></view><view class="notice-item data-v-24e33e2c"><view class="notice-dot data-v-24e33e2c"></view><text class="notice-text data-v-24e33e2c">请在指定区域内使用设备</text></view><view class="notice-item data-v-24e33e2c"><view class="notice-dot data-v-24e33e2c"></view><text class="notice-text data-v-24e33e2c">归还时请确保设备完好,避免损坏</text></view></view></view><view class="footer data-v-24e33e2c"><view class="wechat-credit data-v-24e33e2c"><image src="{{i}}" mode="aspectFit" class="wx-icon data-v-24e33e2c"></image><view class="credit-text data-v-24e33e2c"><text class="data-v-24e33e2c">微信支付分</text><text class="credit-divider data-v-24e33e2c">|</text><text class="credit-score data-v-24e33e2c">支付分200分及以上优享</text></view></view><button class="{{['rent-button', 'data-v-24e33e2c', k && 'return-button']}}" bindtap="{{l}}"><text class="data-v-24e33e2c">{{j}}</text></button><view class=" data-v-24e33e2c" style="align-items:center;align-content:center;text-align:center;line-height:50rpx" bindtap="{{m}}"> 无法免押点这里></view></view></view>
|
||||
<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>
|
||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
"use strict";const e=require("../../common/vendor.js"),t=require("../../config/user.js"),a={__name:"details",setup(a){const n=e.ref(""),r=e.ref({}),i=e.computed((()=>{switch(r.value.orderStatus){case"waiting_for_payment":return"等待支付";case"in_used":return"使用中";case"used_done":return"已完成";case"order_cancelled":return"已取消";default:return"未知状态"}})),o=e.computed((()=>{switch(r.value.orderStatus){case"waiting_for_payment":return"status-waiting";case"in_used":return"status-using";case"used_done":return"status-finished";case"order_cancelled":return"status-cancelled";default:return""}})),u=e.computed((()=>{switch(r.value.orderStatus){case"waiting_for_payment":return"请在15分钟内完成支付";case"in_used":return"设备正在使用中";case"used_done":return"感谢您的使用";case"order_cancelled":return"该订单已取消";default:return""}})),d=e.computed((()=>{const e=r.value.payWay;return"wx_score_pay"===e?"微信支付分 (免押金)":"wx_pay"===e?"微信支付":"押金支付"}));e.onLoad((async t=>{t&&t.orderId?(n.value=t.orderId,await s()):(e.index.showToast({title:"订单信息不存在",icon:"none"}),setTimeout((()=>{e.index.navigateBack()}),1500))}));const s=async()=>{try{e.index.showLoading({title:"加载中"});const a=await t.queryById(n.value);if(200!==a.code||!a.data)throw new Error("获取订单详情失败");r.value=a.data,r.value.createTime&&(r.value.createTime=c(new Date(r.value.createTime))),r.value.startTime&&(r.value.startTime=c(new Date(r.value.startTime))),r.value.endTime&&(r.value.endTime=c(new Date(r.value.endTime))),e.index.hideLoading()}catch(a){e.index.hideLoading(),e.index.showToast({title:a.message||"获取订单详情失败",icon:"none"})}},c=e=>`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")} ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}`,l=e=>{if(!e)return"";const t=parseInt(e);if(t<60)return`${t}分钟`;{const e=Math.floor(t/60),a=t%60;return a>0?`${e}小时${a}分钟`:`${e}小时`}},v=()=>{e.index.showModal({title:"确认取消",content:"确定要取消此订单吗?",success:async a=>{if(a.confirm)try{e.index.showLoading({title:"处理中"});const a=await t.cancelOrder({orderId:n.value});if(200!==a.code)throw new Error(a.msg||"取消订单失败");e.index.hideLoading(),e.index.showToast({title:"订单已取消",icon:"success"}),await s()}catch(r){e.index.hideLoading(),e.index.showToast({title:r.message||"取消订单失败",icon:"none"})}}})},m=async()=>{try{e.index.showLoading({title:"处理中"});const a=await t.confirmPaymentAndRent(n.value);if(200!==a.code)throw new Error(a.msg||"支付失败");e.index.hideLoading(),e.index.showToast({title:"支付成功",icon:"success"}),await s()}catch(a){e.index.hideLoading(),e.index.showToast({title:a.message||"支付失败",icon:"none"})}},g=()=>{e.index.navigateTo({url:`/pages/return/index?deviceId=${r.value.deviceNo}&orderId=${n.value}`})};return(t,a)=>e.e({a:e.n(o.value),b:e.t(i.value),c:e.t(u.value),d:e.t(r.value.orderNo||"-"),e:e.t(r.value.deviceNo||"-"),f:e.t(d.value),g:e.t(r.value.createTime||"-"),h:e.t(r.value.startTime||"-"),i:r.value.endTime},r.value.endTime?{j:e.t(r.value.endTime)}:{},{k:r.value.phone},r.value.phone?{l:e.t(r.value.phone)}:{},{m:r.value.depositAmount},r.value.depositAmount?{n:e.t(r.value.depositAmount)}:{},{o:r.value.packageTime&&r.value.packagePrice},r.value.packageTime&&r.value.packagePrice?{p:e.t(r.value.packagePrice),q:e.t(l(r.value.packageTime))}:{},{r:e.t(r.value.payAmount||0),s:"waiting_for_payment"===r.value.orderStatus},"waiting_for_payment"===r.value.orderStatus?{t:e.o(v),v:e.o(m)}:"in_used"===r.value.orderStatus?{x:e.o(g)}:{},{w:"in_used"===r.value.orderStatus})}},n=e._export_sfc(a,[["__scopeId","data-v-dc707034"]]);wx.createPage(n);
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"navigationBarTitleText": "订单详情",
|
||||
"navigationBarBackgroundColor": "#ffffff",
|
||||
"navigationBarTextStyle": "black",
|
||||
"usingComponents": {}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
<view class="details-container data-v-dc707034"><view class="status-card data-v-dc707034"><view class="{{['status-icon', 'data-v-dc707034', a]}}"></view><view class="status-text data-v-dc707034">{{b}}</view><view class="status-desc data-v-dc707034">{{c}}</view></view><view class="info-card data-v-dc707034"><view class="card-title data-v-dc707034">订单信息</view><view class="info-item data-v-dc707034"><text class="label data-v-dc707034">订单号</text><text class="value data-v-dc707034">{{d}}</text></view><view class="info-item data-v-dc707034"><text class="label data-v-dc707034">设备号</text><text class="value data-v-dc707034">{{e}}</text></view><view class="info-item data-v-dc707034"><text class="label data-v-dc707034">支付方式</text><text class="value data-v-dc707034">{{f}}</text></view><view class="info-item data-v-dc707034"><text class="label data-v-dc707034">创建时间</text><text class="value data-v-dc707034">{{g}}</text></view><view class="info-item data-v-dc707034"><text class="label data-v-dc707034">开始时间</text><text class="value data-v-dc707034">{{h}}</text></view><view wx:if="{{i}}" class="info-item data-v-dc707034"><text class="label data-v-dc707034">结束时间</text><text class="value data-v-dc707034">{{j}}</text></view><view wx:if="{{k}}" class="info-item data-v-dc707034"><text class="label data-v-dc707034">联系电话</text><text class="value data-v-dc707034">{{l}}</text></view></view><view class="info-card data-v-dc707034"><view class="card-title data-v-dc707034">费用信息</view><view wx:if="{{m}}" class="info-item data-v-dc707034"><text class="label data-v-dc707034">押金</text><text class="value data-v-dc707034">¥{{n}}</text></view><view wx:if="{{o}}" class="info-item data-v-dc707034"><text class="label data-v-dc707034">套餐</text><text class="value data-v-dc707034">¥{{p}}元 / {{q}}</text></view><view class="info-item total data-v-dc707034"><text class="label data-v-dc707034">合计</text><text class="value data-v-dc707034">¥{{r}}</text></view></view><view wx:if="{{s}}" class="action-buttons data-v-dc707034"><view class="btn cancel data-v-dc707034" bindtap="{{t}}">取消订单</view><view class="btn primary data-v-dc707034" bindtap="{{v}}">立即支付</view></view><view wx:elif="{{w}}" class="action-buttons data-v-dc707034"><view class="btn primary data-v-dc707034" bindtap="{{x}}">归还设备</view></view></view>
|
||||
@@ -0,0 +1 @@
|
||||
.details-container.data-v-dc707034{min-height:100vh;background:#f7f8fa;padding:30rpx 30rpx 100rpx;box-sizing:border-box}.details-container .status-card.data-v-dc707034{background:#fff;border-radius:20rpx;padding:40rpx;display:flex;flex-direction:column;align-items:center;margin-bottom:30rpx;box-shadow:0 4rpx 16rpx rgba(0,0,0,.04)}.details-container .status-card .status-icon.data-v-dc707034{width:120rpx;height:120rpx;border-radius:50%;margin-bottom:20rpx}.details-container .status-card .status-icon.status-waiting.data-v-dc707034{background:#fff9c4}.details-container .status-card .status-icon.status-using.data-v-dc707034{background:#e8f5e9}.details-container .status-card .status-icon.status-finished.data-v-dc707034{background:#e3f2fd}.details-container .status-card .status-icon.status-cancelled.data-v-dc707034{background:#ffebee}.details-container .status-card .status-text.data-v-dc707034{font-size:36rpx;font-weight:600;color:#333;margin-bottom:10rpx}.details-container .status-card .status-desc.data-v-dc707034{font-size:28rpx;color:#999}.details-container .info-card.data-v-dc707034{background:#fff;border-radius:20rpx;padding:30rpx;margin-bottom:30rpx;box-shadow:0 4rpx 16rpx rgba(0,0,0,.04)}.details-container .info-card .card-title.data-v-dc707034{font-size:32rpx;font-weight:600;color:#333;margin-bottom:20rpx;position:relative;padding-left:20rpx}.details-container .info-card .card-title.data-v-dc707034:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:8rpx;height:32rpx;background:#1976d2;border-radius:4rpx}.details-container .info-card .info-item.data-v-dc707034{display:flex;justify-content:space-between;align-items:center;padding:20rpx 0;border-bottom:1px solid #f5f5f5}.details-container .info-card .info-item.data-v-dc707034:last-child{border-bottom:none}.details-container .info-card .info-item .label.data-v-dc707034{font-size:28rpx;color:#666}.details-container .info-card .info-item .value.data-v-dc707034{font-size:28rpx;color:#333;word-break:break-all;text-align:right;max-width:70%}.details-container .info-card .info-item.total.data-v-dc707034{margin-top:10rpx;padding-top:30rpx;border-top:1px solid #f5f5f5}.details-container .info-card .info-item.total .label.data-v-dc707034,.details-container .info-card .info-item.total .value.data-v-dc707034{font-size:32rpx;font-weight:600;color:#333}.details-container .info-card .info-item.total .value.data-v-dc707034{color:#ff5722}.details-container .action-buttons.data-v-dc707034{display:flex;justify-content:space-between;padding:30rpx 0}.details-container .action-buttons .btn.data-v-dc707034{flex:1;height:88rpx;display:flex;align-items:center;justify-content:center;font-size:32rpx;font-weight:500;border-radius:44rpx}.details-container .action-buttons .btn.cancel.data-v-dc707034{background:#f5f5f5;color:#666;margin-right:20rpx}.details-container .action-buttons .btn.primary.data-v-dc707034{background:#1976d2;color:#fff}.details-container .action-buttons .btn.data-v-dc707034:active{opacity:.9}
|
||||
+1
-1
@@ -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 r=t.ref(0),o=t.ref([]),d=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"}}),n=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"};o.value=[s,...o.value];const r=n.findIndex((e=>e.status.includes(t.orderStatus)));-1!==r&&i(r)}}catch(e){console.error("获取订单详情失败:",e)}await c()}));const i=async t=>{r.value=t;const e=n[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&&(o.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(n,((e,a,s)=>({a:t.t(e.text),b:a,c:r.value===a?1:"",d:t.o((t=>i(a)),a)}))),b:0===o.value.length},(o.value.length,{}),{c:t.f(o.value,((s,o,i)=>{var u,l;return t.e({a:t.t(s.orderNo),b:t.t(null==(u=d[s.orderStatus])?void 0:u.text),c:t.n(null==(l=d[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:"in_used"==s.status},"in_used"==s.status?{k:t.o((e=>{return a=s.deviceId,r=s.orderId,console.log(r),void t.index.navigateTo({url:`/pages/return/index?deviceId=${a}&orderId=${r}`});var a,r}),o)}:{},{l:"waiting_for_payment"===s.status},"waiting_for_payment"===s.status?{m:t.o((e=>(async e=>{try{200===(await a.getOrderByOrderNoScorePayStatus(e.orderNo)).code&&(t.index.showToast({title:"状态同步成功",icon:"success"}),await c(n[r.value].status))}catch(s){t.index.showToast({title:"同步状态失败",icon:"none"})}})(s)),o)}:{},{n:o})}))})}},r=t._export_sfc(s,[["__scopeId","data-v-37e5b6af"]]);wx.createPage(r);
|
||||
"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);
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<view class="order-container data-v-37e5b6af"><view class="status-tabs data-v-37e5b6af"><view wx:for="{{a}}" wx:for-item="tab" wx:key="b" class="{{['tab-item', 'data-v-37e5b6af', tab.c && 'active']}}" bindtap="{{tab.d}}">{{tab.a}}</view></view><view class="order-list data-v-37e5b6af"><view wx:if="{{b}}" class="empty-state data-v-37e5b6af"><view class="empty-icon data-v-37e5b6af"></view><text class="empty-text data-v-37e5b6af">暂无订单记录</text></view><view wx:for="{{c}}" wx:for-item="order" wx:key="n" class="order-item data-v-37e5b6af"><view class="order-header data-v-37e5b6af"><view class="order-id data-v-37e5b6af"><text class="data-v-37e5b6af">订单号:{{order.a}}</text></view><view class="{{['order-status', 'data-v-37e5b6af', order.c]}}">{{order.b}}</view></view><view class="order-body data-v-37e5b6af"><view class="device-info data-v-37e5b6af"><view class="device-left data-v-37e5b6af"><view class="device-name data-v-37e5b6af">共享风扇</view><view class="device-id data-v-37e5b6af">设备号:{{order.d}}</view></view><view class="device-right data-v-37e5b6af"><view wx:if="{{order.e}}" class="payment-badge wx-score data-v-37e5b6af"><image src="{{order.f}}" mode="aspectFit" class="badge-icon data-v-37e5b6af"></image><view class="badge-text data-v-37e5b6af"><text class="data-v-37e5b6af">微信支付分</text><text class="divider data-v-37e5b6af">|</text><text class="highlight data-v-37e5b6af">免押租借</text></view></view><view wx:else class="payment-badge deposit data-v-37e5b6af"><text class="badge-text data-v-37e5b6af">押金租借</text></view></view></view><view class="order-times data-v-37e5b6af"><view class="time-row data-v-37e5b6af"><text class="time-label data-v-37e5b6af">开始时间:</text><text class="time-value data-v-37e5b6af">{{order.g}}</text></view><view class="time-row data-v-37e5b6af"><text class="time-label data-v-37e5b6af">结束时间:</text><text class="time-value data-v-37e5b6af">{{order.h}}</text></view></view></view><view class="order-footer data-v-37e5b6af"><view class="price data-v-37e5b6af">¥{{order.i}}</view><view class="actions data-v-37e5b6af"><view wx:if="{{order.j}}" class="action-item primary data-v-37e5b6af" bindtap="{{order.k}}"> 归还设备 </view><view wx:if="{{order.l}}" class="action-item secondary data-v-37e5b6af" bindtap="{{order.m}}"> 同步订单状态 </view></view></view></view></view></view>
|
||||
<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>
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
<view class="payment-container data-v-5c44f5c0"><view class="status-card data-v-5c44f5c0"><view class="{{['status-icon', 'data-v-5c44f5c0', a]}}"></view><view class="status-text data-v-5c44f5c0">{{b}}</view><view class="status-desc data-v-5c44f5c0">{{c}}</view></view><view class="order-card data-v-5c44f5c0"><view class="card-title data-v-5c44f5c0">订单信息</view><view class="info-item data-v-5c44f5c0"><text class="label data-v-5c44f5c0">订单号</text><text class="value data-v-5c44f5c0">{{d}}</text></view><view class="info-item data-v-5c44f5c0"><text class="label data-v-5c44f5c0">设备号</text><text class="value data-v-5c44f5c0">{{e}}</text></view><view class="info-item data-v-5c44f5c0"><text class="label data-v-5c44f5c0">创建时间</text><text class="value data-v-5c44f5c0">{{f}}</text></view><view class="info-item data-v-5c44f5c0"><text class="label data-v-5c44f5c0">联系电话</text><text class="value data-v-5c44f5c0">{{g}}</text></view></view><view class="price-card data-v-5c44f5c0"><view class="card-title data-v-5c44f5c0">费用信息</view><view class="price-item data-v-5c44f5c0"><text class="label data-v-5c44f5c0">押金</text><text class="value data-v-5c44f5c0">¥{{h}}</text></view><view class="price-item data-v-5c44f5c0"><text class="label data-v-5c44f5c0">套餐</text><text class="value data-v-5c44f5c0">{{i}}元/{{j}}小时</text></view><view class="price-item total data-v-5c44f5c0"><text class="label data-v-5c44f5c0">合计</text><text class="value data-v-5c44f5c0">¥{{k}}</text></view></view><view class="bottom-bar data-v-5c44f5c0"><view class="total-amount data-v-5c44f5c0"><text class="data-v-5c44f5c0">合计:</text><text class="amount data-v-5c44f5c0">¥{{l}}</text></view><button class="pay-btn data-v-5c44f5c0" bindtap="{{m}}">立即支付</button></view></view>
|
||||
<view class="payment-container data-v-9930ec32"><view class="status-card data-v-9930ec32"><view class="{{['status-icon', 'data-v-9930ec32', a]}}"></view><view class="status-text data-v-9930ec32">{{b}}</view><view class="status-desc data-v-9930ec32">{{c}}</view></view><view class="order-card data-v-9930ec32"><view class="card-title data-v-9930ec32">订单信息</view><view class="info-item data-v-9930ec32"><text class="label data-v-9930ec32">订单号</text><text class="value data-v-9930ec32">{{d}}</text></view><view class="info-item data-v-9930ec32"><text class="label data-v-9930ec32">设备号</text><text class="value data-v-9930ec32">{{e}}</text></view><view class="info-item data-v-9930ec32"><text class="label data-v-9930ec32">创建时间</text><text class="value data-v-9930ec32">{{f}}</text></view><view class="info-item data-v-9930ec32"><text class="label data-v-9930ec32">联系电话</text><text class="value data-v-9930ec32">{{g}}</text></view></view><view class="price-card data-v-9930ec32"><view class="card-title data-v-9930ec32">费用信息</view><view class="price-item data-v-9930ec32"><text class="label data-v-9930ec32">押金</text><text class="value data-v-9930ec32">¥{{h}}</text></view><view class="price-item data-v-9930ec32"><text class="label data-v-9930ec32">套餐</text><text class="value data-v-9930ec32">{{i}}元/{{j}}小时</text></view><view class="price-item total data-v-9930ec32"><text class="label data-v-9930ec32">合计</text><text class="value data-v-9930ec32">¥{{k}}</text></view></view><view class="bottom-bar data-v-9930ec32"><view class="total-amount data-v-9930ec32"><text class="data-v-9930ec32">合计:</text><text class="amount data-v-9930ec32">¥{{l}}</text></view><view class="pay-btn data-v-9930ec32" bindtap="{{m}}">立即支付</view></view></view>
|
||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
"use strict";const e=require("../../common/vendor.js"),t=require("../../config/user.js"),r=require("../../config/url.js"),o={data:()=>({orderId:"",orderInfo:{orderNo:"",deviceNo:"",usedTime:"",currentFee:"0.00",deposit:"99.00",refundAmount:"99.00",endTime:"",withdrawStatus:"waiting",isWithdrawn:!1}}),onLoad(t){t&&t.orderId?(this.orderId=t.orderId,this.loadOrderInfo()):(e.index.showToast({title:"订单ID不能为空",icon:"none"}),setTimeout((()=>{this.goToHome()}),1500))},methods:{getWithdrawStatusText(){return{waiting:"待申请",processing:"处理中",success:"已退款",failed:"退款失败"}[this.orderInfo.withdrawStatus]||"待申请"},async loadOrderInfo(){try{e.index.showLoading({title:"加载中"});const o=await t.queryById(this.orderId);if(200!==o.code||!o.data)throw new Error(o.msg||"获取订单信息失败");{const e=o.data;let t=60,n=0,d=0,i="0.00",a="0.00";if(e.remark)try{const r=e.remark,o=r.match(/使用时长:(\d+)分钟/);o&&o[1]&&(d=parseInt(o[1]));const s=r.match(/套餐时长:(\d+)分钟/);s&&s[1]&&(t=parseInt(s[1]));const c=r.match(/超出时长:(\d+)分钟/);c&&c[1]&&(n=parseInt(c[1]));const h=r.match(/套餐费用:([\d.]+)元/);h&&h[1]&&(i=h[1]);const u=r.match(/超时费用:([\d.]+)元/);u&&u[1]&&(a=u[1]),console.log("从remark解析到的信息:",{usedMinutes:d,packageMinutes:t,extraMinutes:n,packagePrice:i,extraFee:a})}catch(r){console.error("解析remark字段失败:",r)}this.orderInfo={orderNo:e.orderNo||"",deviceNo:e.deviceNo||"",usedTime:d+"分钟",packageTime:t+"分钟",extraTime:n+"分钟",packagePrice:i,extraFee:a,currentFee:e.actualDeviceAmount||"0.00",deposit:e.depositAmount||"99.00",refundAmount:e.residueAmount||"99.00",endTime:e.endTime||"",withdrawStatus:e.withdrawStatus||"waiting",isWithdrawn:"success"===e.withdrawStatus}}}catch(o){console.error("加载订单信息错误:",o),e.index.showToast({title:o.message||"获取订单信息失败",icon:"none"})}finally{e.index.hideLoading()}},async handleWithdraw(){try{e.index.showLoading({title:"处理中"});const t=await e.index.request({url:`${r.URL||"http://127.0.0.1:8080"}/app/withdraw/add/${this.orderInfo.orderNo}`,method:"GET",header:{"Content-Type":"application/json",Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(200!==t.statusCode||200!==t.data.code)throw new Error(t.data.msg||"退款申请失败");e.index.showToast({title:"退款申请成功",icon:"success"}),this.orderInfo.withdrawStatus="processing",this.orderInfo.isWithdrawn=!0,setTimeout((()=>{this.loadOrderInfo()}),1500)}catch(t){console.error("退款申请错误:",t),e.index.showToast({title:t.message||"退款申请失败",icon:"none"})}finally{e.index.hideLoading()}},goToHome(){e.index.reLaunch({url:"/pages/index/index"})}}};const n=e._export_sfc(o,[["render",function(t,r,o,n,d,i){return e.e({a:e.t(d.orderInfo.orderNo||"-"),b:e.t(d.orderInfo.deviceNo||"-"),c:e.t(d.orderInfo.usedTime||"-"),d:e.t(d.orderInfo.packageTime||"1小时"),e:e.t(d.orderInfo.extraTime||"0分钟"),f:e.t(d.orderInfo.endTime||"-"),g:e.t(d.orderInfo.packagePrice||"0.00"),h:e.t(d.orderInfo.extraFee||"0.00"),i:e.t(d.orderInfo.currentFee||"0.00"),j:e.t(d.orderInfo.deposit||"99.00"),k:e.t(d.orderInfo.refundAmount||"99.00"),l:e.t(i.getWithdrawStatusText()),m:e.n(d.orderInfo.withdrawStatus||"waiting"),n:!d.orderInfo.isWithdrawn&&d.orderInfo.refundAmount>0},!d.orderInfo.isWithdrawn&&d.orderInfo.refundAmount>0?{o:e.o(((...e)=>i.handleWithdraw&&i.handleWithdraw(...e)))}:{},{p:e.o(((...e)=>i.goToHome&&i.goToHome(...e)))})}],["__scopeId","data-v-42c00aae"]]);wx.createPage(n);
|
||||
"use strict";const e=require("../../common/vendor.js"),t=require("../../config/user.js"),r=require("../../config/url.js"),o={data:()=>({orderId:"",orderInfo:{orderNo:"",deviceNo:"",usedTime:"",currentFee:"0.00",deposit:"99.00",refundAmount:"99.00",endTime:"",withdrawStatus:"waiting",isWithdrawn:!1}}),onLoad(t){t&&t.orderId?(this.orderId=t.orderId,this.loadOrderInfo()):(e.index.showToast({title:"订单ID不能为空",icon:"none"}),setTimeout((()=>{this.goToHome()}),1500))},methods:{getWithdrawStatusText(){return{waiting:"待申请",processing:"处理中",success:"已退款",failed:"退款失败"}[this.orderInfo.withdrawStatus]||"待申请"},async loadOrderInfo(){try{e.index.showLoading({title:"加载中"});const o=await t.queryById(this.orderId);if(200!==o.code||!o.data)throw new Error(o.msg||"获取订单信息失败");{const e=o.data;let t=60,n=0,d=0,i="0.00",a="0.00";if(e.remark)try{const r=e.remark,o=r.match(/使用时长:(\d+)分钟/);o&&o[1]&&(d=parseInt(o[1]));const s=r.match(/套餐时长:(\d+)分钟/);s&&s[1]&&(t=parseInt(s[1]));const c=r.match(/超出时长:(\d+)分钟/);c&&c[1]&&(n=parseInt(c[1]));const h=r.match(/套餐费用:([\d.]+)元/);h&&h[1]&&(i=h[1]);const u=r.match(/超时费用:([\d.]+)元/);u&&u[1]&&(a=u[1]),console.log("从remark解析到的信息:",{usedMinutes:d,packageMinutes:t,extraMinutes:n,packagePrice:i,extraFee:a})}catch(r){console.error("解析remark字段失败:",r)}this.orderInfo={orderNo:e.orderNo||"",deviceNo:e.deviceNo||"",usedTime:d+"分钟",packageTime:t+"分钟",extraTime:n+"分钟",packagePrice:i,extraFee:a,currentFee:e.actualDeviceAmount||"0.00",deposit:e.depositAmount||"99.00",refundAmount:e.residueAmount||"99.00",endTime:e.endTime||"",withdrawStatus:e.withdrawStatus||"waiting",isWithdrawn:"success"===e.withdrawStatus}}}catch(o){console.error("加载订单信息错误:",o),e.index.showToast({title:o.message||"获取订单信息失败",icon:"none"})}finally{e.index.hideLoading()}},async handleWithdraw(){try{e.index.showLoading({title:"处理中"});const t=await e.index.request({url:`${r.URL||"http://127.0.0.1:8080"}/app/withdraw/add/${this.orderInfo.orderNo}`,method:"GET",header:{"Content-Type":"application/json",Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(200!==t.statusCode||200!==t.data.code)throw new Error(t.data.msg||"退款申请失败");e.index.showToast({title:"退款申请成功",icon:"success"}),this.orderInfo.withdrawStatus="processing",this.orderInfo.isWithdrawn=!0,setTimeout((()=>{this.loadOrderInfo()}),1500)}catch(t){console.error("退款申请错误:",t),e.index.showToast({title:t.message||"退款申请失败",icon:"none"})}finally{e.index.hideLoading()}},goToHome(){e.index.reLaunch({url:"/pages/index/index"})}}};const n=e._export_sfc(o,[["render",function(t,r,o,n,d,i){return e.e({a:e.t(d.orderInfo.orderNo||"-"),b:e.t(d.orderInfo.deviceNo||"-"),c:e.t(d.orderInfo.usedTime||"-"),d:e.t(d.orderInfo.packageTime||"1小时"),e:e.t(d.orderInfo.extraTime||"0分钟"),f:e.t(d.orderInfo.endTime||"-"),g:e.t(d.orderInfo.packagePrice||"0.00"),h:e.t(d.orderInfo.extraFee||"0.00"),i:e.t(d.orderInfo.currentFee||"0.00"),j:e.t(d.orderInfo.deposit||"99.00"),k:e.t(d.orderInfo.refundAmount||"99.00"),l:e.t(i.getWithdrawStatusText()),m:e.n(d.orderInfo.withdrawStatus||"waiting"),n:!d.orderInfo.isWithdrawn&&d.orderInfo.refundAmount>0},!d.orderInfo.isWithdrawn&&d.orderInfo.refundAmount>0?{o:e.o(((...e)=>i.handleWithdraw&&i.handleWithdraw(...e)))}:{},{p:e.o(((...e)=>i.goToHome&&i.goToHome(...e)))})}],["__scopeId","data-v-ef3c1c80"]]);wx.createPage(n);
|
||||
|
||||
@@ -1 +1 @@
|
||||
<view class="success-container data-v-42c00aae"><view class="status-card data-v-42c00aae"><view class="status-icon success data-v-42c00aae"></view><view class="status-text data-v-42c00aae">归还成功</view><view class="status-desc data-v-42c00aae">您的充电宝已归还,费用已从押金中扣除</view></view><view class="order-card data-v-42c00aae"><view class="card-title data-v-42c00aae">订单信息</view><view class="info-item data-v-42c00aae"><text class="label data-v-42c00aae">订单号</text><text class="value data-v-42c00aae">{{a}}</text></view><view class="info-item data-v-42c00aae"><text class="label data-v-42c00aae">设备号</text><text class="value data-v-42c00aae">{{b}}</text></view><view class="info-item data-v-42c00aae"><text class="label data-v-42c00aae">使用时长</text><text class="value data-v-42c00aae">{{c}}</text></view><view class="info-item data-v-42c00aae"><text class="label data-v-42c00aae">套餐时长</text><text class="value data-v-42c00aae">{{d}}</text></view><view class="info-item data-v-42c00aae"><text class="label data-v-42c00aae">超出时长</text><text class="value data-v-42c00aae">{{e}}</text></view><view class="info-item data-v-42c00aae"><text class="label data-v-42c00aae">归还时间</text><text class="value data-v-42c00aae">{{f}}</text></view></view><view class="refund-card data-v-42c00aae"><view class="card-title data-v-42c00aae">费用信息</view><view class="info-item data-v-42c00aae"><text class="label data-v-42c00aae">套餐费用</text><text class="value data-v-42c00aae">¥{{g}}</text></view><view class="info-item data-v-42c00aae"><text class="label data-v-42c00aae">超时费用</text><text class="value data-v-42c00aae">¥{{h}}</text></view><view class="info-item data-v-42c00aae"><text class="label data-v-42c00aae">总费用</text><text class="value data-v-42c00aae">¥{{i}}</text></view><view class="info-item data-v-42c00aae"><text class="label data-v-42c00aae">押金</text><text class="value data-v-42c00aae">¥{{j}}</text></view><view class="info-item data-v-42c00aae"><text class="label data-v-42c00aae">退还金额</text><text class="value highlight data-v-42c00aae">¥{{k}}</text></view><view class="info-item data-v-42c00aae"><text class="label data-v-42c00aae">退还状态</text><text class="{{['value', 'data-v-42c00aae', m]}}">{{l}}</text></view></view><view class="notice-card data-v-42c00aae"><view class="card-title data-v-42c00aae">退款说明</view><view class="notice-content data-v-42c00aae"><text class="data-v-42c00aae">1. 押金剩余金额需要您手动申请提现</text><text class="data-v-42c00aae">2. 提现申请提交后将在1-3个工作日内退还到原支付账户</text><text class="data-v-42c00aae">3. 如有疑问,请联系客服</text></view></view><view class="button-group data-v-42c00aae"><button wx:if="{{n}}" class="primary-btn data-v-42c00aae" bindtap="{{o}}">申请退款</button><button class="primary-btn data-v-42c00aae" bindtap="{{p}}">返回首页</button></view></view>
|
||||
<view class="success-container data-v-ef3c1c80"><view class="status-card data-v-ef3c1c80"><view class="status-icon success data-v-ef3c1c80"></view><view class="status-text data-v-ef3c1c80">归还成功</view><view class="status-desc data-v-ef3c1c80">您的风扇已归还,费用已从押金中扣除</view></view><view class="order-card data-v-ef3c1c80"><view class="card-title data-v-ef3c1c80">订单信息</view><view class="info-item data-v-ef3c1c80"><text class="label data-v-ef3c1c80">订单号</text><text class="value data-v-ef3c1c80">{{a}}</text></view><view class="info-item data-v-ef3c1c80"><text class="label data-v-ef3c1c80">设备号</text><text class="value data-v-ef3c1c80">{{b}}</text></view><view class="info-item data-v-ef3c1c80"><text class="label data-v-ef3c1c80">使用时长</text><text class="value data-v-ef3c1c80">{{c}}</text></view><view class="info-item data-v-ef3c1c80"><text class="label data-v-ef3c1c80">套餐时长</text><text class="value data-v-ef3c1c80">{{d}}</text></view><view class="info-item data-v-ef3c1c80"><text class="label data-v-ef3c1c80">超出时长</text><text class="value data-v-ef3c1c80">{{e}}</text></view><view class="info-item data-v-ef3c1c80"><text class="label data-v-ef3c1c80">归还时间</text><text class="value data-v-ef3c1c80">{{f}}</text></view></view><view class="refund-card data-v-ef3c1c80"><view class="card-title data-v-ef3c1c80">费用信息</view><view class="info-item data-v-ef3c1c80"><text class="label data-v-ef3c1c80">套餐费用</text><text class="value data-v-ef3c1c80">¥{{g}}</text></view><view class="info-item data-v-ef3c1c80"><text class="label data-v-ef3c1c80">超时费用</text><text class="value data-v-ef3c1c80">¥{{h}}</text></view><view class="info-item data-v-ef3c1c80"><text class="label data-v-ef3c1c80">总费用</text><text class="value data-v-ef3c1c80">¥{{i}}</text></view><view class="info-item data-v-ef3c1c80"><text class="label data-v-ef3c1c80">押金</text><text class="value data-v-ef3c1c80">¥{{j}}</text></view><view class="info-item data-v-ef3c1c80"><text class="label data-v-ef3c1c80">退还金额</text><text class="value highlight data-v-ef3c1c80">¥{{k}}</text></view><view class="info-item data-v-ef3c1c80"><text class="label data-v-ef3c1c80">退还状态</text><text class="{{['value', 'data-v-ef3c1c80', m]}}">{{l}}</text></view></view><view class="notice-card data-v-ef3c1c80"><view class="card-title data-v-ef3c1c80">退款说明</view><view class="notice-content data-v-ef3c1c80"><text class="data-v-ef3c1c80">1. 押金剩余金额需要您手动申请提现</text><text class="data-v-ef3c1c80">2. 提现申请提交后将在1-3个工作日内退还到原支付账户</text><text class="data-v-ef3c1c80">3. 如有疑问,请联系客服</text></view></view><view class="button-group data-v-ef3c1c80"><button wx:if="{{n}}" class="primary-btn data-v-ef3c1c80" bindtap="{{o}}">申请退款</button><button class="primary-btn data-v-ef3c1c80" bindtap="{{p}}">返回首页</button></view></view>
|
||||
@@ -1 +1 @@
|
||||
.success-container.data-v-42c00aae{padding:20px;background-color:#f8f8f8;min-height:100vh}.status-card.data-v-42c00aae{background-color:#fff;border-radius:12px;padding:30px;text-align:center;margin-bottom:20px;box-shadow:0 2px 8px rgba(0,0,0,.04)}.status-card .status-icon.data-v-42c00aae{width:60px;height:60px;margin:0 auto 16px}.status-card .status-icon.success.data-v-42c00aae{background-color:#07c160;border-radius:50%;position:relative}.status-card .status-icon.success.data-v-42c00aae:after{content:"";position:absolute;left:50%;top:50%;width:30px;height:20px;border:3px solid #fff;border-top:none;border-right:none;transform-origin:center;transform:translate(-50%,-70%) rotate(-45deg)}.status-card .status-text.data-v-42c00aae{font-size:24px;font-weight:700;color:#07c160;margin-bottom:8px}.status-card .status-desc.data-v-42c00aae{font-size:14px;color:#666}.order-card.data-v-42c00aae,.refund-card.data-v-42c00aae{background-color:#fff;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 2px 8px rgba(0,0,0,.04)}.order-card .card-title.data-v-42c00aae,.refund-card .card-title.data-v-42c00aae{font-size:16px;font-weight:700;margin-bottom:16px;color:#333;border-bottom:1px solid #f0f0f0;padding-bottom:10px}.order-card .info-item.data-v-42c00aae,.refund-card .info-item.data-v-42c00aae{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.order-card .info-item.data-v-42c00aae:last-child,.refund-card .info-item.data-v-42c00aae:last-child{margin-bottom:0}.order-card .info-item .label.data-v-42c00aae,.refund-card .info-item .label.data-v-42c00aae{color:#666;font-size:14px}.order-card .info-item .value.data-v-42c00aae,.refund-card .info-item .value.data-v-42c00aae{color:#333;font-size:14px}.order-card .info-item .value.highlight.data-v-42c00aae,.refund-card .info-item .value.highlight.data-v-42c00aae{color:#ff6b00;font-weight:700;font-size:16px}.order-card .info-item .value.success.data-v-42c00aae,.refund-card .info-item .value.success.data-v-42c00aae{color:#07c160}.button-group.data-v-42c00aae{margin-top:40rpx;display:flex;justify-content:center;gap:20rpx}.button-group .primary-btn.data-v-42c00aae,.button-group .secondary-btn.data-v-42c00aae{width:50%;height:88rpx;line-height:88rpx;border-radius:44rpx;text-align:center;font-size:32rpx}.button-group .primary-btn.data-v-42c00aae{background:#07c160;color:#fff}.button-group .primary-btn.data-v-42c00aae:active{opacity:.8}.button-group .secondary-btn.data-v-42c00aae{background:#f0f0f0;color:#333}.button-group .secondary-btn.data-v-42c00aae:active{opacity:.8}.notice-card.data-v-42c00aae{background-color:#fff;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 2px 8px rgba(0,0,0,.04)}.notice-card .card-title.data-v-42c00aae{font-size:16px;font-weight:700;margin-bottom:16px;color:#333;border-bottom:1px solid #f0f0f0;padding-bottom:10px}.notice-card .notice-content.data-v-42c00aae{text-align:left;color:#666;font-size:14px}.waiting.data-v-42c00aae{color:#fa0;font-weight:700}
|
||||
.success-container.data-v-ef3c1c80{padding:20px;background-color:#f8f8f8;min-height:100vh}.status-card.data-v-ef3c1c80{background-color:#fff;border-radius:12px;padding:30px;text-align:center;margin-bottom:20px;box-shadow:0 2px 8px rgba(0,0,0,.04)}.status-card .status-icon.data-v-ef3c1c80{width:60px;height:60px;margin:0 auto 16px}.status-card .status-icon.success.data-v-ef3c1c80{background-color:#07c160;border-radius:50%;position:relative}.status-card .status-icon.success.data-v-ef3c1c80:after{content:"";position:absolute;left:50%;top:50%;width:30px;height:20px;border:3px solid #fff;border-top:none;border-right:none;transform-origin:center;transform:translate(-50%,-70%) rotate(-45deg)}.status-card .status-text.data-v-ef3c1c80{font-size:24px;font-weight:700;color:#07c160;margin-bottom:8px}.status-card .status-desc.data-v-ef3c1c80{font-size:14px;color:#666}.order-card.data-v-ef3c1c80,.refund-card.data-v-ef3c1c80{background-color:#fff;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 2px 8px rgba(0,0,0,.04)}.order-card .card-title.data-v-ef3c1c80,.refund-card .card-title.data-v-ef3c1c80{font-size:16px;font-weight:700;margin-bottom:16px;color:#333;border-bottom:1px solid #f0f0f0;padding-bottom:10px}.order-card .info-item.data-v-ef3c1c80,.refund-card .info-item.data-v-ef3c1c80{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.order-card .info-item.data-v-ef3c1c80:last-child,.refund-card .info-item.data-v-ef3c1c80:last-child{margin-bottom:0}.order-card .info-item .label.data-v-ef3c1c80,.refund-card .info-item .label.data-v-ef3c1c80{color:#666;font-size:14px}.order-card .info-item .value.data-v-ef3c1c80,.refund-card .info-item .value.data-v-ef3c1c80{color:#333;font-size:14px}.order-card .info-item .value.highlight.data-v-ef3c1c80,.refund-card .info-item .value.highlight.data-v-ef3c1c80{color:#ff6b00;font-weight:700;font-size:16px}.order-card .info-item .value.success.data-v-ef3c1c80,.refund-card .info-item .value.success.data-v-ef3c1c80{color:#07c160}.button-group.data-v-ef3c1c80{margin-top:40rpx;display:flex;justify-content:center;gap:20rpx}.button-group .primary-btn.data-v-ef3c1c80,.button-group .secondary-btn.data-v-ef3c1c80{width:50%;height:88rpx;line-height:88rpx;border-radius:44rpx;text-align:center;font-size:32rpx}.button-group .primary-btn.data-v-ef3c1c80{background:#07c160;color:#fff}.button-group .primary-btn.data-v-ef3c1c80:active{opacity:.8}.button-group .secondary-btn.data-v-ef3c1c80{background:#f0f0f0;color:#333}.button-group .secondary-btn.data-v-ef3c1c80:active{opacity:.8}.notice-card.data-v-ef3c1c80{background-color:#fff;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 2px 8px rgba(0,0,0,.04)}.notice-card .card-title.data-v-ef3c1c80{font-size:16px;font-weight:700;margin-bottom:16px;color:#333;border-bottom:1px solid #f0f0f0;padding-bottom:10px}.notice-card .notice-content.data-v-ef3c1c80{text-align:left;color:#666;font-size:14px}.waiting.data-v-ef3c1c80{color:#fa0;font-weight:700}
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
"use strict";const e=require("../../common/vendor.js"),o=require("../../config/user.js"),r={data:()=>({orderId:"",orderInfo:{},isLoading:!0,deviceMessage:"正在准备您的设备,请稍候...",hasTriggeredDevice:!1}),onLoad(o){o&&o.orderId?(this.orderId=o.orderId,this.loadOrderInfo(),e.index.$once("orderSuccess:"+this.orderId,(()=>{console.log("已经触发过弹出逻辑,不再重复触发"),this.hasTriggeredDevice=!0}))):(e.index.showToast({title:"订单信息不存在",icon:"none"}),setTimeout((()=>{this.goToHome()}),1500))},methods:{async loadOrderInfo(){try{e.index.showLoading({title:"加载中"});const r=await o.queryById(this.orderId);if(200!==r.code||!r.data)throw new Error("获取订单信息失败");{const o=r.data;this.orderInfo={orderNo:o.orderNo||o.orderId,deviceNo:o.deviceNo,amount:o.payAmount||o.amount,payTime:o.payTime||this.formatTime(new Date)},"IN_USED"===o.orderStatus?(this.deviceMessage="设备已弹出,请取走您的充电宝",this.isLoading=!1,this.hasTriggeredDevice||(e.index.$emit("orderSuccess:"+this.orderId),this.hasTriggeredDevice=!0)):this.triggerDeviceEject()}e.index.hideLoading()}catch(r){e.index.hideLoading(),e.index.showToast({title:r.message||"获取订单信息失败",icon:"none"})}},async triggerDeviceEject(){if(this.hasTriggeredDevice)console.log("已经触发过弹出充电宝,不重复触发");else{this.hasTriggeredDevice=!0,e.index.$emit("orderSuccess:"+this.orderId),this.isLoading=!0,this.deviceMessage="正在准备您的设备,请稍候...";try{console.log(`准备触发弹出充电宝,orderId: ${this.orderId}`);const r=await o.confirmPaymentAndRent(this.orderId);if(console.log("确认支付并弹出充电宝结果:",JSON.stringify(r)),!r||200!==r.code)throw new Error(r&&r.msg||"弹出充电宝失败");this.deviceMessage="设备已弹出,请取走您的充电宝",e.index.showToast({title:"充电宝已弹出",icon:"success"})}catch(r){console.error("弹出充电宝错误:",r),this.deviceMessage="弹出设备失败,请联系客服",e.index.showToast({title:r.message||"弹出充电宝失败,请联系客服",icon:"none"})}finally{this.isLoading=!1}}},formatTime:e=>`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")} ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}:${e.getSeconds().toString().padStart(2,"0")}`,goToHome(){e.index.switchTab({url:"/pages/index/index"})},goToOrderList(){e.index.redirectTo({url:"/pages/order/index"})}}};const i=e._export_sfc(r,[["render",function(o,r,i,t,d,s){return e.e({a:e.t(d.orderInfo.orderNo||"-"),b:e.t(d.orderInfo.deviceNo||"-"),c:e.t(d.orderInfo.amount||"0.00"),d:e.t(d.orderInfo.payTime||"-"),e:e.t(d.deviceMessage),f:d.isLoading},(d.isLoading,{}),{g:e.o(((...e)=>s.goToHome&&s.goToHome(...e))),h:e.o(((...e)=>s.goToOrderList&&s.goToOrderList(...e)))})}],["__scopeId","data-v-174f45e8"]]);wx.createPage(i);
|
||||
"use strict";const e=require("../../common/vendor.js"),o=require("../../config/user.js"),r={data:()=>({orderId:"",orderInfo:{},isLoading:!0,deviceMessage:"正在准备您的设备,请稍候...",hasTriggeredDevice:!1}),onLoad(o){o&&o.orderId?(this.orderId=o.orderId,this.loadOrderInfo(),e.index.$once("orderSuccess:"+this.orderId,(()=>{console.log("已经触发过弹出逻辑,不再重复触发"),this.hasTriggeredDevice=!0}))):(e.index.showToast({title:"订单信息不存在",icon:"none"}),setTimeout((()=>{this.goToHome()}),1500))},methods:{async loadOrderInfo(){try{e.index.showLoading({title:"加载中"});const r=await o.queryById(this.orderId);if(200!==r.code||!r.data)throw new Error("获取订单信息失败");{const o=r.data;this.orderInfo={orderNo:o.orderNo||o.orderId,deviceNo:o.deviceNo,amount:o.payAmount||o.amount,payTime:o.payTime||this.formatTime(new Date)},"IN_USED"===o.orderStatus?(this.deviceMessage="设备已弹出,请取走您的风扇",this.isLoading=!1,this.hasTriggeredDevice||(e.index.$emit("orderSuccess:"+this.orderId),this.hasTriggeredDevice=!0)):this.triggerDeviceEject()}e.index.hideLoading()}catch(r){e.index.hideLoading(),e.index.showToast({title:r.message||"获取订单信息失败",icon:"none"})}},async triggerDeviceEject(){if(this.hasTriggeredDevice)console.log("已经触发过弹出风扇,不重复触发");else{this.hasTriggeredDevice=!0,e.index.$emit("orderSuccess:"+this.orderId),this.isLoading=!0,this.deviceMessage="正在准备您的设备,请稍候...";try{console.log(`准备触发弹出风扇,orderId: ${this.orderId}`);const r=await o.confirmPaymentAndRent(this.orderId);if(console.log("确认支付并弹出风扇结果:",JSON.stringify(r)),!r||200!==r.code)throw new Error(r&&r.msg||"弹出风扇失败");this.deviceMessage="设备已弹出,请取走您的风扇",e.index.showToast({title:"风扇已弹出",icon:"success"})}catch(r){console.error("弹出风扇错误:",r),this.deviceMessage="弹出设备失败,请联系客服",e.index.showToast({title:r.message||"弹出风扇失败,请联系客服",icon:"none"})}finally{this.isLoading=!1}}},formatTime:e=>`${e.getFullYear()}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")} ${e.getHours().toString().padStart(2,"0")}:${e.getMinutes().toString().padStart(2,"0")}:${e.getSeconds().toString().padStart(2,"0")}`,goToHome(){e.index.switchTab({url:"/pages/index/index"})},goToOrderList(){e.index.redirectTo({url:"/pages/order/index"})}}};const i=e._export_sfc(r,[["render",function(o,r,i,t,d,s){return e.e({a:e.t(d.orderInfo.orderNo||"-"),b:e.t(d.orderInfo.deviceNo||"-"),c:e.t(d.orderInfo.amount||"0.00"),d:e.t(d.orderInfo.payTime||"-"),e:e.t(d.deviceMessage),f:d.isLoading},(d.isLoading,{}),{g:e.o(((...e)=>s.goToHome&&s.goToHome(...e))),h:e.o(((...e)=>s.goToOrderList&&s.goToOrderList(...e)))})}],["__scopeId","data-v-333e92b6"]]);wx.createPage(i);
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<view class="success-container data-v-174f45e8"><view class="status-card data-v-174f45e8"><view class="status-icon success data-v-174f45e8"></view><view class="status-text data-v-174f45e8">支付成功</view><view class="status-desc data-v-174f45e8">您的订单已支付成功</view></view><view class="order-card data-v-174f45e8"><view class="card-title data-v-174f45e8">订单信息</view><view class="info-item data-v-174f45e8"><text class="label data-v-174f45e8">订单号</text><text class="value data-v-174f45e8">{{a}}</text></view><view class="info-item data-v-174f45e8"><text class="label data-v-174f45e8">设备号</text><text class="value data-v-174f45e8">{{b}}</text></view><view class="info-item data-v-174f45e8"><text class="label data-v-174f45e8">支付金额</text><text class="value data-v-174f45e8">¥{{c}}</text></view><view class="info-item data-v-174f45e8"><text class="label data-v-174f45e8">支付时间</text><text class="value data-v-174f45e8">{{d}}</text></view></view><view class="device-status data-v-174f45e8"><view class="status-message data-v-174f45e8">{{e}}</view><view wx:if="{{f}}" class="loading-animation data-v-174f45e8"><view class="loading-circle data-v-174f45e8"></view></view></view><view class="button-group data-v-174f45e8"><button class="primary-btn data-v-174f45e8" bindtap="{{g}}">返回首页</button><button class="secondary-btn data-v-174f45e8" bindtap="{{h}}">查看订单</button></view></view>
|
||||
<view class="success-container data-v-333e92b6"><view class="status-card data-v-333e92b6"><view class="status-icon success data-v-333e92b6"></view><view class="status-text data-v-333e92b6">支付成功</view><view class="status-desc data-v-333e92b6">您的订单已支付成功</view></view><view class="order-card data-v-333e92b6"><view class="card-title data-v-333e92b6">订单信息</view><view class="info-item data-v-333e92b6"><text class="label data-v-333e92b6">订单号</text><text class="value data-v-333e92b6">{{a}}</text></view><view class="info-item data-v-333e92b6"><text class="label data-v-333e92b6">设备号</text><text class="value data-v-333e92b6">{{b}}</text></view><view class="info-item data-v-333e92b6"><text class="label data-v-333e92b6">支付金额</text><text class="value data-v-333e92b6">¥{{c}}</text></view><view class="info-item data-v-333e92b6"><text class="label data-v-333e92b6">支付时间</text><text class="value data-v-333e92b6">{{d}}</text></view></view><view class="device-status data-v-333e92b6"><view class="status-message data-v-333e92b6">{{e}}</view><view wx:if="{{f}}" class="loading-animation data-v-333e92b6"><view class="loading-circle data-v-333e92b6"></view></view></view><view class="button-group data-v-333e92b6"><button class="primary-btn data-v-333e92b6" bindtap="{{g}}">返回首页</button><button class="secondary-btn data-v-333e92b6" bindtap="{{h}}">查看订单</button></view></view>
|
||||
+1
-1
@@ -1 +1 @@
|
||||
.success-container.data-v-174f45e8{padding:20px;background-color:#f5f5f5;min-height:100vh}.status-card.data-v-174f45e8{background-color:#fff;border-radius:12px;padding:30px;text-align:center;margin-bottom:20px}.status-card .status-icon.data-v-174f45e8{width:60px;height:60px;margin:0 auto 16px;background-color:#07c160;border-radius:50%;position:relative}.status-card .status-icon.data-v-174f45e8:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:20px;border:3px solid #fff;border-top:none;border-right:none;transform-origin:center;transform:translate(-50%,-70%) rotate(-45deg)}.status-card .status-text.data-v-174f45e8{font-size:24px;font-weight:700;color:#07c160;margin-bottom:8px}.status-card .status-desc.data-v-174f45e8{font-size:14px;color:#666}.order-card.data-v-174f45e8{background-color:#fff;border-radius:12px;padding:20px;margin-bottom:20px}.order-card .card-title.data-v-174f45e8{font-size:16px;font-weight:700;margin-bottom:16px;color:#333}.order-card .info-item.data-v-174f45e8{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.order-card .info-item .label.data-v-174f45e8{color:#666;font-size:14px}.order-card .info-item .value.data-v-174f45e8{color:#333;font-size:14px}.device-status.data-v-174f45e8{background-color:#fff;border-radius:12px;padding:20px;margin-bottom:20px;text-align:center}.device-status .status-message.data-v-174f45e8{font-size:16px;color:#333;margin-bottom:12px}.device-status .loading-animation.data-v-174f45e8{display:flex;justify-content:center;align-items:center;height:40px}.device-status .loading-animation .loading-circle.data-v-174f45e8{width:30px;height:30px;border-radius:50%;border:3px solid #f0f0f0;border-top-color:#07c160;animation:spin-174f45e8 1s linear infinite}@keyframes spin-174f45e8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button-group.data-v-174f45e8{margin-top:30px;display:flex;flex-direction:column;gap:16px}.button-group .primary-btn.data-v-174f45e8{background-color:#07c160;color:#fff;border:none;border-radius:24px;padding:12px;font-size:16px}.button-group .primary-btn.data-v-174f45e8:active{opacity:.8}.button-group .secondary-btn.data-v-174f45e8{background-color:#fff;color:#07c160;border:1px solid #07c160;border-radius:24px;padding:12px;font-size:16px}.button-group .secondary-btn.data-v-174f45e8:active{background-color:#f5f5f5}
|
||||
.success-container.data-v-333e92b6{padding:20px;background-color:#f5f5f5;min-height:100vh}.status-card.data-v-333e92b6{background-color:#fff;border-radius:12px;padding:30px;text-align:center;margin-bottom:20px}.status-card .status-icon.data-v-333e92b6{width:60px;height:60px;margin:0 auto 16px;background-color:#07c160;border-radius:50%;position:relative}.status-card .status-icon.data-v-333e92b6:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:20px;border:3px solid #fff;border-top:none;border-right:none;transform-origin:center;transform:translate(-50%,-70%) rotate(-45deg)}.status-card .status-text.data-v-333e92b6{font-size:24px;font-weight:700;color:#07c160;margin-bottom:8px}.status-card .status-desc.data-v-333e92b6{font-size:14px;color:#666}.order-card.data-v-333e92b6{background-color:#fff;border-radius:12px;padding:20px;margin-bottom:20px}.order-card .card-title.data-v-333e92b6{font-size:16px;font-weight:700;margin-bottom:16px;color:#333}.order-card .info-item.data-v-333e92b6{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.order-card .info-item .label.data-v-333e92b6{color:#666;font-size:14px}.order-card .info-item .value.data-v-333e92b6{color:#333;font-size:14px}.device-status.data-v-333e92b6{background-color:#fff;border-radius:12px;padding:20px;margin-bottom:20px;text-align:center}.device-status .status-message.data-v-333e92b6{font-size:16px;color:#333;margin-bottom:12px}.device-status .loading-animation.data-v-333e92b6{display:flex;justify-content:center;align-items:center;height:40px}.device-status .loading-animation .loading-circle.data-v-333e92b6{width:30px;height:30px;border-radius:50%;border:3px solid #f0f0f0;border-top-color:#07c160;animation:spin-333e92b6 1s linear infinite}@keyframes spin-333e92b6{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button-group.data-v-333e92b6{margin-top:30px;display:flex;flex-direction:column;gap:16px}.button-group .primary-btn.data-v-333e92b6{background-color:#07c160;color:#fff;border:none;border-radius:24px;padding:12px;font-size:16px}.button-group .primary-btn.data-v-333e92b6:active{opacity:.8}.button-group .secondary-btn.data-v-333e92b6{background-color:#fff;color:#07c160;border:1px solid #07c160;border-radius:24px;padding:12px;font-size:16px}.button-group .secondary-btn.data-v-333e92b6:active{background-color:#f5f5f5}
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
<view class="return-container data-v-8b6b904e"><view class="order-card data-v-8b6b904e"><view class="order-header data-v-8b6b904e"><text class="title data-v-8b6b904e">{{a}}</text><text class="order-no data-v-8b6b904e">订单号:{{b}}</text></view><view class="device-info data-v-8b6b904e"><view class="device-left data-v-8b6b904e"><view class="device-name data-v-8b6b904e">共享风扇</view><view class="device-id data-v-8b6b904e">设备号:{{c}}</view></view><view class="device-right data-v-8b6b904e"><view wx:if="{{d}}" class="payment-badge wx-score data-v-8b6b904e"><image src="{{e}}" mode="aspectFit" class="badge-icon data-v-8b6b904e"></image><view class="badge-text data-v-8b6b904e"><text class="data-v-8b6b904e">微信支付分</text><text class="divider data-v-8b6b904e">|</text><text class="highlight data-v-8b6b904e">免押租借</text></view></view><view wx:else class="payment-badge deposit data-v-8b6b904e"><text class="badge-text data-v-8b6b904e">押金租借</text></view></view></view><view class="time-info data-v-8b6b904e"><view class="time-item data-v-8b6b904e"><text class="label data-v-8b6b904e">开始时间</text><text class="value data-v-8b6b904e">{{f}}</text></view><view class="time-item data-v-8b6b904e"><text class="label data-v-8b6b904e">已使用时长</text><text class="value highlight data-v-8b6b904e">{{g}}</text></view><view class="time-item data-v-8b6b904e"><text class="label data-v-8b6b904e">当前费用</text><text class="value data-v-8b6b904e">¥{{h}}</text></view></view><view wx:if="{{false}}" class="debug-info data-v-8b6b904e"><view class="debug-title data-v-8b6b904e">调试信息</view><view class="debug-item data-v-8b6b904e">原始开始时间: {{i}}</view><view class="debug-item data-v-8b6b904e">处理后开始时间: {{j}}</view><view class="debug-item data-v-8b6b904e">订单状态: {{k}}</view></view></view><view class="notice-card data-v-8b6b904e"><view class="notice-title data-v-8b6b904e">归还说明</view><view class="notice-list data-v-8b6b904e"><view class="notice-item data-v-8b6b904e"><view class="dot data-v-8b6b904e"></view><text class="data-v-8b6b904e">请确保设备完好无损</text></view><view class="notice-item data-v-8b6b904e"><view class="dot data-v-8b6b904e"></view><text class="data-v-8b6b904e">将充电宝插入原位置或空闲插口</text></view><view class="notice-item data-v-8b6b904e"><view class="dot data-v-8b6b904e"></view><text class="data-v-8b6b904e">系统将自动检测归还并处理退款</text></view><view class="notice-item data-v-8b6b904e"><view class="dot data-v-8b6b904e"></view><text class="data-v-8b6b904e">归还成功后将自动跳转到成功页面</text></view></view></view><view class="bottom-bar data-v-8b6b904e"><view class="action-item secondary data-v-8b6b904e" bindtap="{{l}}">刷新状态</view><view class="action-item primary data-v-8b6b904e" bindtap="{{m}}">返回首页</view></view></view>
|
||||
<view class="return-container data-v-571550e1"><view class="order-card data-v-571550e1"><view class="order-header data-v-571550e1"><text class="title data-v-571550e1">{{a}}</text><text class="order-no data-v-571550e1">订单号:{{b}}</text></view><view class="device-info data-v-571550e1"><view class="device-left data-v-571550e1"><view class="device-name data-v-571550e1">共享风扇</view><view class="device-id data-v-571550e1">设备号:{{c}}</view></view><view class="device-right data-v-571550e1"><view wx:if="{{d}}" class="payment-badge wx-score data-v-571550e1"><image src="{{e}}" mode="aspectFit" class="badge-icon data-v-571550e1"></image><view class="badge-text data-v-571550e1"><text class="data-v-571550e1">微信支付分</text><text class="divider data-v-571550e1">|</text><text class="highlight data-v-571550e1">免押租借</text></view></view><view wx:else class="payment-badge deposit data-v-571550e1"><text class="badge-text data-v-571550e1">押金租借</text></view></view></view><view class="time-info data-v-571550e1"><view class="time-item data-v-571550e1"><text class="label data-v-571550e1">开始时间</text><text class="value data-v-571550e1">{{f}}</text></view><view class="time-item data-v-571550e1"><text class="label data-v-571550e1">已使用时长</text><text class="value highlight data-v-571550e1">{{g}}</text></view><view class="time-item data-v-571550e1"><text class="label data-v-571550e1">当前费用</text><text class="value data-v-571550e1">¥{{h}}</text></view></view><view wx:if="{{false}}" class="debug-info data-v-571550e1"><view class="debug-title data-v-571550e1">调试信息</view><view class="debug-item data-v-571550e1">原始开始时间: {{i}}</view><view class="debug-item data-v-571550e1">处理后开始时间: {{j}}</view><view class="debug-item data-v-571550e1">订单状态: {{k}}</view></view></view><view class="notice-card data-v-571550e1"><view class="notice-title data-v-571550e1">归还说明</view><view class="notice-list data-v-571550e1"><view class="notice-item data-v-571550e1"><view class="dot data-v-571550e1"></view><text class="data-v-571550e1">请确保设备完好无损</text></view><view class="notice-item data-v-571550e1"><view class="dot data-v-571550e1"></view><text class="data-v-571550e1">将风扇插入原位置或空闲插口</text></view><view class="notice-item data-v-571550e1"><view class="dot data-v-571550e1"></view><text class="data-v-571550e1">系统将自动检测归还并处理退款</text></view><view class="notice-item data-v-571550e1"><view class="dot data-v-571550e1"></view><text class="data-v-571550e1">归还成功后将自动跳转到成功页面</text></view></view></view><view class="bottom-bar data-v-571550e1"><view class="action-item secondary data-v-571550e1" bindtap="{{l}}">刷新状态</view><view class="action-item primary data-v-571550e1" bindtap="{{m}}">返回首页</view></view></view>
|
||||
+1
-1
@@ -1 +1 @@
|
||||
.return-container.data-v-8b6b904e{min-height:100vh;background:#f7f8fa;padding:30rpx 30rpx 180rpx;box-sizing:border-box}.return-container .order-card.data-v-8b6b904e{background:#fff;border-radius:20rpx;padding:30rpx;margin-bottom:30rpx;box-shadow:0 4rpx 16rpx rgba(0,0,0,.04)}.return-container .order-card .order-header.data-v-8b6b904e{display:flex;justify-content:space-between;align-items:center;margin-bottom:20rpx;padding-bottom:16rpx;border-bottom:1rpx solid #f0f0f0}.return-container .order-card .order-header .title.data-v-8b6b904e{font-size:30rpx;font-weight:700;color:#333}.return-container .order-card .order-header .order-no.data-v-8b6b904e{font-size:24rpx;color:#999}.return-container .order-card .device-info.data-v-8b6b904e{margin-bottom:24rpx;display:flex;justify-content:space-between;align-items:flex-start}.return-container .order-card .device-info .device-left.data-v-8b6b904e{flex:1;margin-right:20rpx}.return-container .order-card .device-info .device-left .device-name.data-v-8b6b904e{font-size:32rpx;font-weight:500;color:#333;margin-bottom:8rpx}.return-container .order-card .device-info .device-left .device-id.data-v-8b6b904e{font-size:26rpx;color:#999;margin-bottom:0}.return-container .order-card .device-info .device-right .payment-badge.data-v-8b6b904e{display:inline-flex;align-items:center;padding:6rpx 12rpx;border-radius:8rpx;white-space:nowrap}.return-container .order-card .device-info .device-right .payment-badge.wx-score.data-v-8b6b904e{background:rgba(7,193,96,.08)}.return-container .order-card .device-info .device-right .payment-badge.wx-score .badge-icon.data-v-8b6b904e{width:32rpx;height:26rpx;margin-right:8rpx}.return-container .order-card .device-info .device-right .payment-badge.wx-score .badge-text.data-v-8b6b904e{font-size:22rpx;color:#07c160;display:flex;align-items:center}.return-container .order-card .device-info .device-right .payment-badge.wx-score .badge-text .divider.data-v-8b6b904e{margin:0 6rpx}.return-container .order-card .device-info .device-right .payment-badge.wx-score .badge-text .highlight.data-v-8b6b904e{font-weight:500}.return-container .order-card .device-info .device-right .payment-badge.deposit.data-v-8b6b904e{background:#f5f5f5}.return-container .order-card .device-info .device-right .payment-badge.deposit .badge-text.data-v-8b6b904e{font-size:22rpx;color:#666;font-weight:500}.return-container .order-card .time-info.data-v-8b6b904e{background:#f9f9f9;border-radius:16rpx;padding:20rpx}.return-container .order-card .time-info .time-item.data-v-8b6b904e{display:flex;justify-content:space-between;align-items:center;margin-bottom:16rpx}.return-container .order-card .time-info .time-item.data-v-8b6b904e:last-child{margin-bottom:0}.return-container .order-card .time-info .time-item .label.data-v-8b6b904e{font-size:26rpx;color:#666}.return-container .order-card .time-info .time-item .value.data-v-8b6b904e{font-size:26rpx;color:#333}.return-container .order-card .time-info .time-item .value.highlight.data-v-8b6b904e{color:#ff6b6b;font-weight:700}.return-container .notice-card.data-v-8b6b904e{background:#fff;border-radius:20rpx;padding:30rpx;margin-bottom:30rpx;box-shadow:0 4rpx 16rpx rgba(0,0,0,.04)}.return-container .notice-card .notice-title.data-v-8b6b904e{font-size:30rpx;font-weight:700;color:#333;margin-bottom:20rpx}.return-container .notice-card .notice-list .notice-item.data-v-8b6b904e{display:flex;align-items:flex-start;margin-bottom:16rpx}.return-container .notice-card .notice-list .notice-item.data-v-8b6b904e:last-child{margin-bottom:0}.return-container .notice-card .notice-list .notice-item .dot.data-v-8b6b904e{width:12rpx;height:12rpx;background:#07c160;border-radius:50%;margin-top:10rpx;margin-right:16rpx;flex-shrink:0}.return-container .notice-card .notice-list .notice-item text.data-v-8b6b904e{font-size:26rpx;color:#666;line-height:1.5}.return-container .bottom-bar.data-v-8b6b904e{position:fixed;left:0;right:0;bottom:0;padding:20rpx 30rpx;padding-bottom:calc(20rpx + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -4rpx 16rpx rgba(0,0,0,.04);z-index:10;display:flex;justify-content:space-between;gap:20rpx}.return-container .bottom-bar .action-item.data-v-8b6b904e{height:88rpx;display:flex;align-items:center;justify-content:center;font-size:30rpx;border-radius:44rpx;flex:1}.return-container .bottom-bar .action-item.primary.data-v-8b6b904e{background:#07c160;color:#fff}.return-container .bottom-bar .action-item.primary.data-v-8b6b904e:active{opacity:.8}.return-container .bottom-bar .action-item.secondary.data-v-8b6b904e{background:#f5f5f5;color:#333;border:1rpx solid #e0e0e0}.return-container .bottom-bar .action-item.secondary.data-v-8b6b904e:active{opacity:.8}
|
||||
.return-container.data-v-571550e1{min-height:100vh;background:#f7f8fa;padding:30rpx 30rpx 180rpx;box-sizing:border-box}.return-container .order-card.data-v-571550e1{background:#fff;border-radius:20rpx;padding:30rpx;margin-bottom:30rpx;box-shadow:0 4rpx 16rpx rgba(0,0,0,.04)}.return-container .order-card .order-header.data-v-571550e1{display:flex;justify-content:space-between;align-items:center;margin-bottom:20rpx;padding-bottom:16rpx;border-bottom:1rpx solid #f0f0f0}.return-container .order-card .order-header .title.data-v-571550e1{font-size:30rpx;font-weight:700;color:#333}.return-container .order-card .order-header .order-no.data-v-571550e1{font-size:24rpx;color:#999}.return-container .order-card .device-info.data-v-571550e1{margin-bottom:24rpx;display:flex;justify-content:space-between;align-items:flex-start}.return-container .order-card .device-info .device-left.data-v-571550e1{flex:1;margin-right:20rpx}.return-container .order-card .device-info .device-left .device-name.data-v-571550e1{font-size:32rpx;font-weight:500;color:#333;margin-bottom:8rpx}.return-container .order-card .device-info .device-left .device-id.data-v-571550e1{font-size:26rpx;color:#999;margin-bottom:0}.return-container .order-card .device-info .device-right .payment-badge.data-v-571550e1{display:inline-flex;align-items:center;padding:6rpx 12rpx;border-radius:8rpx;white-space:nowrap}.return-container .order-card .device-info .device-right .payment-badge.wx-score.data-v-571550e1{background:rgba(7,193,96,.08)}.return-container .order-card .device-info .device-right .payment-badge.wx-score .badge-icon.data-v-571550e1{width:32rpx;height:26rpx;margin-right:8rpx}.return-container .order-card .device-info .device-right .payment-badge.wx-score .badge-text.data-v-571550e1{font-size:22rpx;color:#07c160;display:flex;align-items:center}.return-container .order-card .device-info .device-right .payment-badge.wx-score .badge-text .divider.data-v-571550e1{margin:0 6rpx}.return-container .order-card .device-info .device-right .payment-badge.wx-score .badge-text .highlight.data-v-571550e1{font-weight:500}.return-container .order-card .device-info .device-right .payment-badge.deposit.data-v-571550e1{background:#f5f5f5}.return-container .order-card .device-info .device-right .payment-badge.deposit .badge-text.data-v-571550e1{font-size:22rpx;color:#666;font-weight:500}.return-container .order-card .time-info.data-v-571550e1{background:#f9f9f9;border-radius:16rpx;padding:20rpx}.return-container .order-card .time-info .time-item.data-v-571550e1{display:flex;justify-content:space-between;align-items:center;margin-bottom:16rpx}.return-container .order-card .time-info .time-item.data-v-571550e1:last-child{margin-bottom:0}.return-container .order-card .time-info .time-item .label.data-v-571550e1{font-size:26rpx;color:#666}.return-container .order-card .time-info .time-item .value.data-v-571550e1{font-size:26rpx;color:#333}.return-container .order-card .time-info .time-item .value.highlight.data-v-571550e1{color:#ff6b6b;font-weight:700}.return-container .notice-card.data-v-571550e1{background:#fff;border-radius:20rpx;padding:30rpx;margin-bottom:30rpx;box-shadow:0 4rpx 16rpx rgba(0,0,0,.04)}.return-container .notice-card .notice-title.data-v-571550e1{font-size:30rpx;font-weight:700;color:#333;margin-bottom:20rpx}.return-container .notice-card .notice-list .notice-item.data-v-571550e1{display:flex;align-items:flex-start;margin-bottom:16rpx}.return-container .notice-card .notice-list .notice-item.data-v-571550e1:last-child{margin-bottom:0}.return-container .notice-card .notice-list .notice-item .dot.data-v-571550e1{width:12rpx;height:12rpx;background:#07c160;border-radius:50%;margin-top:10rpx;margin-right:16rpx;flex-shrink:0}.return-container .notice-card .notice-list .notice-item text.data-v-571550e1{font-size:26rpx;color:#666;line-height:1.5}.return-container .bottom-bar.data-v-571550e1{position:fixed;left:0;right:0;bottom:0;padding:20rpx 30rpx;padding-bottom:calc(20rpx + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -4rpx 16rpx rgba(0,0,0,.04);z-index:10;display:flex;justify-content:space-between;gap:20rpx}.return-container .bottom-bar .action-item.data-v-571550e1{height:88rpx;display:flex;align-items:center;justify-content:center;font-size:30rpx;border-radius:44rpx;flex:1}.return-container .bottom-bar .action-item.primary.data-v-571550e1{background:#07c160;color:#fff}.return-container .bottom-bar .action-item.primary.data-v-571550e1:active{opacity:.8}.return-container .bottom-bar .action-item.secondary.data-v-571550e1{background:#f5f5f5;color:#333;border:1rpx solid #e0e0e0}.return-container .bottom-bar .action-item.secondary.data-v-571550e1:active{opacity:.8}
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
},
|
||||
"compileType": "miniprogram",
|
||||
"libVersion": "",
|
||||
"appid": "wx2165f0be356ae7a9",
|
||||
"appid": "wxe752f45e7f7aa271",
|
||||
"projectname": "uni-fans-score",
|
||||
"condition": {
|
||||
"search": {
|
||||
|
||||
+1
-1
@@ -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:"wx2165f0be356ae7a9"});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"),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)}})}));
|
||||
|
||||
+1
-1
@@ -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):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;
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["<script>\r\n\timport {\r\n\t\twxLogin,\r\n\t\tgetUserInfo\r\n\t} from './util/index'\r\n\r\n\r\n\texport default {\r\n\t\tonLaunch: function() {\r\n\t\t\tconsole.log('App Launch')\r\n\t\t\t\r\n\t\t},\r\n\t\tonShow: async function() {\r\n\t\t\tconsole.log('App Show')\r\n\t\t\tawait this.autoLogin()\r\n\r\n\t\t},\r\n\t\tonHide: function() {\r\n\t\t\tconsole.log('App Hide')\r\n\t\t},\r\n\r\n\r\n\r\n\t\tmethods: {\r\n\t\t\tasync autoLogin() {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst loginResult = await wxLogin()\r\n\t\t\t\t\tconsole.log('自动登录成功:', loginResult)\r\n\t\t\t\t\t// await getUserInfo()\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\tconsole.error('自动登录失败:', error)\r\n\t\t\t\t\t// 登录失败的处理可以在 wxLogin 中统一处理\r\n\t\t\t\t\t// 这里可以添加特殊的错误处理逻辑\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t@import \"uview-ui/index.scss\"\r\n\r\n\t/*每个页面公共css */\r\n</style>","import App from './App'\r\nimport { orderMonitor } from './utils/orderMonitor.js'\r\n\r\nimport uView from \"uview-ui\";\r\n\r\n\r\n// #ifndef VUE3\r\nimport Vue from 'vue'\r\nimport './uni.promisify.adaptor'\r\nVue.config.productionTip = false\r\n\r\n// 注册全局订单监控服务\r\nVue.prototype.$orderMonitor = orderMonitor\r\n\r\nApp.mpType = 'app'\r\nVue.use(uView)\r\nconst app = new Vue({\r\n ...App\r\n})\r\napp.$mount()\r\n// #endif\r\n\r\n// #ifdef VUE3\r\nimport { createSSRApp } from 'vue'\r\nexport function createApp() {\r\n const app = createSSRApp(App)\r\n \r\n // 注册全局订单监控服务到VUE3\r\n app.config.globalProperties.$orderMonitor = orderMonitor\r\n \r\n return {\r\n app\r\n }\r\n}\r\n// #endif"],"names":["uni","wxLogin","createSSRApp","App","orderMonitor"],"mappings":";;;;;;;;;;;;;;;;;;;AAOC,MAAK,YAAU;AAAA,EACd,UAAU,WAAW;AACpBA,kBAAAA,MAAA,MAAA,OAAA,iBAAY,YAAY;AAAA,EAExB;AAAA,EACD,QAAQ,iBAAiB;AACxBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AACtB,UAAM,KAAK,UAAU;AAAA,EAErB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AAAA,EACtB;AAAA,EAID,SAAS;AAAA,IACR,MAAM,YAAY;AACjB,UAAI;AACH,cAAM,cAAc,MAAMC,mBAAQ;AAClCD,sBAAAA,MAAY,MAAA,OAAA,iBAAA,WAAW,WAAW;AAAA,MAEjC,SAAO,OAAO;AACfA,sBAAAA,sCAAc,WAAW,KAAK;AAAA,MAG/B;AAAA,IACD;AAAA,EACD;AACD;ACZM,SAAS,YAAY;AAC1B,QAAM,MAAME,cAAY,aAACC,SAAG;AAG5B,MAAI,OAAO,iBAAiB,gBAAgBC,mBAAY;AAExD,SAAO;AAAA,IACL;AAAA,EACD;AACH;;;"}
|
||||
{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["<script>\r\n\timport {\r\n\t\twxLogin,\r\n\t\tgetUserInfo\r\n\t} from './util/index'\r\n\r\n\r\n\texport default {\r\n\t\tonLaunch: function() {\r\n\t\t\tconsole.log('App Launch')\r\n\t\t\t\r\n\t\t},\r\n\t\tonShow: async function() {\r\n\t\t\tconsole.log('App Show')\r\n\t\t\tawait this.autoLogin()\r\n\r\n\t\t},\r\n\t\tonHide: function() {\r\n\t\t\tconsole.log('App Hide')\r\n\t\t},\r\n\r\n\r\n\r\n\t\tmethods: {\r\n\t\t\tasync autoLogin() {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst loginResult = await wxLogin()\r\n\t\t\t\t\tconsole.log('自动登录成功:', loginResult)\r\n\t\t\t\t\t// await getUserInfo()\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\tconsole.error('自动登录失败:', error)\r\n\t\t\t\t\t// 登录失败的处理可以在 wxLogin 中统一处理\r\n\t\t\t\t\t// 这里可以添加特殊的错误处理逻辑\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t@import \"uview-ui/index.scss\"\r\n\r\n\t/*每个页面公共css */\r\n</style>","import App from './App'\r\nimport { orderMonitor } from './utils/orderMonitor.js'\r\n\r\nimport uView from \"uview-ui\";\r\n\r\n\r\n// #ifndef VUE3\r\nimport Vue from 'vue'\r\nimport './uni.promisify.adaptor'\r\nVue.config.productionTip = false\r\n\r\n// 注册全局订单监控服务\r\nVue.prototype.$orderMonitor = orderMonitor\r\n\r\nApp.mpType = 'app'\r\nVue.use(uView)\r\nconst app = new Vue({\r\n ...App\r\n})\r\napp.$mount()\r\n// #endif\r\n\r\n// #ifdef VUE3\r\nimport { createSSRApp } from 'vue'\r\nexport function createApp() {\r\n const app = createSSRApp(App)\r\n \r\n // 注册全局订单监控服务到VUE3\r\n app.config.globalProperties.$orderMonitor = orderMonitor\r\n \r\n return {\r\n app\r\n }\r\n}\r\n// #endif"],"names":["uni","wxLogin","createSSRApp","App","orderMonitor"],"mappings":";;;;;;;;;;;;;;;;;;;;AAOC,MAAK,YAAU;AAAA,EACd,UAAU,WAAW;AACpBA,kBAAAA,MAAA,MAAA,OAAA,iBAAY,YAAY;AAAA,EAExB;AAAA,EACD,QAAQ,iBAAiB;AACxBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AACtB,UAAM,KAAK,UAAU;AAAA,EAErB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AAAA,EACtB;AAAA,EAID,SAAS;AAAA,IACR,MAAM,YAAY;AACjB,UAAI;AACH,cAAM,cAAc,MAAMC,mBAAQ;AAClCD,sBAAAA,MAAY,MAAA,OAAA,iBAAA,WAAW,WAAW;AAAA,MAEjC,SAAO,OAAO;AACfA,sBAAAA,sCAAc,WAAW,KAAK;AAAA,MAG/B;AAAA,IACD;AAAA,EACD;AACD;ACZM,SAAS,YAAY;AAC1B,QAAM,MAAME,cAAY,aAACC,SAAG;AAG5B,MAAI,OAAO,iBAAiB,gBAAgBC,mBAAY;AAExD,SAAO;AAAA,IACL;AAAA,EACD;AACH;;;"}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"version":3,"file":"url.js","sources":["config/url.js"],"sourcesContent":["export const URL = \"https://my.gxfs123.com/api\" //正式服务器\r\n// export const URL = \"https://unifans.gxfs123.com/api\" //测试服务器\r\n// export const URL = \"http://192.168.10.41:8080\" \t\t//本地调试\r\n\r\nexport const appid = \"wx2165f0be356ae7a9\" "],"names":[],"mappings":";AAAY,MAAC,MAAM;AAIP,MAAC,QAAQ;;;"}
|
||||
{"version":3,"file":"url.js","sources":["config/url.js"],"sourcesContent":["// export const URL = \"https://my.gxfs123.com/api\" //正式服务器\r\nexport const URL = \"https://unifans.gxfs123.com/api\" //测试服务器\r\n// export const URL = \"http://192.168.10.60:8080\" \t\t//本地调试\r\n\r\nexport const appid = \"wxe752f45e7f7aa271\" //小程序appid"],"names":[],"mappings":";AACY,MAAC,MAAM;AAGP,MAAC,QAAQ;;;"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Vendored
+1
@@ -9,6 +9,7 @@ if (!Math) {
|
||||
"./pages/deposit/index.js";
|
||||
"./pages/order/index.js";
|
||||
"./pages/order/payment.js";
|
||||
"./pages/order/details.js";
|
||||
"./pages/feedback/index.js";
|
||||
"./pages/help/index.js";
|
||||
"./pages/device/detail.js";
|
||||
|
||||
+1
@@ -5,6 +5,7 @@
|
||||
"pages/deposit/index",
|
||||
"pages/order/index",
|
||||
"pages/order/payment",
|
||||
"pages/order/details",
|
||||
"pages/feedback/index",
|
||||
"pages/help/index",
|
||||
"pages/device/detail",
|
||||
|
||||
+3
-2
@@ -6988,9 +6988,9 @@ function isConsoleWritable() {
|
||||
return isWritable;
|
||||
}
|
||||
function initRuntimeSocketService() {
|
||||
const hosts = "192.168.1.4,127.0.0.1";
|
||||
const hosts = "192.168.10.59,127.0.0.1";
|
||||
const port = "8090";
|
||||
const id = "mp-weixin_fn9iXa";
|
||||
const id = "mp-weixin_yxJg9-";
|
||||
const lazy = typeof swan !== "undefined";
|
||||
let restoreError = lazy ? () => {
|
||||
} : initOnError();
|
||||
@@ -8873,6 +8873,7 @@ const createHook = (lifecycle) => (hook, target = getCurrentInstance()) => {
|
||||
};
|
||||
const onLoad = /* @__PURE__ */ createHook(ON_LOAD);
|
||||
exports._export_sfc = _export_sfc;
|
||||
exports.computed = computed;
|
||||
exports.createSSRApp = createSSRApp;
|
||||
exports.e = e;
|
||||
exports.f = f;
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
"use strict";
|
||||
const URL = "https://my.gxfs123.com/api";
|
||||
const appid = "wx2165f0be356ae7a9";
|
||||
const URL = "https://unifans.gxfs123.com/api";
|
||||
const appid = "wxe752f45e7f7aa271";
|
||||
exports.URL = URL;
|
||||
exports.appid = appid;
|
||||
//# sourceMappingURL=../../.sourcemap/mp-weixin/config/url.js.map
|
||||
|
||||
+9
-1
@@ -56,6 +56,13 @@ const queryById = (id) => {
|
||||
hideLoading: true
|
||||
});
|
||||
};
|
||||
const cancelOrder = (data) => {
|
||||
return config_http.request({
|
||||
url: "/orderInfo/cancelOrder",
|
||||
method: "get",
|
||||
data
|
||||
});
|
||||
};
|
||||
const rentPowerBank = (deviceNo, phone) => {
|
||||
return config_http.request({
|
||||
url: "/app/device/rentPowerBank",
|
||||
@@ -64,7 +71,7 @@ const rentPowerBank = (deviceNo, phone) => {
|
||||
});
|
||||
};
|
||||
const confirmPaymentAndRent = (orderId) => {
|
||||
common_vendor.index.__f__("log", "at config/user.js:120", `确认支付并弹出充电宝, orderId: ${orderId}`);
|
||||
common_vendor.index.__f__("log", "at config/user.js:120", `确认支付并弹出风扇, orderId: ${orderId}`);
|
||||
return config_http.request({
|
||||
url: `/app/device/confirmPaymentAndRent?orderId=${orderId}`,
|
||||
method: "post"
|
||||
@@ -108,6 +115,7 @@ const updateUserBalance = (orderId) => {
|
||||
hideLoading: true
|
||||
});
|
||||
};
|
||||
exports.cancelOrder = cancelOrder;
|
||||
exports.checkOrdersByStatus = checkOrdersByStatus;
|
||||
exports.confirmPaymentAndRent = confirmPaymentAndRent;
|
||||
exports.getDeviceInfo = getDeviceInfo;
|
||||
|
||||
+4
-5
@@ -104,7 +104,7 @@ const _sfc_main = {
|
||||
if (payWay == "wx-pay") {
|
||||
common_vendor.index.hideLoading();
|
||||
const res = await config_user.getOrderByOrderNo(order.orderNo);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:304", res);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:286", res);
|
||||
try {
|
||||
let packageTimeMinutes = 0;
|
||||
if (selectedPkg.time.includes("小时")) {
|
||||
@@ -120,12 +120,12 @@ const _sfc_main = {
|
||||
packagePrice: parseFloat(selectedPkg.price)
|
||||
});
|
||||
if (updateRes.code !== 200) {
|
||||
common_vendor.index.__f__("warn", "at pages/device/detail.vue:321", "更新订单套餐信息失败:", updateRes.msg);
|
||||
common_vendor.index.__f__("warn", "at pages/device/detail.vue:303", "更新订单套餐信息失败:", updateRes.msg);
|
||||
} else {
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:324", "订单套餐信息已提前更新");
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:306", "订单套餐信息已提前更新");
|
||||
}
|
||||
} catch (updateError) {
|
||||
common_vendor.index.__f__("error", "at pages/device/detail.vue:327", "更新订单套餐信息时出错:", updateError);
|
||||
common_vendor.index.__f__("error", "at pages/device/detail.vue:309", "更新订单套餐信息时出错:", updateError);
|
||||
}
|
||||
const deposit = parseFloat(deviceInfo.value.depositAmount);
|
||||
const packagePrice = parseFloat(selectedPkg.price);
|
||||
@@ -137,7 +137,6 @@ const _sfc_main = {
|
||||
} else if ("wx-score-pay") {
|
||||
common_vendor.index.hideLoading();
|
||||
const res = await config_user.getOrderByOrderNoScore(order.orderNo);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:348", res);
|
||||
common_vendor.index.hideLoading();
|
||||
if (res && res.code === 200) {
|
||||
try {
|
||||
|
||||
+230
@@ -0,0 +1,230 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const config_user = require("../../config/user.js");
|
||||
const _sfc_main = {
|
||||
__name: "details",
|
||||
setup(__props) {
|
||||
const orderId = common_vendor.ref("");
|
||||
const orderInfo = common_vendor.ref({});
|
||||
const orderStatusText = common_vendor.computed(() => {
|
||||
const status = orderInfo.value.orderStatus;
|
||||
switch (status) {
|
||||
case "waiting_for_payment":
|
||||
return "等待支付";
|
||||
case "in_used":
|
||||
return "使用中";
|
||||
case "used_done":
|
||||
return "已完成";
|
||||
case "order_cancelled":
|
||||
return "已取消";
|
||||
default:
|
||||
return "未知状态";
|
||||
}
|
||||
});
|
||||
const orderStatusClass = common_vendor.computed(() => {
|
||||
const status = orderInfo.value.orderStatus;
|
||||
switch (status) {
|
||||
case "waiting_for_payment":
|
||||
return "status-waiting";
|
||||
case "in_used":
|
||||
return "status-using";
|
||||
case "used_done":
|
||||
return "status-finished";
|
||||
case "order_cancelled":
|
||||
return "status-cancelled";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
});
|
||||
const orderStatusDesc = common_vendor.computed(() => {
|
||||
const status = orderInfo.value.orderStatus;
|
||||
switch (status) {
|
||||
case "waiting_for_payment":
|
||||
return "请在15分钟内完成支付";
|
||||
case "in_used":
|
||||
return "设备正在使用中";
|
||||
case "used_done":
|
||||
return "感谢您的使用";
|
||||
case "order_cancelled":
|
||||
return "该订单已取消";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
});
|
||||
const paymentMethod = common_vendor.computed(() => {
|
||||
const payWay = orderInfo.value.payWay;
|
||||
if (payWay === "wx_score_pay") {
|
||||
return "微信支付分 (免押金)";
|
||||
} else if (payWay === "wx_pay") {
|
||||
return "微信支付";
|
||||
} else {
|
||||
return "押金支付";
|
||||
}
|
||||
});
|
||||
common_vendor.onLoad(async (options) => {
|
||||
if (options && options.orderId) {
|
||||
orderId.value = options.orderId;
|
||||
await loadOrderDetails();
|
||||
} else {
|
||||
common_vendor.index.showToast({
|
||||
title: "订单信息不存在",
|
||||
icon: "none"
|
||||
});
|
||||
setTimeout(() => {
|
||||
common_vendor.index.navigateBack();
|
||||
}, 1500);
|
||||
}
|
||||
});
|
||||
const loadOrderDetails = async () => {
|
||||
try {
|
||||
common_vendor.index.showLoading({
|
||||
title: "加载中"
|
||||
});
|
||||
const res = await config_user.queryById(orderId.value);
|
||||
if (res.code === 200 && res.data) {
|
||||
orderInfo.value = res.data;
|
||||
if (orderInfo.value.createTime) {
|
||||
orderInfo.value.createTime = formatDateTime(new Date(orderInfo.value.createTime));
|
||||
}
|
||||
if (orderInfo.value.startTime) {
|
||||
orderInfo.value.startTime = formatDateTime(new Date(orderInfo.value.startTime));
|
||||
}
|
||||
if (orderInfo.value.endTime) {
|
||||
orderInfo.value.endTime = formatDateTime(new Date(orderInfo.value.endTime));
|
||||
}
|
||||
} else {
|
||||
throw new Error("获取订单详情失败");
|
||||
}
|
||||
common_vendor.index.hideLoading();
|
||||
} catch (error) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.showToast({
|
||||
title: error.message || "获取订单详情失败",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
};
|
||||
const formatDateTime = (date) => {
|
||||
const year = date.getFullYear();
|
||||
const month = (date.getMonth() + 1).toString().padStart(2, "0");
|
||||
const day = date.getDate().toString().padStart(2, "0");
|
||||
const hour = date.getHours().toString().padStart(2, "0");
|
||||
const minute = date.getMinutes().toString().padStart(2, "0");
|
||||
return `${year}-${month}-${day} ${hour}:${minute}`;
|
||||
};
|
||||
const formatTime = (minutes) => {
|
||||
if (!minutes)
|
||||
return "";
|
||||
const mins = parseInt(minutes);
|
||||
if (mins < 60) {
|
||||
return `${mins}分钟`;
|
||||
} else {
|
||||
const hours = Math.floor(mins / 60);
|
||||
const remainingMins = mins % 60;
|
||||
return remainingMins > 0 ? `${hours}小时${remainingMins}分钟` : `${hours}小时`;
|
||||
}
|
||||
};
|
||||
const handleCancelOrder = () => {
|
||||
common_vendor.index.showModal({
|
||||
title: "确认取消",
|
||||
content: "确定要取消此订单吗?",
|
||||
success: async (res) => {
|
||||
if (res.confirm) {
|
||||
try {
|
||||
common_vendor.index.showLoading({ title: "处理中" });
|
||||
const result = await config_user.cancelOrder({
|
||||
orderId: orderId.value
|
||||
});
|
||||
if (result.code === 200) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.showToast({
|
||||
title: "订单已取消",
|
||||
icon: "success"
|
||||
});
|
||||
await loadOrderDetails();
|
||||
} else {
|
||||
throw new Error(result.msg || "取消订单失败");
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.showToast({
|
||||
title: error.message || "取消订单失败",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
const handlePayment = async () => {
|
||||
try {
|
||||
common_vendor.index.showLoading({
|
||||
title: "处理中"
|
||||
});
|
||||
const res = await config_user.confirmPaymentAndRent(orderId.value);
|
||||
if (res.code === 200) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.showToast({
|
||||
title: "支付成功",
|
||||
icon: "success"
|
||||
});
|
||||
await loadOrderDetails();
|
||||
} else {
|
||||
throw new Error(res.msg || "支付失败");
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.showToast({
|
||||
title: error.message || "支付失败",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
};
|
||||
const navigateToReturn = () => {
|
||||
common_vendor.index.navigateTo({
|
||||
url: `/pages/return/index?deviceId=${orderInfo.value.deviceNo}&orderId=${orderId.value}`
|
||||
});
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
return common_vendor.e({
|
||||
a: common_vendor.n(orderStatusClass.value),
|
||||
b: common_vendor.t(orderStatusText.value),
|
||||
c: common_vendor.t(orderStatusDesc.value),
|
||||
d: common_vendor.t(orderInfo.value.orderNo || "-"),
|
||||
e: common_vendor.t(orderInfo.value.deviceNo || "-"),
|
||||
f: common_vendor.t(paymentMethod.value),
|
||||
g: common_vendor.t(orderInfo.value.createTime || "-"),
|
||||
h: common_vendor.t(orderInfo.value.startTime || "-"),
|
||||
i: orderInfo.value.endTime
|
||||
}, orderInfo.value.endTime ? {
|
||||
j: common_vendor.t(orderInfo.value.endTime)
|
||||
} : {}, {
|
||||
k: orderInfo.value.phone
|
||||
}, orderInfo.value.phone ? {
|
||||
l: common_vendor.t(orderInfo.value.phone)
|
||||
} : {}, {
|
||||
m: orderInfo.value.depositAmount
|
||||
}, orderInfo.value.depositAmount ? {
|
||||
n: common_vendor.t(orderInfo.value.depositAmount)
|
||||
} : {}, {
|
||||
o: orderInfo.value.packageTime && orderInfo.value.packagePrice
|
||||
}, orderInfo.value.packageTime && orderInfo.value.packagePrice ? {
|
||||
p: common_vendor.t(orderInfo.value.packagePrice),
|
||||
q: common_vendor.t(formatTime(orderInfo.value.packageTime))
|
||||
} : {}, {
|
||||
r: common_vendor.t(orderInfo.value.payAmount || 0),
|
||||
s: orderInfo.value.orderStatus === "waiting_for_payment"
|
||||
}, orderInfo.value.orderStatus === "waiting_for_payment" ? {
|
||||
t: common_vendor.o(handleCancelOrder),
|
||||
v: common_vendor.o(handlePayment)
|
||||
} : orderInfo.value.orderStatus === "in_used" ? {
|
||||
x: common_vendor.o(navigateToReturn)
|
||||
} : {}, {
|
||||
w: orderInfo.value.orderStatus === "in_used"
|
||||
});
|
||||
};
|
||||
}
|
||||
};
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-2b5cbeae"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/order/details.js.map
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"navigationBarTitleText": "订单详情",
|
||||
"navigationBarBackgroundColor": "#ffffff",
|
||||
"navigationBarTextStyle": "black",
|
||||
"usingComponents": {}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
<view class="details-container data-v-2b5cbeae"><view class="status-card data-v-2b5cbeae"><view class="{{['status-icon', 'data-v-2b5cbeae', a]}}"></view><view class="status-text data-v-2b5cbeae">{{b}}</view><view class="status-desc data-v-2b5cbeae">{{c}}</view></view><view class="info-card data-v-2b5cbeae"><view class="card-title data-v-2b5cbeae">订单信息</view><view class="info-item data-v-2b5cbeae"><text class="label data-v-2b5cbeae">订单号</text><text class="value data-v-2b5cbeae">{{d}}</text></view><view class="info-item data-v-2b5cbeae"><text class="label data-v-2b5cbeae">设备号</text><text class="value data-v-2b5cbeae">{{e}}</text></view><view class="info-item data-v-2b5cbeae"><text class="label data-v-2b5cbeae">支付方式</text><text class="value data-v-2b5cbeae">{{f}}</text></view><view class="info-item data-v-2b5cbeae"><text class="label data-v-2b5cbeae">创建时间</text><text class="value data-v-2b5cbeae">{{g}}</text></view><view class="info-item data-v-2b5cbeae"><text class="label data-v-2b5cbeae">开始时间</text><text class="value data-v-2b5cbeae">{{h}}</text></view><view wx:if="{{i}}" class="info-item data-v-2b5cbeae"><text class="label data-v-2b5cbeae">结束时间</text><text class="value data-v-2b5cbeae">{{j}}</text></view><view wx:if="{{k}}" class="info-item data-v-2b5cbeae"><text class="label data-v-2b5cbeae">联系电话</text><text class="value data-v-2b5cbeae">{{l}}</text></view></view><view class="info-card data-v-2b5cbeae"><view class="card-title data-v-2b5cbeae">费用信息</view><view wx:if="{{m}}" class="info-item data-v-2b5cbeae"><text class="label data-v-2b5cbeae">押金</text><text class="value data-v-2b5cbeae">¥{{n}}</text></view><view wx:if="{{o}}" class="info-item data-v-2b5cbeae"><text class="label data-v-2b5cbeae">套餐</text><text class="value data-v-2b5cbeae">¥{{p}}元 / {{q}}</text></view><view class="info-item total data-v-2b5cbeae"><text class="label data-v-2b5cbeae">合计</text><text class="value data-v-2b5cbeae">¥{{r}}</text></view></view><view wx:if="{{s}}" class="action-buttons data-v-2b5cbeae"><view class="btn cancel data-v-2b5cbeae" bindtap="{{t}}">取消订单</view><view class="btn primary data-v-2b5cbeae" bindtap="{{v}}">立即支付</view></view><view wx:elif="{{w}}" class="action-buttons data-v-2b5cbeae"><view class="btn primary data-v-2b5cbeae" bindtap="{{x}}">归还设备</view></view></view>
|
||||
@@ -0,0 +1,157 @@
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.details-container.data-v-2b5cbeae {
|
||||
min-height: 100vh;
|
||||
background: #f7f8fa;
|
||||
padding: 30rpx;
|
||||
padding-bottom: 100rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.details-container .status-card.data-v-2b5cbeae {
|
||||
background: #fff;
|
||||
border-radius: 20rpx;
|
||||
padding: 40rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-bottom: 30rpx;
|
||||
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
.details-container .status-card .status-icon.data-v-2b5cbeae {
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
border-radius: 50%;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.details-container .status-card .status-icon.status-waiting.data-v-2b5cbeae {
|
||||
background: #FFF9C4;
|
||||
}
|
||||
.details-container .status-card .status-icon.status-using.data-v-2b5cbeae {
|
||||
background: #E8F5E9;
|
||||
}
|
||||
.details-container .status-card .status-icon.status-finished.data-v-2b5cbeae {
|
||||
background: #E3F2FD;
|
||||
}
|
||||
.details-container .status-card .status-icon.status-cancelled.data-v-2b5cbeae {
|
||||
background: #FFEBEE;
|
||||
}
|
||||
.details-container .status-card .status-text.data-v-2b5cbeae {
|
||||
font-size: 36rpx;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
.details-container .status-card .status-desc.data-v-2b5cbeae {
|
||||
font-size: 28rpx;
|
||||
color: #999;
|
||||
}
|
||||
.details-container .info-card.data-v-2b5cbeae {
|
||||
background: #fff;
|
||||
border-radius: 20rpx;
|
||||
padding: 30rpx;
|
||||
margin-bottom: 30rpx;
|
||||
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
.details-container .info-card .card-title.data-v-2b5cbeae {
|
||||
font-size: 32rpx;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
margin-bottom: 20rpx;
|
||||
position: relative;
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
.details-container .info-card .card-title.data-v-2b5cbeae::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
width: 8rpx;
|
||||
height: 32rpx;
|
||||
background: #1976D2;
|
||||
border-radius: 4rpx;
|
||||
}
|
||||
.details-container .info-card .info-item.data-v-2b5cbeae {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 20rpx 0;
|
||||
border-bottom: 1px solid #f5f5f5;
|
||||
}
|
||||
.details-container .info-card .info-item.data-v-2b5cbeae:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
.details-container .info-card .info-item .label.data-v-2b5cbeae {
|
||||
font-size: 28rpx;
|
||||
color: #666;
|
||||
}
|
||||
.details-container .info-card .info-item .value.data-v-2b5cbeae {
|
||||
font-size: 28rpx;
|
||||
color: #333;
|
||||
word-break: break-all;
|
||||
text-align: right;
|
||||
max-width: 70%;
|
||||
}
|
||||
.details-container .info-card .info-item.total.data-v-2b5cbeae {
|
||||
margin-top: 10rpx;
|
||||
padding-top: 30rpx;
|
||||
border-top: 1px solid #f5f5f5;
|
||||
}
|
||||
.details-container .info-card .info-item.total .label.data-v-2b5cbeae, .details-container .info-card .info-item.total .value.data-v-2b5cbeae {
|
||||
font-size: 32rpx;
|
||||
font-weight: 600;
|
||||
color: #333;
|
||||
}
|
||||
.details-container .info-card .info-item.total .value.data-v-2b5cbeae {
|
||||
color: #FF5722;
|
||||
}
|
||||
.details-container .action-buttons.data-v-2b5cbeae {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 30rpx 0;
|
||||
}
|
||||
.details-container .action-buttons .btn.data-v-2b5cbeae {
|
||||
flex: 1;
|
||||
height: 88rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
border-radius: 44rpx;
|
||||
}
|
||||
.details-container .action-buttons .btn.cancel.data-v-2b5cbeae {
|
||||
background: #f5f5f5;
|
||||
color: #666;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
.details-container .action-buttons .btn.primary.data-v-2b5cbeae {
|
||||
background: #1976D2;
|
||||
color: #fff;
|
||||
}
|
||||
.details-container .action-buttons .btn.data-v-2b5cbeae:active {
|
||||
opacity: 0.9;
|
||||
}
|
||||
+82
-10
@@ -88,7 +88,7 @@ const _sfc_main = {
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/order/index.vue:204", "获取订单详情失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/order/index.vue:222", "获取订单详情失败:", error);
|
||||
}
|
||||
}
|
||||
await loadOrderList();
|
||||
@@ -122,7 +122,7 @@ const _sfc_main = {
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/order/index.vue:248", "获取订单列表失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/order/index.vue:266", "获取订单列表失败:", error);
|
||||
common_vendor.index.showToast({
|
||||
title: "获取订单列表失败",
|
||||
icon: "none"
|
||||
@@ -147,11 +147,74 @@ const _sfc_main = {
|
||||
}
|
||||
};
|
||||
const navigateToReturn = (deviceId, orderId) => {
|
||||
common_vendor.index.__f__("log", "at pages/order/index.vue:277", orderId);
|
||||
common_vendor.index.__f__("log", "at pages/order/index.vue:295", orderId);
|
||||
common_vendor.index.navigateTo({
|
||||
url: `/pages/return/index?deviceId=${deviceId}&orderId=${orderId}`
|
||||
});
|
||||
};
|
||||
const navigateToDetails = (order) => {
|
||||
common_vendor.index.navigateTo({
|
||||
url: `/pages/order/details?orderId=${order.orderId || order.orderNo}`
|
||||
});
|
||||
};
|
||||
const handlePayment = async (order) => {
|
||||
try {
|
||||
common_vendor.index.showLoading({
|
||||
title: "处理中"
|
||||
});
|
||||
const res = await config_user.confirmPaymentAndRent(order.orderId);
|
||||
if (res.code === 200) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.showToast({
|
||||
title: "支付成功",
|
||||
icon: "success"
|
||||
});
|
||||
await loadOrderList(orderStatusTabs[currentTab.value].status);
|
||||
} else {
|
||||
throw new Error(res.msg || "支付失败");
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.showToast({
|
||||
title: error.message || "支付失败",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
};
|
||||
const handleCancelOrder = async (order) => {
|
||||
try {
|
||||
common_vendor.index.showModal({
|
||||
title: "确认取消",
|
||||
content: "确定要取消此订单吗?",
|
||||
success: async (res) => {
|
||||
if (res.confirm) {
|
||||
common_vendor.index.showLoading({
|
||||
title: "处理中"
|
||||
});
|
||||
const result = await config_user.cancelOrder({
|
||||
orderId: order.orderId
|
||||
});
|
||||
if (result.code === 200) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.showToast({
|
||||
title: "订单已取消",
|
||||
icon: "success"
|
||||
});
|
||||
await loadOrderList(orderStatusTabs[currentTab.value].status);
|
||||
} else {
|
||||
throw new Error(result.msg || "取消订单失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.showToast({
|
||||
title: error.message || "取消订单失败",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
return common_vendor.e({
|
||||
a: common_vendor.f(orderStatusTabs, (tab, index, i0) => {
|
||||
@@ -178,15 +241,24 @@ const _sfc_main = {
|
||||
g: common_vendor.t(order.startTime),
|
||||
h: common_vendor.t(order.endTime || "-"),
|
||||
i: common_vendor.t(order.amount),
|
||||
j: order.status == "in_used"
|
||||
}, order.status == "in_used" ? {
|
||||
k: common_vendor.o(($event) => navigateToReturn(order.deviceId, order.orderId), index)
|
||||
j: order.status === "waiting_for_payment" || order.orderStatus === "waiting_for_payment"
|
||||
}, order.status === "waiting_for_payment" || order.orderStatus === "waiting_for_payment" ? {
|
||||
k: common_vendor.o(($event) => handlePayment(order), index)
|
||||
} : {}, {
|
||||
l: order.status === "waiting_for_payment"
|
||||
}, order.status === "waiting_for_payment" ? {
|
||||
m: common_vendor.o(($event) => getOrderStatus(order), index)
|
||||
l: order.status === "waiting_for_payment" || order.orderStatus === "waiting_for_payment"
|
||||
}, order.status === "waiting_for_payment" || order.orderStatus === "waiting_for_payment" ? {
|
||||
m: common_vendor.o(($event) => handleCancelOrder(order), index)
|
||||
} : {}, {
|
||||
n: index
|
||||
n: order.status == "in_used" || order.orderStatus == "in_used"
|
||||
}, order.status == "in_used" || order.orderStatus == "in_used" ? {
|
||||
o: common_vendor.o(($event) => navigateToReturn(order.deviceId, order.orderId), index)
|
||||
} : {}, {
|
||||
p: common_vendor.o(($event) => navigateToDetails(order), index),
|
||||
q: order.status === "waiting_for_payment" || order.orderStatus === "waiting_for_payment"
|
||||
}, order.status === "waiting_for_payment" || order.orderStatus === "waiting_for_payment" ? {
|
||||
r: common_vendor.o(($event) => getOrderStatus(order), index)
|
||||
} : {}, {
|
||||
s: index
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<view class="order-container data-v-17a44f9d"><view class="status-tabs data-v-17a44f9d"><view wx:for="{{a}}" wx:for-item="tab" wx:key="b" class="{{['tab-item', 'data-v-17a44f9d', tab.c && 'active']}}" bindtap="{{tab.d}}">{{tab.a}}</view></view><view class="order-list data-v-17a44f9d"><view wx:if="{{b}}" class="empty-state data-v-17a44f9d"><view class="empty-icon data-v-17a44f9d"></view><text class="empty-text data-v-17a44f9d">暂无订单记录</text></view><view wx:for="{{c}}" wx:for-item="order" wx:key="n" class="order-item data-v-17a44f9d"><view class="order-header data-v-17a44f9d"><view class="order-id data-v-17a44f9d"><text class="data-v-17a44f9d">订单号:{{order.a}}</text></view><view class="{{['order-status', 'data-v-17a44f9d', order.c]}}">{{order.b}}</view></view><view class="order-body data-v-17a44f9d"><view class="device-info data-v-17a44f9d"><view class="device-left data-v-17a44f9d"><view class="device-name data-v-17a44f9d">共享风扇</view><view class="device-id data-v-17a44f9d">设备号:{{order.d}}</view></view><view class="device-right data-v-17a44f9d"><view wx:if="{{order.e}}" class="payment-badge wx-score data-v-17a44f9d"><image src="{{order.f}}" mode="aspectFit" class="badge-icon data-v-17a44f9d"></image><view class="badge-text data-v-17a44f9d"><text class="data-v-17a44f9d">微信支付分</text><text class="divider data-v-17a44f9d">|</text><text class="highlight data-v-17a44f9d">免押租借</text></view></view><view wx:else class="payment-badge deposit data-v-17a44f9d"><text class="badge-text data-v-17a44f9d">押金租借</text></view></view></view><view class="order-times data-v-17a44f9d"><view class="time-row data-v-17a44f9d"><text class="time-label data-v-17a44f9d">开始时间:</text><text class="time-value data-v-17a44f9d">{{order.g}}</text></view><view class="time-row data-v-17a44f9d"><text class="time-label data-v-17a44f9d">结束时间:</text><text class="time-value data-v-17a44f9d">{{order.h}}</text></view></view></view><view class="order-footer data-v-17a44f9d"><view class="price data-v-17a44f9d">¥{{order.i}}</view><view class="actions data-v-17a44f9d"><view wx:if="{{order.j}}" class="action-item primary data-v-17a44f9d" bindtap="{{order.k}}"> 归还设备 </view><view wx:if="{{order.l}}" class="action-item secondary data-v-17a44f9d" bindtap="{{order.m}}"> 同步订单状态 </view></view></view></view></view></view>
|
||||
<view class="order-container data-v-17a44f9d"><view class="status-tabs data-v-17a44f9d"><view wx:for="{{a}}" wx:for-item="tab" wx:key="b" class="{{['tab-item', 'data-v-17a44f9d', tab.c && 'active']}}" bindtap="{{tab.d}}">{{tab.a}}</view></view><view class="order-list data-v-17a44f9d"><view wx:if="{{b}}" class="empty-state data-v-17a44f9d"><view class="empty-icon data-v-17a44f9d"></view><text class="empty-text data-v-17a44f9d">暂无订单记录</text></view><view wx:for="{{c}}" wx:for-item="order" wx:key="s" class="order-item data-v-17a44f9d"><view class="order-header data-v-17a44f9d"><view class="order-id data-v-17a44f9d"><text class="data-v-17a44f9d">订单号:{{order.a}}</text></view><view class="{{['order-status', 'data-v-17a44f9d', order.c]}}">{{order.b}}</view></view><view class="order-body data-v-17a44f9d"><view class="device-info data-v-17a44f9d"><view class="device-left data-v-17a44f9d"><view class="device-name data-v-17a44f9d">共享风扇</view><view class="device-id data-v-17a44f9d">设备号:{{order.d}}</view></view><view class="device-right data-v-17a44f9d"><view wx:if="{{order.e}}" class="payment-badge wx-score data-v-17a44f9d"><image src="{{order.f}}" mode="aspectFit" class="badge-icon data-v-17a44f9d"></image><view class="badge-text data-v-17a44f9d"><text class="data-v-17a44f9d">微信支付分</text><text class="divider data-v-17a44f9d">|</text><text class="highlight data-v-17a44f9d">免押租借</text></view></view><view wx:else class="payment-badge deposit data-v-17a44f9d"><text class="badge-text data-v-17a44f9d">押金租借</text></view></view></view><view class="order-times data-v-17a44f9d"><view class="time-row data-v-17a44f9d"><text class="time-label data-v-17a44f9d">开始时间:</text><text class="time-value data-v-17a44f9d">{{order.g}}</text></view><view class="time-row data-v-17a44f9d"><text class="time-label data-v-17a44f9d">结束时间:</text><text class="time-value data-v-17a44f9d">{{order.h}}</text></view></view></view><view class="order-footer data-v-17a44f9d"><view class="price data-v-17a44f9d">¥{{order.i}}</view><view class="actions data-v-17a44f9d"><view wx:if="{{order.j}}" class="action-item primary data-v-17a44f9d" bindtap="{{order.k}}"> 立即支付 </view><view wx:if="{{order.l}}" class="action-item secondary data-v-17a44f9d" bindtap="{{order.m}}"> 取消订单 </view><view wx:if="{{order.n}}" class="action-item primary data-v-17a44f9d" bindtap="{{order.o}}"> 归还设备 </view><view class="action-item secondary data-v-17a44f9d" bindtap="{{order.p}}"> 查看详情 </view><view wx:if="{{order.q}}" class="action-item secondary data-v-17a44f9d" bindtap="{{order.r}}"> 同步状态 </view></view></view></view></view></view>
|
||||
@@ -187,6 +187,8 @@
|
||||
}
|
||||
.order-container .order-list .order-item .order-footer .actions.data-v-17a44f9d {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.order-container .order-list .order-item .order-footer .actions .action-item.data-v-17a44f9d {
|
||||
font-size: 26rpx;
|
||||
@@ -196,6 +198,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
.order-container .order-list .order-item .order-footer .actions .action-item.primary.data-v-17a44f9d {
|
||||
background: #1976D2;
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<view class="payment-container data-v-13c3fb22"><view class="status-card data-v-13c3fb22"><view class="{{['status-icon', 'data-v-13c3fb22', a]}}"></view><view class="status-text data-v-13c3fb22">{{b}}</view><view class="status-desc data-v-13c3fb22">{{c}}</view></view><view class="order-card data-v-13c3fb22"><view class="card-title data-v-13c3fb22">订单信息</view><view class="info-item data-v-13c3fb22"><text class="label data-v-13c3fb22">订单号</text><text class="value data-v-13c3fb22">{{d}}</text></view><view class="info-item data-v-13c3fb22"><text class="label data-v-13c3fb22">设备号</text><text class="value data-v-13c3fb22">{{e}}</text></view><view class="info-item data-v-13c3fb22"><text class="label data-v-13c3fb22">创建时间</text><text class="value data-v-13c3fb22">{{f}}</text></view><view class="info-item data-v-13c3fb22"><text class="label data-v-13c3fb22">联系电话</text><text class="value data-v-13c3fb22">{{g}}</text></view></view><view class="price-card data-v-13c3fb22"><view class="card-title data-v-13c3fb22">费用信息</view><view class="price-item data-v-13c3fb22"><text class="label data-v-13c3fb22">押金</text><text class="value data-v-13c3fb22">¥{{h}}</text></view><view class="price-item data-v-13c3fb22"><text class="label data-v-13c3fb22">套餐</text><text class="value data-v-13c3fb22">{{i}}元/{{j}}小时</text></view><view class="price-item total data-v-13c3fb22"><text class="label data-v-13c3fb22">合计</text><text class="value data-v-13c3fb22">¥{{k}}</text></view></view><view class="bottom-bar data-v-13c3fb22"><view class="total-amount data-v-13c3fb22"><text class="data-v-13c3fb22">合计:</text><text class="amount data-v-13c3fb22">¥{{l}}</text></view><button class="pay-btn data-v-13c3fb22" bindtap="{{m}}">立即支付</button></view></view>
|
||||
<view class="payment-container data-v-13c3fb22"><view class="status-card data-v-13c3fb22"><view class="{{['status-icon', 'data-v-13c3fb22', a]}}"></view><view class="status-text data-v-13c3fb22">{{b}}</view><view class="status-desc data-v-13c3fb22">{{c}}</view></view><view class="order-card data-v-13c3fb22"><view class="card-title data-v-13c3fb22">订单信息</view><view class="info-item data-v-13c3fb22"><text class="label data-v-13c3fb22">订单号</text><text class="value data-v-13c3fb22">{{d}}</text></view><view class="info-item data-v-13c3fb22"><text class="label data-v-13c3fb22">设备号</text><text class="value data-v-13c3fb22">{{e}}</text></view><view class="info-item data-v-13c3fb22"><text class="label data-v-13c3fb22">创建时间</text><text class="value data-v-13c3fb22">{{f}}</text></view><view class="info-item data-v-13c3fb22"><text class="label data-v-13c3fb22">联系电话</text><text class="value data-v-13c3fb22">{{g}}</text></view></view><view class="price-card data-v-13c3fb22"><view class="card-title data-v-13c3fb22">费用信息</view><view class="price-item data-v-13c3fb22"><text class="label data-v-13c3fb22">押金</text><text class="value data-v-13c3fb22">¥{{h}}</text></view><view class="price-item data-v-13c3fb22"><text class="label data-v-13c3fb22">套餐</text><text class="value data-v-13c3fb22">{{i}}元/{{j}}小时</text></view><view class="price-item total data-v-13c3fb22"><text class="label data-v-13c3fb22">合计</text><text class="value data-v-13c3fb22">¥{{k}}</text></view></view><view class="bottom-bar data-v-13c3fb22"><view class="total-amount data-v-13c3fb22"><text class="data-v-13c3fb22">合计:</text><text class="amount data-v-13c3fb22">¥{{l}}</text></view><view class="pay-btn data-v-13c3fb22" bindtap="{{m}}">立即支付</view></view></view>
|
||||
@@ -1 +1 @@
|
||||
<view class="success-container data-v-eb1f1ee2"><view class="status-card data-v-eb1f1ee2"><view class="status-icon success data-v-eb1f1ee2"></view><view class="status-text data-v-eb1f1ee2">归还成功</view><view class="status-desc data-v-eb1f1ee2">您的充电宝已归还,费用已从押金中扣除</view></view><view class="order-card data-v-eb1f1ee2"><view class="card-title data-v-eb1f1ee2">订单信息</view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">订单号</text><text class="value data-v-eb1f1ee2">{{a}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">设备号</text><text class="value data-v-eb1f1ee2">{{b}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">使用时长</text><text class="value data-v-eb1f1ee2">{{c}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">套餐时长</text><text class="value data-v-eb1f1ee2">{{d}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">超出时长</text><text class="value data-v-eb1f1ee2">{{e}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">归还时间</text><text class="value data-v-eb1f1ee2">{{f}}</text></view></view><view class="refund-card data-v-eb1f1ee2"><view class="card-title data-v-eb1f1ee2">费用信息</view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">套餐费用</text><text class="value data-v-eb1f1ee2">¥{{g}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">超时费用</text><text class="value data-v-eb1f1ee2">¥{{h}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">总费用</text><text class="value data-v-eb1f1ee2">¥{{i}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">押金</text><text class="value data-v-eb1f1ee2">¥{{j}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">退还金额</text><text class="value highlight data-v-eb1f1ee2">¥{{k}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">退还状态</text><text class="{{['value', 'data-v-eb1f1ee2', m]}}">{{l}}</text></view></view><view class="notice-card data-v-eb1f1ee2"><view class="card-title data-v-eb1f1ee2">退款说明</view><view class="notice-content data-v-eb1f1ee2"><text class="data-v-eb1f1ee2">1. 押金剩余金额需要您手动申请提现</text><text class="data-v-eb1f1ee2">2. 提现申请提交后将在1-3个工作日内退还到原支付账户</text><text class="data-v-eb1f1ee2">3. 如有疑问,请联系客服</text></view></view><view class="button-group data-v-eb1f1ee2"><button wx:if="{{n}}" class="primary-btn data-v-eb1f1ee2" bindtap="{{o}}">申请退款</button><button class="primary-btn data-v-eb1f1ee2" bindtap="{{p}}">返回首页</button></view></view>
|
||||
<view class="success-container data-v-eb1f1ee2"><view class="status-card data-v-eb1f1ee2"><view class="status-icon success data-v-eb1f1ee2"></view><view class="status-text data-v-eb1f1ee2">归还成功</view><view class="status-desc data-v-eb1f1ee2">您的风扇已归还,费用已从押金中扣除</view></view><view class="order-card data-v-eb1f1ee2"><view class="card-title data-v-eb1f1ee2">订单信息</view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">订单号</text><text class="value data-v-eb1f1ee2">{{a}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">设备号</text><text class="value data-v-eb1f1ee2">{{b}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">使用时长</text><text class="value data-v-eb1f1ee2">{{c}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">套餐时长</text><text class="value data-v-eb1f1ee2">{{d}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">超出时长</text><text class="value data-v-eb1f1ee2">{{e}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">归还时间</text><text class="value data-v-eb1f1ee2">{{f}}</text></view></view><view class="refund-card data-v-eb1f1ee2"><view class="card-title data-v-eb1f1ee2">费用信息</view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">套餐费用</text><text class="value data-v-eb1f1ee2">¥{{g}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">超时费用</text><text class="value data-v-eb1f1ee2">¥{{h}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">总费用</text><text class="value data-v-eb1f1ee2">¥{{i}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">押金</text><text class="value data-v-eb1f1ee2">¥{{j}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">退还金额</text><text class="value highlight data-v-eb1f1ee2">¥{{k}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">退还状态</text><text class="{{['value', 'data-v-eb1f1ee2', m]}}">{{l}}</text></view></view><view class="notice-card data-v-eb1f1ee2"><view class="card-title data-v-eb1f1ee2">退款说明</view><view class="notice-content data-v-eb1f1ee2"><text class="data-v-eb1f1ee2">1. 押金剩余金额需要您手动申请提现</text><text class="data-v-eb1f1ee2">2. 提现申请提交后将在1-3个工作日内退还到原支付账户</text><text class="data-v-eb1f1ee2">3. 如有疑问,请联系客服</text></view></view><view class="button-group data-v-eb1f1ee2"><button wx:if="{{n}}" class="primary-btn data-v-eb1f1ee2" bindtap="{{o}}">申请退款</button><button class="primary-btn data-v-eb1f1ee2" bindtap="{{p}}">返回首页</button></view></view>
|
||||
+10
-10
@@ -45,7 +45,7 @@ const _sfc_main = {
|
||||
payTime: orderData.payTime || this.formatTime(/* @__PURE__ */ new Date())
|
||||
};
|
||||
if (orderData.orderStatus === "IN_USED") {
|
||||
this.deviceMessage = "设备已弹出,请取走您的充电宝";
|
||||
this.deviceMessage = "设备已弹出,请取走您的风扇";
|
||||
this.isLoading = false;
|
||||
if (!this.hasTriggeredDevice) {
|
||||
common_vendor.index.$emit("orderSuccess:" + this.orderId);
|
||||
@@ -66,10 +66,10 @@ const _sfc_main = {
|
||||
});
|
||||
}
|
||||
},
|
||||
// 触发弹出充电宝
|
||||
// 触发弹出风扇
|
||||
async triggerDeviceEject() {
|
||||
if (this.hasTriggeredDevice) {
|
||||
common_vendor.index.__f__("log", "at pages/order/success.vue:129", "已经触发过弹出充电宝,不重复触发");
|
||||
common_vendor.index.__f__("log", "at pages/order/success.vue:129", "已经触发过弹出风扇,不重复触发");
|
||||
return;
|
||||
}
|
||||
this.hasTriggeredDevice = true;
|
||||
@@ -77,23 +77,23 @@ const _sfc_main = {
|
||||
this.isLoading = true;
|
||||
this.deviceMessage = "正在准备您的设备,请稍候...";
|
||||
try {
|
||||
common_vendor.index.__f__("log", "at pages/order/success.vue:139", `准备触发弹出充电宝,orderId: ${this.orderId}`);
|
||||
common_vendor.index.__f__("log", "at pages/order/success.vue:139", `准备触发弹出风扇,orderId: ${this.orderId}`);
|
||||
const result = await config_user.confirmPaymentAndRent(this.orderId);
|
||||
common_vendor.index.__f__("log", "at pages/order/success.vue:143", "确认支付并弹出充电宝结果:", JSON.stringify(result));
|
||||
common_vendor.index.__f__("log", "at pages/order/success.vue:143", "确认支付并弹出风扇结果:", JSON.stringify(result));
|
||||
if (result && result.code === 200) {
|
||||
this.deviceMessage = "设备已弹出,请取走您的充电宝";
|
||||
this.deviceMessage = "设备已弹出,请取走您的风扇";
|
||||
common_vendor.index.showToast({
|
||||
title: "充电宝已弹出",
|
||||
title: "风扇已弹出",
|
||||
icon: "success"
|
||||
});
|
||||
} else {
|
||||
throw new Error(result && result.msg || "弹出充电宝失败");
|
||||
throw new Error(result && result.msg || "弹出风扇失败");
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/order/success.vue:155", "弹出充电宝错误:", error);
|
||||
common_vendor.index.__f__("error", "at pages/order/success.vue:155", "弹出风扇错误:", error);
|
||||
this.deviceMessage = "弹出设备失败,请联系客服";
|
||||
common_vendor.index.showToast({
|
||||
title: error.message || "弹出充电宝失败,请联系客服",
|
||||
title: error.message || "弹出风扇失败,请联系客服",
|
||||
icon: "none"
|
||||
});
|
||||
} finally {
|
||||
|
||||
+1
-1
@@ -106,7 +106,7 @@ const _sfc_main = {
|
||||
this.clearStatusCheckTimer();
|
||||
common_vendor.index.showModal({
|
||||
title: "归还成功",
|
||||
content: "充电宝已归还成功,剩余押金将退还到您的账户",
|
||||
content: "风扇已归还成功,剩余押金将退还到您的账户",
|
||||
confirmText: "查看详情",
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<view class="return-container data-v-6d22bdf8"><view class="order-card data-v-6d22bdf8"><view class="order-header data-v-6d22bdf8"><text class="title data-v-6d22bdf8">{{a}}</text><text class="order-no data-v-6d22bdf8">订单号:{{b}}</text></view><view class="device-info data-v-6d22bdf8"><view class="device-left data-v-6d22bdf8"><view class="device-name data-v-6d22bdf8">共享风扇</view><view class="device-id data-v-6d22bdf8">设备号:{{c}}</view></view><view class="device-right data-v-6d22bdf8"><view wx:if="{{d}}" class="payment-badge wx-score data-v-6d22bdf8"><image src="{{e}}" mode="aspectFit" class="badge-icon data-v-6d22bdf8"></image><view class="badge-text data-v-6d22bdf8"><text class="data-v-6d22bdf8">微信支付分</text><text class="divider data-v-6d22bdf8">|</text><text class="highlight data-v-6d22bdf8">免押租借</text></view></view><view wx:else class="payment-badge deposit data-v-6d22bdf8"><text class="badge-text data-v-6d22bdf8">押金租借</text></view></view></view><view class="time-info data-v-6d22bdf8"><view class="time-item data-v-6d22bdf8"><text class="label data-v-6d22bdf8">开始时间</text><text class="value data-v-6d22bdf8">{{f}}</text></view><view class="time-item data-v-6d22bdf8"><text class="label data-v-6d22bdf8">已使用时长</text><text class="value highlight data-v-6d22bdf8">{{g}}</text></view><view class="time-item data-v-6d22bdf8"><text class="label data-v-6d22bdf8">当前费用</text><text class="value data-v-6d22bdf8">¥{{h}}</text></view></view><view wx:if="{{false}}" class="debug-info data-v-6d22bdf8"><view class="debug-title data-v-6d22bdf8">调试信息</view><view class="debug-item data-v-6d22bdf8">原始开始时间: {{i}}</view><view class="debug-item data-v-6d22bdf8">处理后开始时间: {{j}}</view><view class="debug-item data-v-6d22bdf8">订单状态: {{k}}</view></view></view><view class="notice-card data-v-6d22bdf8"><view class="notice-title data-v-6d22bdf8">归还说明</view><view class="notice-list data-v-6d22bdf8"><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">请确保设备完好无损</text></view><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">将充电宝插入原位置或空闲插口</text></view><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">系统将自动检测归还并处理退款</text></view><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">归还成功后将自动跳转到成功页面</text></view></view></view><view class="bottom-bar data-v-6d22bdf8"><view class="action-item secondary data-v-6d22bdf8" bindtap="{{l}}">刷新状态</view><view class="action-item primary data-v-6d22bdf8" bindtap="{{m}}">返回首页</view></view></view>
|
||||
<view class="return-container data-v-6d22bdf8"><view class="order-card data-v-6d22bdf8"><view class="order-header data-v-6d22bdf8"><text class="title data-v-6d22bdf8">{{a}}</text><text class="order-no data-v-6d22bdf8">订单号:{{b}}</text></view><view class="device-info data-v-6d22bdf8"><view class="device-left data-v-6d22bdf8"><view class="device-name data-v-6d22bdf8">共享风扇</view><view class="device-id data-v-6d22bdf8">设备号:{{c}}</view></view><view class="device-right data-v-6d22bdf8"><view wx:if="{{d}}" class="payment-badge wx-score data-v-6d22bdf8"><image src="{{e}}" mode="aspectFit" class="badge-icon data-v-6d22bdf8"></image><view class="badge-text data-v-6d22bdf8"><text class="data-v-6d22bdf8">微信支付分</text><text class="divider data-v-6d22bdf8">|</text><text class="highlight data-v-6d22bdf8">免押租借</text></view></view><view wx:else class="payment-badge deposit data-v-6d22bdf8"><text class="badge-text data-v-6d22bdf8">押金租借</text></view></view></view><view class="time-info data-v-6d22bdf8"><view class="time-item data-v-6d22bdf8"><text class="label data-v-6d22bdf8">开始时间</text><text class="value data-v-6d22bdf8">{{f}}</text></view><view class="time-item data-v-6d22bdf8"><text class="label data-v-6d22bdf8">已使用时长</text><text class="value highlight data-v-6d22bdf8">{{g}}</text></view><view class="time-item data-v-6d22bdf8"><text class="label data-v-6d22bdf8">当前费用</text><text class="value data-v-6d22bdf8">¥{{h}}</text></view></view><view wx:if="{{false}}" class="debug-info data-v-6d22bdf8"><view class="debug-title data-v-6d22bdf8">调试信息</view><view class="debug-item data-v-6d22bdf8">原始开始时间: {{i}}</view><view class="debug-item data-v-6d22bdf8">处理后开始时间: {{j}}</view><view class="debug-item data-v-6d22bdf8">订单状态: {{k}}</view></view></view><view class="notice-card data-v-6d22bdf8"><view class="notice-title data-v-6d22bdf8">归还说明</view><view class="notice-list data-v-6d22bdf8"><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">请确保设备完好无损</text></view><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">将风扇插入原位置或空闲插口</text></view><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">系统将自动检测归还并处理退款</text></view><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">归还成功后将自动跳转到成功页面</text></view></view></view><view class="bottom-bar data-v-6d22bdf8"><view class="action-item secondary data-v-6d22bdf8" bindtap="{{l}}">刷新状态</view><view class="action-item primary data-v-6d22bdf8" bindtap="{{m}}">返回首页</view></view></view>
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
},
|
||||
"compileType": "miniprogram",
|
||||
"libVersion": "",
|
||||
"appid": "wx2165f0be356ae7a9",
|
||||
"appid": "wxe752f45e7f7aa271",
|
||||
"projectname": "uni-fans-score",
|
||||
"condition": {
|
||||
"search": {
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ const wxLogin = () => {
|
||||
if (loginRes.code) {
|
||||
const result = await config_user.login({
|
||||
code: loginRes.code,
|
||||
appid: "wx2165f0be356ae7a9"
|
||||
appid: "wxe752f45e7f7aa271"
|
||||
});
|
||||
if (result.code === 200) {
|
||||
common_vendor.index.setStorageSync("token", result.data.LoginWxVo.access_token);
|
||||
|
||||
+2
-2
@@ -125,7 +125,7 @@ class OrderMonitor {
|
||||
common_vendor.index.__f__("log", "at utils/orderMonitor.js:153", `订单 ${orderId} 已完成!`);
|
||||
common_vendor.index.$emit("orderCompleted", orderData);
|
||||
common_vendor.index.showToast({
|
||||
title: "充电宝归还成功",
|
||||
title: "风扇归还成功",
|
||||
icon: "success",
|
||||
duration: 2e3
|
||||
});
|
||||
@@ -136,7 +136,7 @@ class OrderMonitor {
|
||||
setTimeout(() => {
|
||||
common_vendor.index.showModal({
|
||||
title: "归还成功",
|
||||
content: "充电宝已归还成功,剩余押金将退还到您的账户",
|
||||
content: "风扇已归还成功,剩余押金将退还到您的账户",
|
||||
confirmText: "查看详情",
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
|
||||
Reference in New Issue
Block a user