fix:修复订单列表页搜索参数传递错误的问题;移除租借设备时手机号的验证效果;新增免押无法使用走非免押逻辑的方法

This commit is contained in:
2025-07-01 10:48:35 +08:00
parent 7be1e97b7c
commit f8c119d489
33 changed files with 281 additions and 167 deletions
+75 -53
View File
@@ -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,37 +101,72 @@ const _sfc_main = {
throw new Error(rentResult.msg || "设备租借失败");
}
const order = rentResult.data;
const res = await config_user.getOrderByOrderNoScore(order.orderNo);
common_vendor.index.__f__("log", "at pages/device/detail.vue:291", res);
common_vendor.index.hideLoading();
if (res && res.code === 200) {
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 {
const payResult = await util_index.initiateWeChatScorePayment(res);
if (payResult.errCode == "0") {
const res2 = await config_user.getOrderByOrderNoScorePayStatus(order.orderNo);
common_vendor.index.showToast({
title: "设备租借成功",
icon: "success"
});
setTimeout(() => {
common_vendor.index.redirectTo({
url: "/pages/order/index"
});
}, 1500);
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;
}
} catch (payError) {
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:348", res);
common_vendor.index.hideLoading();
if (res && res.code === 200) {
try {
const payResult = await util_index.initiateWeChatScorePayment(res);
if (payResult.errCode == "0") {
const res2 = await config_user.getOrderByOrderNoScorePayStatus(order.orderNo);
common_vendor.index.showToast({
title: "设备租借成功",
icon: "success"
});
setTimeout(() => {
common_vendor.index.redirectTo({
url: "/pages/order/index"
});
}, 1500);
}
} catch (payError) {
common_vendor.index.showToast({
title: "支付分调用失败,请重试",
icon: "none"
});
}
} else {
common_vendor.index.showToast({
title: "支付分调用失败,请重试",
title: (res == null ? void 0 : res.msg) || "获取支付参数失败",
icon: "none"
});
}
} else {
common_vendor.index.showToast({
title: (res == null ? void 0 : res.msg) || "获取支付参数失败",
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
View File
@@ -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
View File
@@ -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" ? {