fix:修复订单列表页搜索参数传递错误的问题;移除租借设备时手机号的验证效果;新增免押无法使用走非免押逻辑的方法
This commit is contained in:
+3
-2
@@ -1,4 +1,5 @@
|
||||
export const URL = "https://my.gxfs123.com/api"
|
||||
// export const URL = "http://192.168.10.33:8080"
|
||||
export const URL = "https://my.gxfs123.com/api" //正式服务器
|
||||
// export const URL = "https://unifans.gxfs123.com/api" //测试服务器
|
||||
// export const URL = "http://192.168.10.41:8080" //本地调试
|
||||
|
||||
export const appid = "wx2165f0be356ae7a9"
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name" : "fs",
|
||||
"name" : "uni-fans-score",
|
||||
"appid" : "__UNI__A871B6B",
|
||||
"description" : "",
|
||||
"versionName" : "1.0.0",
|
||||
|
||||
+82
-27
@@ -73,7 +73,7 @@
|
||||
</view>
|
||||
|
||||
<!-- 手机号输入 -->
|
||||
<view class="card phone-card" v-if="!hasActiveOrder">
|
||||
<!-- <view class="card phone-card" v-if="!hasActiveOrder">
|
||||
<view class="card-header">
|
||||
<text class="card-title">联系方式</text>
|
||||
</view>
|
||||
@@ -83,9 +83,8 @@
|
||||
<input type="number" class="phone-input" maxlength="11" placeholder="请输入手机号码"
|
||||
v-model="phoneNumber" />
|
||||
</view>
|
||||
<!-- <text class="phone-tip">租借将发送验证码至此号码,请确保可正常接收短信</text> -->
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
<!-- 使用须知 -->
|
||||
<view class="card notice-card">
|
||||
@@ -119,9 +118,13 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<button class="rent-button" :class="{ 'return-button': hasActiveOrder }" @click="handleRent">
|
||||
<button class="rent-button" :class="{ 'return-button': hasActiveOrder }"
|
||||
@click="handleRent('wx-score-pay')">
|
||||
<text>{{ hasActiveOrder ? '归还设备' : '免押金租借' }}</text>
|
||||
</button>
|
||||
<view class="" style="align-items: center;align-content: center;text-align: center;line-height: 50rpx;"
|
||||
@click="handleRent('wx-pay')">
|
||||
无法免押点这里></view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@@ -139,7 +142,9 @@
|
||||
getDeviceInfo,
|
||||
rentPowerBank,
|
||||
getOrderByOrderNoScore,
|
||||
getOrderByOrderNoScorePayStatus
|
||||
getOrderByOrderNoScorePayStatus,
|
||||
getOrderByOrderNo,
|
||||
updateOrderPackage
|
||||
} from '@/config/user.js'
|
||||
import {
|
||||
URL
|
||||
@@ -242,36 +247,42 @@
|
||||
}
|
||||
|
||||
// 处理租借操作
|
||||
const handleRent = () => {
|
||||
const handleRent = (payWay) => {
|
||||
if (!isLoggedIn.value) {
|
||||
showLoginTip()
|
||||
return
|
||||
}
|
||||
|
||||
// 添加手机号验证
|
||||
if (!phoneNumber.value) {
|
||||
uni.showToast({
|
||||
title: '请输入手机号码',
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
// // 添加手机号验证
|
||||
// if (!phoneNumber.value) {
|
||||
// uni.showToast({
|
||||
// title: '请输入手机号码',
|
||||
// icon: 'none'
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
|
||||
// 验证手机号格式
|
||||
if (!/^1[3-9]\d{9}$/.test(phoneNumber.value)) {
|
||||
uni.showToast({
|
||||
title: '请输入正确的手机号码',
|
||||
icon: 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
// // 验证手机号格式
|
||||
// if (!/^1[3-9]\d{9}$/.test(phoneNumber.value)) {
|
||||
// uni.showToast({
|
||||
// title: '请输入正确的手机号码',
|
||||
// icon: 'none'
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
|
||||
// 直接提交订单,不显示确认对话框
|
||||
submitRentOrder()
|
||||
submitRentOrder(payWay);
|
||||
}
|
||||
|
||||
const selectedPkg = reactive({
|
||||
time: '1小时',
|
||||
price: '5.00'
|
||||
})
|
||||
const depositAmount = ref('99.00')
|
||||
|
||||
// 提交租借订单
|
||||
const submitRentOrder = async () => {
|
||||
const submitRentOrder = async (payWay) => {
|
||||
try {
|
||||
uni.showLoading({
|
||||
title: '处理中'
|
||||
@@ -285,11 +296,56 @@
|
||||
|
||||
// 获取后端返回的订单信息
|
||||
const order = rentResult.data
|
||||
//当支付方式为押金支付时
|
||||
if (payWay == 'wx-pay') {
|
||||
//当支付方式为押金支付时
|
||||
uni.hideLoading()
|
||||
const res = await getOrderByOrderNo(order.orderNo);
|
||||
console.log(res);
|
||||
try {
|
||||
let packageTimeMinutes = 0;
|
||||
if (selectedPkg.time.includes('小时')) {
|
||||
packageTimeMinutes = parseInt(selectedPkg.time) * 60;
|
||||
} else if (selectedPkg.time.includes('分钟')) {
|
||||
packageTimeMinutes = parseInt(selectedPkg.time);
|
||||
} else {
|
||||
packageTimeMinutes = parseInt(selectedPkg.time) * 60; // 默认按小时处理
|
||||
}
|
||||
|
||||
const updateRes = await updateOrderPackage({
|
||||
orderId: order.orderId,
|
||||
packageTime: packageTimeMinutes,
|
||||
packagePrice: parseFloat(selectedPkg.price)
|
||||
});
|
||||
if (updateRes.code !== 200) {
|
||||
console.warn("更新订单套餐信息失败:", updateRes.msg);
|
||||
// 这里可以选择是否提示用户或阻止流程,当前不阻止
|
||||
} else {
|
||||
console.log("订单套餐信息已提前更新");
|
||||
}
|
||||
} catch (updateError) {
|
||||
console.error("更新订单套餐信息时出错:", updateError);
|
||||
// 即使更新失败,也继续尝试跳转支付,让用户完成支付
|
||||
}
|
||||
// --- 新增:计算总金额 ---
|
||||
const deposit = parseFloat(deviceInfo.value.depositAmount);
|
||||
const packagePrice = parseFloat(selectedPkg.price);
|
||||
const totalAmount = (deposit + packagePrice).toFixed(2);
|
||||
// --- 计算结束 ---
|
||||
|
||||
uni.hideLoading()
|
||||
|
||||
// 跳转到订单支付页面,传递订单ID、套餐信息和总金额
|
||||
uni.redirectTo({
|
||||
url: `/pages/order/payment?orderId=${order.orderId}&packageTimeHours=${selectedPkg.time.replace('小时', '')}&packagePrice=${selectedPkg.price}&totalAmount=${totalAmount}&depositAmount=${depositAmount.value}${deviceInfo.value && deviceInfo.value.feeConfig ? '&feeConfig=' + encodeURIComponent(deviceInfo.value.feeConfig) : ''}`
|
||||
})
|
||||
|
||||
} else if ('wx-score-pay') {
|
||||
// 当支付方式为支付分支付时
|
||||
uni.hideLoading()
|
||||
// 获取支付分所需参数
|
||||
const res = await getOrderByOrderNoScore(order.orderNo);
|
||||
console.log(res);
|
||||
|
||||
uni.hideLoading()
|
||||
|
||||
if (res && res.code === 200) {
|
||||
@@ -326,8 +382,7 @@
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
|
||||
console.log(order);
|
||||
}
|
||||
} catch (error) {
|
||||
uni.hideLoading()
|
||||
uni.showToast({
|
||||
|
||||
+20
-10
@@ -21,8 +21,8 @@
|
||||
<view class="order-id">
|
||||
<text>订单号:{{ order.orderNo }}</text>
|
||||
</view>
|
||||
<view class="order-status" :class="orderStatusMap[order.status]?.class">
|
||||
{{ orderStatusMap[order.status]?.text }}
|
||||
<view class="order-status" :class="orderStatusMap[order.orderStatus]?.class">
|
||||
{{ orderStatusMap[order.orderStatus]?.text }}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -70,7 +70,8 @@
|
||||
<view class="price">¥{{ order.amount }}</view>
|
||||
|
||||
<view class="actions">
|
||||
<view v-if="order.status=='in_used'" class="action-item primary" @click="navigateToReturn(order.deviceId, order.orderId)">
|
||||
<view v-if="order.status=='in_used'" class="action-item primary"
|
||||
@click="navigateToReturn(order.deviceId, order.orderId)">
|
||||
归还设备
|
||||
</view>
|
||||
<view v-if="order.status === 'waiting_for_payment'" class="action-item secondary"
|
||||
@@ -133,7 +134,7 @@
|
||||
text: '已完成',
|
||||
class: 'status-finished'
|
||||
},
|
||||
'canceled': {
|
||||
'order_cancelled': {
|
||||
text: '已取消',
|
||||
class: 'status-cancelled'
|
||||
}
|
||||
@@ -144,17 +145,21 @@
|
||||
text: '全部',
|
||||
status: []
|
||||
},
|
||||
{
|
||||
text: '待付款',
|
||||
status: ['waiting_for_payment']
|
||||
},
|
||||
{
|
||||
text: '使用中',
|
||||
status: ['1', 'in_used']
|
||||
status: ['in_used']
|
||||
},
|
||||
{
|
||||
text: '已完成',
|
||||
status: ['2', 'used_done']
|
||||
status: ['used_done']
|
||||
},
|
||||
{
|
||||
text: '已取消',
|
||||
status: ['3', 'canceled']
|
||||
status: ['order_cancelled']
|
||||
}
|
||||
]);
|
||||
|
||||
@@ -208,13 +213,18 @@
|
||||
const switchTab = async (index) => {
|
||||
currentTab.value = index;
|
||||
// 根据状态获取订单列表
|
||||
const statusList = orderStatusTabs[index].status;
|
||||
const statusList = orderStatusTabs[index].status[0];
|
||||
await loadOrderList(statusList);
|
||||
};
|
||||
|
||||
// 加载订单列表
|
||||
const loadOrderList = async (statusList = []) => {
|
||||
const loadOrderList = async (statusList) => {
|
||||
try {
|
||||
if(statusList!=undefined){
|
||||
statusList = {
|
||||
orderStatus:statusList
|
||||
}
|
||||
}
|
||||
const res = await getOrderList(statusList);
|
||||
if (res.code === 200 && res.data && res.data.records) {
|
||||
// 处理订单列表数据
|
||||
@@ -225,7 +235,7 @@
|
||||
return {
|
||||
orderNo: item.orderNo,
|
||||
orderId: item.orderId,
|
||||
status: item.orderStatus,
|
||||
orderStatus: item.orderStatus,
|
||||
deviceId: item.deviceNo,
|
||||
payWay: item.payWay,
|
||||
startTime: orderStartTime,
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
"use strict";const e=require("./http.js");exports.checkOrdersByStatus=(r,t)=>{const o=t.join(",");return e.request({url:`/app/order/list?deviceNo=${r}&orderStatus=${o}`,method:"get",hideLoading:!0,ignoreEmptyError:!0})},exports.confirmPaymentAndRent=r=>(console.log(`确认支付并弹出充电宝, orderId: ${r}`),e.request({url:`/app/device/confirmPaymentAndRent?orderId=${r}`,method:"post"})),exports.getDeviceInfo=r=>e.request({url:`/app/device/${r}`,method:"get"}),exports.getMyIndexInfo=r=>e.request({url:"/app/user/userInfo",method:"get",data:r}),exports.getOrderByOrderNoScore=r=>(console.log("通过订单号获取支付分订单信息",r),e.request({url:`/app/wx-payment/score/create/${r}`,method:"get",hideLoading:!0})),exports.getOrderByOrderNoScorePayStatus=r=>(console.log("通过订单号获取支付分订单状态",r),e.request({url:`/app/wx-payment/score/status/${r}`,method:"get",hideLoading:!0})),exports.getOrderList=r=>e.request({url:"/app/order/list",method:"get",data:r,hideLoading:!0}),exports.login=r=>e.request({url:"/app/user/login",method:"get",data:r}),exports.queryById=r=>(console.log(`查询订单详情, orderId: ${r}`),e.request({url:`/app/order/${r}`,method:"get",hideLoading:!0})),exports.rentPowerBank=(r,t)=>e.request({url:"/app/device/rentPowerBank",method:"post",data:{deviceNo:r,phone:t}}),exports.updateUserBalance=r=>e.request({url:`/app/user/updateBalance/${r}`,method:"post",hideLoading:!0}),exports.withdrawDeposit=r=>(console.log("调用提现API,订单号:",r),e.request({url:`/app/withdraw/add/${r}`,method:"get",hideLoading:!0}));
|
||||
"use strict";const e=require("./http.js");exports.checkOrdersByStatus=(r,t)=>{const o=t.join(",");return e.request({url:`/app/order/list?deviceNo=${r}&orderStatus=${o}`,method:"get",hideLoading:!0,ignoreEmptyError:!0})},exports.confirmPaymentAndRent=r=>(console.log(`确认支付并弹出充电宝, orderId: ${r}`),e.request({url:`/app/device/confirmPaymentAndRent?orderId=${r}`,method:"post"})),exports.getDeviceInfo=r=>e.request({url:`/app/device/${r}`,method:"get"}),exports.getMyIndexInfo=r=>e.request({url:"/app/user/userInfo",method:"get",data:r}),exports.getOrderByOrderNo=r=>e.request({url:`/app/order/byOrderNo/${r}`,method:"get",hideLoading:!0}),exports.getOrderByOrderNoScore=r=>(console.log("通过订单号获取支付分订单信息",r),e.request({url:`/app/wx-payment/score/create/${r}`,method:"get",hideLoading:!0})),exports.getOrderByOrderNoScorePayStatus=r=>(console.log("通过订单号获取支付分订单状态",r),e.request({url:`/app/wx-payment/score/status/${r}`,method:"get",hideLoading:!0})),exports.getOrderList=r=>e.request({url:"/app/order/list",method:"get",data:r,hideLoading:!0}),exports.login=r=>e.request({url:"/app/user/login",method:"get",data:r}),exports.queryById=r=>(console.log(`查询订单详情, orderId: ${r}`),e.request({url:`/app/order/${r}`,method:"get",hideLoading:!0})),exports.rentPowerBank=(r,t)=>e.request({url:"/app/device/rentPowerBank",method:"post",data:{deviceNo:r,phone:t}}),exports.updateOrderPackage=r=>(console.log("更新订单套餐信息:",r),e.request({url:"/app/device/updateOrderPackage",method:"post",data:r})),exports.updateUserBalance=r=>e.request({url:`/app/user/updateBalance/${r}`,method:"post",hideLoading:!0}),exports.withdrawDeposit=r=>(console.log("调用提现API,订单号:",r),e.request({url:`/app/withdraw/add/${r}`,method:"get",hideLoading:!0}));
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
"use strict";const e=require("../../common/vendor.js"),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);
|
||||
"use strict";const e=require("../../common/vendor.js"),o=require("../../common/assets.js"),a=require("../../config/user.js"),t=require("../../util/index.js"),i={__name:"detail",setup(i){const r=e.ref({}),n=e.ref(""),s=e.ref("一号教学楼大厅"),d=e.ref(95),c=e.ref(!1),l=e.reactive({text:"可使用",class:"available"}),u=e.ref(!0),v=e.ref("");e.onLoad((e=>{n.value=e.deviceNo,g(),console.log(e.deviceNo),p()}));const p=async()=>{const e=await a.getDeviceInfo(n.value);200==e.code&&(r.value=e.data.device||{},r.value.deviceLocation?s.value=r.value.deviceLocation:e.data.position&&e.data.position.name&&(s.value=e.data.position.name),r.value.status&&("online"===r.value.status?(l.text="可使用",l.class="available"):"offline"===r.value.status&&(l.text="离线",l.class="offline")))},g=async()=>{try{const o=await e.index.$api.checkActiveOrder();if(o.hasOrder){const a=o.order;"waiting_for_payment"===a.status?e.index.redirectTo({url:`/pages/order/payment?orderId=${a.orderId}&deviceId=${n.value}`}):"in_used"===a.status&&e.index.redirectTo({url:`/pages/device/return?deviceId=${n.value}`})}}catch(o){e.index.showToast({title:"订单状态查询失败",icon:"none"})}},m=o=>{u.value?w(o):e.index.showModal({title:"提示",content:"请先登录后再操作",confirmText:"去登录",success:o=>{o.confirm&&e.index.navigateTo({url:"/pages/login/index"})}})},x=e.reactive({time:"1小时",price:"5.00"}),f=e.ref("99.00"),w=async o=>{try{e.index.showLoading({title:"处理中"});const d=await a.rentPowerBank(n.value,v.value);if(200!==d.code)throw new Error(d.msg||"设备租借失败");const c=d.data;if("wx-pay"==o){e.index.hideLoading();const o=await a.getOrderByOrderNo(c.orderNo);console.log(o);try{let e=0;e=x.time.includes("小时")?60*parseInt(x.time):x.time.includes("分钟")?parseInt(x.time):60*parseInt(x.time);const o=await a.updateOrderPackage({orderId:c.orderId,packageTime:e,packagePrice:parseFloat(x.price)});200!==o.code?console.warn("更新订单套餐信息失败:",o.msg):console.log("订单套餐信息已提前更新")}catch(i){console.error("更新订单套餐信息时出错:",i)}const t=parseFloat(r.value.depositAmount),n=(t+parseFloat(x.price)).toFixed(2);e.index.hideLoading(),e.index.redirectTo({url:`/pages/order/payment?orderId=${c.orderId}&packageTimeHours=${x.time.replace("小时","")}&packagePrice=${x.price}&totalAmount=${n}&depositAmount=${f.value}${r.value&&r.value.feeConfig?"&feeConfig="+encodeURIComponent(r.value.feeConfig):""}`})}else{{e.index.hideLoading();const o=await a.getOrderByOrderNoScore(c.orderNo);if(console.log(o),e.index.hideLoading(),o&&200===o.code)try{if("0"==(await t.initiateWeChatScorePayment(o)).errCode){await a.getOrderByOrderNoScorePayStatus(c.orderNo);e.index.showToast({title:"设备租借成功",icon:"success"}),setTimeout((()=>{e.index.redirectTo({url:"/pages/order/index"})}),1500)}}catch(s){e.index.showToast({title:"支付分调用失败,请重试",icon:"none"})}else e.index.showToast({title:(null==o?void 0:o.msg)||"获取支付参数失败",icon:"none"})}}}catch(d){e.index.hideLoading(),e.index.showToast({title:d.message||"租借失败,请重试",icon:"none"})}};return(a,t)=>({a:e.t(l.text),b:e.n(l.class),c:e.t(n.value),d:o._imports_0$3,e:e.t(s.value),f:o._imports_1$2,g:d.value<20?1:"",h:e.t(d.value),i:o._imports_0$2,j:e.t(c.value?"归还设备":"免押金租借"),k:c.value?1:"",l:e.o((e=>m("wx-score-pay"))),m:e.o((e=>m("wx-pay")))})}},r=e._export_sfc(i,[["__scopeId","data-v-24e33e2c"]]);wx.createPage(r);
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<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>
|
||||
<view class="container data-v-24e33e2c"><view class="device-header data-v-24e33e2c"><view class="{{['device-status-card', 'data-v-24e33e2c', b]}}"><view class="status-indicator data-v-24e33e2c"></view><text class="status-text data-v-24e33e2c">{{a}}</text></view><view class="device-title data-v-24e33e2c"><text class="name data-v-24e33e2c">共享风扇</text><view class="device-meta data-v-24e33e2c"><text class="id-label data-v-24e33e2c">设备号:</text><text class="id-value data-v-24e33e2c">{{c}}</text></view></view></view><view class="card device-info-card data-v-24e33e2c"><view class="card-row data-v-24e33e2c"><view class="card-item data-v-24e33e2c"><view class="item-icon location-icon data-v-24e33e2c"><image class="data-v-24e33e2c" src="{{d}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-24e33e2c"><text class="item-label data-v-24e33e2c">当前位置</text><text class="item-value data-v-24e33e2c">{{e}}</text></view></view><view class="card-item data-v-24e33e2c"><view class="{{['item-icon', 'battery-icon', 'data-v-24e33e2c', g && 'battery-low']}}"><image class="data-v-24e33e2c" src="{{f}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-24e33e2c"><text class="item-label data-v-24e33e2c">电池电量</text><text class="item-value data-v-24e33e2c">{{h}}%</text></view></view></view></view><view class="card pricing-card data-v-24e33e2c"><view class="card-header data-v-24e33e2c"><text class="card-title data-v-24e33e2c">计费规则</text></view><view class="pricing-banner data-v-24e33e2c"><view class="pricing-main data-v-24e33e2c"><text class="price data-v-24e33e2c">¥5.00</text><text class="unit data-v-24e33e2c">/小时</text></view><text class="cap-price data-v-24e33e2c">封顶 ¥99</text></view><view class="pricing-rules data-v-24e33e2c"><view class="rule-item data-v-24e33e2c"><view class="rule-dot data-v-24e33e2c"></view><text class="rule-text data-v-24e33e2c">前15分钟内归还<text class="highlight data-v-24e33e2c">免费</text></text></view><view class="rule-item data-v-24e33e2c"><view class="rule-dot data-v-24e33e2c"></view><text class="rule-text data-v-24e33e2c">不足60分钟按60分钟计费</text></view><view class="rule-item data-v-24e33e2c"><view class="rule-dot data-v-24e33e2c"></view><text class="rule-text data-v-24e33e2c">持续计费至99元视为买断</text></view></view></view><view class="card notice-card data-v-24e33e2c"><view class="card-header data-v-24e33e2c"><text class="card-title data-v-24e33e2c">使用须知</text></view><view class="notice-items data-v-24e33e2c"><view class="notice-item data-v-24e33e2c"><view class="notice-dot data-v-24e33e2c"></view><text class="notice-text data-v-24e33e2c">请在使用前检查设备是否完好</text></view><view class="notice-item data-v-24e33e2c"><view class="notice-dot data-v-24e33e2c"></view><text class="notice-text data-v-24e33e2c">请在指定区域内使用设备</text></view><view class="notice-item data-v-24e33e2c"><view class="notice-dot data-v-24e33e2c"></view><text class="notice-text data-v-24e33e2c">归还时请确保设备完好,避免损坏</text></view></view></view><view class="footer data-v-24e33e2c"><view class="wechat-credit data-v-24e33e2c"><image src="{{i}}" mode="aspectFit" class="wx-icon data-v-24e33e2c"></image><view class="credit-text data-v-24e33e2c"><text class="data-v-24e33e2c">微信支付分</text><text class="credit-divider data-v-24e33e2c">|</text><text class="credit-score data-v-24e33e2c">支付分200分及以上优享</text></view></view><button class="{{['rent-button', 'data-v-24e33e2c', k && 'return-button']}}" bindtap="{{l}}"><text class="data-v-24e33e2c">{{j}}</text></button><view class=" data-v-24e33e2c" style="align-items:center;align-content:center;text-align:center;line-height:50rpx" bindtap="{{m}}"> 无法免押点这里></view></view></view>
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
"use strict";const t=require("../../common/vendor.js"),e=require("../../common/assets.js"),a=require("../../config/user.js"),s={__name:"index",setup(s){const r=t.ref(0),o=t.ref([]),d=t.reactive({0:{text:"待支付",class:"status-waiting"},1:{text:"使用中",class:"status-using"},2:{text:"已完成",class:"status-finished"},3:{text:"已取消",class:"status-cancelled"},waiting_for_payment:{text:"待支付",class:"status-waiting"},in_used:{text:"使用中",class:"status-using"},used_done:{text:"已完成",class:"status-finished"},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);
|
||||
"use strict";const t=require("../../common/vendor.js"),e=require("../../common/assets.js"),a=require("../../config/user.js"),s={__name:"index",setup(s){const r=t.ref(0),o=t.ref([]),d=t.reactive({0:{text:"待支付",class:"status-waiting"},1:{text:"使用中",class:"status-using"},2:{text:"已完成",class:"status-finished"},3:{text:"已取消",class:"status-cancelled"},waiting_for_payment:{text:"待支付",class:"status-waiting"},in_used:{text:"使用中",class:"status-using"},used_done:{text:"已完成",class:"status-finished"},order_cancelled:{text:"已取消",class:"status-cancelled"}}),n=t.reactive([{text:"全部",status:[]},{text:"待付款",status:["waiting_for_payment"]},{text:"使用中",status:["in_used"]},{text:"已完成",status:["used_done"]},{text:"已取消",status:["order_cancelled"]}]);t.onLoad((async t=>{if(t&&t.orderId)try{const e=await a.queryById(t.orderId);if(200===e.code&&e.data){const t=e.data,a=t.startTime||t.createTime||"",s={orderNo:t.orderId,status:t.orderStatus,deviceId:t.deviceNo,payWay:t.payWay,startTime:a,endTime:t.endTime||"",amount:t.payAmount||t.actualDeviceAmount||"0.00"};o.value=[s,...o.value];const r=n.findIndex((e=>e.status.includes(t.orderStatus)));-1!==r&&i(r)}}catch(e){console.error("获取订单详情失败:",e)}await c()}));const i=async t=>{r.value=t;const e=n[t].status[0];await c(e)},c=async e=>{try{null!=e&&(e={orderStatus:e});const t=await a.getOrderList(e);200===t.code&&t.data&&t.data.records&&(o.value=t.data.records.map((t=>{const e=t.startTime||t.createTime||"";return{orderNo:t.orderNo,orderId:t.orderId,orderStatus:t.orderStatus,deviceId:t.deviceNo,payWay:t.payWay,startTime:e,endTime:t.endTime||"",amount:t.payAmount||t.actualDeviceAmount||"0.00"}})))}catch(s){console.error("获取订单列表失败:",s),t.index.showToast({title:"获取订单列表失败",icon:"none"})}};return(s,u)=>t.e({a:t.f(n,((e,a,s)=>({a:t.t(e.text),b:a,c:r.value===a?1:"",d:t.o((t=>i(a)),a)}))),b:0===o.value.length},(o.value.length,{}),{c:t.f(o.value,((s,o,i)=>{var u,l;return t.e({a:t.t(s.orderNo),b:t.t(null==(u=d[s.orderStatus])?void 0:u.text),c:t.n(null==(l=d[s.orderStatus])?void 0:l.class),d:t.t(s.deviceId),e:"wx_score_pay"==s.payWay},"wx_score_pay"==s.payWay?{f:e._imports_0$2}:{},{g:t.t(s.startTime),h:t.t(s.endTime||"-"),i:t.t(s.amount),j:"in_used"==s.status},"in_used"==s.status?{k:t.o((e=>{return a=s.deviceId,r=s.orderId,console.log(r),void t.index.navigateTo({url:`/pages/return/index?deviceId=${a}&orderId=${r}`});var a,r}),o)}:{},{l:"waiting_for_payment"===s.status},"waiting_for_payment"===s.status?{m:t.o((e=>(async e=>{try{200===(await a.getOrderByOrderNoScorePayStatus(e.orderNo)).code&&(t.index.showToast({title:"状态同步成功",icon:"success"}),await c(n[r.value].status))}catch(s){t.index.showToast({title:"同步状态失败",icon:"none"})}})(s)),o)}:{},{n:o})}))})}},r=t._export_sfc(s,[["__scopeId","data-v-37e5b6af"]]);wx.createPage(r);
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<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>
|
||||
<view class="order-container data-v-37e5b6af"><view class="status-tabs data-v-37e5b6af"><view wx:for="{{a}}" wx:for-item="tab" wx:key="b" class="{{['tab-item', 'data-v-37e5b6af', tab.c && 'active']}}" bindtap="{{tab.d}}">{{tab.a}}</view></view><view class="order-list data-v-37e5b6af"><view wx:if="{{b}}" class="empty-state data-v-37e5b6af"><view class="empty-icon data-v-37e5b6af"></view><text class="empty-text data-v-37e5b6af">暂无订单记录</text></view><view wx:for="{{c}}" wx:for-item="order" wx:key="n" class="order-item data-v-37e5b6af"><view class="order-header data-v-37e5b6af"><view class="order-id data-v-37e5b6af"><text class="data-v-37e5b6af">订单号:{{order.a}}</text></view><view class="{{['order-status', 'data-v-37e5b6af', order.c]}}">{{order.b}}</view></view><view class="order-body data-v-37e5b6af"><view class="device-info data-v-37e5b6af"><view class="device-left data-v-37e5b6af"><view class="device-name data-v-37e5b6af">共享风扇</view><view class="device-id data-v-37e5b6af">设备号:{{order.d}}</view></view><view class="device-right data-v-37e5b6af"><view wx:if="{{order.e}}" class="payment-badge wx-score data-v-37e5b6af"><image src="{{order.f}}" mode="aspectFit" class="badge-icon data-v-37e5b6af"></image><view class="badge-text data-v-37e5b6af"><text class="data-v-37e5b6af">微信支付分</text><text class="divider data-v-37e5b6af">|</text><text class="highlight data-v-37e5b6af">免押租借</text></view></view><view wx:else class="payment-badge deposit data-v-37e5b6af"><text class="badge-text data-v-37e5b6af">押金租借</text></view></view></view><view class="order-times data-v-37e5b6af"><view class="time-row data-v-37e5b6af"><text class="time-label data-v-37e5b6af">开始时间:</text><text class="time-value data-v-37e5b6af">{{order.g}}</text></view><view class="time-row data-v-37e5b6af"><text class="time-label data-v-37e5b6af">结束时间:</text><text class="time-value data-v-37e5b6af">{{order.h}}</text></view></view></view><view class="order-footer data-v-37e5b6af"><view class="price data-v-37e5b6af">¥{{order.i}}</view><view class="actions data-v-37e5b6af"><view wx:if="{{order.j}}" class="action-item primary data-v-37e5b6af" bindtap="{{order.k}}"> 归还设备 </view><view wx:if="{{order.l}}" class="action-item secondary data-v-37e5b6af" bindtap="{{order.m}}"> 同步订单状态 </view></view></view></view></view></view>
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -14,7 +14,7 @@
|
||||
"compileType": "miniprogram",
|
||||
"libVersion": "",
|
||||
"appid": "wx2165f0be356ae7a9",
|
||||
"projectname": "fs",
|
||||
"projectname": "uni-fans-score",
|
||||
"condition": {
|
||||
"search": {
|
||||
"current": -1,
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"url.js","sources":["config/url.js"],"sourcesContent":["export const URL = \"https://my.gxfs123.com/api\"\r\n// export const URL = \"http://192.168.10.33:8080\"\r\n\r\nexport const appid = \"wx2165f0be356ae7a9\" "],"names":[],"mappings":";AAAY,MAAC,MAAM;AAGP,MAAC,QAAQ;;;"}
|
||||
{"version":3,"file":"url.js","sources":["config/url.js"],"sourcesContent":["export const URL = \"https://my.gxfs123.com/api\" //正式服务器\r\n// export const URL = \"https://unifans.gxfs123.com/api\" //测试服务器\r\n// export const URL = \"http://192.168.10.41:8080\" \t\t//本地调试\r\n\r\nexport const appid = \"wx2165f0be356ae7a9\" "],"names":[],"mappings":";AAAY,MAAC,MAAM;AAIP,MAAC,QAAQ;;;"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"version":3,"file":"index.js","sources":["pages/help/index.vue","E:/HBuilderX.4.24.2024072208/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvaGVscC9pbmRleC52dWU"],"sourcesContent":["<template>\r\n <view class=\"help-container\">\r\n <!-- 常见问题 -->\r\n <view class=\"faq-list\">\r\n <view \r\n class=\"faq-item\"\r\n v-for=\"(item, index) in faqList\"\r\n :key=\"index\"\r\n @click=\"toggleFaq(index)\"\r\n >\r\n <view class=\"faq-header\">\r\n <text class=\"question\">{{ item.question }}</text>\r\n <view class=\"arrow\" :class=\"{ open: item.isOpen }\"></view>\r\n </view>\r\n <view class=\"answer\" v-show=\"item.isOpen\">\r\n {{ item.answer }}\r\n </view>\r\n </view>\r\n </view>\r\n\r\n <!-- 联系客服 -->\r\n <view class=\"contact-card\">\r\n <view class=\"contact-title\">{{ HELP_CONTENT.CONTACT.TITLE }}</view>\r\n <view class=\"contact-content\">\r\n <view class=\"contact-item\">\r\n <text class=\"label\">{{ HELP_CONTENT.CONTACT.PHONE.LABEL }}</text>\r\n <text class=\"value\" @click=\"makePhoneCall\">{{ HELP_CONTENT.CONTACT.PHONE.VALUE }}</text>\r\n </view>\r\n <view class=\"contact-item\">\r\n <text class=\"label\">{{ HELP_CONTENT.CONTACT.SERVICE_TIME.LABEL }}</text>\r\n <text class=\"value\">{{ HELP_CONTENT.CONTACT.SERVICE_TIME.VALUE }}</text>\r\n </view>\r\n </view>\r\n </view>\r\n </view>\r\n</template>\r\n\r\n<script>\r\nimport { HELP_CONTENT } from '@/constants/help'\r\n\r\nexport default {\r\n data() {\r\n return {\r\n HELP_CONTENT,\r\n faqList: HELP_CONTENT.FAQ_LIST.map(item => ({\r\n ...item,\r\n isOpen: false\r\n }))\r\n }\r\n },\r\n methods: {\r\n toggleFaq(index) {\r\n this.faqList[index].isOpen = !this.faqList[index].isOpen\r\n },\r\n makePhoneCall() {\r\n uni.makePhoneCall({\r\n phoneNumber: HELP_CONTENT.CONTACT.PHONE.VALUE\r\n })\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.help-container {\r\n min-height: 100vh;\r\n background: #f8f8f8;\r\n padding: 30rpx;\r\n\r\n .faq-list {\r\n background: #fff;\r\n border-radius: 20rpx;\r\n padding: 20rpx;\r\n margin-bottom: 30rpx;\r\n box-shadow: 0 4rpx 16rpx rgba(0,0,0,0.04);\r\n\r\n .faq-item {\r\n border-bottom: 1rpx solid #f5f5f5;\r\n \r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n\r\n .faq-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 30rpx 20rpx;\r\n\r\n .question {\r\n font-size: 30rpx;\r\n color: #333;\r\n flex: 1;\r\n padding-right: 20rpx;\r\n }\r\n\r\n .arrow {\r\n width: 16rpx;\r\n height: 16rpx;\r\n border-right: 4rpx solid #999;\r\n border-bottom: 4rpx solid #999;\r\n transform: rotate(45deg);\r\n transition: all 0.3s;\r\n\r\n &.open {\r\n transform: rotate(-135deg);\r\n }\r\n }\r\n }\r\n\r\n .answer {\r\n font-size: 28rpx;\r\n color: #666;\r\n line-height: 1.6;\r\n padding: 0 20rpx 30rpx;\r\n background: #f9f9f9;\r\n border-radius: 10rpx;\r\n margin: 0 20rpx 20rpx;\r\n }\r\n }\r\n }\r\n\r\n .contact-card {\r\n background: #fff;\r\n border-radius: 20rpx;\r\n padding: 30rpx;\r\n box-shadow: 0 4rpx 16rpx rgba(0,0,0,0.04);\r\n\r\n .contact-title {\r\n font-size: 32rpx;\r\n color: #333;\r\n font-weight: 500;\r\n margin-bottom: 20rpx;\r\n border-left: 8rpx solid #1976D2;\r\n padding-left: 20rpx;\r\n }\r\n\r\n .contact-content {\r\n .contact-item {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 20rpx 0;\r\n \r\n .label {\r\n font-size: 28rpx;\r\n color: #666;\r\n }\r\n\r\n .value {\r\n font-size: 28rpx;\r\n color: #333;\r\n font-weight: 500;\r\n\r\n &:active {\r\n opacity: 0.7;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style> ","import MiniProgramPage from 'D:/uni-fans/pages/help/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["HELP_CONTENT","uni"],"mappings":";;;AAwCA,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,oBACLA,eAAY;AAAA,MACZ,SAASA,eAAY,aAAC,SAAS,IAAI,WAAS;AAAA,QAC1C,GAAG;AAAA,QACH,QAAQ;AAAA,MACV,EAAE;AAAA,IACJ;AAAA,EACD;AAAA,EACD,SAAS;AAAA,IACP,UAAU,OAAO;AACf,WAAK,QAAQ,KAAK,EAAE,SAAS,CAAC,KAAK,QAAQ,KAAK,EAAE;AAAA,IACnD;AAAA,IACD,gBAAgB;AACdC,oBAAAA,MAAI,cAAc;AAAA,QAChB,aAAaD,eAAY,aAAC,QAAQ,MAAM;AAAA,OACzC;AAAA,IACH;AAAA,EACF;AACF;;;;;;;;;;;;;;;;;;;;;;AC3DA,GAAG,WAAW,eAAe;"}
|
||||
{"version":3,"file":"index.js","sources":["pages/help/index.vue","E:/HBuilderX.4.24.2024072208/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvaGVscC9pbmRleC52dWU"],"sourcesContent":["<template>\r\n <view class=\"help-container\">\r\n <!-- 常见问题 -->\r\n <view class=\"faq-list\">\r\n <view \r\n class=\"faq-item\"\r\n v-for=\"(item, index) in faqList\"\r\n :key=\"index\"\r\n @click=\"toggleFaq(index)\"\r\n >\r\n <view class=\"faq-header\">\r\n <text class=\"question\">{{ item.question }}</text>\r\n <view class=\"arrow\" :class=\"{ open: item.isOpen }\"></view>\r\n </view>\r\n <view class=\"answer\" v-show=\"item.isOpen\">\r\n {{ item.answer }}\r\n </view>\r\n </view>\r\n </view>\r\n\r\n <!-- 联系客服 -->\r\n <view class=\"contact-card\">\r\n <view class=\"contact-title\">{{ HELP_CONTENT.CONTACT.TITLE }}</view>\r\n <view class=\"contact-content\">\r\n <view class=\"contact-item\">\r\n <text class=\"label\">{{ HELP_CONTENT.CONTACT.PHONE.LABEL }}</text>\r\n <text class=\"value\" @click=\"makePhoneCall\">{{ HELP_CONTENT.CONTACT.PHONE.VALUE }}</text>\r\n </view>\r\n <view class=\"contact-item\">\r\n <text class=\"label\">{{ HELP_CONTENT.CONTACT.SERVICE_TIME.LABEL }}</text>\r\n <text class=\"value\">{{ HELP_CONTENT.CONTACT.SERVICE_TIME.VALUE }}</text>\r\n </view>\r\n </view>\r\n </view>\r\n </view>\r\n</template>\r\n\r\n<script>\r\nimport { HELP_CONTENT } from '@/constants/help'\r\n\r\nexport default {\r\n data() {\r\n return {\r\n HELP_CONTENT,\r\n faqList: HELP_CONTENT.FAQ_LIST.map(item => ({\r\n ...item,\r\n isOpen: false\r\n }))\r\n }\r\n },\r\n methods: {\r\n toggleFaq(index) {\r\n this.faqList[index].isOpen = !this.faqList[index].isOpen\r\n },\r\n makePhoneCall() {\r\n uni.makePhoneCall({\r\n phoneNumber: HELP_CONTENT.CONTACT.PHONE.VALUE\r\n })\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.help-container {\r\n min-height: 100vh;\r\n background: #f8f8f8;\r\n padding: 30rpx;\r\n\r\n .faq-list {\r\n background: #fff;\r\n border-radius: 20rpx;\r\n padding: 20rpx;\r\n margin-bottom: 30rpx;\r\n box-shadow: 0 4rpx 16rpx rgba(0,0,0,0.04);\r\n\r\n .faq-item {\r\n border-bottom: 1rpx solid #f5f5f5;\r\n \r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n\r\n .faq-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 30rpx 20rpx;\r\n\r\n .question {\r\n font-size: 30rpx;\r\n color: #333;\r\n flex: 1;\r\n padding-right: 20rpx;\r\n }\r\n\r\n .arrow {\r\n width: 16rpx;\r\n height: 16rpx;\r\n border-right: 4rpx solid #999;\r\n border-bottom: 4rpx solid #999;\r\n transform: rotate(45deg);\r\n transition: all 0.3s;\r\n\r\n &.open {\r\n transform: rotate(-135deg);\r\n }\r\n }\r\n }\r\n\r\n .answer {\r\n font-size: 28rpx;\r\n color: #666;\r\n line-height: 1.6;\r\n padding: 0 20rpx 30rpx;\r\n background: #f9f9f9;\r\n border-radius: 10rpx;\r\n margin: 0 20rpx 20rpx;\r\n }\r\n }\r\n }\r\n\r\n .contact-card {\r\n background: #fff;\r\n border-radius: 20rpx;\r\n padding: 30rpx;\r\n box-shadow: 0 4rpx 16rpx rgba(0,0,0,0.04);\r\n\r\n .contact-title {\r\n font-size: 32rpx;\r\n color: #333;\r\n font-weight: 500;\r\n margin-bottom: 20rpx;\r\n border-left: 8rpx solid #1976D2;\r\n padding-left: 20rpx;\r\n }\r\n\r\n .contact-content {\r\n .contact-item {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 20rpx 0;\r\n \r\n .label {\r\n font-size: 28rpx;\r\n color: #666;\r\n }\r\n\r\n .value {\r\n font-size: 28rpx;\r\n color: #333;\r\n font-weight: 500;\r\n\r\n &:active {\r\n opacity: 0.7;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style> ","import MiniProgramPage from 'D:/uni-fans-score/pages/help/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["HELP_CONTENT","uni"],"mappings":";;;AAwCA,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,oBACLA,eAAY;AAAA,MACZ,SAASA,eAAY,aAAC,SAAS,IAAI,WAAS;AAAA,QAC1C,GAAG;AAAA,QACH,QAAQ;AAAA,MACV,EAAE;AAAA,IACJ;AAAA,EACD;AAAA,EACD,SAAS;AAAA,IACP,UAAU,OAAO;AACf,WAAK,QAAQ,KAAK,EAAE,SAAS,CAAC,KAAK,QAAQ,KAAK,EAAE;AAAA,IACnD;AAAA,IACD,gBAAgB;AACdC,oBAAAA,MAAI,cAAc;AAAA,QAChB,aAAaD,eAAY,aAAC,QAAQ,MAAM;AAAA,OACzC;AAAA,IACH;AAAA,EACF;AACF;;;;;;;;;;;;;;;;;;;;;;AC3DA,GAAG,WAAW,eAAe;"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+4
-4
@@ -6091,7 +6091,7 @@ function populateParameters(fromRes, toRes) {
|
||||
const hostLanguage = (language || "").replace(/_/g, "-");
|
||||
const parameters = {
|
||||
appId: "__UNI__A871B6B",
|
||||
appName: "fs",
|
||||
appName: "uni-fans-score",
|
||||
appVersion: "1.0.0",
|
||||
appVersionCode: "100",
|
||||
appLanguage: getAppLanguage(hostLanguage),
|
||||
@@ -6240,7 +6240,7 @@ const getAppBaseInfo = {
|
||||
hostSDKVersion: SDKVersion,
|
||||
hostTheme: theme,
|
||||
appId: "__UNI__A871B6B",
|
||||
appName: "fs",
|
||||
appName: "uni-fans-score",
|
||||
appVersion: "1.0.0",
|
||||
appVersionCode: "100",
|
||||
appLanguage: getAppLanguage(hostLanguage),
|
||||
@@ -6988,9 +6988,9 @@ function isConsoleWritable() {
|
||||
return isWritable;
|
||||
}
|
||||
function initRuntimeSocketService() {
|
||||
const hosts = "192.168.10.21,127.0.0.1";
|
||||
const hosts = "192.168.1.4,127.0.0.1";
|
||||
const port = "8090";
|
||||
const id = "mp-weixin_hkcpyE";
|
||||
const id = "mp-weixin_fn9iXa";
|
||||
const lazy = typeof swan !== "undefined";
|
||||
let restoreError = lazy ? () => {
|
||||
} : initOnError();
|
||||
|
||||
+17
@@ -70,6 +70,13 @@ const confirmPaymentAndRent = (orderId) => {
|
||||
method: "post"
|
||||
});
|
||||
};
|
||||
const getOrderByOrderNo = (orderNo) => {
|
||||
return config_http.request({
|
||||
url: `/app/order/byOrderNo/${orderNo}`,
|
||||
method: "get",
|
||||
hideLoading: true
|
||||
});
|
||||
};
|
||||
const getOrderByOrderNoScore = (orderNo) => {
|
||||
common_vendor.index.__f__("log", "at config/user.js:157", "通过订单号获取支付分订单信息", orderNo);
|
||||
return config_http.request({
|
||||
@@ -86,6 +93,14 @@ const getOrderByOrderNoScorePayStatus = (orderNo) => {
|
||||
hideLoading: true
|
||||
});
|
||||
};
|
||||
const updateOrderPackage = (data) => {
|
||||
common_vendor.index.__f__("log", "at config/user.js:176", "更新订单套餐信息:", data);
|
||||
return config_http.request({
|
||||
url: "/app/device/updateOrderPackage",
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
};
|
||||
const updateUserBalance = (orderId) => {
|
||||
return config_http.request({
|
||||
url: `/app/user/updateBalance/${orderId}`,
|
||||
@@ -97,12 +112,14 @@ exports.checkOrdersByStatus = checkOrdersByStatus;
|
||||
exports.confirmPaymentAndRent = confirmPaymentAndRent;
|
||||
exports.getDeviceInfo = getDeviceInfo;
|
||||
exports.getMyIndexInfo = getMyIndexInfo;
|
||||
exports.getOrderByOrderNo = getOrderByOrderNo;
|
||||
exports.getOrderByOrderNoScore = getOrderByOrderNoScore;
|
||||
exports.getOrderByOrderNoScorePayStatus = getOrderByOrderNoScorePayStatus;
|
||||
exports.getOrderList = getOrderList;
|
||||
exports.login = login;
|
||||
exports.queryById = queryById;
|
||||
exports.rentPowerBank = rentPowerBank;
|
||||
exports.updateOrderPackage = updateOrderPackage;
|
||||
exports.updateUserBalance = updateUserBalance;
|
||||
exports.withdrawDeposit = withdrawDeposit;
|
||||
//# sourceMappingURL=../../.sourcemap/mp-weixin/config/user.js.map
|
||||
|
||||
+53
-31
@@ -20,7 +20,7 @@ const _sfc_main = {
|
||||
common_vendor.onLoad((options) => {
|
||||
deviceId.value = options.deviceNo;
|
||||
checkOrderStatus();
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:168", options.deviceNo);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:173", options.deviceNo);
|
||||
fetchDeviceInfo();
|
||||
});
|
||||
const fetchDeviceInfo = async () => {
|
||||
@@ -79,28 +79,19 @@ const _sfc_main = {
|
||||
});
|
||||
}
|
||||
};
|
||||
const handleRent = () => {
|
||||
const handleRent = (payWay) => {
|
||||
if (!isLoggedIn.value) {
|
||||
showLoginTip();
|
||||
return;
|
||||
}
|
||||
if (!phoneNumber.value) {
|
||||
common_vendor.index.showToast({
|
||||
title: "请输入手机号码",
|
||||
icon: "none"
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!/^1[3-9]\d{9}$/.test(phoneNumber.value)) {
|
||||
common_vendor.index.showToast({
|
||||
title: "请输入正确的手机号码",
|
||||
icon: "none"
|
||||
});
|
||||
return;
|
||||
}
|
||||
submitRentOrder();
|
||||
submitRentOrder(payWay);
|
||||
};
|
||||
const submitRentOrder = async () => {
|
||||
const selectedPkg = common_vendor.reactive({
|
||||
time: "1小时",
|
||||
price: "5.00"
|
||||
});
|
||||
const depositAmount = common_vendor.ref("99.00");
|
||||
const submitRentOrder = async (payWay) => {
|
||||
try {
|
||||
common_vendor.index.showLoading({
|
||||
title: "处理中"
|
||||
@@ -110,8 +101,43 @@ const _sfc_main = {
|
||||
throw new Error(rentResult.msg || "设备租借失败");
|
||||
}
|
||||
const order = rentResult.data;
|
||||
if (payWay == "wx-pay") {
|
||||
common_vendor.index.hideLoading();
|
||||
const res = await config_user.getOrderByOrderNo(order.orderNo);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:304", res);
|
||||
try {
|
||||
let packageTimeMinutes = 0;
|
||||
if (selectedPkg.time.includes("小时")) {
|
||||
packageTimeMinutes = parseInt(selectedPkg.time) * 60;
|
||||
} else if (selectedPkg.time.includes("分钟")) {
|
||||
packageTimeMinutes = parseInt(selectedPkg.time);
|
||||
} else {
|
||||
packageTimeMinutes = parseInt(selectedPkg.time) * 60;
|
||||
}
|
||||
const updateRes = await config_user.updateOrderPackage({
|
||||
orderId: order.orderId,
|
||||
packageTime: packageTimeMinutes,
|
||||
packagePrice: parseFloat(selectedPkg.price)
|
||||
});
|
||||
if (updateRes.code !== 200) {
|
||||
common_vendor.index.__f__("warn", "at pages/device/detail.vue:321", "更新订单套餐信息失败:", updateRes.msg);
|
||||
} else {
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:324", "订单套餐信息已提前更新");
|
||||
}
|
||||
} catch (updateError) {
|
||||
common_vendor.index.__f__("error", "at pages/device/detail.vue:327", "更新订单套餐信息时出错:", updateError);
|
||||
}
|
||||
const deposit = parseFloat(deviceInfo.value.depositAmount);
|
||||
const packagePrice = parseFloat(selectedPkg.price);
|
||||
const totalAmount = (deposit + packagePrice).toFixed(2);
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.redirectTo({
|
||||
url: `/pages/order/payment?orderId=${order.orderId}&packageTimeHours=${selectedPkg.time.replace("小时", "")}&packagePrice=${selectedPkg.price}&totalAmount=${totalAmount}&depositAmount=${depositAmount.value}${deviceInfo.value && deviceInfo.value.feeConfig ? "&feeConfig=" + encodeURIComponent(deviceInfo.value.feeConfig) : ""}`
|
||||
});
|
||||
} else if ("wx-score-pay") {
|
||||
common_vendor.index.hideLoading();
|
||||
const res = await config_user.getOrderByOrderNoScore(order.orderNo);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:291", res);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:348", res);
|
||||
common_vendor.index.hideLoading();
|
||||
if (res && res.code === 200) {
|
||||
try {
|
||||
@@ -140,7 +166,7 @@ const _sfc_main = {
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:330", order);
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.showToast({
|
||||
@@ -150,7 +176,7 @@ const _sfc_main = {
|
||||
}
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
return common_vendor.e({
|
||||
return {
|
||||
a: common_vendor.t(deviceStatus.text),
|
||||
b: common_vendor.n(deviceStatus.class),
|
||||
c: common_vendor.t(deviceId.value),
|
||||
@@ -159,16 +185,12 @@ const _sfc_main = {
|
||||
f: common_assets._imports_1$2,
|
||||
g: batteryLevel.value < 20 ? 1 : "",
|
||||
h: common_vendor.t(batteryLevel.value),
|
||||
i: !hasActiveOrder.value
|
||||
}, !hasActiveOrder.value ? {
|
||||
j: phoneNumber.value,
|
||||
k: common_vendor.o(($event) => phoneNumber.value = $event.detail.value)
|
||||
} : {}, {
|
||||
l: common_assets._imports_0$2,
|
||||
m: common_vendor.t(hasActiveOrder.value ? "归还设备" : "免押金租借"),
|
||||
n: hasActiveOrder.value ? 1 : "",
|
||||
o: common_vendor.o(handleRent)
|
||||
});
|
||||
i: common_assets._imports_0$2,
|
||||
j: common_vendor.t(hasActiveOrder.value ? "归还设备" : "免押金租借"),
|
||||
k: hasActiveOrder.value ? 1 : "",
|
||||
l: common_vendor.o(($event) => handleRent("wx-score-pay")),
|
||||
m: common_vendor.o(($event) => handleRent("wx-pay"))
|
||||
};
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<view class="container data-v-d65de3a7"><view class="device-header data-v-d65de3a7"><view class="{{['device-status-card', 'data-v-d65de3a7', b]}}"><view class="status-indicator data-v-d65de3a7"></view><text class="status-text data-v-d65de3a7">{{a}}</text></view><view class="device-title data-v-d65de3a7"><text class="name data-v-d65de3a7">共享风扇</text><view class="device-meta data-v-d65de3a7"><text class="id-label data-v-d65de3a7">设备号:</text><text class="id-value data-v-d65de3a7">{{c}}</text></view></view></view><view class="card device-info-card data-v-d65de3a7"><view class="card-row data-v-d65de3a7"><view class="card-item data-v-d65de3a7"><view class="item-icon location-icon data-v-d65de3a7"><image class="data-v-d65de3a7" src="{{d}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-d65de3a7"><text class="item-label data-v-d65de3a7">当前位置</text><text class="item-value data-v-d65de3a7">{{e}}</text></view></view><view class="card-item data-v-d65de3a7"><view class="{{['item-icon', 'battery-icon', 'data-v-d65de3a7', g && 'battery-low']}}"><image class="data-v-d65de3a7" src="{{f}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-d65de3a7"><text class="item-label data-v-d65de3a7">电池电量</text><text class="item-value data-v-d65de3a7">{{h}}%</text></view></view></view></view><view class="card pricing-card data-v-d65de3a7"><view class="card-header data-v-d65de3a7"><text class="card-title data-v-d65de3a7">计费规则</text></view><view class="pricing-banner data-v-d65de3a7"><view class="pricing-main data-v-d65de3a7"><text class="price data-v-d65de3a7">¥5.00</text><text class="unit data-v-d65de3a7">/小时</text></view><text class="cap-price data-v-d65de3a7">封顶 ¥99</text></view><view class="pricing-rules data-v-d65de3a7"><view class="rule-item data-v-d65de3a7"><view class="rule-dot data-v-d65de3a7"></view><text class="rule-text data-v-d65de3a7">前15分钟内归还<text class="highlight data-v-d65de3a7">免费</text></text></view><view class="rule-item data-v-d65de3a7"><view class="rule-dot data-v-d65de3a7"></view><text class="rule-text data-v-d65de3a7">不足60分钟按60分钟计费</text></view><view class="rule-item data-v-d65de3a7"><view class="rule-dot data-v-d65de3a7"></view><text class="rule-text data-v-d65de3a7">持续计费至99元视为买断</text></view></view></view><view wx:if="{{i}}" class="card phone-card data-v-d65de3a7"><view class="card-header data-v-d65de3a7"><text class="card-title data-v-d65de3a7">联系方式</text></view><view class="phone-input-container data-v-d65de3a7"><view class="input-wrapper data-v-d65de3a7"><text class="prefix data-v-d65de3a7">+86</text><input type="number" class="phone-input data-v-d65de3a7" maxlength="11" placeholder="请输入手机号码" value="{{j}}" bindinput="{{k}}"/></view></view></view><view class="card notice-card data-v-d65de3a7"><view class="card-header data-v-d65de3a7"><text class="card-title data-v-d65de3a7">使用须知</text></view><view class="notice-items data-v-d65de3a7"><view class="notice-item data-v-d65de3a7"><view class="notice-dot data-v-d65de3a7"></view><text class="notice-text data-v-d65de3a7">请在使用前检查设备是否完好</text></view><view class="notice-item data-v-d65de3a7"><view class="notice-dot data-v-d65de3a7"></view><text class="notice-text data-v-d65de3a7">请在指定区域内使用设备</text></view><view class="notice-item data-v-d65de3a7"><view class="notice-dot data-v-d65de3a7"></view><text class="notice-text data-v-d65de3a7">归还时请确保设备完好,避免损坏</text></view></view></view><view class="footer data-v-d65de3a7"><view class="wechat-credit data-v-d65de3a7"><image src="{{l}}" mode="aspectFit" class="wx-icon data-v-d65de3a7"></image><view class="credit-text data-v-d65de3a7"><text class="data-v-d65de3a7">微信支付分</text><text class="credit-divider data-v-d65de3a7">|</text><text class="credit-score data-v-d65de3a7">支付分200分及以上优享</text></view></view><button class="{{['rent-button', 'data-v-d65de3a7', n && 'return-button']}}" bindtap="{{o}}"><text class="data-v-d65de3a7">{{m}}</text></button></view></view>
|
||||
<view class="container data-v-d65de3a7"><view class="device-header data-v-d65de3a7"><view class="{{['device-status-card', 'data-v-d65de3a7', b]}}"><view class="status-indicator data-v-d65de3a7"></view><text class="status-text data-v-d65de3a7">{{a}}</text></view><view class="device-title data-v-d65de3a7"><text class="name data-v-d65de3a7">共享风扇</text><view class="device-meta data-v-d65de3a7"><text class="id-label data-v-d65de3a7">设备号:</text><text class="id-value data-v-d65de3a7">{{c}}</text></view></view></view><view class="card device-info-card data-v-d65de3a7"><view class="card-row data-v-d65de3a7"><view class="card-item data-v-d65de3a7"><view class="item-icon location-icon data-v-d65de3a7"><image class="data-v-d65de3a7" src="{{d}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-d65de3a7"><text class="item-label data-v-d65de3a7">当前位置</text><text class="item-value data-v-d65de3a7">{{e}}</text></view></view><view class="card-item data-v-d65de3a7"><view class="{{['item-icon', 'battery-icon', 'data-v-d65de3a7', g && 'battery-low']}}"><image class="data-v-d65de3a7" src="{{f}}" mode="aspectFill" style="width:45rpx;height:45rpx"></image></view><view class="item-content data-v-d65de3a7"><text class="item-label data-v-d65de3a7">电池电量</text><text class="item-value data-v-d65de3a7">{{h}}%</text></view></view></view></view><view class="card pricing-card data-v-d65de3a7"><view class="card-header data-v-d65de3a7"><text class="card-title data-v-d65de3a7">计费规则</text></view><view class="pricing-banner data-v-d65de3a7"><view class="pricing-main data-v-d65de3a7"><text class="price data-v-d65de3a7">¥5.00</text><text class="unit data-v-d65de3a7">/小时</text></view><text class="cap-price data-v-d65de3a7">封顶 ¥99</text></view><view class="pricing-rules data-v-d65de3a7"><view class="rule-item data-v-d65de3a7"><view class="rule-dot data-v-d65de3a7"></view><text class="rule-text data-v-d65de3a7">前15分钟内归还<text class="highlight data-v-d65de3a7">免费</text></text></view><view class="rule-item data-v-d65de3a7"><view class="rule-dot data-v-d65de3a7"></view><text class="rule-text data-v-d65de3a7">不足60分钟按60分钟计费</text></view><view class="rule-item data-v-d65de3a7"><view class="rule-dot data-v-d65de3a7"></view><text class="rule-text data-v-d65de3a7">持续计费至99元视为买断</text></view></view></view><view class="card notice-card data-v-d65de3a7"><view class="card-header data-v-d65de3a7"><text class="card-title data-v-d65de3a7">使用须知</text></view><view class="notice-items data-v-d65de3a7"><view class="notice-item data-v-d65de3a7"><view class="notice-dot data-v-d65de3a7"></view><text class="notice-text data-v-d65de3a7">请在使用前检查设备是否完好</text></view><view class="notice-item data-v-d65de3a7"><view class="notice-dot data-v-d65de3a7"></view><text class="notice-text data-v-d65de3a7">请在指定区域内使用设备</text></view><view class="notice-item data-v-d65de3a7"><view class="notice-dot data-v-d65de3a7"></view><text class="notice-text data-v-d65de3a7">归还时请确保设备完好,避免损坏</text></view></view></view><view class="footer data-v-d65de3a7"><view class="wechat-credit data-v-d65de3a7"><image src="{{i}}" mode="aspectFit" class="wx-icon data-v-d65de3a7"></image><view class="credit-text data-v-d65de3a7"><text class="data-v-d65de3a7">微信支付分</text><text class="credit-divider data-v-d65de3a7">|</text><text class="credit-score data-v-d65de3a7">支付分200分及以上优享</text></view></view><button class="{{['rent-button', 'data-v-d65de3a7', k && 'return-button']}}" bindtap="{{l}}"><text class="data-v-d65de3a7">{{j}}</text></button><view class=" data-v-d65de3a7" style="align-items:center;align-content:center;text-align:center;line-height:50rpx" bindtap="{{m}}"> 无法免押点这里></view></view></view>
|
||||
+21
-12
@@ -36,7 +36,7 @@ const _sfc_main = {
|
||||
text: "已完成",
|
||||
class: "status-finished"
|
||||
},
|
||||
"canceled": {
|
||||
"order_cancelled": {
|
||||
text: "已取消",
|
||||
class: "status-cancelled"
|
||||
}
|
||||
@@ -46,17 +46,21 @@ const _sfc_main = {
|
||||
text: "全部",
|
||||
status: []
|
||||
},
|
||||
{
|
||||
text: "待付款",
|
||||
status: ["waiting_for_payment"]
|
||||
},
|
||||
{
|
||||
text: "使用中",
|
||||
status: ["1", "in_used"]
|
||||
status: ["in_used"]
|
||||
},
|
||||
{
|
||||
text: "已完成",
|
||||
status: ["2", "used_done"]
|
||||
status: ["used_done"]
|
||||
},
|
||||
{
|
||||
text: "已取消",
|
||||
status: ["3", "canceled"]
|
||||
status: ["order_cancelled"]
|
||||
}
|
||||
]);
|
||||
common_vendor.onLoad(async (options) => {
|
||||
@@ -84,18 +88,23 @@ const _sfc_main = {
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/order/index.vue:199", "获取订单详情失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/order/index.vue:204", "获取订单详情失败:", error);
|
||||
}
|
||||
}
|
||||
await loadOrderList();
|
||||
});
|
||||
const switchTab = async (index) => {
|
||||
currentTab.value = index;
|
||||
const statusList = orderStatusTabs[index].status;
|
||||
const statusList = orderStatusTabs[index].status[0];
|
||||
await loadOrderList(statusList);
|
||||
};
|
||||
const loadOrderList = async (statusList = []) => {
|
||||
const loadOrderList = async (statusList) => {
|
||||
try {
|
||||
if (statusList != void 0) {
|
||||
statusList = {
|
||||
orderStatus: statusList
|
||||
};
|
||||
}
|
||||
const res = await config_user.getOrderList(statusList);
|
||||
if (res.code === 200 && res.data && res.data.records) {
|
||||
orderList.value = res.data.records.map((item) => {
|
||||
@@ -103,7 +112,7 @@ const _sfc_main = {
|
||||
return {
|
||||
orderNo: item.orderNo,
|
||||
orderId: item.orderId,
|
||||
status: item.orderStatus,
|
||||
orderStatus: item.orderStatus,
|
||||
deviceId: item.deviceNo,
|
||||
payWay: item.payWay,
|
||||
startTime: orderStartTime,
|
||||
@@ -113,7 +122,7 @@ const _sfc_main = {
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/order/index.vue:238", "获取订单列表失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/order/index.vue:248", "获取订单列表失败:", error);
|
||||
common_vendor.index.showToast({
|
||||
title: "获取订单列表失败",
|
||||
icon: "none"
|
||||
@@ -138,7 +147,7 @@ const _sfc_main = {
|
||||
}
|
||||
};
|
||||
const navigateToReturn = (deviceId, orderId) => {
|
||||
common_vendor.index.__f__("log", "at pages/order/index.vue:267", orderId);
|
||||
common_vendor.index.__f__("log", "at pages/order/index.vue:277", orderId);
|
||||
common_vendor.index.navigateTo({
|
||||
url: `/pages/return/index?deviceId=${deviceId}&orderId=${orderId}`
|
||||
});
|
||||
@@ -159,8 +168,8 @@ const _sfc_main = {
|
||||
var _a, _b;
|
||||
return common_vendor.e({
|
||||
a: common_vendor.t(order.orderNo),
|
||||
b: common_vendor.t((_a = orderStatusMap[order.status]) == null ? void 0 : _a.text),
|
||||
c: common_vendor.n((_b = orderStatusMap[order.status]) == null ? void 0 : _b.class),
|
||||
b: common_vendor.t((_a = orderStatusMap[order.orderStatus]) == null ? void 0 : _a.text),
|
||||
c: common_vendor.n((_b = orderStatusMap[order.orderStatus]) == null ? void 0 : _b.class),
|
||||
d: common_vendor.t(order.deviceId),
|
||||
e: order.payWay == "wx_score_pay"
|
||||
}, order.payWay == "wx_score_pay" ? {
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
"compileType": "miniprogram",
|
||||
"libVersion": "",
|
||||
"appid": "wx2165f0be356ae7a9",
|
||||
"projectname": "fs",
|
||||
"projectname": "uni-fans-score",
|
||||
"condition": {
|
||||
"search": {
|
||||
"current": -1,
|
||||
|
||||
Reference in New Issue
Block a user