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
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
+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" ? {
+1 -1
View File
@@ -14,7 +14,7 @@
"compileType": "miniprogram",
"libVersion": "",
"appid": "wx2165f0be356ae7a9",
"projectname": "fs",
"projectname": "uni-fans-score",
"condition": {
"search": {
"current": -1,