style:根据支付分免押规范进行页面样式变更(整体)

This commit is contained in:
2025-06-30 09:09:08 +08:00
parent 8ac1666e6b
commit 7be1e97b7c
77 changed files with 2141 additions and 1420 deletions
+1 -1
View File
@@ -1 +1 @@
"use strict";const t=require("../../common/vendor.js"),e={data:()=>({depositAmount:"99.00",records:[{type:"支付",time:"2024-03-20 15:30",amount:"99.00"},{type:"退还",time:"2024-03-19 12:00",amount:"99.00"}]}),methods:{handleWithdraw(){t.index.showModal({title:"确认提现",content:"押金将原路退回,预计0-7个工作日到账",success:e=>{e.confirm&&t.index.showToast({title:"提现申请已提交",icon:"success"})}})}}};const o=t._export_sfc(e,[["render",function(e,o,n,d,s,a){return{a:t.t(s.depositAmount),b:t.o(((...t)=>a.handleWithdraw&&a.handleWithdraw(...t))),c:t.f(s.records,((e,o,n)=>({a:t.t(e.type),b:t.t(e.time),c:t.t("退还"===e.type?"+":"-"),d:t.t(e.amount),e:t.n("退还"===e.type?"refund":""),f:o})))}}],["__scopeId","data-v-a3ef2e56"]]);wx.createPage(o);
"use strict";const e=require("../../common/vendor.js"),t=require("../../util/index.js"),o=require("../../config/user.js"),s={data:()=>({depositAmount:"0.00",orderNo:"",records:[],orderId:""}),onLoad(){},onShow(){this.loadUserInfo()},methods:{async loadUserInfo(){try{const e=await t.getUserInfo();console.log("loadUserInfo",e),200===e.code&&(this.depositAmount=e.data.balanceAmount||"0.00",this.orderNo=e.data.latestOrderNo||"",this.orderId=e.data.latestOrderId||"",parseFloat(this.depositAmount)>0&&this.orderNo?this.records=[{type:"支付",time:this.formatDate(new Date),amount:this.depositAmount}]:this.records=[])}catch(o){console.error("获取用户信息失败:",o),e.index.showToast({title:"获取用户信息失败",icon:"none"})}},async handleWithdraw(){if(parseFloat(this.depositAmount)<=0)e.index.showToast({title:"无可提现余额",icon:"none"});else{if(0!=this.orderId.length||0!=this.orderNo.length){const e=await o.queryById(Number(this.orderId));console.log(e)}e.index.showModal({title:"确认提现",content:"押金将原路退回,预计0-7个工作日到账",success:async t=>{if(t.confirm){e.index.showLoading({title:"提现中..."});try{console.log("发起提现请求,订单号:",this.orderNo);const t=await o.withdrawDeposit(this.orderNo);if(console.log("提现响应:",t),200!==t.code)throw new Error(t.msg||"提现失败");e.index.hideLoading(),e.index.showToast({title:"提现申请已提交",icon:"success"}),this.depositAmount="0.00",this.records.push({type:"退还",time:this.formatDate(new Date),amount:this.depositAmount}),setTimeout((()=>{this.loadUserInfo()}),1500)}catch(s){console.error("提现失败:",s),e.index.hideLoading();let t="提现失败,请稍后再试";s.message&&(t=s.message.includes("尚未归还")?"当前订单尚未归还,请归还后再提现":s.message.includes("已退还")?"押金已退还,无需重复提现":s.message.includes("处理中")?"押金退还处理中,请耐心等待":s.message.includes("余额为0")?"账户余额为0,无法提现":s.message),e.index.showModal({title:"提现失败",content:t,showCancel:!1})}}}})}},formatDate: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")}`}};const r=e._export_sfc(s,[["render",function(t,o,s,r,n,i){return e.e({a:e.t(n.depositAmount),b:e.o(((...e)=>i.handleWithdraw&&i.handleWithdraw(...e))),c:n.depositAmount<=0,d:n.records.length>0},n.records.length>0?{e:e.f(n.records,((t,o,s)=>({a:e.t(t.type),b:e.t(t.time),c:e.t("退还"===t.type?"+":"-"),d:e.t(t.amount),e:e.n("退还"===t.type?"refund":""),f:o})))}:{})}],["__scopeId","data-v-8981ee42"]]);wx.createPage(r);
+1 -1
View File
@@ -1 +1 @@
<view class="deposit-container data-v-a3ef2e56"><view class="deposit-card data-v-a3ef2e56"><view class="title data-v-a3ef2e56">押金余额</view><view class="amount data-v-a3ef2e56">¥{{a}}</view><button class="withdraw-btn data-v-a3ef2e56" bindtap="{{b}}">提现</button></view><view class="notice-card data-v-a3ef2e56"><view class="notice-title data-v-a3ef2e56"><view class="dot data-v-a3ef2e56"></view><text class="data-v-a3ef2e56">提现说明</text></view><view class="notice-content data-v-a3ef2e56"><view class="notice-item data-v-a3ef2e56">1. 提现金额将原路退回支付账户</view><view class="notice-item data-v-a3ef2e56">2. 提现申请提交后预计0-7个工作日到账</view><view class="notice-item data-v-a3ef2e56">3. 如超时未收到,请联系客服处理</view></view></view><view class="record-card data-v-a3ef2e56"><view class="record-title data-v-a3ef2e56">押金记录</view><view class="record-list data-v-a3ef2e56"><view wx:for="{{c}}" wx:for-item="item" wx:key="f" class="record-item data-v-a3ef2e56"><view class="record-info data-v-a3ef2e56"><text class="record-type data-v-a3ef2e56">{{item.a}}</text><text class="record-time data-v-a3ef2e56">{{item.b}}</text></view><text class="{{['record-amount', 'data-v-a3ef2e56', item.e]}}">{{item.c}}¥{{item.d}}</text></view></view></view></view>
<view class="deposit-container data-v-8981ee42"><view class="deposit-card data-v-8981ee42"><view class="title data-v-8981ee42">押金余额</view><view class="amount data-v-8981ee42">¥{{a}}</view><button class="withdraw-btn data-v-8981ee42" bindtap="{{b}}" disabled="{{c}}">提现</button></view><view class="notice-card data-v-8981ee42"><view class="notice-title data-v-8981ee42"><view class="dot data-v-8981ee42"></view><text class="data-v-8981ee42">提现说明</text></view><view class="notice-content data-v-8981ee42"><view class="notice-item data-v-8981ee42">1. 提现金额将原路退回支付账户</view><view class="notice-item data-v-8981ee42">2. 提现申请提交后预计0-7个工作日到账</view><view class="notice-item data-v-8981ee42">3. 如超时未收到,请联系客服处理</view></view></view><view wx:if="{{d}}" class="record-card data-v-8981ee42"><view class="record-title data-v-8981ee42">押金记录</view><view class="record-list data-v-8981ee42"><view wx:for="{{e}}" wx:for-item="item" wx:key="f" class="record-item data-v-8981ee42"><view class="record-info data-v-8981ee42"><text class="record-type data-v-8981ee42">{{item.a}}</text><text class="record-time data-v-8981ee42">{{item.b}}</text></view><text class="{{['record-amount', 'data-v-8981ee42', item.e]}}">{{item.c}}¥{{item.d}}</text></view></view></view></view>
+1 -1
View File
@@ -1 +1 @@
.deposit-container.data-v-a3ef2e56{min-height:100vh;background:#f8f8f8;padding:30rpx}.deposit-container .deposit-card.data-v-a3ef2e56{background:linear-gradient(135deg,#1976d2,#64b5f6);border-radius:20rpx;padding:40rpx;color:#fff;text-align:center;box-shadow:0 4rpx 20rpx rgba(25,118,210,.2)}.deposit-container .deposit-card .title.data-v-a3ef2e56{font-size:28rpx;opacity:.9;margin-bottom:20rpx}.deposit-container .deposit-card .amount.data-v-a3ef2e56{font-size:72rpx;font-weight:700;margin-bottom:40rpx}.deposit-container .deposit-card .withdraw-btn.data-v-a3ef2e56{background:#fff;color:#1976d2;width:80%;height:80rpx;line-height:80rpx;border-radius:40rpx;font-size:32rpx;font-weight:500;margin:0 auto}.deposit-container .deposit-card .withdraw-btn.data-v-a3ef2e56:active{transform:scale(.98)}.deposit-container .notice-card.data-v-a3ef2e56{margin-top:30rpx;background:#fff;border-radius:20rpx;padding:30rpx;box-shadow:0 4rpx 16rpx rgba(0,0,0,.04)}.deposit-container .notice-card .notice-title.data-v-a3ef2e56{display:flex;align-items:center;margin-bottom:20rpx}.deposit-container .notice-card .notice-title .dot.data-v-a3ef2e56{width:12rpx;height:12rpx;background:#1976d2;border-radius:50%;margin-right:10rpx}.deposit-container .notice-card .notice-title text.data-v-a3ef2e56{font-size:30rpx;font-weight:500;color:#333}.deposit-container .notice-card .notice-content .notice-item.data-v-a3ef2e56{font-size:26rpx;color:#666;line-height:1.8;padding-left:22rpx}.deposit-container .record-card.data-v-a3ef2e56{margin-top:30rpx;background:#fff;border-radius:20rpx;padding:30rpx;box-shadow:0 4rpx 16rpx rgba(0,0,0,.04)}.deposit-container .record-card .record-title.data-v-a3ef2e56{font-size:30rpx;font-weight:500;color:#333;margin-bottom:20rpx;border-left:8rpx solid #1976D2;padding-left:20rpx}.deposit-container .record-card .record-list .record-item.data-v-a3ef2e56{display:flex;justify-content:space-between;align-items:center;padding:20rpx 0;border-bottom:1rpx solid #f5f5f5}.deposit-container .record-card .record-list .record-item.data-v-a3ef2e56:last-child{border-bottom:none}.deposit-container .record-card .record-list .record-item .record-info .record-type.data-v-a3ef2e56{font-size:28rpx;color:#333;margin-bottom:6rpx;display:block}.deposit-container .record-card .record-list .record-item .record-info .record-time.data-v-a3ef2e56{font-size:24rpx;color:#999}.deposit-container .record-card .record-list .record-item .record-amount.data-v-a3ef2e56{font-size:32rpx;color:#333;font-weight:500}.deposit-container .record-card .record-list .record-item .record-amount.refund.data-v-a3ef2e56{color:#4caf50}
.deposit-container.data-v-8981ee42{min-height:100vh;background:#f8f8f8;padding:30rpx}.deposit-container .deposit-card.data-v-8981ee42{background:linear-gradient(135deg,#1976d2,#64b5f6);border-radius:20rpx;padding:40rpx;color:#fff;text-align:center;box-shadow:0 4rpx 20rpx rgba(25,118,210,.2)}.deposit-container .deposit-card .title.data-v-8981ee42{font-size:28rpx;opacity:.9;margin-bottom:20rpx}.deposit-container .deposit-card .amount.data-v-8981ee42{font-size:72rpx;font-weight:700;margin-bottom:40rpx}.deposit-container .deposit-card .withdraw-btn.data-v-8981ee42{background:#fff;color:#1976d2;width:80%;height:80rpx;line-height:80rpx;border-radius:40rpx;font-size:32rpx;font-weight:500;margin:0 auto}.deposit-container .deposit-card .withdraw-btn.data-v-8981ee42:active{transform:scale(.98)}.deposit-container .deposit-card .withdraw-btn[disabled].data-v-8981ee42{background:rgba(255,255,255,.6);color:rgba(25,118,210,.5)}.deposit-container .notice-card.data-v-8981ee42{margin-top:30rpx;background:#fff;border-radius:20rpx;padding:30rpx;box-shadow:0 4rpx 16rpx rgba(0,0,0,.04)}.deposit-container .notice-card .notice-title.data-v-8981ee42{display:flex;align-items:center;margin-bottom:20rpx}.deposit-container .notice-card .notice-title .dot.data-v-8981ee42{width:12rpx;height:12rpx;background:#1976d2;border-radius:50%;margin-right:10rpx}.deposit-container .notice-card .notice-title text.data-v-8981ee42{font-size:30rpx;font-weight:500;color:#333}.deposit-container .notice-card .notice-content .notice-item.data-v-8981ee42{font-size:26rpx;color:#666;line-height:1.8;padding-left:22rpx}.deposit-container .record-card.data-v-8981ee42{margin-top:30rpx;background:#fff;border-radius:20rpx;padding:30rpx;box-shadow:0 4rpx 16rpx rgba(0,0,0,.04)}.deposit-container .record-card .record-title.data-v-8981ee42{font-size:30rpx;font-weight:500;color:#333;margin-bottom:20rpx;border-left:8rpx solid #1976D2;padding-left:20rpx}.deposit-container .record-card .record-list .record-item.data-v-8981ee42{display:flex;justify-content:space-between;align-items:center;padding:20rpx 0;border-bottom:1rpx solid #f5f5f5}.deposit-container .record-card .record-list .record-item.data-v-8981ee42:last-child{border-bottom:none}.deposit-container .record-card .record-list .record-item .record-info .record-type.data-v-8981ee42{font-size:28rpx;color:#333;margin-bottom:6rpx;display:block}.deposit-container .record-card .record-list .record-item .record-info .record-time.data-v-8981ee42{font-size:24rpx;color:#999}.deposit-container .record-card .record-list .record-item .record-amount.data-v-8981ee42{font-size:32rpx;color:#333;font-weight:500}.deposit-container .record-card .record-list .record-item .record-amount.refund.data-v-8981ee42{color:#4caf50}
+1 -1
View File
@@ -1 +1 @@
"use strict";const e=require("../../common/vendor.js"),t=require("../../config/user.js"),i={data:()=>({deviceInfo:{},deviceId:"",deviceLocation:"一号教学楼大厅",batteryLevel:95,hasActiveOrder:!1,deviceStatus:{text:"可使用",class:"available"},selectedPackage:1,packages:[{time:"1小时",price:"2.00",unitPrice:"2.00"},{time:"4小时",price:"6.00",unitPrice:"1.50"},{time:"12小时",price:"15.00",unitPrice:"1.25"}],isLoggedIn:!0,phoneNumber:""}),onLoad(e){this.deviceId=e.deviceNo,console.log(e.deviceNo),this.getDeviceInfo()},methods:{async getDeviceInfo(){const e=await t.getDeviceInfo(this.deviceId);200==e.code&&(this.deviceInfo=e.data)},showLoginTip(){e.index.showModal({title:"提示",content:"请先登录后再操作",confirmText:"去登录",success:t=>{t.confirm&&e.index.navigateTo({url:"/pages/login/index"})}})},selectPackage(e){this.selectedPackage=e},async checkOrderStatus(){try{(await this.$api.checkActiveOrder()).hasOrder&&e.index.redirectTo({url:`/pages/device/return?deviceId=${this.deviceId}`})}catch(t){e.index.showToast({title:"订单状态查询失败",icon:"none"})}},handleRent(){if(!this.isLoggedIn)return void this.showLoginTip();if(!this.phoneNumber)return void e.index.showToast({title:"请输入手机号码",icon:"none"});if(!/^1[3-9]\d{9}$/.test(this.phoneNumber))return void e.index.showToast({title:"请输入正确的手机号码",icon:"none"});const t=this.packages[this.selectedPackage];e.index.showModal({title:"确认租借",content:`确认支付押金¥99.00及${t.time}套餐费用¥${t.price}`,success:e=>{e.confirm&&this.submitRentOrder()}})},async submitRentOrder(){try{e.index.showLoading({title:"处理中"});const i=this.packages[this.selectedPackage],c=await t.rentPowerBank(this.deviceId,this.phoneNumber);if(200!==c.code)throw new Error(c.msg||"设备租借失败");const n=c.data;e.index.hideLoading(),e.index.redirectTo({url:`/pages/order/payment?orderId=${n.orderId}&packageTime=${i.time}&packagePrice=${i.price}`})}catch(i){e.index.hideLoading(),e.index.showToast({title:i.message||"租借失败,请重试",icon:"none"})}}}};const c=e._export_sfc(i,[["render",function(t,i,c,n,a,r){return e.e({a:e.t(a.deviceId),b:e.t(a.deviceStatus.text),c:e.n(a.deviceStatus.class),d:e.t(a.deviceLocation),e:e.t(a.batteryLevel),f:!a.hasActiveOrder},a.hasActiveOrder?{}:{g:e.f(a.packages,((t,i,c)=>({a:e.t(t.time),b:e.t(t.price),c:e.t(t.unitPrice),d:i,e:a.selectedPackage===i?1:"",f:e.o((e=>r.selectPackage(i)),i)})))},{h:!a.hasActiveOrder},a.hasActiveOrder?{}:{i:a.phoneNumber,j:e.o((e=>a.phoneNumber=e.detail.value))},{k:!a.hasActiveOrder},(a.hasActiveOrder,{}),{l:e.t(a.hasActiveOrder?"归还设备":"立即租借"),m:e.n(a.hasActiveOrder?"return":"rent"),n:e.o(((...e)=>r.handleRent&&r.handleRent(...e)))})}],["__scopeId","data-v-b8e15e19"]]);wx.createPage(c);
"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js"),a=require("../../config/user.js"),o=require("../../util/index.js"),i={__name:"detail",setup(i){const n=e.ref({}),s=e.ref(""),r=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=>{s.value=e.deviceNo,f(),console.log(e.deviceNo),x()}));const x=async()=>{const e=await a.getDeviceInfo(s.value);200==e.code&&(n.value=e.data.device||{},n.value.deviceLocation?r.value=n.value.deviceLocation:e.data.position&&e.data.position.name&&(r.value=e.data.position.name),n.value.status&&("online"===n.value.status?(l.text="可使用",l.class="available"):"offline"===n.value.status&&(l.text="离线",l.class="offline")))},f=async()=>{try{const t=await e.index.$api.checkActiveOrder();if(t.hasOrder){const a=t.order;"waiting_for_payment"===a.status?e.index.redirectTo({url:`/pages/order/payment?orderId=${a.orderId}&deviceId=${s.value}`}):"in_used"===a.status&&e.index.redirectTo({url:`/pages/device/return?deviceId=${s.value}`})}}catch(t){e.index.showToast({title:"订单状态查询失败",icon:"none"})}},g=()=>{u.value?v.value?/^1[3-9]\d{9}$/.test(v.value)?m():e.index.showToast({title:"请输入正确的手机号码",icon:"none"}):e.index.showToast({title:"请输入手机号码",icon:"none"}):e.index.showModal({title:"提示",content:"请先登录后再操作",confirmText:"去登录",success:t=>{t.confirm&&e.index.navigateTo({url:"/pages/login/index"})}})},m=async()=>{try{e.index.showLoading({title:"处理中"});const i=await a.rentPowerBank(s.value,v.value);if(200!==i.code)throw new Error(i.msg||"设备租借失败");const n=i.data,r=await a.getOrderByOrderNoScore(n.orderNo);if(console.log(r),e.index.hideLoading(),r&&200===r.code)try{if("0"==(await o.initiateWeChatScorePayment(r)).errCode){await a.getOrderByOrderNoScorePayStatus(n.orderNo);e.index.showToast({title:"设备租借成功",icon:"success"}),setTimeout((()=>{e.index.redirectTo({url:"/pages/order/index"})}),1500)}}catch(t){e.index.showToast({title:"支付分调用失败,请重试",icon:"none"})}else e.index.showToast({title:(null==r?void 0:r.msg)||"获取支付参数失败",icon:"none"});console.log(n)}catch(i){e.index.hideLoading(),e.index.showToast({title:i.message||"租借失败,请重试",icon:"none"})}};return(a,o)=>e.e({a:e.t(l.text),b:e.n(l.class),c:e.t(s.value),d:t._imports_0$3,e:e.t(r.value),f:t._imports_1$2,g:d.value<20?1:"",h:e.t(d.value),i:!c.value},c.value?{}:{j:v.value,k:e.o((e=>v.value=e.detail.value))},{l:t._imports_0$2,m:e.t(c.value?"归还设备":"免押金租借"),n:c.value?1:"",o:e.o(g)})}},n=e._export_sfc(i,[["__scopeId","data-v-fc2714b0"]]);wx.createPage(n);
+1 -1
View File
@@ -1 +1 @@
<view class="detail-container data-v-b8e15e19"><view class="device-card data-v-b8e15e19"><view class="device-header data-v-b8e15e19"><view class="device-title data-v-b8e15e19"><text class="name data-v-b8e15e19">共享风扇</text><text class="id data-v-b8e15e19">设备号:{{a}}</text></view><view class="{{['status', 'data-v-b8e15e19', c]}}">{{b}}</view></view><view class="device-info data-v-b8e15e19"><view class="info-item data-v-b8e15e19"><text class="label data-v-b8e15e19">设备位置</text><text class="value data-v-b8e15e19">{{d}}</text></view><view class="info-item data-v-b8e15e19"><text class="label data-v-b8e15e19">电池电量</text><text class="value data-v-b8e15e19">{{e}}%</text></view></view></view><view wx:if="{{f}}" class="package-section data-v-b8e15e19"><view class="section-title data-v-b8e15e19">选择套餐</view><view class="package-list data-v-b8e15e19"><view wx:for="{{g}}" wx:for-item="pkg" wx:key="d" class="{{['package-item', 'data-v-b8e15e19', pkg.e && 'active']}}" bindtap="{{pkg.f}}"><view class="package-content data-v-b8e15e19"><text class="time data-v-b8e15e19">{{pkg.a}}</text><text class="price data-v-b8e15e19">¥{{pkg.b}}</text></view><text class="unit-price data-v-b8e15e19">约{{pkg.c}}元/小时</text></view></view></view><view wx:if="{{h}}" class="phone-section data-v-b8e15e19"><view class="section-title data-v-b8e15e19">联系方式</view><view class="phone-input-wrap data-v-b8e15e19"><input type="number" class="phone-input data-v-b8e15e19" maxlength="11" placeholder="请输入手机号码" value="{{i}}" bindinput="{{j}}"/></view></view><view class="notice-section data-v-b8e15e19"><view class="section-title data-v-b8e15e19">使用说明</view><view class="notice-list data-v-b8e15e19"><view class="notice-item data-v-b8e15e19"><view class="dot data-v-b8e15e19"></view><text class="data-v-b8e15e19">请在使用前检查设备是否完好</text></view><view class="notice-item data-v-b8e15e19"><view class="dot data-v-b8e15e19"></view><text class="data-v-b8e15e19">超出使用时间将自动按小时计费</text></view><view class="notice-item data-v-b8e15e19"><view class="dot data-v-b8e15e19"></view><text class="data-v-b8e15e19">请在指定区域内使用设备</text></view></view></view><view class="bottom-bar data-v-b8e15e19"><view wx:if="{{k}}" class="price-info data-v-b8e15e19"><text class="deposit-text data-v-b8e15e19">押金:</text><text class="deposit-amount data-v-b8e15e19">¥99</text></view><button class="{{['action-btn', 'data-v-b8e15e19', m]}}" bindtap="{{n}}">{{l}}</button></view></view>
<view class="container data-v-fc2714b0"><view class="device-header data-v-fc2714b0"><view class="{{['device-status-card', 'data-v-fc2714b0', b]}}"><view class="status-indicator data-v-fc2714b0"></view><text class="status-text data-v-fc2714b0">{{a}}</text></view><view class="device-title data-v-fc2714b0"><text class="name data-v-fc2714b0">共享风扇</text><view class="device-meta data-v-fc2714b0"><text class="id-label data-v-fc2714b0">设备号:</text><text class="id-value data-v-fc2714b0">{{c}}</text></view></view></view><view class="card device-info-card data-v-fc2714b0"><view class="card-row data-v-fc2714b0"><view class="card-item data-v-fc2714b0"><view class="item-icon location-icon data-v-fc2714b0"><image class="data-v-fc2714b0" src="{{d}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-fc2714b0"><text class="item-label data-v-fc2714b0">当前位置</text><text class="item-value data-v-fc2714b0">{{e}}</text></view></view><view class="card-item data-v-fc2714b0"><view class="{{['item-icon', 'battery-icon', 'data-v-fc2714b0', g && 'battery-low']}}"><image class="data-v-fc2714b0" src="{{f}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-fc2714b0"><text class="item-label data-v-fc2714b0">电池电量</text><text class="item-value data-v-fc2714b0">{{h}}%</text></view></view></view></view><view class="card pricing-card data-v-fc2714b0"><view class="card-header data-v-fc2714b0"><text class="card-title data-v-fc2714b0">计费规则</text></view><view class="pricing-banner data-v-fc2714b0"><view class="pricing-main data-v-fc2714b0"><text class="price data-v-fc2714b0">¥5.00</text><text class="unit data-v-fc2714b0">/小时</text></view><text class="cap-price data-v-fc2714b0">封顶 ¥99</text></view><view class="pricing-rules data-v-fc2714b0"><view class="rule-item data-v-fc2714b0"><view class="rule-dot data-v-fc2714b0"></view><text class="rule-text data-v-fc2714b0">前15分钟内归还<text class="highlight data-v-fc2714b0">免费</text></text></view><view class="rule-item data-v-fc2714b0"><view class="rule-dot data-v-fc2714b0"></view><text class="rule-text data-v-fc2714b0">不足60分钟按60分钟计费</text></view><view class="rule-item data-v-fc2714b0"><view class="rule-dot data-v-fc2714b0"></view><text class="rule-text data-v-fc2714b0">持续计费至99元视为买断</text></view></view></view><view wx:if="{{i}}" class="card phone-card data-v-fc2714b0"><view class="card-header data-v-fc2714b0"><text class="card-title data-v-fc2714b0">联系方式</text></view><view class="phone-input-container data-v-fc2714b0"><view class="input-wrapper data-v-fc2714b0"><text class="prefix data-v-fc2714b0">+86</text><input type="number" class="phone-input data-v-fc2714b0" maxlength="11" placeholder="请输入手机号码" value="{{j}}" bindinput="{{k}}"/></view></view></view><view class="card notice-card data-v-fc2714b0"><view class="card-header data-v-fc2714b0"><text class="card-title data-v-fc2714b0">使用须知</text></view><view class="notice-items data-v-fc2714b0"><view class="notice-item data-v-fc2714b0"><view class="notice-dot data-v-fc2714b0"></view><text class="notice-text data-v-fc2714b0">请在使用前检查设备是否完好</text></view><view class="notice-item data-v-fc2714b0"><view class="notice-dot data-v-fc2714b0"></view><text class="notice-text data-v-fc2714b0">请在指定区域内使用设备</text></view><view class="notice-item data-v-fc2714b0"><view class="notice-dot data-v-fc2714b0"></view><text class="notice-text data-v-fc2714b0">归还时请确保设备完好,避免损坏</text></view></view></view><view class="footer data-v-fc2714b0"><view class="wechat-credit data-v-fc2714b0"><image src="{{l}}" mode="aspectFit" class="wx-icon data-v-fc2714b0"></image><view class="credit-text data-v-fc2714b0"><text class="data-v-fc2714b0">微信支付分</text><text class="credit-divider data-v-fc2714b0">|</text><text class="credit-score data-v-fc2714b0">支付分200分及以上优享</text></view></view><button class="{{['rent-button', 'data-v-fc2714b0', n && 'return-button']}}" bindtap="{{o}}"><text class="data-v-fc2714b0">{{m}}</text></button></view></view>
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
"use strict";const e=require("../../common/vendor.js"),t={data:()=>({types:["设备故障","收费问题","使用建议","其他"],selectedType:-1,description:"",images:[],contact:""}),methods:{selectType(e){this.selectedType=e},chooseImage(){e.index.chooseImage({count:3-this.images.length,success:e=>{this.images=[...this.images,...e.tempFilePaths]}})},deleteImage(e){this.images.splice(e,1)},submitFeedback(){-1!==this.selectedType?this.description.trim()?this.contact?e.index.showToast({title:"提交成功",icon:"success"}):e.index.showToast({title:"请留下联系方式",icon:"none"}):e.index.showToast({title:"请描述您的问题",icon:"none"}):e.index.showToast({title:"请选择问题类型",icon:"none"})}}};const s=e._export_sfc(t,[["render",function(t,s,i,c,o,a){return e.e({a:e.f(o.types,((t,s,i)=>({a:e.t(t),b:s,c:o.selectedType===s?1:"",d:e.o((e=>a.selectType(s)),s)}))),b:o.description,c:e.o((e=>o.description=e.detail.value)),d:e.t(o.description.length),e:e.f(o.images,((t,s,i)=>({a:t,b:e.o((e=>a.deleteImage(s)),s),c:s}))),f:o.images.length<3},o.images.length<3?{g:e.o(((...e)=>a.chooseImage&&a.chooseImage(...e)))}:{},{h:o.contact,i:e.o((e=>o.contact=e.detail.value)),j:e.o(((...e)=>a.submitFeedback&&a.submitFeedback(...e)))})}],["__scopeId","data-v-229c69af"]]);wx.createPage(s);
"use strict";const e=require("../../common/vendor.js"),t={data:()=>({types:["设备故障","收费问题","使用建议","其他"],selectedType:-1,description:"",images:[],contact:""}),methods:{selectType(e){this.selectedType=e},chooseImage(){e.index.chooseImage({count:3-this.images.length,success:e=>{this.images=[...this.images,...e.tempFilePaths]}})},deleteImage(e){this.images.splice(e,1)},submitFeedback(){if(-1===this.selectedType)return void e.index.showToast({title:"请选择问题类型",icon:"none"});if(!this.description.trim())return void e.index.showToast({title:"请描述您的问题",icon:"none"});if(!this.contact)return void e.index.showToast({title:"请留下联系方式",icon:"none"});const t={type:this.types[this.selectedType],content:this.description,phone:this.contact,images:this.images};e.index.request({url:"/app/feedback/add",method:"POST",data:t,success:t=>{200===t.statusCode?(e.index.showToast({title:"提交成功",icon:"success"}),this.selectedType=-1,this.description="",this.contact="",this.images=[]):e.index.showToast({title:"提交失败",icon:"none"})},fail:()=>{e.index.showToast({title:"提交失败",icon:"none"})}})}}};const s=e._export_sfc(t,[["render",function(t,s,i,o,c,n){return e.e({a:e.f(c.types,((t,s,i)=>({a:e.t(t),b:s,c:c.selectedType===s?1:"",d:e.o((e=>n.selectType(s)),s)}))),b:c.description,c:e.o((e=>c.description=e.detail.value)),d:e.t(c.description.length),e:e.f(c.images,((t,s,i)=>({a:t,b:e.o((e=>n.deleteImage(s)),s),c:s}))),f:c.images.length<3},c.images.length<3?{g:e.o(((...e)=>n.chooseImage&&n.chooseImage(...e)))}:{},{h:c.contact,i:e.o((e=>c.contact=e.detail.value)),j:e.o(((...e)=>n.submitFeedback&&n.submitFeedback(...e)))})}],["__scopeId","data-v-e7b0add7"]]);wx.createPage(s);
+1 -1
View File
@@ -1 +1 @@
<view class="feedback-container data-v-229c69af"><view class="type-section data-v-229c69af"><view class="section-title data-v-229c69af">问题类型</view><view class="type-grid data-v-229c69af"><view wx:for="{{a}}" wx:for-item="type" wx:key="b" class="{{['type-item', 'data-v-229c69af', type.c && 'active']}}" bindtap="{{type.d}}">{{type.a}}</view></view></view><view class="description-section data-v-229c69af"><view class="section-title data-v-229c69af">问题描述</view><block wx:if="{{r0}}"><textarea class="description-input data-v-229c69af" placeholder="请详细描述您遇到的问题,以便我们更好地为您解决" maxlength="500" value="{{b}}" bindinput="{{c}}"/></block><view class="word-count data-v-229c69af">{{d}}/500</view></view><view class="upload-section data-v-229c69af"><view class="section-title data-v-229c69af">图片上传(选填)</view><view class="upload-grid data-v-229c69af"><view wx:for="{{e}}" wx:for-item="img" wx:key="c" class="upload-item data-v-229c69af"><image class="data-v-229c69af" src="{{img.a}}" mode="aspectFill"/><view class="delete-btn data-v-229c69af" bindtap="{{img.b}}">×</view></view><view wx:if="{{f}}" class="upload-btn data-v-229c69af" bindtap="{{g}}"><text class="plus data-v-229c69af">+</text><text class="tip data-v-229c69af">上传图片</text></view></view></view><view class="contact-section data-v-229c69af"><view class="section-title data-v-229c69af">联系方式</view><input class="contact-input data-v-229c69af" placeholder="请留下您的手机号,方便我们联系您" type="number" maxlength="11" value="{{h}}" bindinput="{{i}}"/></view><view class="submit-section data-v-229c69af"><button class="submit-btn data-v-229c69af" bindtap="{{j}}">提交反馈</button></view></view>
<view class="feedback-container data-v-e7b0add7"><view class="type-section data-v-e7b0add7"><view class="section-title data-v-e7b0add7">问题类型</view><view class="type-grid data-v-e7b0add7"><view wx:for="{{a}}" wx:for-item="type" wx:key="b" class="{{['type-item', 'data-v-e7b0add7', type.c && 'active']}}" bindtap="{{type.d}}">{{type.a}}</view></view></view><view class="description-section data-v-e7b0add7"><view class="section-title data-v-e7b0add7">问题描述</view><block wx:if="{{r0}}"><textarea class="description-input data-v-e7b0add7" placeholder="请详细描述您遇到的问题,以便我们更好地为您解决" maxlength="500" value="{{b}}" bindinput="{{c}}"/></block><view class="word-count data-v-e7b0add7">{{d}}/500</view></view><view class="upload-section data-v-e7b0add7"><view class="section-title data-v-e7b0add7">图片上传(选填)</view><view class="upload-grid data-v-e7b0add7"><view wx:for="{{e}}" wx:for-item="img" wx:key="c" class="upload-item data-v-e7b0add7"><image class="data-v-e7b0add7" src="{{img.a}}" mode="aspectFill"/><view class="delete-btn data-v-e7b0add7" bindtap="{{img.b}}">×</view></view><view wx:if="{{f}}" class="upload-btn data-v-e7b0add7" bindtap="{{g}}"><text class="plus data-v-e7b0add7">+</text><text class="tip data-v-e7b0add7">上传图片</text></view></view></view><view class="contact-section data-v-e7b0add7"><view class="section-title data-v-e7b0add7">联系方式</view><input class="contact-input data-v-e7b0add7" placeholder="请留下您的手机号,方便我们联系您" type="number" maxlength="11" value="{{h}}" bindinput="{{i}}"/></view><view class="submit-section data-v-e7b0add7"><button class="submit-btn data-v-e7b0add7" bindtap="{{j}}">提交反馈</button></view></view>
+1 -1
View File
@@ -1 +1 @@
.feedback-container.data-v-229c69af{min-height:100vh;background:#f8f8f8;padding:30rpx}.feedback-container .section-title.data-v-229c69af{font-size:30rpx;color:#333;font-weight:500;margin-bottom:20rpx}.feedback-container .type-section.data-v-229c69af{background:#fff;border-radius:20rpx;padding:30rpx;margin-bottom:20rpx}.feedback-container .type-section .type-grid.data-v-229c69af{display:flex;flex-wrap:wrap;margin:0 -10rpx}.feedback-container .type-section .type-grid .type-item.data-v-229c69af{width:calc(50% - 20rpx);margin:10rpx;height:80rpx;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border-radius:10rpx;font-size:28rpx;color:#666;transition:all .3s}.feedback-container .type-section .type-grid .type-item.active.data-v-229c69af{background:#e3f2fd;color:#1976d2}.feedback-container .description-section.data-v-229c69af{background:#fff;border-radius:20rpx;padding:30rpx;margin-bottom:20rpx}.feedback-container .description-section .description-input.data-v-229c69af{width:100%;height:240rpx;background:#f8f8f8;border-radius:10rpx;padding:20rpx;font-size:28rpx;color:#333;box-sizing:border-box}.feedback-container .description-section .word-count.data-v-229c69af{text-align:right;font-size:24rpx;color:#999;margin-top:10rpx}.feedback-container .upload-section.data-v-229c69af{background:#fff;border-radius:20rpx;padding:30rpx;margin-bottom:20rpx}.feedback-container .upload-section .upload-grid.data-v-229c69af{display:flex;flex-wrap:wrap}.feedback-container .upload-section .upload-grid .upload-item.data-v-229c69af{width:200rpx;height:200rpx;margin-right:20rpx;margin-bottom:20rpx;position:relative}.feedback-container .upload-section .upload-grid .upload-item image.data-v-229c69af{width:100%;height:100%;border-radius:10rpx}.feedback-container .upload-section .upload-grid .upload-item .delete-btn.data-v-229c69af{position:absolute;right:-10rpx;top:-10rpx;width:40rpx;height:40rpx;background:rgba(0,0,0,.5);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32rpx}.feedback-container .upload-section .upload-grid .upload-btn.data-v-229c69af{width:200rpx;height:200rpx;background:#f5f5f5;border-radius:10rpx;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#999}.feedback-container .upload-section .upload-grid .upload-btn .plus.data-v-229c69af{font-size:60rpx;line-height:1;margin-bottom:10rpx}.feedback-container .upload-section .upload-grid .upload-btn .tip.data-v-229c69af{font-size:24rpx}.feedback-container .contact-section.data-v-229c69af{background:#fff;border-radius:20rpx;padding:30rpx;margin-bottom:40rpx}.feedback-container .contact-section .contact-input.data-v-229c69af{width:100%;height:80rpx;background:#f8f8f8;border-radius:10rpx;padding:0 20rpx;font-size:28rpx;color:#333;box-sizing:border-box}.feedback-container .submit-section.data-v-229c69af{padding:0 40rpx}.feedback-container .submit-section .submit-btn.data-v-229c69af{width:100%;height:88rpx;background:#1976d2;color:#fff;border-radius:44rpx;font-size:32rpx;font-weight:500;display:flex;align-items:center;justify-content:center}.feedback-container .submit-section .submit-btn.data-v-229c69af:active{transform:scale(.98)}
.feedback-container.data-v-e7b0add7{min-height:100vh;background:#f8f8f8;padding:30rpx}.feedback-container .section-title.data-v-e7b0add7{font-size:30rpx;color:#333;font-weight:500;margin-bottom:20rpx}.feedback-container .type-section.data-v-e7b0add7{background:#fff;border-radius:20rpx;padding:30rpx;margin-bottom:20rpx}.feedback-container .type-section .type-grid.data-v-e7b0add7{display:flex;flex-wrap:wrap;margin:0 -10rpx}.feedback-container .type-section .type-grid .type-item.data-v-e7b0add7{width:calc(50% - 20rpx);margin:10rpx;height:80rpx;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border-radius:10rpx;font-size:28rpx;color:#666;transition:all .3s}.feedback-container .type-section .type-grid .type-item.active.data-v-e7b0add7{background:#e3f2fd;color:#1976d2}.feedback-container .description-section.data-v-e7b0add7{background:#fff;border-radius:20rpx;padding:30rpx;margin-bottom:20rpx}.feedback-container .description-section .description-input.data-v-e7b0add7{width:100%;height:240rpx;background:#f8f8f8;border-radius:10rpx;padding:20rpx;font-size:28rpx;color:#333;box-sizing:border-box}.feedback-container .description-section .word-count.data-v-e7b0add7{text-align:right;font-size:24rpx;color:#999;margin-top:10rpx}.feedback-container .upload-section.data-v-e7b0add7{background:#fff;border-radius:20rpx;padding:30rpx;margin-bottom:20rpx}.feedback-container .upload-section .upload-grid.data-v-e7b0add7{display:flex;flex-wrap:wrap}.feedback-container .upload-section .upload-grid .upload-item.data-v-e7b0add7{width:200rpx;height:200rpx;margin-right:20rpx;margin-bottom:20rpx;position:relative}.feedback-container .upload-section .upload-grid .upload-item image.data-v-e7b0add7{width:100%;height:100%;border-radius:10rpx}.feedback-container .upload-section .upload-grid .upload-item .delete-btn.data-v-e7b0add7{position:absolute;right:-10rpx;top:-10rpx;width:40rpx;height:40rpx;background:rgba(0,0,0,.5);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32rpx}.feedback-container .upload-section .upload-grid .upload-btn.data-v-e7b0add7{width:200rpx;height:200rpx;background:#f5f5f5;border-radius:10rpx;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#999}.feedback-container .upload-section .upload-grid .upload-btn .plus.data-v-e7b0add7{font-size:60rpx;line-height:1;margin-bottom:10rpx}.feedback-container .upload-section .upload-grid .upload-btn .tip.data-v-e7b0add7{font-size:24rpx}.feedback-container .contact-section.data-v-e7b0add7{background:#fff;border-radius:20rpx;padding:30rpx;margin-bottom:40rpx}.feedback-container .contact-section .contact-input.data-v-e7b0add7{width:100%;height:80rpx;background:#f8f8f8;border-radius:10rpx;padding:0 20rpx;font-size:28rpx;color:#333;box-sizing:border-box}.feedback-container .submit-section.data-v-e7b0add7{padding:0 40rpx}.feedback-container .submit-section .submit-btn.data-v-e7b0add7{width:100%;height:88rpx;background:#1976d2;color:#fff;border-radius:44rpx;font-size:32rpx;font-weight:500;display:flex;align-items:center;justify-content:center}.feedback-container .submit-section .submit-btn.data-v-e7b0add7:active{transform:scale(.98)}
+1 -1
View File
@@ -1 +1 @@
"use strict";const e=require("../../common/vendor.js"),o=require("../../util/index.js"),t=require("../../config/url.js"),n=require("../../common/assets.js"),a={methods:{async handleScan(){try{const n=await new Promise(((o,t)=>{e.index.scanCode({success:o,fail:t})}));let a=o.getQueryString(n.path,"deviceNo");if(console.log("扫码路径:",n.path),console.log("解析到的设备号:",a),!a)return void e.index.showToast({title:"无效的设备二维码",icon:"none"});e.index.getStorageSync("token")||await o.wxLogin();const d=await e.index.request({url:`${t.URL||"http://127.0.0.1:8080"}/app/order/inUse`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(console.log("使用中订单检查结果:",JSON.stringify(d)),200==d.statusCode&&200==d.data.code&&d.data.data){const o=d.data.data;return console.log("检测到使用中订单,准备跳转:",o),e.index.reLaunch({url:`/pages/return/index?orderId=${o.orderId}&deviceId=${a||o.deviceNo}`}),void console.log("已发起页面跳转")}const i=await e.index.request({url:`${t.URL||"http://127.0.0.1:8080"}/app/order/unpaid`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(console.log("待支付订单检查结果:",JSON.stringify(i)),200==i.statusCode&&200==i.data.code&&i.data.data){const o=i.data.data;console.log("检测到待支付订单,准备跳转:",o),e.index.navigateTo({url:`/pages/order/payment?orderId=${o.orderId}`})}else console.log("无待支付订单,直接跳转到设备详情页面, deviceNo:",a),e.index.navigateTo({url:`/pages/device/detail?deviceNo=${a}`})}catch(n){console.error("扫码处理失败:",n),e.index.showToast({title:"扫码失败",icon:"none"})}}}};const d=e._export_sfc(a,[["render",function(o,t,a,d,i,r){return{a:n._imports_0,b:e.o(((...e)=>r.handleScan&&r.handleScan(...e)))}}],["__scopeId","data-v-8df762f3"]]);wx.createPage(d);
"use strict";const e=require("../../common/vendor.js"),o=require("../../util/index.js"),n=require("../../config/url.js"),t=require("../../config/user.js"),i=require("../../common/assets.js"),a={methods:{async handleScan(){try{const d=await new Promise(((o,n)=>{e.index.scanCode({success:o,fail:n})}));console.log(d.path);let r=o.getQueryString(d.path,"deviceNo");if(console.log("扫码路径:",d.path),console.log("解析到的设备号:",r),!r)return void e.index.showToast({title:"无效的设备二维码",icon:"none"});e.index.getStorageSync("token")||await o.wxLogin();const c=await e.index.request({url:`${n.URL||"http://127.0.0.1:8080"}/app/order/inUse`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(console.log("使用中订单检查结果:",JSON.stringify(c)),200==c.statusCode&&200==c.data.code&&c.data.data){const o=c.data.data;return console.log("检测到使用中订单,准备跳转:",o),e.index.reLaunch({url:`/pages/return/index?orderId=${o.orderId}&deviceId=${r||o.deviceNo}`}),void console.log("已发起页面跳转")}const s=await e.index.request({url:`${n.URL||"http://127.0.0.1:8080"}/app/order/unpaid`,method:"GET",header:{Authorization:"Bearer "+e.index.getStorageSync("token"),Clientid:e.index.getStorageSync("client_id")}});if(console.log("待支付订单检查结果:",JSON.stringify(s)),200==s.statusCode&&200==s.data.code&&s.data.data){const o=s.data.data;console.log("检测到待支付订单,准备跳转:",o),e.index.navigateTo({url:`/pages/order/payment?orderId=${o.orderId}`})}else{console.log("无待支付订单,获取设备信息, deviceNo:",r);try{const o=await t.getDeviceInfo(r);if(200==o.code&&o.data&&o.data.device){const n=o.data.device;if(n.feeConfig){console.log("获取到设备feeConfig信息:",n.feeConfig);try{JSON.parse(n.feeConfig);e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}&feeConfig=${encodeURIComponent(n.feeConfig)}`})}catch(i){console.error("解析feeConfig失败:",i),e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}}else e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}else console.error("获取设备信息失败:",o.msg||"未知错误"),e.index.showToast({title:"获取设备信息失败",icon:"none"}),e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}catch(a){console.error("获取设备信息异常:",a),e.index.showToast({title:"获取设备信息失败",icon:"none"}),e.index.navigateTo({url:`/pages/device/detail?deviceNo=${r}`})}}}catch(a){console.error("扫码处理失败:",a),e.index.showToast({title:"扫码失败",icon:"none"})}}}};const d=e._export_sfc(a,[["render",function(o,n,t,a,d,r){return{a:i._imports_0,b:i._imports_1,c:e.o(((...e)=>r.handleScan&&r.handleScan(...e)))}}],["__scopeId","data-v-deeaf54a"]]);wx.createPage(d);
+1 -1
View File
@@ -1 +1 @@
<view class="container data-v-8df762f3"><view class="banner data-v-8df762f3"><view class="temp-banner data-v-8df762f3"><text class="banner-text data-v-8df762f3">共享风扇</text><text class="banner-subtitle data-v-8df762f3">让清凉随身携带</text><view class="banner-bg data-v-8df762f3"></view></view></view><view class="scan-area data-v-8df762f3"><view class="scan-btn data-v-8df762f3" bindtap="{{b}}"><view class="btn-content data-v-8df762f3"><image class="btn-icon data-v-8df762f3" src="{{a}}" mode="aspectFit"/><text class="btn-text data-v-8df762f3">扫一扫</text></view><text class="btn-desc data-v-8df762f3">扫描设备二维码使用或归还</text></view></view><view class="tips-section data-v-8df762f3"><view class="tips-header data-v-8df762f3"><view class="tips-title data-v-8df762f3">使用小贴士</view></view><view class="tips-list data-v-8df762f3"><view class="tip-item data-v-8df762f3"><view class="tip-dot data-v-8df762f3"></view><text class="data-v-8df762f3">租借时间:每次最长可租借12小时</text></view><view class="tip-item data-v-8df762f3"><view class="tip-dot data-v-8df762f3"></view><text class="data-v-8df762f3">押金说明:租借需支付99元押金,归还后自动退还</text></view><view class="tip-item data-v-8df762f3"><view class="tip-dot data-v-8df762f3"></view><text class="data-v-8df762f3">收费标准:2元/小时,不足1小时按1小时计算</text></view><view class="tip-item data-v-8df762f3"><view class="tip-dot data-v-8df762f3"></view><text class="data-v-8df762f3">爱护提示:请勿将设备带离指定区域,保持设备清洁</text></view></view></view></view>
<view class="container data-v-deeaf54a"><view class="header data-v-deeaf54a"><view class="header-bg data-v-deeaf54a"><view class="circle-decoration circle-1 data-v-deeaf54a"></view><view class="circle-decoration circle-2 data-v-deeaf54a"></view><view class="wave-decoration data-v-deeaf54a"></view></view><view class="header-content data-v-deeaf54a"><view class="brand-area data-v-deeaf54a"><image class="brand-logo data-v-deeaf54a" src="{{a}}" mode="aspectFit"></image><view class="brand-text data-v-deeaf54a"><text class="title data-v-deeaf54a">共享风扇</text><text class="subtitle data-v-deeaf54a">随时随地,享受清凉</text></view></view><view class="header-info data-v-deeaf54a"><view class="service-tag data-v-deeaf54a"><text class="data-v-deeaf54a">便捷租赁</text><text class="dot data-v-deeaf54a">·</text><text class="data-v-deeaf54a">品质保障</text></view></view></view></view><view class="scan-section data-v-deeaf54a"><view class="scan-card data-v-deeaf54a"><view class="scan-btn data-v-deeaf54a" bindtap="{{c}}"><image class="scan-icon data-v-deeaf54a" src="{{b}}" mode="aspectFit"/><text class="scan-text data-v-deeaf54a">扫码使用</text></view><view class="scan-desc data-v-deeaf54a"><text class="data-v-deeaf54a">扫描设备二维码即可使用或归还</text></view></view></view><view class="price-card data-v-deeaf54a"><view class="card-header data-v-deeaf54a"><text class="card-title data-v-deeaf54a">收费规则</text></view><view class="price-rules data-v-deeaf54a"><view class="price-item data-v-deeaf54a"><view class="price-tag data-v-deeaf54a">5.0<text class="unit data-v-deeaf54a">元/小时</text></view></view><view class="divider data-v-deeaf54a"></view><view class="rule-list data-v-deeaf54a"><view class="rule-item data-v-deeaf54a"><view class="rule-dot data-v-deeaf54a"></view><text class="data-v-deeaf54a">15分钟内归还免费</text></view><view class="rule-item data-v-deeaf54a"><view class="rule-dot data-v-deeaf54a"></view><text class="data-v-deeaf54a">不足1小时按1小时计费</text></view><view class="rule-item data-v-deeaf54a"><view class="rule-dot data-v-deeaf54a"></view><text class="data-v-deeaf54a">封顶99元,计费达99元视为买断</text></view></view></view></view><view class="usage-steps data-v-deeaf54a"><view class="steps-header data-v-deeaf54a"><text class="steps-title data-v-deeaf54a">使用流程</text></view><view class="steps-container data-v-deeaf54a"><view class="step-item data-v-deeaf54a"><view class="step-icon data-v-deeaf54a"><text class="step-number data-v-deeaf54a">1</text></view><text class="step-text data-v-deeaf54a">扫码开锁</text></view><view class="step-arrow data-v-deeaf54a"></view><view class="step-item data-v-deeaf54a"><view class="step-icon data-v-deeaf54a"><text class="step-number data-v-deeaf54a">2</text></view><text class="step-text data-v-deeaf54a">使用风扇</text></view><view class="step-arrow data-v-deeaf54a"></view><view class="step-item data-v-deeaf54a"><view class="step-icon data-v-deeaf54a"><text class="step-number data-v-deeaf54a">3</text></view><text class="step-text data-v-deeaf54a">归还结算</text></view></view></view></view>
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
"use strict";const e=require("../../common/vendor.js"),o=require("../../util/index.js"),t=require("../../common/assets.js"),n={data:()=>({userInfo:{},deposit:"0.00",tempAvatar:"",tempNickname:"",show:!1}),onShow(){this.getInfo()},methods:{async getInfo(){try{if(!e.index.getStorageSync("token"))return await o.wxLogin(),void this.getInfo();const t=await o.getUserInfo();if(console.log(t),200===t.code){const o={nickName:t.data.nickname,phone:t.data.phone,avatar:t.data.iconUrl,isAdmin:t.data.isAdmin};this.userInfo=o,e.index.setStorageSync("userInfo",o),this.deposit=t.data.balanceAmount||"0.00"}}catch(t){console.error("获取用户信息失败",t),e.index.showToast({title:"获取用户信息失败",icon:"none"})}},navigateTo(o){e.index.navigateTo({url:o})}}};const a=e._export_sfc(n,[["render",function(o,n,a,s,i,r){return e.e({a:i.userInfo.avatar||"/static/user.png",b:i.userInfo},i.userInfo?{c:e.t(i.userInfo.nickName),d:e.t(i.userInfo.phone||"")}:{},{e:e.o(((...e)=>o.showPopup&&o.showPopup(...e))),f:e.t(i.deposit),g:e.o((e=>r.navigateTo("/pages/deposit/index"))),h:t._imports_0$1,i:e.o((e=>r.navigateTo("/pages/order/index"))),j:t._imports_1,k:e.o((e=>r.navigateTo("/pages/feedback/index"))),l:t._imports_2,m:e.o((e=>r.navigateTo("/pages/help/index")))})}],["__scopeId","data-v-b106ba06"]]);wx.createPage(a);
"use strict";const e=require("../../common/vendor.js"),a=require("../../common/assets.js"),o=require("../../util/index.js");if(!Array){e.resolveComponent("uni-icons")()}const n={__name:"index",setup(n){const t=e.ref({}),i=e.ref("0.00"),r=e.ref(""),s=e.ref(null),d=e.ref(!1);e.onMounted((()=>{c()}));const c=async()=>{try{if(!e.index.getStorageSync("token"))return void(await o.wxLogin());const a=await o.getUserInfo();console.log("User info response:",a),200==a.code&&(a.data.openId&&(r.value=a.data.openId,e.index.setStorageSync("openId",a.data.openId)),t.value={nickName:a.data.nickname,phone:a.data.phone,avatar:a.data.iconUrl,isAdmin:a.data.isAdmin},e.index.setStorageSync("userInfo",t.value),i.value=a.data.balanceAmount||"0.00")}catch(a){console.error("获取用户信息失败:",a),e.index.showToast({title:"获取用户信息失败",icon:"none"})}},l=a=>{e.index.navigateTo({url:a})},p=()=>{l("/pages/deposit/index")},u=()=>{t.value||v()},v=()=>{s.value&&(s.value.open(),d.value=!0)};return(o,n)=>e.e({a:t.value.avatar},t.value.avatar?{b:t.value.avatar}:{c:a._imports_0$1},{d:t.value.isAdmin},(t.value.isAdmin,{}),{e:t.value},t.value?{f:e.t(t.value.nickName),g:e.t(t.value.phone||"未绑定手机号")}:{},{h:e.p({type:"right",size:"16",color:"#999"}),i:e.o(u),j:e.t(i.value),k:e.o(p),l:a._imports_1$1,m:e.p({type:"right",size:"16",color:"#999"}),n:e.o((e=>l("/pages/order/index"))),o:a._imports_2,p:e.p({type:"right",size:"16",color:"#999"}),q:e.o((e=>l("/pages/feedback/index"))),r:a._imports_3,s:e.p({type:"right",size:"16",color:"#999"}),t:e.o((e=>l("/pages/help/index")))})}},t=e._export_sfc(n,[["__scopeId","data-v-ac1cfc8d"]]);wx.createPage(t);
+1 -1
View File
@@ -1 +1 @@
<view class="my-container data-v-b106ba06"><view class="user-info data-v-b106ba06"><view class="floating-dots data-v-b106ba06"></view><view class="user-info-content data-v-b106ba06" bindtap="{{e}}"><view class="avatar-wrap data-v-b106ba06"><image class="avatar data-v-b106ba06" src="{{a}}" mode="aspectFill"/></view><view wx:if="{{b}}" class="info-content data-v-b106ba06"><view class="text-group data-v-b106ba06"><text class="nickname data-v-b106ba06">{{c}}</text><text class="phone data-v-b106ba06">{{d}}</text></view></view><view wx:else class="info-content not-login data-v-b106ba06"><text class="login-text data-v-b106ba06">点击登录</text><text class="login-desc data-v-b106ba06">登录后享受更多服务</text></view></view><view class="wave-decoration data-v-b106ba06"></view></view><view class="balance-card data-v-b106ba06"><view class="balance-content data-v-b106ba06"><text class="label data-v-b106ba06">押金余额</text><text class="amount data-v-b106ba06">¥{{f}}</text></view><view class="withdraw-btn data-v-b106ba06" bindtap="{{g}}"> 提现 <view class="arrow data-v-b106ba06"></view></view></view><view class="function-list data-v-b106ba06"><view class="function-item data-v-b106ba06" bindtap="{{i}}"><view class="item-left data-v-b106ba06"><view class="icon-wrap order data-v-b106ba06"><image src="{{h}}" mode="aspectFit" class="icon-image data-v-b106ba06"/></view><text class="title data-v-b106ba06">租借记录</text></view><view class="arrow data-v-b106ba06"></view></view><view class="function-item data-v-b106ba06" bindtap="{{k}}"><view class="item-left data-v-b106ba06"><view class="icon-wrap feedback data-v-b106ba06"><image src="{{j}}" mode="aspectFit" class="icon-image data-v-b106ba06"/></view><text class="title data-v-b106ba06">投诉建议</text></view><view class="arrow data-v-b106ba06"></view></view><view class="function-item data-v-b106ba06" bindtap="{{m}}"><view class="item-left data-v-b106ba06"><view class="icon-wrap help data-v-b106ba06"><image src="{{l}}" mode="aspectFit" class="icon-image data-v-b106ba06"/></view><text class="title data-v-b106ba06">帮助中心</text></view><view class="arrow data-v-b106ba06"></view></view></view></view>
<view class="profile-container data-v-ac1cfc8d"><view class="header-section data-v-ac1cfc8d"><view class="user-profile data-v-ac1cfc8d" bindtap="{{i}}"><view class="avatar-container data-v-ac1cfc8d"><image wx:if="{{a}}" class="avatar data-v-ac1cfc8d" src="{{b}}" mode="aspectFill"></image><image wx:else class="avatar data-v-ac1cfc8d" src="{{c}}" mode="aspectFill"></image><view wx:if="{{d}}" class="avatar-badge data-v-ac1cfc8d"></view></view><view wx:if="{{e}}" class="user-details data-v-ac1cfc8d"><view class="username data-v-ac1cfc8d">{{f}}</view><view class="user-id data-v-ac1cfc8d">{{g}}</view></view><view wx:else class="user-details data-v-ac1cfc8d"><view class="username data-v-ac1cfc8d">点击登录</view><view class="user-id data-v-ac1cfc8d">授权登录后享受更多服务</view></view><view class="edit-profile data-v-ac1cfc8d"><uni-icons wx:if="{{h}}" class="data-v-ac1cfc8d" u-i="ac1cfc8d-0" bind:__l="__l" u-p="{{h}}"></uni-icons></view></view></view><view class="balance-card data-v-ac1cfc8d"><view class="balance-info data-v-ac1cfc8d"><view class="balance-label data-v-ac1cfc8d">押金余额</view><view class="balance-amount data-v-ac1cfc8d">¥{{j}}</view></view><view class="action-button data-v-ac1cfc8d" bindtap="{{k}}"><text class="data-v-ac1cfc8d">提现</text></view></view><view class="function-list data-v-ac1cfc8d"><view class="function-item data-v-ac1cfc8d" bindtap="{{n}}"><view class="item-left data-v-ac1cfc8d"><view class="item-icon data-v-ac1cfc8d"><image class="data-v-ac1cfc8d" src="{{l}}" mode="aspectFit"></image></view><text class="item-title data-v-ac1cfc8d">订单中心</text></view><view class="item-right data-v-ac1cfc8d"><uni-icons wx:if="{{m}}" class="data-v-ac1cfc8d" u-i="ac1cfc8d-1" bind:__l="__l" u-p="{{m}}"></uni-icons></view></view><view class="function-item data-v-ac1cfc8d" bindtap="{{q}}"><view class="item-left data-v-ac1cfc8d"><view class="item-icon data-v-ac1cfc8d"><image class="data-v-ac1cfc8d" src="{{o}}" mode="aspectFit"></image></view><text class="item-title data-v-ac1cfc8d">投诉建议</text></view><view class="item-right data-v-ac1cfc8d"><uni-icons wx:if="{{p}}" class="data-v-ac1cfc8d" u-i="ac1cfc8d-2" bind:__l="__l" u-p="{{p}}"></uni-icons></view></view><view class="function-item data-v-ac1cfc8d" bindtap="{{t}}"><view class="item-left data-v-ac1cfc8d"><view class="item-icon data-v-ac1cfc8d"><image class="data-v-ac1cfc8d" src="{{r}}" mode="aspectFit"></image></view><text class="item-title data-v-ac1cfc8d">帮助中心</text></view><view class="item-right data-v-ac1cfc8d"><uni-icons wx:if="{{s}}" class="data-v-ac1cfc8d" u-i="ac1cfc8d-3" bind:__l="__l" u-p="{{s}}"></uni-icons></view></view></view></view>
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
"use strict";const t=require("../../common/vendor.js"),e=require("../../config/user.js"),r=require("../../constants/orderStatus.js"),s={data:()=>({currentTab:0,OrderStatusMap:r.OrderStatusMap,OrderStatusTabs:r.OrderStatusTabs,orderList:[]}),async onLoad(t){if(t&&t.orderId)try{const r=await e.queryById(t.orderId);if(200===r.code&&r.data){const t=r.data;console.log("特定订单数据:",JSON.stringify(t)),console.log("特定订单的开始时间:",t.startTime),console.log("特定订单的创建时间:",t.createTime);const e=t.startTime||t.createTime||"";console.log("特定订单最终显示的开始时间:",e);const s={orderNo:t.orderId,status:t.orderStatus,deviceId:t.deviceNo,startTime:e,endTime:t.endTime||"",amount:t.payAmount||t.actualDeviceAmount||"0.00"};this.orderList=[s,...this.orderList];const o=this.OrderStatusTabs.findIndex((e=>e.status.includes(t.orderStatus)));-1!==o&&this.switchTab(o)}}catch(r){console.error("获取订单详情失败:",r)}await this.getOrderList()},methods:{async getOrderList(r=[]){try{const t=await e.getOrderList(r);200===t.code&&t.data&&t.data.records&&(console.log("API返回的订单列表数据:",JSON.stringify(t.data.records)),this.orderList=t.data.records.map((t=>{console.log(`订单 ${t.orderId} 的开始时间:`,t.startTime),console.log(`订单 ${t.orderId} 的创建时间:`,t.createTime);const e=t.startTime||t.createTime||"";return console.log(`订单 ${t.orderId} 最终显示的开始时间:`,e),{orderNo:t.orderId,status:t.orderStatus,deviceId:t.deviceNo,startTime:e,endTime:t.endTime||"",amount:t.payAmount||t.actualDeviceAmount||"0.00"}})))}catch(s){console.error("获取订单列表失败:",s),t.index.showToast({title:"获取订单列表失败",icon:"none"})}},async switchTab(t){this.currentTab=t;const e=this.OrderStatusTabs[t].status;await this.getOrderList(e)}}};const o=t._export_sfc(s,[["render",function(e,r,s,o,a,d){return t.e({a:t.f(a.OrderStatusTabs,((e,r,s)=>({a:t.t(e.text),b:r,c:a.currentTab===r?1:"",d:t.o((t=>d.switchTab(r)),r)}))),b:t.f(a.orderList,((e,r,s)=>{var o,d;return t.e({a:t.t(e.orderNo),b:t.t(null==(o=a.OrderStatusMap[e.status])?void 0:o.text),c:t.n(null==(d=a.OrderStatusMap[e.status])?void 0:d.class),d:1===e.status},1===e.status?{e:`/pages/return/index?deviceId=${e.deviceId}&orderId=${e.orderNo}`}:{},{f:t.t(e.deviceId),g:t.t(e.startTime),h:t.t(e.endTime||"-"),i:t.t(e.amount),j:r})})),c:0===a.orderList.length},(a.orderList.length,{}))}],["__scopeId","data-v-d5ec5c8e"]]);wx.createPage(o);
"use strict";const t=require("../../common/vendor.js"),e=require("../../common/assets.js"),a=require("../../config/user.js"),s={__name:"index",setup(s){const 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"},canceled:{text:"已取消",class:"status-cancelled"}}),n=t.reactive([{text:"全部",status:[]},{text:"使用中",status:["1","in_used"]},{text:"已完成",status:["2","used_done"]},{text:"已取消",status:["3","canceled"]}]);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&&c(r)}}catch(e){console.error("获取订单详情失败:",e)}await i()}));const c=async t=>{r.value=t;const e=n[t].status;await i(e)},i=async(e=[])=>{try{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,status: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=>c(a)),a)}))),b:0===o.value.length},(o.value.length,{}),{c:t.f(o.value,((s,o,c)=>{var u,l;return t.e({a:t.t(s.orderNo),b:t.t(null==(u=d[s.status])?void 0:u.text),c:t.n(null==(l=d[s.status])?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 i(n[r.value].status))}catch(s){t.index.showToast({title:"同步状态失败",icon:"none"})}})(s)),o)}:{},{n:o})}))})}},r=t._export_sfc(s,[["__scopeId","data-v-4442a2bb"]]);wx.createPage(r);
+1 -1
View File
@@ -1 +1 @@
<view class="order-container data-v-d5ec5c8e"><view class="tab-bar data-v-d5ec5c8e"><view wx:for="{{a}}" wx:for-item="tab" wx:key="b" class="{{['tab-item', 'data-v-d5ec5c8e', tab.c && 'active']}}" bindtap="{{tab.d}}">{{tab.a}}</view></view><view class="order-list data-v-d5ec5c8e"><view wx:for="{{b}}" wx:for-item="order" wx:key="j" class="order-item data-v-d5ec5c8e"><view class="order-header data-v-d5ec5c8e"><text class="order-no data-v-d5ec5c8e">订单号:{{order.a}}</text><text class="{{['order-status', 'data-v-d5ec5c8e', order.c]}}">{{order.b}}</text><navigator wx:if="{{order.d}}" url="{{order.e}}" class="return-btn data-v-d5ec5c8e">归还设备</navigator></view><view class="order-content data-v-d5ec5c8e"><view class="device-info data-v-d5ec5c8e"><text class="device-name data-v-d5ec5c8e">共享风扇</text><text class="device-id data-v-d5ec5c8e">设备号:{{order.f}}</text></view><view class="time-info data-v-d5ec5c8e"><view class="time-item data-v-d5ec5c8e"><text class="label data-v-d5ec5c8e">开始时间:</text><text class="value data-v-d5ec5c8e">{{order.g}}</text></view><view class="time-item data-v-d5ec5c8e"><text class="label data-v-d5ec5c8e">结束时间:</text><text class="value data-v-d5ec5c8e">{{order.h}}</text></view></view><view class="price-info data-v-d5ec5c8e"><text class="amount data-v-d5ec5c8e">¥{{order.i}}</text></view></view></view></view><view wx:if="{{c}}" class="empty-tip data-v-d5ec5c8e"><view class="empty-icon data-v-d5ec5c8e"></view><text class="data-v-d5ec5c8e">暂无订单记录</text></view></view>
<view class="order-container data-v-4442a2bb"><view class="status-tabs data-v-4442a2bb"><view wx:for="{{a}}" wx:for-item="tab" wx:key="b" class="{{['tab-item', 'data-v-4442a2bb', tab.c && 'active']}}" bindtap="{{tab.d}}">{{tab.a}}</view></view><view class="order-list data-v-4442a2bb"><view wx:if="{{b}}" class="empty-state data-v-4442a2bb"><view class="empty-icon data-v-4442a2bb"></view><text class="empty-text data-v-4442a2bb">暂无订单记录</text></view><view wx:for="{{c}}" wx:for-item="order" wx:key="n" class="order-item data-v-4442a2bb"><view class="order-header data-v-4442a2bb"><view class="order-id data-v-4442a2bb"><text class="data-v-4442a2bb">订单号:{{order.a}}</text></view><view class="{{['order-status', 'data-v-4442a2bb', order.c]}}">{{order.b}}</view></view><view class="order-body data-v-4442a2bb"><view class="device-info data-v-4442a2bb"><view class="device-left data-v-4442a2bb"><view class="device-name data-v-4442a2bb">共享风扇</view><view class="device-id data-v-4442a2bb">设备号:{{order.d}}</view></view><view class="device-right data-v-4442a2bb"><view wx:if="{{order.e}}" class="payment-badge wx-score data-v-4442a2bb"><image src="{{order.f}}" mode="aspectFit" class="badge-icon data-v-4442a2bb"></image><view class="badge-text data-v-4442a2bb"><text class="data-v-4442a2bb">微信支付分</text><text class="divider data-v-4442a2bb">|</text><text class="highlight data-v-4442a2bb">免押租借</text></view></view><view wx:else class="payment-badge deposit data-v-4442a2bb"><text class="badge-text data-v-4442a2bb">押金租借</text></view></view></view><view class="order-times data-v-4442a2bb"><view class="time-row data-v-4442a2bb"><text class="time-label data-v-4442a2bb">开始时间:</text><text class="time-value data-v-4442a2bb">{{order.g}}</text></view><view class="time-row data-v-4442a2bb"><text class="time-label data-v-4442a2bb">结束时间:</text><text class="time-value data-v-4442a2bb">{{order.h}}</text></view></view></view><view class="order-footer data-v-4442a2bb"><view class="price data-v-4442a2bb">¥{{order.i}}</view><view class="actions data-v-4442a2bb"><view wx:if="{{order.j}}" class="action-item primary data-v-4442a2bb" bindtap="{{order.k}}"> 归还设备 </view><view wx:if="{{order.l}}" class="action-item secondary data-v-4442a2bb" bindtap="{{order.m}}"> 同步订单状态 </view></view></view></view></view></view>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
<view class="payment-container data-v-a18b4e4b"><view class="status-card data-v-a18b4e4b"><view class="{{['status-icon', 'data-v-a18b4e4b', a]}}"></view><view class="status-text data-v-a18b4e4b">{{b}}</view><view class="status-desc data-v-a18b4e4b">{{c}}</view></view><view class="order-card data-v-a18b4e4b"><view class="card-title data-v-a18b4e4b">订单信息</view><view class="info-item data-v-a18b4e4b"><text class="label data-v-a18b4e4b">订单号</text><text class="value data-v-a18b4e4b">{{d}}</text></view><view class="info-item data-v-a18b4e4b"><text class="label data-v-a18b4e4b">设备号</text><text class="value data-v-a18b4e4b">{{e}}</text></view><view class="info-item data-v-a18b4e4b"><text class="label data-v-a18b4e4b">创建时间</text><text class="value data-v-a18b4e4b">{{f}}</text></view><view class="info-item data-v-a18b4e4b"><text class="label data-v-a18b4e4b">联系电话</text><text class="value data-v-a18b4e4b">{{g}}</text></view></view><view class="price-card data-v-a18b4e4b"><view class="card-title data-v-a18b4e4b">费用信息</view><view class="price-item data-v-a18b4e4b"><text class="label data-v-a18b4e4b">押金</text><text class="value data-v-a18b4e4b">¥{{h}}</text></view><view class="price-item data-v-a18b4e4b"><text class="label data-v-a18b4e4b">套餐</text><text class="value data-v-a18b4e4b">{{i}} (¥{{j}})</text></view><view class="price-item data-v-a18b4e4b"><text class="label data-v-a18b4e4b">租借费用</text><text class="value data-v-a18b4e4b">¥{{k}}</text></view><view class="price-item total data-v-a18b4e4b"><text class="label data-v-a18b4e4b">合计</text><text class="value data-v-a18b4e4b">¥{{l}}</text></view></view><view class="payment-methods data-v-a18b4e4b"><view class="card-title data-v-a18b4e4b">支付方式</view><view wx:for="{{m}}" wx:for-item="method" wx:key="c" class="{{['method-item', 'data-v-a18b4e4b', method.d && 'active']}}" bindtap="{{method.e}}"><view class="{{['method-icon', 'data-v-a18b4e4b', method.a]}}"></view><view class="method-name data-v-a18b4e4b">{{method.b}}</view><view class="method-check data-v-a18b4e4b"></view></view></view><view class="bottom-bar data-v-a18b4e4b"><view class="total-amount data-v-a18b4e4b"><text class="data-v-a18b4e4b">合计:</text><text class="amount data-v-a18b4e4b">¥{{n}}</text></view><button class="pay-btn data-v-a18b4e4b" bindtap="{{o}}">立即支付</button></view></view>
<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>
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,d=0,n=0,i="0.00",a="0.00";if(e.remark)try{const r=e.remark,o=r.match(/使用时长:(\d+)分钟/);o&&o[1]&&(n=parseInt(o[1]));const s=r.match(/套餐时长:(\d+)分钟/);s&&s[1]&&(t=parseInt(s[1]));const c=r.match(/超出时长:(\d+)分钟/);c&&c[1]&&(d=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:n,packageMinutes:t,extraMinutes:d,packagePrice:i,extraFee:a})}catch(r){console.error("解析remark字段失败:",r)}this.orderInfo={orderNo:e.orderNo||"",deviceNo:e.deviceNo||"",usedTime:n+"分钟",packageTime:t+"分钟",extraTime:d+"分钟",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 d=e._export_sfc(o,[["render",function(t,r,o,d,n,i){return e.e({a:e.t(n.orderInfo.orderNo||"-"),b:e.t(n.orderInfo.deviceNo||"-"),c:e.t(n.orderInfo.usedTime||"-"),d:e.t(n.orderInfo.packageTime||"1小时"),e:e.t(n.orderInfo.extraTime||"0分钟"),f:e.t(n.orderInfo.endTime||"-"),g:e.t(n.orderInfo.packagePrice||"0.00"),h:e.t(n.orderInfo.extraFee||"0.00"),i:e.t(n.orderInfo.currentFee||"0.00"),j:e.t(n.orderInfo.deposit||"99.00"),k:e.t(n.orderInfo.refundAmount||"99.00"),l:e.t(i.getWithdrawStatusText()),m:e.n(n.orderInfo.withdrawStatus||"waiting"),n:!n.orderInfo.isWithdrawn},n.orderInfo.isWithdrawn?{}:{o:e.o(((...e)=>i.handleWithdraw&&i.handleWithdraw(...e)))},{p:e.o(((...e)=>i.goToHome&&i.goToHome(...e)))})}],["__scopeId","data-v-845b5869"]]);wx.createPage(d);
"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);
@@ -1 +1 @@
<view class="success-container data-v-845b5869"><view class="status-card data-v-845b5869"><view class="status-icon success data-v-845b5869"></view><view class="status-text data-v-845b5869">归还成功</view><view class="status-desc data-v-845b5869">您的充电宝已归还,费用已从押金中扣除</view></view><view class="order-card data-v-845b5869"><view class="card-title data-v-845b5869">订单信息</view><view class="info-item data-v-845b5869"><text class="label data-v-845b5869">订单号</text><text class="value data-v-845b5869">{{a}}</text></view><view class="info-item data-v-845b5869"><text class="label data-v-845b5869">设备号</text><text class="value data-v-845b5869">{{b}}</text></view><view class="info-item data-v-845b5869"><text class="label data-v-845b5869">使用时长</text><text class="value data-v-845b5869">{{c}}</text></view><view class="info-item data-v-845b5869"><text class="label data-v-845b5869">套餐时长</text><text class="value data-v-845b5869">{{d}}</text></view><view class="info-item data-v-845b5869"><text class="label data-v-845b5869">超出时长</text><text class="value data-v-845b5869">{{e}}</text></view><view class="info-item data-v-845b5869"><text class="label data-v-845b5869">归还时间</text><text class="value data-v-845b5869">{{f}}</text></view></view><view class="refund-card data-v-845b5869"><view class="card-title data-v-845b5869">费用信息</view><view class="info-item data-v-845b5869"><text class="label data-v-845b5869">套餐费用</text><text class="value data-v-845b5869">¥{{g}}</text></view><view class="info-item data-v-845b5869"><text class="label data-v-845b5869">超时费用</text><text class="value data-v-845b5869">¥{{h}}</text></view><view class="info-item data-v-845b5869"><text class="label data-v-845b5869">总费用</text><text class="value data-v-845b5869">¥{{i}}</text></view><view class="info-item data-v-845b5869"><text class="label data-v-845b5869">押金</text><text class="value data-v-845b5869">¥{{j}}</text></view><view class="info-item data-v-845b5869"><text class="label data-v-845b5869">退还金额</text><text class="value highlight data-v-845b5869">¥{{k}}</text></view><view class="info-item data-v-845b5869"><text class="label data-v-845b5869">退还状态</text><text class="{{['value', 'data-v-845b5869', m]}}">{{l}}</text></view></view><view class="notice-card data-v-845b5869"><view class="card-title data-v-845b5869">退款说明</view><view class="notice-content data-v-845b5869"><text class="data-v-845b5869">1. 押金剩余金额需要您手动申请提现</text><text class="data-v-845b5869">2. 提现申请提交后将在1-3个工作日内退还到原支付账户</text><text class="data-v-845b5869">3. 如有疑问,请联系客服</text></view></view><view class="button-group data-v-845b5869"><button wx:if="{{n}}" class="primary-btn data-v-845b5869" bindtap="{{o}}">申请退款</button><button class="primary-btn data-v-845b5869" bindtap="{{p}}">返回首页</button></view></view>
<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>
@@ -1 +1 @@
.success-container.data-v-845b5869{padding:20px;background-color:#f8f8f8;min-height:100vh}.status-card.data-v-845b5869{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-845b5869{width:60px;height:60px;margin:0 auto 16px}.status-card .status-icon.success.data-v-845b5869{background-color:#07c160;border-radius:50%;position:relative}.status-card .status-icon.success.data-v-845b5869: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-845b5869{font-size:24px;font-weight:700;color:#07c160;margin-bottom:8px}.status-card .status-desc.data-v-845b5869{font-size:14px;color:#666}.order-card.data-v-845b5869,.refund-card.data-v-845b5869{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-845b5869,.refund-card .card-title.data-v-845b5869{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-845b5869,.refund-card .info-item.data-v-845b5869{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.order-card .info-item.data-v-845b5869:last-child,.refund-card .info-item.data-v-845b5869:last-child{margin-bottom:0}.order-card .info-item .label.data-v-845b5869,.refund-card .info-item .label.data-v-845b5869{color:#666;font-size:14px}.order-card .info-item .value.data-v-845b5869,.refund-card .info-item .value.data-v-845b5869{color:#333;font-size:14px}.order-card .info-item .value.highlight.data-v-845b5869,.refund-card .info-item .value.highlight.data-v-845b5869{color:#ff6b00;font-weight:700;font-size:16px}.order-card .info-item .value.success.data-v-845b5869,.refund-card .info-item .value.success.data-v-845b5869{color:#07c160}.button-group.data-v-845b5869{margin-top:40rpx;display:flex;justify-content:space-between;gap:20rpx}.button-group .primary-btn.data-v-845b5869,.button-group .secondary-btn.data-v-845b5869{flex:1;height:88rpx;line-height:88rpx;border-radius:44rpx;text-align:center;font-size:32rpx}.button-group .primary-btn.data-v-845b5869{background:#07c160;color:#fff}.button-group .primary-btn.data-v-845b5869:active{opacity:.8}.button-group .secondary-btn.data-v-845b5869{background:#f0f0f0;color:#333}.button-group .secondary-btn.data-v-845b5869:active{opacity:.8}.notice-card.data-v-845b5869{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-845b5869{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-845b5869{text-align:left;color:#666;font-size:14px}.waiting.data-v-845b5869{color:#fa0;font-weight:700}
.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}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
<view class="return-container data-v-44a2261b"><view class="order-card data-v-44a2261b"><view class="order-header data-v-44a2261b"><text class="title data-v-44a2261b">{{a}}</text><text class="order-no data-v-44a2261b">订单号:{{b}}</text></view><view class="device-info data-v-44a2261b"><text class="device-name data-v-44a2261b">共享风扇</text><text class="device-id data-v-44a2261b">设备号:{{c}}</text></view><view class="time-info data-v-44a2261b"><view class="time-item data-v-44a2261b"><text class="label data-v-44a2261b">开始时间</text><text class="value data-v-44a2261b">{{d}}</text></view><view class="time-item data-v-44a2261b"><text class="label data-v-44a2261b">已使用时长</text><text class="value highlight data-v-44a2261b">{{e}}</text></view><view class="time-item data-v-44a2261b"><text class="label data-v-44a2261b">当前费用</text><text class="value data-v-44a2261b">¥{{f}}</text></view></view><view wx:if="{{false}}" class="debug-info data-v-44a2261b"><view class="debug-title data-v-44a2261b">调试信息</view><view class="debug-item data-v-44a2261b">原始开始时间: {{g}}</view><view class="debug-item data-v-44a2261b">处理后开始时间: {{h}}</view><view class="debug-item data-v-44a2261b">订单状态: {{i}}</view></view></view><view class="notice-card data-v-44a2261b"><view class="notice-title data-v-44a2261b">归还说明</view><view class="notice-list data-v-44a2261b"><view class="notice-item data-v-44a2261b"><view class="dot data-v-44a2261b"></view><text class="data-v-44a2261b">请确保设备完好无损</text></view><view class="notice-item data-v-44a2261b"><view class="dot data-v-44a2261b"></view><text class="data-v-44a2261b">将充电宝插入原位置或空闲插口</text></view><view class="notice-item data-v-44a2261b"><view class="dot data-v-44a2261b"></view><text class="data-v-44a2261b">系统将自动检测归还并处理退款</text></view><view class="notice-item data-v-44a2261b"><view class="dot data-v-44a2261b"></view><text class="data-v-44a2261b">归还成功后将自动跳转到成功页面</text></view></view></view><view class="bottom-bar data-v-44a2261b"><button class="secondary-btn data-v-44a2261b" bindtap="{{j}}">刷新状态</button><button class="primary-btn data-v-44a2261b" bindtap="{{k}}">返回首页</button></view></view>
<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>
+1 -1
View File
@@ -1 +1 @@
.return-container.data-v-44a2261b{min-height:100vh;background:#f8f8f8;padding:30rpx 30rpx 180rpx;box-sizing:border-box}.return-container .order-card.data-v-44a2261b{background:#fff;border-radius:24rpx;padding:30rpx;margin-bottom:30rpx;box-shadow:0 4rpx 16rpx rgba(0,0,0,.04)}.return-container .order-card .order-header.data-v-44a2261b{display:flex;justify-content:space-between;align-items:center;margin-bottom:30rpx}.return-container .order-card .order-header .title.data-v-44a2261b{font-size:32rpx;font-weight:700;color:#333}.return-container .order-card .order-header .order-no.data-v-44a2261b{font-size:24rpx;color:#999}.return-container .order-card .device-info.data-v-44a2261b{margin-bottom:30rpx}.return-container .order-card .device-info .device-name.data-v-44a2261b{font-size:28rpx;color:#333;display:block;margin-bottom:10rpx}.return-container .order-card .device-info .device-id.data-v-44a2261b{font-size:24rpx;color:#666}.return-container .order-card .time-info.data-v-44a2261b{background:#f9f9f9;border-radius:16rpx;padding:20rpx}.return-container .order-card .time-info .time-item.data-v-44a2261b{display:flex;justify-content:space-between;align-items:center;margin-bottom:16rpx}.return-container .order-card .time-info .time-item.data-v-44a2261b:last-child{margin-bottom:0}.return-container .order-card .time-info .time-item .label.data-v-44a2261b{font-size:26rpx;color:#666}.return-container .order-card .time-info .time-item .value.data-v-44a2261b{font-size:26rpx;color:#333}.return-container .order-card .time-info .time-item .value.highlight.data-v-44a2261b{color:#ff6b00;font-weight:700}.return-container .notice-card.data-v-44a2261b{background:#fff;border-radius:24rpx;padding:30rpx;margin-bottom:30rpx;box-shadow:0 4rpx 16rpx rgba(0,0,0,.04)}.return-container .notice-card .notice-title.data-v-44a2261b{font-size:28rpx;font-weight:700;color:#333;margin-bottom:20rpx}.return-container .notice-card .notice-list .notice-item.data-v-44a2261b{display:flex;align-items:flex-start;margin-bottom:16rpx}.return-container .notice-card .notice-list .notice-item.data-v-44a2261b:last-child{margin-bottom:0}.return-container .notice-card .notice-list .notice-item .dot.data-v-44a2261b{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-44a2261b{font-size:26rpx;color:#666;line-height:1.5}.return-container .bottom-bar.data-v-44a2261b{position:fixed;left:0;right:0;bottom:0;padding:30rpx;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 .primary-btn.data-v-44a2261b,.return-container .bottom-bar .secondary-btn.data-v-44a2261b{height:88rpx;line-height:88rpx;font-size:32rpx;border-radius:44rpx;text-align:center;flex:1}.return-container .bottom-bar .primary-btn.data-v-44a2261b{background:#07c160;color:#fff}.return-container .bottom-bar .primary-btn.data-v-44a2261b:active{opacity:.8}.return-container .bottom-bar .secondary-btn.data-v-44a2261b{background:#f0f0f0;color:#333}.return-container .bottom-bar .secondary-btn.data-v-44a2261b:active{opacity:.8}
.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}
@@ -1 +1 @@
"use strict";const e=require("../../../common/vendor.js"),i=require("../../../util/index.js"),o=require("../../../config/user.js"),d={data:()=>({}),async onLoad(d){try{if(e.index.showLoading({title:"加载中..."}),e.index.getStorageSync("token")||await i.wxLogin(),!d.deviceNo)return e.index.hideLoading(),void e.index.showToast({title:"设备编号不能为空",icon:"none"});const n=await o.queryHasOrder(d.deviceNo);e.index.hideLoading(),n.data&&n.data.data&&n.data.data.length>0?e.index.redirectTo({url:`/pages/device/return?deviceNo=${d.deviceNo}`}):e.index.redirectTo({url:`/pages/device/detail?deviceNo=${d.deviceNo}`})}catch(n){e.index.hideLoading(),e.index.showToast({title:"页面加载失败,请重试",icon:"none"}),console.error("bagCheck onLoad error:",n)}},methods:{}};const n=e._export_sfc(d,[["render",function(e,i,o,d,n,t){return{}}]]);wx.createPage(n);
"use strict";const e=require("../../../common/vendor.js"),o=require("../../../config/user.js"),d={data:()=>({}),async onLoad(d){console.log("bagCheck onLoad option:",d);try{if(e.index.showLoading({title:"处理中...",mask:!0}),!d||!d.deviceNo)throw new Error("未识别到设备编号");const r=d.deviceNo,i=["in_used","waiting_for_payment"],t=await o.checkOrdersByStatus(r,i);if(200===t.code&&t.data&&t.data.length>0){const o=t.data[0];if("in_used"===o.orderStatus)console.log("检测到使用中订单,跳转归还页:",o.orderId),e.index.redirectTo({url:`/pages/device/return?orderId=${o.orderId}`});else if("waiting_for_payment"===o.orderStatus){console.log("检测到待支付订单,跳转支付页:",o.orderId);const d=o.packageTime||60,r=(d/60).toFixed(1),i=o.packagePrice||"0.00",t=(parseFloat(i)/(d/60)).toFixed(2),a=o.depositAmount||"99.00",s=(parseFloat(a)+parseFloat(i)).toFixed(2);e.index.redirectTo({url:`/pages/order/payment?orderId=${o.orderId}&packageTimeHours=${r}&packagePrice=${i}&hourlyRate=${t}&totalAmount=${s}&depositAmount=${a}`})}else console.log("检测到其他状态订单,跳转详情页:",o.orderId),e.index.redirectTo({url:`/pages/device/detail?deviceNo=${r}`})}else console.log("未检测到相关订单,跳转详情页"),e.index.redirectTo({url:`/pages/device/detail?deviceNo=${r}`})}catch(r){r.message&&(r.message.includes("未识别到设备编号")||r.message.includes("网络请求失败")||r.message.includes("服务器错误"))?(console.error("扫码检查订单失败:",r),e.index.showToast({title:r.message||"处理失败,请稍后重试",icon:"none",duration:2e3})):console.log("没有找到符合条件的订单或发生其他错误,直接跳转详情页"),setTimeout((()=>{d&&d.deviceNo?e.index.redirectTo({url:`/pages/device/detail?deviceNo=${d.deviceNo}`}):e.index.switchTab({url:"/pages/index/index"})}),2e3)}finally{e.index.hideLoading()}},methods:{}};const r=e._export_sfc(d,[["render",function(e,o,d,r,i,t){return{}}]]);wx.createPage(r);