project:强制覆盖代码,更新.gitignore文件内容
This commit is contained in:
+20
-22
@@ -19,36 +19,34 @@ const _sfc_main = {
|
||||
const isLoggedIn = common_vendor.ref(true);
|
||||
const phoneNumber = common_vendor.ref("");
|
||||
const showPhoneAuthPopup = common_vendor.ref(false);
|
||||
common_vendor.onLoad((options) => {
|
||||
common_vendor.onLoad(async (options) => {
|
||||
if (options.deviceNo != common_vendor.index.getStorageSync("deviceId") || !common_vendor.index.getStorageSync("deviceId")) {
|
||||
deviceId.value = options.deviceNo;
|
||||
common_vendor.index.setStorageSync("deviceId", options.deviceNo);
|
||||
} else {
|
||||
deviceId.value = common_vendor.index.getStorageSync("deviceId");
|
||||
}
|
||||
checkOrderStatus();
|
||||
await checkOrderStatus();
|
||||
await fetchDeviceInfo();
|
||||
});
|
||||
common_vendor.onMounted(async () => {
|
||||
await checkUserPhone();
|
||||
});
|
||||
common_vendor.onShow(async () => {
|
||||
await fetchDeviceInfo();
|
||||
});
|
||||
const checkUserPhone = async () => {
|
||||
try {
|
||||
const userInfoRes = await util_index.getUserInfo();
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:220", userInfoRes.data.phone, "getUserInfoPhone");
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:221", userInfoRes.data.phone, "getUserInfoPhone");
|
||||
if (userInfoRes.code == 200 && userInfoRes.data && userInfoRes.data.phone) {
|
||||
phoneNumber.value = userInfoRes.data.phone;
|
||||
} else {
|
||||
showPhoneAuthPopup.value = true;
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/device/detail.vue:229", "获取用户信息失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/device/detail.vue:230", "获取用户信息失败:", error);
|
||||
}
|
||||
};
|
||||
const onGetPhoneNumber = (e) => {
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:235", "getPhoneNumber event:", e.detail);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:236", "getPhoneNumber event:", e.detail);
|
||||
if (e.detail.errMsg && e.detail.errMsg.includes("deny")) {
|
||||
common_vendor.index.showToast({
|
||||
title: "需要授权手机号才能使用设备",
|
||||
@@ -60,13 +58,13 @@ const _sfc_main = {
|
||||
common_vendor.index.showLoading({
|
||||
title: "获取中..."
|
||||
});
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:252", "获取到的授权code:", e.detail.code);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:253", "获取到的授权code:", e.detail.code);
|
||||
try {
|
||||
util_index.getUserPhoneNumber(e.detail.code).then((res) => {
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:258", "获取手机号API响应原始数据:", JSON.stringify(res));
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:259", "获取手机号API响应原始数据:", JSON.stringify(res));
|
||||
common_vendor.index.hideLoading();
|
||||
if (!res) {
|
||||
common_vendor.index.__f__("error", "at pages/device/detail.vue:263", "API返回数据为空");
|
||||
common_vendor.index.__f__("error", "at pages/device/detail.vue:264", "API返回数据为空");
|
||||
common_vendor.index.showModal({
|
||||
title: "数据异常",
|
||||
content: "API返回为空",
|
||||
@@ -74,8 +72,8 @@ const _sfc_main = {
|
||||
});
|
||||
return;
|
||||
}
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:273", "响应code:", res.code, "响应类型:", typeof res.code);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:274", "是否有data:", !!res.data, "是否有phone:", res.data && !!res.data.phone);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:274", "响应code:", res.code, "响应类型:", typeof res.code);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:275", "是否有data:", !!res.data, "是否有phone:", res.data && !!res.data.phone);
|
||||
if (res.code == 200 && res.data && res.data.phoneNumber) {
|
||||
phoneNumber.value = res.data.phoneNumber;
|
||||
showPhoneAuthPopup.value = false;
|
||||
@@ -84,7 +82,7 @@ const _sfc_main = {
|
||||
icon: "success"
|
||||
});
|
||||
} else {
|
||||
common_vendor.index.__f__("warn", "at pages/device/detail.vue:286", "获取手机号响应异常:", res.msg || "未知错误");
|
||||
common_vendor.index.__f__("warn", "at pages/device/detail.vue:287", "获取手机号响应异常:", res.msg || "未知错误");
|
||||
common_vendor.index.showModal({
|
||||
title: "获取手机号异常",
|
||||
content: `状态码: ${res.code}, 消息: ${res.msg || "无"}`,
|
||||
@@ -93,7 +91,7 @@ const _sfc_main = {
|
||||
}
|
||||
}).catch((err) => {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.__f__("error", "at pages/device/detail.vue:296", "获取手机号码失败(catch):", err);
|
||||
common_vendor.index.__f__("error", "at pages/device/detail.vue:297", "获取手机号码失败(catch):", err);
|
||||
let errMsg = err.message || err.toString();
|
||||
common_vendor.index.showModal({
|
||||
title: "获取手机号失败",
|
||||
@@ -103,7 +101,7 @@ const _sfc_main = {
|
||||
});
|
||||
} catch (outerError) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.__f__("error", "at pages/device/detail.vue:308", "获取手机号外部错误:", outerError);
|
||||
common_vendor.index.__f__("error", "at pages/device/detail.vue:309", "获取手机号外部错误:", outerError);
|
||||
common_vendor.index.showModal({
|
||||
title: "意外错误",
|
||||
content: "处理过程发生异常: " + (outerError.message || outerError),
|
||||
@@ -135,7 +133,7 @@ const _sfc_main = {
|
||||
deviceStatus.class = "offline";
|
||||
}
|
||||
}
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:346", "feeconfig", deviceInfo.value.feeConfig);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:347", "feeconfig", deviceInfo.value.feeConfig);
|
||||
deviceFeeConfig.value = JSON.parse(deviceInfo.value.feeConfig)[0] || {};
|
||||
}
|
||||
};
|
||||
@@ -216,17 +214,17 @@ const _sfc_main = {
|
||||
packagePrice: parseFloat(selectedPkg.price)
|
||||
});
|
||||
if (updateRes.code !== 200) {
|
||||
common_vendor.index.__f__("warn", "at pages/device/detail.vue:454", "更新订单套餐信息失败:", updateRes.msg);
|
||||
common_vendor.index.__f__("warn", "at pages/device/detail.vue:455", "更新订单套餐信息失败:", updateRes.msg);
|
||||
} else {
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:457", "订单套餐信息已提前更新");
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:458", "订单套餐信息已提前更新");
|
||||
}
|
||||
} catch (updateError) {
|
||||
common_vendor.index.__f__("error", "at pages/device/detail.vue:460", "更新订单套餐信息时出错:", updateError);
|
||||
common_vendor.index.__f__("error", "at pages/device/detail.vue:461", "更新订单套餐信息时出错:", updateError);
|
||||
}
|
||||
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:469", res);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:470", res);
|
||||
const deposit = parseFloat(deviceInfo.value.depositAmount);
|
||||
const packagePrice = parseFloat(selectedPkg.price);
|
||||
const totalAmount = (deposit + packagePrice).toFixed(2);
|
||||
@@ -243,7 +241,7 @@ const _sfc_main = {
|
||||
const payResult = await util_index.initiateWeChatScorePayment(res);
|
||||
if (payResult.errCode == "0") {
|
||||
const res2 = await config_user.getOrderByOrderNoScorePayStatus(order.orderNo);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:497", res2.data.orderStatus);
|
||||
common_vendor.index.__f__("log", "at pages/device/detail.vue:498", res2.data.orderStatus);
|
||||
if (res2.data.orderStatus == "in_used") {
|
||||
common_vendor.index.showToast({
|
||||
title: "设备租借成功",
|
||||
|
||||
+73
-85
@@ -1,118 +1,106 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const config_user = require("../../config/user.js");
|
||||
const _sfc_main = {
|
||||
data() {
|
||||
return {
|
||||
types: ["设备故障", "收费问题", "使用建议", "其他"],
|
||||
selectedType: -1,
|
||||
description: "",
|
||||
images: [],
|
||||
contact: ""
|
||||
__name: "index",
|
||||
setup(__props) {
|
||||
const types = common_vendor.ref(["设备故障", "收费问题", "使用建议", "其他"]);
|
||||
const selectedType = common_vendor.ref(-1);
|
||||
const paramsType = common_vendor.ref("");
|
||||
const description = common_vendor.ref("");
|
||||
const images = common_vendor.ref([]);
|
||||
const contact = common_vendor.ref("");
|
||||
const selectType = (index) => {
|
||||
selectedType.value = index;
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
selectType(index) {
|
||||
this.selectedType = index;
|
||||
},
|
||||
chooseImage() {
|
||||
const chooseImage = () => {
|
||||
common_vendor.index.chooseImage({
|
||||
count: 3 - this.images.length,
|
||||
count: 3 - images.value.length,
|
||||
success: (res) => {
|
||||
this.images = [...this.images, ...res.tempFilePaths];
|
||||
images.value = [...images.value, ...res.tempFilePaths];
|
||||
}
|
||||
});
|
||||
},
|
||||
deleteImage(index) {
|
||||
this.images.splice(index, 1);
|
||||
},
|
||||
submitFeedback() {
|
||||
if (this.selectedType === -1) {
|
||||
};
|
||||
const deleteImage = (index) => {
|
||||
images.value.splice(index, 1);
|
||||
};
|
||||
const submitFeedback = async () => {
|
||||
if (selectedType.value === -1) {
|
||||
common_vendor.index.showToast({
|
||||
title: "请选择问题类型",
|
||||
icon: "none"
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!this.description.trim()) {
|
||||
if (!description.value.trim()) {
|
||||
common_vendor.index.showToast({
|
||||
title: "请描述您的问题",
|
||||
icon: "none"
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (!this.contact) {
|
||||
if (!contact.value) {
|
||||
common_vendor.index.showToast({
|
||||
title: "请留下联系方式",
|
||||
icon: "none"
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (types.value[selectedType.value] == "设备故障" || types.value[selectedType.value] == "收费问题") {
|
||||
paramsType.value = "complain";
|
||||
} else {
|
||||
paramsType.value = "suggestion";
|
||||
}
|
||||
const feedbackData = {
|
||||
type: this.types[this.selectedType],
|
||||
content: this.description,
|
||||
phone: this.contact,
|
||||
images: this.images
|
||||
type: paramsType.value,
|
||||
content: description.value,
|
||||
phone: contact.value,
|
||||
images: images.value
|
||||
};
|
||||
common_vendor.index.request({
|
||||
url: "/app/feedback/add",
|
||||
method: "POST",
|
||||
data: feedbackData,
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200) {
|
||||
common_vendor.index.showToast({
|
||||
title: "提交成功",
|
||||
icon: "success"
|
||||
});
|
||||
this.selectedType = -1;
|
||||
this.description = "";
|
||||
this.contact = "";
|
||||
this.images = [];
|
||||
} else {
|
||||
common_vendor.index.showToast({
|
||||
title: "提交失败",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
common_vendor.index.showToast({
|
||||
title: "提交失败",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
const res = await config_user.addUserFeedback(feedbackData);
|
||||
if (res.code == 200) {
|
||||
common_vendor.index.showToast({
|
||||
title: "反馈成功",
|
||||
icon: "success"
|
||||
});
|
||||
} else {
|
||||
common_vendor.index.showToast({
|
||||
title: "反馈失败",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
return common_vendor.e({
|
||||
a: common_vendor.f(types.value, (type, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(type),
|
||||
b: index,
|
||||
c: selectedType.value === index ? 1 : "",
|
||||
d: common_vendor.o(($event) => selectType(index), index)
|
||||
};
|
||||
}),
|
||||
b: description.value,
|
||||
c: common_vendor.o(($event) => description.value = $event.detail.value),
|
||||
d: common_vendor.t(description.value.length),
|
||||
e: common_vendor.f(images.value, (img, index, i0) => {
|
||||
return {
|
||||
a: img,
|
||||
b: common_vendor.o(($event) => deleteImage(index), index),
|
||||
c: index
|
||||
};
|
||||
}),
|
||||
f: images.value.length < 3
|
||||
}, images.value.length < 3 ? {
|
||||
g: common_vendor.o(chooseImage)
|
||||
} : {}, {
|
||||
h: contact.value,
|
||||
i: common_vendor.o(($event) => contact.value = $event.detail.value),
|
||||
j: common_vendor.o(submitFeedback)
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return common_vendor.e({
|
||||
a: common_vendor.f($data.types, (type, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(type),
|
||||
b: index,
|
||||
c: $data.selectedType === index ? 1 : "",
|
||||
d: common_vendor.o(($event) => $options.selectType(index), index)
|
||||
};
|
||||
}),
|
||||
b: $data.description,
|
||||
c: common_vendor.o(($event) => $data.description = $event.detail.value),
|
||||
d: common_vendor.t($data.description.length),
|
||||
e: common_vendor.f($data.images, (img, index, i0) => {
|
||||
return {
|
||||
a: img,
|
||||
b: common_vendor.o(($event) => $options.deleteImage(index), index),
|
||||
c: index
|
||||
};
|
||||
}),
|
||||
f: $data.images.length < 3
|
||||
}, $data.images.length < 3 ? {
|
||||
g: common_vendor.o((...args) => $options.chooseImage && $options.chooseImage(...args))
|
||||
} : {}, {
|
||||
h: $data.contact,
|
||||
i: common_vendor.o(($event) => $data.contact = $event.detail.value),
|
||||
j: common_vendor.o((...args) => $options.submitFeedback && $options.submitFeedback(...args))
|
||||
});
|
||||
}
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-2aa7bac2"]]);
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-2aa7bac2"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/feedback/index.js.map
|
||||
|
||||
+2
-2
@@ -25,7 +25,7 @@ const _sfc_main = {
|
||||
return;
|
||||
}
|
||||
const res = await util_index.getUserInfo();
|
||||
common_vendor.index.__f__("log", "at pages/my/index.vue:146", "User info response:", res);
|
||||
common_vendor.index.__f__("log", "at pages/my/index.vue:157", "User info response:", res);
|
||||
if (res.code == 200) {
|
||||
if (res.data.openId) {
|
||||
openId.value = res.data.openId;
|
||||
@@ -41,7 +41,7 @@ const _sfc_main = {
|
||||
deposit.value = res.data.balanceAmount || "0.00";
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/my/index.vue:167", "获取用户信息失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/my/index.vue:178", "获取用户信息失败:", error);
|
||||
common_vendor.index.showToast({
|
||||
title: "获取用户信息失败",
|
||||
icon: "none"
|
||||
|
||||
-120
@@ -1,120 +0,0 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const common_assets = require("../../common/assets.js");
|
||||
const config_user = require("../../config/user.js");
|
||||
const _sfc_main = {
|
||||
__name: "details",
|
||||
setup(__props) {
|
||||
const orderId = common_vendor.ref("");
|
||||
const orderInfo = common_vendor.ref({});
|
||||
const orderStatusText = common_vendor.computed(() => {
|
||||
const status = orderInfo.value.orderStatus;
|
||||
switch (status) {
|
||||
case "waiting_for_payment":
|
||||
return "待支付";
|
||||
case "in_used":
|
||||
return "使用中";
|
||||
case "used_done":
|
||||
return "已完成";
|
||||
case "order_cancelled":
|
||||
return "已取消";
|
||||
default:
|
||||
return "使用中";
|
||||
}
|
||||
});
|
||||
common_vendor.onLoad(async (options) => {
|
||||
if (options && options.orderId) {
|
||||
orderId.value = options.orderId;
|
||||
await loadOrderDetails();
|
||||
} else {
|
||||
common_vendor.index.showToast({
|
||||
title: "订单信息不存在",
|
||||
icon: "none"
|
||||
});
|
||||
setTimeout(() => {
|
||||
common_vendor.index.navigateBack();
|
||||
}, 1500);
|
||||
}
|
||||
});
|
||||
const loadOrderDetails = async () => {
|
||||
try {
|
||||
common_vendor.index.showLoading({ title: "加载中" });
|
||||
const res = await config_user.queryById(orderId.value);
|
||||
if (res.code === 200 && res.data) {
|
||||
orderInfo.value = res.data;
|
||||
if (orderInfo.value.createTime) {
|
||||
orderInfo.value.createTime = formatDateTime(new Date(orderInfo.value.createTime));
|
||||
}
|
||||
if (orderInfo.value.startTime) {
|
||||
orderInfo.value.startTime = formatDateTime(new Date(orderInfo.value.startTime));
|
||||
}
|
||||
if (orderInfo.value.endTime) {
|
||||
orderInfo.value.endTime = formatDateTime(new Date(orderInfo.value.endTime));
|
||||
}
|
||||
} else {
|
||||
throw new Error("获取订单详情失败");
|
||||
}
|
||||
common_vendor.index.hideLoading();
|
||||
} catch (error) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.showToast({
|
||||
title: error.message || "获取订单详情失败",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
};
|
||||
const formatDateTime = (date) => {
|
||||
const year = date.getFullYear();
|
||||
const month = (date.getMonth() + 1).toString().padStart(2, "0");
|
||||
const day = date.getDate().toString().padStart(2, "0");
|
||||
const hour = date.getHours().toString().padStart(2, "0");
|
||||
const minute = date.getMinutes().toString().padStart(2, "0");
|
||||
return `${year}-${month}-${day} ${hour}:${minute}`;
|
||||
};
|
||||
const formatTime = (minutes) => {
|
||||
if (!minutes)
|
||||
return "";
|
||||
const mins = parseInt(minutes);
|
||||
if (mins < 60) {
|
||||
return `${mins}分钟`;
|
||||
} else {
|
||||
const hours = Math.floor(mins / 60);
|
||||
const remainingMins = mins % 60;
|
||||
return remainingMins > 0 ? `${hours}小时${remainingMins}分钟` : `${hours}小时`;
|
||||
}
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
return common_vendor.e({
|
||||
a: common_vendor.t(orderStatusText.value),
|
||||
b: common_vendor.t(orderInfo.value.orderNo || "-"),
|
||||
c: common_vendor.t(orderInfo.value.deviceNo || "-"),
|
||||
d: orderInfo.value.payWay === "wx_score_pay"
|
||||
}, orderInfo.value.payWay === "wx_score_pay" ? {
|
||||
e: common_assets._imports_0$3
|
||||
} : {}, {
|
||||
f: common_vendor.t(orderInfo.value.startTime || "-"),
|
||||
g: orderInfo.value.endTime
|
||||
}, orderInfo.value.endTime ? {
|
||||
h: common_vendor.t(orderInfo.value.endTime)
|
||||
} : {}, {
|
||||
i: orderInfo.value.phone
|
||||
}, orderInfo.value.phone ? {
|
||||
j: common_vendor.t(orderInfo.value.phone)
|
||||
} : {}, {
|
||||
k: orderInfo.value.depositAmount
|
||||
}, orderInfo.value.depositAmount ? {
|
||||
l: common_vendor.t(orderInfo.value.depositAmount)
|
||||
} : {}, {
|
||||
m: orderInfo.value.packageTime && orderInfo.value.packagePrice
|
||||
}, orderInfo.value.packageTime && orderInfo.value.packagePrice ? {
|
||||
n: common_vendor.t(orderInfo.value.packagePrice),
|
||||
o: common_vendor.t(formatTime(orderInfo.value.packageTime))
|
||||
} : {}, {
|
||||
p: common_vendor.t(orderInfo.value.payAmount || 0)
|
||||
});
|
||||
};
|
||||
}
|
||||
};
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-2b5cbeae"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/order/details.js.map
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"navigationBarTitleText": "订单详情",
|
||||
"navigationBarBackgroundColor": "#ffffff",
|
||||
"navigationBarTextStyle": "black",
|
||||
"usingComponents": {}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
<view class="return-container data-v-2b5cbeae"><view class="order-card data-v-2b5cbeae"><view class="order-header data-v-2b5cbeae"><text class="title data-v-2b5cbeae">{{a}}</text><text class="order-no data-v-2b5cbeae">订单号:{{b}}</text></view><view class="device-info data-v-2b5cbeae"><view class="device-left data-v-2b5cbeae"><view class="device-name data-v-2b5cbeae">共享风扇</view><view class="device-id data-v-2b5cbeae">设备号:{{c}}</view></view><view class="device-right data-v-2b5cbeae"><view wx:if="{{d}}" class="payment-badge wx-score data-v-2b5cbeae"><image src="{{e}}" mode="aspectFit" class="badge-icon data-v-2b5cbeae"></image><view class="badge-text data-v-2b5cbeae"><text class="data-v-2b5cbeae">微信支付分</text><text class="divider data-v-2b5cbeae">|</text><text class="highlight data-v-2b5cbeae">免押租借</text></view></view><view wx:else class="payment-badge deposit data-v-2b5cbeae"><text class="badge-text data-v-2b5cbeae">押金租借</text></view></view></view><view class="time-info data-v-2b5cbeae"><view class="time-item data-v-2b5cbeae"><text class="label data-v-2b5cbeae">开始时间</text><text class="value data-v-2b5cbeae">{{f}}</text></view><view wx:if="{{g}}" class="time-item data-v-2b5cbeae"><text class="label data-v-2b5cbeae">结束时间</text><text class="value data-v-2b5cbeae">{{h}}</text></view><view wx:if="{{i}}" class="time-item data-v-2b5cbeae"><text class="label data-v-2b5cbeae">联系电话</text><text class="value data-v-2b5cbeae">{{j}}</text></view></view></view><view class="notice-card data-v-2b5cbeae"><view class="notice-title data-v-2b5cbeae">费用信息</view><view class="notice-list data-v-2b5cbeae"><view wx:if="{{k}}" class="notice-item data-v-2b5cbeae"><view class="dot data-v-2b5cbeae"></view><text class="data-v-2b5cbeae">押金:¥{{l}}</text></view><view wx:if="{{m}}" class="notice-item data-v-2b5cbeae"><view class="dot data-v-2b5cbeae"></view><text class="data-v-2b5cbeae">套餐:¥{{n}}元 / {{o}}</text></view><view class="notice-item data-v-2b5cbeae"><view class="dot data-v-2b5cbeae"></view><text class="data-v-2b5cbeae">合计:¥{{p}}</text></view></view></view></view>
|
||||
@@ -1,211 +0,0 @@
|
||||
/**
|
||||
* 这里是uni-app内置的常用样式变量
|
||||
*
|
||||
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
|
||||
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
|
||||
*
|
||||
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
|
||||
*/
|
||||
/* 颜色变量 */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.return-container.data-v-2b5cbeae {
|
||||
min-height: 100vh;
|
||||
background: #f7f8fa;
|
||||
padding: 30rpx;
|
||||
padding-bottom: 180rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.return-container .order-card.data-v-2b5cbeae {
|
||||
background: #fff;
|
||||
border-radius: 20rpx;
|
||||
padding: 30rpx;
|
||||
margin-bottom: 30rpx;
|
||||
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
.return-container .order-card .order-header.data-v-2b5cbeae {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 20rpx;
|
||||
padding-bottom: 16rpx;
|
||||
border-bottom: 1rpx solid #f0f0f0;
|
||||
}
|
||||
.return-container .order-card .order-header .title.data-v-2b5cbeae {
|
||||
font-size: 30rpx;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
}
|
||||
.return-container .order-card .order-header .order-no.data-v-2b5cbeae {
|
||||
font-size: 24rpx;
|
||||
color: #999;
|
||||
}
|
||||
.return-container .order-card .device-info.data-v-2b5cbeae {
|
||||
margin-bottom: 24rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.return-container .order-card .device-info .device-left.data-v-2b5cbeae {
|
||||
flex: 1;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
.return-container .order-card .device-info .device-left .device-name.data-v-2b5cbeae {
|
||||
font-size: 32rpx;
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
.return-container .order-card .device-info .device-left .device-id.data-v-2b5cbeae {
|
||||
font-size: 26rpx;
|
||||
color: #999;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.return-container .order-card .device-info .device-right .payment-badge.data-v-2b5cbeae {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
padding: 6rpx 12rpx;
|
||||
border-radius: 8rpx;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.return-container .order-card .device-info .device-right .payment-badge.wx-score.data-v-2b5cbeae {
|
||||
background: rgba(7, 193, 96, 0.08);
|
||||
}
|
||||
.return-container .order-card .device-info .device-right .payment-badge.wx-score .badge-icon.data-v-2b5cbeae {
|
||||
width: 32rpx;
|
||||
height: 26rpx;
|
||||
margin-right: 8rpx;
|
||||
}
|
||||
.return-container .order-card .device-info .device-right .payment-badge.wx-score .badge-text.data-v-2b5cbeae {
|
||||
font-size: 22rpx;
|
||||
color: #07c160;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.return-container .order-card .device-info .device-right .payment-badge.wx-score .badge-text .divider.data-v-2b5cbeae {
|
||||
margin: 0 6rpx;
|
||||
}
|
||||
.return-container .order-card .device-info .device-right .payment-badge.wx-score .badge-text .highlight.data-v-2b5cbeae {
|
||||
font-weight: 500;
|
||||
}
|
||||
.return-container .order-card .device-info .device-right .payment-badge.deposit.data-v-2b5cbeae {
|
||||
background: #f5f5f5;
|
||||
}
|
||||
.return-container .order-card .device-info .device-right .payment-badge.deposit .badge-text.data-v-2b5cbeae {
|
||||
font-size: 22rpx;
|
||||
color: #666;
|
||||
font-weight: 500;
|
||||
}
|
||||
.return-container .order-card .time-info.data-v-2b5cbeae {
|
||||
background: #f9f9f9;
|
||||
border-radius: 16rpx;
|
||||
padding: 20rpx;
|
||||
}
|
||||
.return-container .order-card .time-info .time-item.data-v-2b5cbeae {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
.return-container .order-card .time-info .time-item.data-v-2b5cbeae:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.return-container .order-card .time-info .time-item .label.data-v-2b5cbeae {
|
||||
font-size: 26rpx;
|
||||
color: #666;
|
||||
}
|
||||
.return-container .order-card .time-info .time-item .value.data-v-2b5cbeae {
|
||||
font-size: 26rpx;
|
||||
color: #333;
|
||||
}
|
||||
.return-container .order-card .time-info .time-item .value.highlight.data-v-2b5cbeae {
|
||||
color: #ff6b6b;
|
||||
font-weight: bold;
|
||||
}
|
||||
.return-container .notice-card.data-v-2b5cbeae {
|
||||
background: #fff;
|
||||
border-radius: 20rpx;
|
||||
padding: 30rpx;
|
||||
margin-bottom: 30rpx;
|
||||
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
.return-container .notice-card .notice-title.data-v-2b5cbeae {
|
||||
font-size: 30rpx;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
.return-container .notice-card .notice-list .notice-item.data-v-2b5cbeae {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
.return-container .notice-card .notice-list .notice-item.data-v-2b5cbeae:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.return-container .notice-card .notice-list .notice-item .dot.data-v-2b5cbeae {
|
||||
width: 12rpx;
|
||||
height: 12rpx;
|
||||
background: #07c160;
|
||||
border-radius: 50%;
|
||||
margin-top: 10rpx;
|
||||
margin-right: 16rpx;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.return-container .notice-card .notice-list .notice-item text.data-v-2b5cbeae {
|
||||
font-size: 26rpx;
|
||||
color: #666;
|
||||
line-height: 1.5;
|
||||
}
|
||||
.return-container .bottom-bar.data-v-2b5cbeae {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
padding: 20rpx 30rpx;
|
||||
padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
|
||||
background: #fff;
|
||||
box-shadow: 0 -4rpx 16rpx rgba(0, 0, 0, 0.04);
|
||||
z-index: 10;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
gap: 20rpx;
|
||||
}
|
||||
.return-container .bottom-bar .action-item.data-v-2b5cbeae {
|
||||
height: 88rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 30rpx;
|
||||
border-radius: 44rpx;
|
||||
flex: 1;
|
||||
}
|
||||
.return-container .bottom-bar .action-item.primary.data-v-2b5cbeae {
|
||||
background: #07c160;
|
||||
color: #fff;
|
||||
}
|
||||
.return-container .bottom-bar .action-item.primary.data-v-2b5cbeae:active {
|
||||
opacity: 0.8;
|
||||
}
|
||||
.return-container .bottom-bar .action-item.secondary.data-v-2b5cbeae {
|
||||
background: #f5f5f5;
|
||||
color: #333;
|
||||
border: 1rpx solid #e0e0e0;
|
||||
}
|
||||
.return-container .bottom-bar .action-item.secondary.data-v-2b5cbeae:active {
|
||||
opacity: 0.8;
|
||||
}
|
||||
+21
-19
@@ -89,7 +89,7 @@ const _sfc_main = {
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/order/index.vue:226", "获取订单详情失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/order/index.vue:230", "获取订单详情失败:", error);
|
||||
}
|
||||
}
|
||||
await loadOrderList();
|
||||
@@ -123,7 +123,7 @@ const _sfc_main = {
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/order/index.vue:270", "获取订单列表失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/order/index.vue:274", "获取订单列表失败:", error);
|
||||
common_vendor.index.showToast({
|
||||
title: "获取订单列表失败",
|
||||
icon: "none"
|
||||
@@ -131,14 +131,14 @@ const _sfc_main = {
|
||||
}
|
||||
};
|
||||
const navigateToReturn = (deviceId, orderId) => {
|
||||
common_vendor.index.__f__("log", "at pages/order/index.vue:299", orderId);
|
||||
common_vendor.index.__f__("log", "at pages/order/index.vue:303", orderId);
|
||||
common_vendor.index.navigateTo({
|
||||
url: `/pages/return/index?deviceId=${deviceId}&orderId=${orderId}`
|
||||
});
|
||||
};
|
||||
const navigateToDetails = (order) => {
|
||||
common_vendor.index.navigateTo({
|
||||
url: `/pages/order/details?orderId=${order.orderId || order.orderNo}`
|
||||
url: `/pages/return/index?orderId=${order.orderId || order.orderNo}&deviceId=${order.deviceId}`
|
||||
});
|
||||
};
|
||||
const handlePayment = async (order) => {
|
||||
@@ -166,12 +166,12 @@ const _sfc_main = {
|
||||
try {
|
||||
await config_user.updateUserBalance(order.orderId || order.orderNo);
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("warn", "at pages/order/index.vue:345", "更新用户余额失败:", error);
|
||||
common_vendor.index.__f__("warn", "at pages/order/index.vue:349", "更新用户余额失败:", error);
|
||||
}
|
||||
await loadOrderList(orderStatusTabs[currentTab.value].status);
|
||||
},
|
||||
fail: (err) => {
|
||||
common_vendor.index.__f__("error", "at pages/order/index.vue:352", "支付失败:", err);
|
||||
common_vendor.index.__f__("error", "at pages/order/index.vue:356", "支付失败:", err);
|
||||
throw new Error("支付失败,请重试");
|
||||
}
|
||||
});
|
||||
@@ -243,24 +243,26 @@ const _sfc_main = {
|
||||
e: order.payWay == "wx_score_pay"
|
||||
}, order.payWay == "wx_score_pay" ? {
|
||||
f: common_assets._imports_0$3
|
||||
} : {}, {
|
||||
g: common_vendor.t(order.startTime),
|
||||
h: common_vendor.t(order.endTime || "-"),
|
||||
i: common_vendor.t(order.amount),
|
||||
j: order.status === "waiting_for_payment" || order.orderStatus === "waiting_for_payment"
|
||||
}, order.status === "waiting_for_payment" || order.orderStatus === "waiting_for_payment" ? {
|
||||
k: common_vendor.o(($event) => handlePayment(order), index)
|
||||
} : {}, {
|
||||
} : order.payWay == "wx_member_pay" ? {} : order.payWay == "wx_pay" ? {} : {}, {
|
||||
g: order.payWay == "wx_member_pay",
|
||||
h: order.payWay == "wx_pay",
|
||||
i: common_vendor.t(order.startTime),
|
||||
j: common_vendor.t(order.endTime || "-"),
|
||||
k: common_vendor.t(order.amount),
|
||||
l: order.status === "waiting_for_payment" || order.orderStatus === "waiting_for_payment"
|
||||
}, order.status === "waiting_for_payment" || order.orderStatus === "waiting_for_payment" ? {
|
||||
m: common_vendor.o(($event) => handleCancelOrder(order), index)
|
||||
m: common_vendor.o(($event) => handlePayment(order), index)
|
||||
} : {}, {
|
||||
n: order.status == "in_used" || order.orderStatus == "in_used"
|
||||
n: order.status === "waiting_for_payment" || order.orderStatus === "waiting_for_payment"
|
||||
}, order.status === "waiting_for_payment" || order.orderStatus === "waiting_for_payment" ? {
|
||||
o: common_vendor.o(($event) => handleCancelOrder(order), index)
|
||||
} : {}, {
|
||||
p: order.status == "in_used" || order.orderStatus == "in_used"
|
||||
}, order.status == "in_used" || order.orderStatus == "in_used" ? {
|
||||
o: common_vendor.o(($event) => navigateToReturn(order.deviceId, order.orderId), index)
|
||||
q: common_vendor.o(($event) => navigateToReturn(order.deviceId, order.orderId), index)
|
||||
} : {}, {
|
||||
p: common_vendor.o(($event) => navigateToDetails(order), index),
|
||||
q: index
|
||||
r: common_vendor.o(($event) => navigateToDetails(order), index),
|
||||
s: index
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<view class="order-container data-v-17a44f9d"><view class="status-tabs data-v-17a44f9d"><view wx:for="{{a}}" wx:for-item="tab" wx:key="b" class="{{['tab-item', 'data-v-17a44f9d', tab.c && 'active']}}" bindtap="{{tab.d}}">{{tab.a}}</view></view><view class="order-list data-v-17a44f9d"><view wx:if="{{b}}" class="empty-state data-v-17a44f9d"><view class="empty-icon data-v-17a44f9d"></view><text class="empty-text data-v-17a44f9d">暂无订单记录</text></view><view wx:for="{{c}}" wx:for-item="order" wx:key="q" class="order-item data-v-17a44f9d"><view class="order-header data-v-17a44f9d"><view class="order-id data-v-17a44f9d"><text class="data-v-17a44f9d">订单号:{{order.a}}</text></view><view class="{{['order-status', 'data-v-17a44f9d', order.c]}}">{{order.b}}</view></view><view class="order-body data-v-17a44f9d"><view class="device-info data-v-17a44f9d"><view class="device-left data-v-17a44f9d"><view class="device-name data-v-17a44f9d">共享风扇</view><view class="device-id data-v-17a44f9d">设备号:{{order.d}}</view></view><view class="device-right data-v-17a44f9d"><view wx:if="{{order.e}}" class="payment-badge wx-score data-v-17a44f9d"><image src="{{order.f}}" mode="aspectFit" class="badge-icon data-v-17a44f9d"></image><view class="badge-text data-v-17a44f9d"><text class="data-v-17a44f9d">微信支付分</text><text class="divider data-v-17a44f9d">|</text><text class="highlight data-v-17a44f9d">免押租借</text></view></view><view wx:else class="payment-badge deposit data-v-17a44f9d"><text class="badge-text data-v-17a44f9d">押金租借</text></view></view></view><view class="order-times data-v-17a44f9d"><view class="time-row data-v-17a44f9d"><text class="time-label data-v-17a44f9d">开始时间:</text><text class="time-value data-v-17a44f9d">{{order.g}}</text></view><view class="time-row data-v-17a44f9d"><text class="time-label data-v-17a44f9d">结束时间:</text><text class="time-value data-v-17a44f9d">{{order.h}}</text></view></view></view><view class="order-footer data-v-17a44f9d"><view class="price data-v-17a44f9d">¥{{order.i}}</view><view class="actions data-v-17a44f9d"><view wx:if="{{order.j}}" class="action-item primary data-v-17a44f9d" bindtap="{{order.k}}"> 立即支付 </view><view wx:if="{{order.l}}" class="action-item secondary data-v-17a44f9d" bindtap="{{order.m}}"> 取消订单 </view><view wx:if="{{order.n}}" class="action-item primary data-v-17a44f9d" bindtap="{{order.o}}"> 归还设备 </view><view class="action-item secondary data-v-17a44f9d" bindtap="{{order.p}}"> 查看详情 </view></view></view></view></view></view>
|
||||
<view class="order-container data-v-17a44f9d"><view class="status-tabs data-v-17a44f9d"><view wx:for="{{a}}" wx:for-item="tab" wx:key="b" class="{{['tab-item', 'data-v-17a44f9d', tab.c && 'active']}}" bindtap="{{tab.d}}">{{tab.a}}</view></view><view class="order-list data-v-17a44f9d"><view wx:if="{{b}}" class="empty-state data-v-17a44f9d"><view class="empty-icon data-v-17a44f9d"></view><text class="empty-text data-v-17a44f9d">暂无订单记录</text></view><view wx:for="{{c}}" wx:for-item="order" wx:key="s" class="order-item data-v-17a44f9d"><view class="order-header data-v-17a44f9d"><view class="order-id data-v-17a44f9d"><text class="data-v-17a44f9d">订单号:{{order.a}}</text></view><view class="{{['order-status', 'data-v-17a44f9d', order.c]}}">{{order.b}}</view></view><view class="order-body data-v-17a44f9d"><view class="device-info data-v-17a44f9d"><view class="device-left data-v-17a44f9d"><view class="device-name data-v-17a44f9d">共享风扇</view><view class="device-id data-v-17a44f9d">设备号:{{order.d}}</view></view><view class="device-right data-v-17a44f9d"><view wx:if="{{order.e}}" class="payment-badge wx-score data-v-17a44f9d"><image src="{{order.f}}" mode="aspectFit" class="badge-icon data-v-17a44f9d"></image><view class="badge-text data-v-17a44f9d"><text class="data-v-17a44f9d">微信支付分</text><text class="divider data-v-17a44f9d">|</text><text class="highlight data-v-17a44f9d">免押租借</text></view></view><view wx:elif="{{order.g}}" class="payment-badge member data-v-17a44f9d"><text class="badge-text data-v-17a44f9d">会员订单</text></view><view wx:elif="{{order.h}}" class="payment-badge deposit data-v-17a44f9d"><text class="badge-text data-v-17a44f9d">押金租借</text></view></view></view><view class="order-times data-v-17a44f9d"><view class="time-row data-v-17a44f9d"><text class="time-label data-v-17a44f9d">开始时间:</text><text class="time-value data-v-17a44f9d">{{order.i}}</text></view><view class="time-row data-v-17a44f9d"><text class="time-label data-v-17a44f9d">结束时间:</text><text class="time-value data-v-17a44f9d">{{order.j}}</text></view></view></view><view class="order-footer data-v-17a44f9d"><view class="price data-v-17a44f9d">¥{{order.k}}</view><view class="actions data-v-17a44f9d"><view wx:if="{{order.l}}" class="action-item primary data-v-17a44f9d" bindtap="{{order.m}}"> 立即支付 </view><view wx:if="{{order.n}}" class="action-item secondary data-v-17a44f9d" bindtap="{{order.o}}"> 取消订单 </view><view wx:if="{{order.p}}" class="action-item primary data-v-17a44f9d" bindtap="{{order.q}}"> 归还设备 </view><view class="action-item secondary data-v-17a44f9d" bindtap="{{order.r}}"> 查看详情 </view></view></view></view></view></view>
|
||||
@@ -151,6 +151,14 @@
|
||||
.order-container .order-list .order-item .order-body .device-info .device-right .payment-badge.wx-score .badge-text .highlight.data-v-17a44f9d {
|
||||
font-weight: 500;
|
||||
}
|
||||
.order-container .order-list .order-item .order-body .device-info .device-right .payment-badge.member.data-v-17a44f9d {
|
||||
background: rgba(25, 118, 210, 0.08);
|
||||
}
|
||||
.order-container .order-list .order-item .order-body .device-info .device-right .payment-badge.member .badge-text.data-v-17a44f9d {
|
||||
font-size: 22rpx;
|
||||
color: #1976D2;
|
||||
font-weight: 500;
|
||||
}
|
||||
.order-container .order-list .order-item .order-body .device-info .device-right .payment-badge.deposit.data-v-17a44f9d {
|
||||
background: #f5f5f5;
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
<view class="success-container data-v-eb1f1ee2"><view class="status-card data-v-eb1f1ee2"><view class="status-icon success data-v-eb1f1ee2"></view><view class="status-text data-v-eb1f1ee2">归还成功</view><view class="status-desc data-v-eb1f1ee2">您的风扇已归还,费用已从押金中扣除</view></view><view class="order-card data-v-eb1f1ee2"><view class="card-title data-v-eb1f1ee2">订单信息</view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">订单号</text><text class="value data-v-eb1f1ee2">{{a}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">设备号</text><text class="value data-v-eb1f1ee2">{{b}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">使用时长</text><text class="value data-v-eb1f1ee2">{{c}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">套餐时长</text><text class="value data-v-eb1f1ee2">{{d}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">超出时长</text><text class="value data-v-eb1f1ee2">{{e}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">归还时间</text><text class="value data-v-eb1f1ee2">{{f}}</text></view></view><view class="refund-card data-v-eb1f1ee2"><view class="card-title data-v-eb1f1ee2">费用信息</view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">套餐费用</text><text class="value data-v-eb1f1ee2">¥{{g}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">超时费用</text><text class="value data-v-eb1f1ee2">¥{{h}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">总费用</text><text class="value data-v-eb1f1ee2">¥{{i}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">押金</text><text class="value data-v-eb1f1ee2">¥{{j}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">退还金额</text><text class="value highlight data-v-eb1f1ee2">¥{{k}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">退还状态</text><text class="{{['value', 'data-v-eb1f1ee2', m]}}">{{l}}</text></view></view><view class="notice-card data-v-eb1f1ee2"><view class="card-title data-v-eb1f1ee2">退款说明</view><view class="notice-content data-v-eb1f1ee2"><text class="data-v-eb1f1ee2">1. 押金剩余金额需要您手动申请提现</text><text class="data-v-eb1f1ee2">2. 提现申请提交后将在1-3个工作日内退还到原支付账户</text><text class="data-v-eb1f1ee2">3. 如有疑问,请联系客服</text></view></view><view class="button-group data-v-eb1f1ee2"><button wx:if="{{n}}" class="primary-btn data-v-eb1f1ee2" bindtap="{{o}}">申请退款</button><button class="primary-btn data-v-eb1f1ee2" bindtap="{{p}}">返回首页</button></view></view>
|
||||
<view class="success-container data-v-eb1f1ee2"><view class="status-card data-v-eb1f1ee2"><view class="status-icon success data-v-eb1f1ee2"></view><view class="status-text data-v-eb1f1ee2">归还成功</view><view class="status-desc data-v-eb1f1ee2">您的风扇已归还,费用已从押金中扣除</view></view><view class="order-card data-v-eb1f1ee2"><view class="card-title data-v-eb1f1ee2">订单信息</view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">订单号</text><text class="value data-v-eb1f1ee2">{{a}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">设备号</text><text class="value data-v-eb1f1ee2">{{b}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">使用时长</text><text class="value data-v-eb1f1ee2">{{c}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">套餐时长</text><text class="value data-v-eb1f1ee2">{{d}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">超出时长</text><text class="value data-v-eb1f1ee2">{{e}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">归还时间</text><text class="value data-v-eb1f1ee2">{{f}}</text></view></view><view class="refund-card data-v-eb1f1ee2"><view class="card-title data-v-eb1f1ee2">费用信息</view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">套餐费用</text><text class="value data-v-eb1f1ee2">¥{{g}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">超时费用</text><text class="value data-v-eb1f1ee2">¥{{h}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">总费用</text><text class="value data-v-eb1f1ee2">¥{{i}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">押金</text><text class="value data-v-eb1f1ee2">¥{{j}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">退还金额</text><text class="value highlight data-v-eb1f1ee2">¥{{k}}</text></view><view class="info-item data-v-eb1f1ee2"><text class="label data-v-eb1f1ee2">退还状态</text><text class="{{['value', 'data-v-eb1f1ee2', m]}}">{{l}}</text></view></view><view class="notice-card data-v-eb1f1ee2"><view class="card-title data-v-eb1f1ee2">退款说明</view><view class="notice-content data-v-eb1f1ee2"><view class="data-v-eb1f1ee2">1. 押金剩余金额需要您手动申请提现</view><view class="data-v-eb1f1ee2">2. 提现申请提交后将在1-3个工作日内退还到原支付账户</view><view class="data-v-eb1f1ee2">3. 如有疑问,请联系客服</view></view></view><view class="button-group data-v-eb1f1ee2"><button wx:if="{{n}}" class="primary-btn data-v-eb1f1ee2" bindtap="{{o}}">申请退款</button><button class="primary-btn data-v-eb1f1ee2" bindtap="{{p}}">返回首页</button></view></view>
|
||||
@@ -130,7 +130,6 @@
|
||||
.button-group.data-v-2795c576 {
|
||||
margin-top: 30px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
}
|
||||
.button-group .primary-btn.data-v-2795c576 {
|
||||
|
||||
+216
-61
@@ -18,7 +18,14 @@ const _sfc_main = {
|
||||
// 默认状态为使用中
|
||||
payWay: "",
|
||||
// 新增支付方式字段
|
||||
orderNo: ""
|
||||
orderNo: "",
|
||||
// 新增费用相关字段
|
||||
depositAmount: "",
|
||||
packageTime: "",
|
||||
packagePrice: "",
|
||||
payAmount: "0.00",
|
||||
endTime: "",
|
||||
phone: ""
|
||||
},
|
||||
timer: null,
|
||||
statusCheckTimer: null,
|
||||
@@ -32,33 +39,15 @@ const _sfc_main = {
|
||||
};
|
||||
},
|
||||
onLoad(options) {
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:120", "Return page loaded with options:", JSON.stringify(options));
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:177", "Return page loaded with options:", JSON.stringify(options));
|
||||
this.isPageActive = true;
|
||||
this.orderInfo.orderId = options.orderId || "";
|
||||
this.deviceId = options.deviceNo || options.deviceId || "";
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:130", `初始化参数: orderId=${this.orderInfo.orderId}, deviceId=${this.deviceId}`);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:187", `初始化参数: orderId=${this.orderInfo.orderId}, deviceId=${this.deviceId}`);
|
||||
if (!this.orderInfo.orderId && this.deviceId) {
|
||||
this.getOrderByDevice();
|
||||
} else if (this.orderInfo.orderId) {
|
||||
this.getOrderDetails();
|
||||
this.startTimer();
|
||||
this.startStatusCheckTimer();
|
||||
common_vendor.index.setStorageSync("activeOrderId", this.orderInfo.orderId);
|
||||
try {
|
||||
if (this.$orderMonitor) {
|
||||
this.$orderMonitor.removeOrder({
|
||||
orderId: this.orderInfo.orderId
|
||||
});
|
||||
this.$orderMonitor.addOrder({
|
||||
orderId: this.orderInfo.orderId
|
||||
}, "return");
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:157", "订单已添加到监控队列:", this.orderInfo.orderId);
|
||||
} else {
|
||||
common_vendor.index.__f__("warn", "at pages/return/index.vue:159", "$orderMonitor 未定义,无法添加订单到监控队列");
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/return/index.vue:162", "添加订单到监控队列失败:", error);
|
||||
}
|
||||
} else {
|
||||
common_vendor.index.showToast({
|
||||
title: "缺少订单信息",
|
||||
@@ -72,14 +61,14 @@ const _sfc_main = {
|
||||
},
|
||||
// 添加onHide生命周期,处理页面隐藏时的清理工作
|
||||
onHide() {
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:182", "归还页面隐藏,清理计时器资源和监控服务");
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:213", "归还页面隐藏,清理计时器资源和监控服务");
|
||||
this.isPageActive = false;
|
||||
this.clearTimer();
|
||||
this.clearStatusCheckTimer();
|
||||
this.removeFromOrderMonitor();
|
||||
},
|
||||
onUnload() {
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:194", "归还页面卸载,清理所有资源");
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:225", "归还页面卸载,清理所有资源");
|
||||
this.isPageActive = false;
|
||||
this.clearTimer();
|
||||
this.clearStatusCheckTimer();
|
||||
@@ -94,15 +83,15 @@ const _sfc_main = {
|
||||
this.$orderMonitor.removeOrder({
|
||||
orderId: this.orderInfo.orderId
|
||||
});
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:216", "订单已从监控队列移除:", this.orderInfo.orderId);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:247", "订单已从监控队列移除:", this.orderInfo.orderId);
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/return/index.vue:218", "从监控队列移除订单失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/return/index.vue:249", "从监控队列移除订单失败:", error);
|
||||
}
|
||||
}
|
||||
},
|
||||
// 处理订单完成事件(可由任何地方触发)
|
||||
handleOrderCompleted(orderData) {
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:224", "收到订单完成事件:", orderData);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:255", "收到订单完成事件:", orderData);
|
||||
if (orderData.orderId === this.orderInfo.orderId || orderData.orderNo === this.orderInfo.orderNo) {
|
||||
this.showReturnSuccessModal(orderData);
|
||||
}
|
||||
@@ -136,16 +125,16 @@ const _sfc_main = {
|
||||
"payment_successful": "支付成功",
|
||||
"in_used": "使用中",
|
||||
"payment_failed": "支付失败",
|
||||
"order_cancelled": "订单取消",
|
||||
"used_done": "订单完成",
|
||||
"used_down": "订单完成"
|
||||
"order_cancelled": "已取消",
|
||||
"used_done": "已完成",
|
||||
"used_down": "已完成"
|
||||
};
|
||||
return statusMap[this.orderInfo.orderStatus] || "使用中";
|
||||
},
|
||||
// 获取订单详情
|
||||
async getOrderDetails() {
|
||||
if (!this.isPageActive) {
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:280", "页面已不活跃,跳过订单详情请求");
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:311", "页面已不活跃,跳过订单详情请求");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
@@ -155,8 +144,8 @@ const _sfc_main = {
|
||||
const result = await config_user.queryById(this.orderInfo.orderId);
|
||||
if (result.code === 200 && result.data) {
|
||||
const orderData = result.data;
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:295", "订单原始数据:", orderData);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:296", "开始时间字段:", orderData.startTime, typeof orderData.startTime);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:326", "订单原始数据:", orderData);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:327", "开始时间字段:", orderData.startTime, typeof orderData.startTime);
|
||||
if (orderData.orderStatus) {
|
||||
this.orderInfo.orderStatus = orderData.orderStatus;
|
||||
}
|
||||
@@ -169,12 +158,32 @@ const _sfc_main = {
|
||||
return;
|
||||
}
|
||||
this.updateOrderInfo(orderData);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:323", "更新后的开始时间:", this.orderInfo.startTime);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:354", "更新后的开始时间:", this.orderInfo.startTime);
|
||||
if (this.orderInfo.orderStatus === "in_used") {
|
||||
this.startTimer();
|
||||
this.startStatusCheckTimer();
|
||||
common_vendor.index.setStorageSync("activeOrderId", this.orderInfo.orderId);
|
||||
try {
|
||||
if (this.$orderMonitor) {
|
||||
this.$orderMonitor.removeOrder({
|
||||
orderId: this.orderInfo.orderId
|
||||
});
|
||||
this.$orderMonitor.addOrder({
|
||||
orderId: this.orderInfo.orderId
|
||||
}, "return");
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:377", "订单已添加到监控队列:", this.orderInfo.orderId);
|
||||
} else {
|
||||
common_vendor.index.__f__("warn", "at pages/return/index.vue:379", "$orderMonitor 未定义,无法添加订单到监控队列");
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/return/index.vue:382", "添加订单到监控队列失败:", error);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
throw new Error(result.msg || "获取订单详情失败");
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/return/index.vue:328", "获取订单详情错误:", error);
|
||||
common_vendor.index.__f__("error", "at pages/return/index.vue:389", "获取订单详情错误:", error);
|
||||
common_vendor.index.showToast({
|
||||
title: error.message || "获取订单信息失败",
|
||||
icon: "none"
|
||||
@@ -208,21 +217,39 @@ const _sfc_main = {
|
||||
this.orderInfo._rawStartTime = orderData.startTime;
|
||||
if (orderData.startTime) {
|
||||
try {
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:379", "API返回的开始时间:", orderData.startTime);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:440", "API返回的开始时间:", orderData.startTime);
|
||||
this.orderInfo.startTime = orderData.startTime;
|
||||
} catch (e) {
|
||||
common_vendor.index.__f__("error", "at pages/return/index.vue:383", "更新开始时间错误:", e);
|
||||
common_vendor.index.__f__("error", "at pages/return/index.vue:444", "更新开始时间错误:", e);
|
||||
this.orderInfo.startTime = "未知";
|
||||
}
|
||||
} else {
|
||||
common_vendor.index.__f__("warn", "at pages/return/index.vue:387", "API返回的订单数据中没有startTime字段");
|
||||
common_vendor.index.__f__("warn", "at pages/return/index.vue:448", "API返回的订单数据中没有startTime字段");
|
||||
if (orderData.createTime) {
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:390", "使用createTime作为备选:", orderData.createTime);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:451", "使用createTime作为备选:", orderData.createTime);
|
||||
this.orderInfo.startTime = orderData.createTime;
|
||||
} else {
|
||||
this.orderInfo.startTime = "未知";
|
||||
}
|
||||
}
|
||||
if (orderData.depositAmount) {
|
||||
this.orderInfo.depositAmount = orderData.depositAmount;
|
||||
}
|
||||
if (orderData.packageTime) {
|
||||
this.orderInfo.packageTime = orderData.packageTime;
|
||||
}
|
||||
if (orderData.packagePrice) {
|
||||
this.orderInfo.packagePrice = orderData.packagePrice;
|
||||
}
|
||||
if (orderData.payAmount) {
|
||||
this.orderInfo.payAmount = orderData.payAmount;
|
||||
}
|
||||
if (orderData.endTime) {
|
||||
this.orderInfo.endTime = orderData.endTime;
|
||||
}
|
||||
if (orderData.phone) {
|
||||
this.orderInfo.phone = orderData.phone;
|
||||
}
|
||||
if (orderData.orderNo) {
|
||||
this.orderInfo.orderNo = orderData.orderNo;
|
||||
}
|
||||
@@ -235,21 +262,21 @@ const _sfc_main = {
|
||||
this.clearTimer();
|
||||
this.timer = setInterval(() => {
|
||||
if (this.isPageActive) {
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:415", "执行定时更新订单信息");
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:497", "执行定时更新订单信息");
|
||||
this.getOrderDetails();
|
||||
} else {
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:418", "页面已不活跃,停止计时器");
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:500", "页面已不活跃,停止计时器");
|
||||
this.clearTimer();
|
||||
}
|
||||
}, 6e4);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:423", "已启动使用时长更新计时器");
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:505", "已启动使用时长更新计时器");
|
||||
},
|
||||
// 清除定时器
|
||||
clearTimer() {
|
||||
if (this.timer) {
|
||||
clearInterval(this.timer);
|
||||
this.timer = null;
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:431", "已清除使用时长更新计时器");
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:513", "已清除使用时长更新计时器");
|
||||
}
|
||||
},
|
||||
// 清除状态检查定时器
|
||||
@@ -257,7 +284,7 @@ const _sfc_main = {
|
||||
if (this.statusCheckTimer) {
|
||||
clearInterval(this.statusCheckTimer);
|
||||
this.statusCheckTimer = null;
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:440", "已清除归还状态检查计时器");
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:522", "已清除归还状态检查计时器");
|
||||
}
|
||||
},
|
||||
// 开始状态检查定时器
|
||||
@@ -267,7 +294,7 @@ const _sfc_main = {
|
||||
this.statusCheckTimer = setInterval(() => {
|
||||
if (this.isPageActive) {
|
||||
this.currentStatusChecks++;
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:454", `执行归还状态检查 (${this.currentStatusChecks}/${this.maxStatusChecks})`);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:536", `执行归还状态检查 (${this.currentStatusChecks}/${this.maxStatusChecks})`);
|
||||
this.checkReturnStatus();
|
||||
if (this.currentStatusChecks >= this.maxStatusChecks) {
|
||||
this.clearStatusCheckTimer();
|
||||
@@ -278,11 +305,11 @@ const _sfc_main = {
|
||||
});
|
||||
}
|
||||
} else {
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:469", "页面已不活跃,停止状态检查计时器");
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:551", "页面已不活跃,停止状态检查计时器");
|
||||
this.clearStatusCheckTimer();
|
||||
}
|
||||
}, this.statusCheckInterval);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:474", "已启动归还状态检查计时器");
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:556", "已启动归还状态检查计时器");
|
||||
},
|
||||
// 通过设备号查询使用中的订单
|
||||
async getOrderByDevice() {
|
||||
@@ -298,10 +325,10 @@ const _sfc_main = {
|
||||
"Clientid": common_vendor.index.getStorageSync("client_id")
|
||||
}
|
||||
});
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:496", "通过设备号查询订单结果:", JSON.stringify(inUseRes));
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:578", "通过设备号查询订单结果:", JSON.stringify(inUseRes));
|
||||
if (inUseRes.statusCode === 200 && inUseRes.data.code === 200 && inUseRes.data.data) {
|
||||
const inUseOrder = inUseRes.data.data;
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:500", "使用中的订单:", inUseOrder);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:582", "使用中的订单:", inUseOrder);
|
||||
this.orderInfo.orderId = inUseOrder.orderId;
|
||||
if (inUseOrder.orderStatus) {
|
||||
this.orderInfo.orderStatus = inUseOrder.orderStatus;
|
||||
@@ -310,17 +337,15 @@ const _sfc_main = {
|
||||
this.orderInfo.payWay = inUseOrder.payWay;
|
||||
}
|
||||
if (inUseOrder.startTime) {
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:517", "inUse API返回的开始时间:", inUseOrder.startTime);
|
||||
common_vendor.index.__f__("log", "at pages/return/index.vue:599", "inUse API返回的开始时间:", inUseOrder.startTime);
|
||||
this.orderInfo.startTime = inUseOrder.startTime;
|
||||
}
|
||||
this.getOrderDetails();
|
||||
this.startTimer();
|
||||
this.startStatusCheckTimer();
|
||||
} else {
|
||||
throw new Error("未找到使用中的订单");
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/return/index.vue:531", "通过设备号查询订单失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/return/index.vue:609", "通过设备号查询订单失败:", error);
|
||||
common_vendor.index.showToast({
|
||||
title: error.message || "获取订单信息失败",
|
||||
icon: "none"
|
||||
@@ -339,7 +364,7 @@ const _sfc_main = {
|
||||
await this.getOrderDetails();
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/return/index.vue:554", "检查归还状态失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/return/index.vue:632", "检查归还状态失败:", error);
|
||||
}
|
||||
},
|
||||
// 返回首页
|
||||
@@ -347,25 +372,155 @@ const _sfc_main = {
|
||||
common_vendor.index.reLaunch({
|
||||
url: "/pages/index/index"
|
||||
});
|
||||
},
|
||||
// 查看订单详情
|
||||
viewOrderDetails() {
|
||||
common_vendor.index.navigateTo({
|
||||
url: `/pages/order/return-success?orderId=${this.orderInfo.orderId}`
|
||||
});
|
||||
},
|
||||
expressRetrunOrder() {
|
||||
common_vendor.index.showLoading();
|
||||
setTimeout(() => {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.showModal({
|
||||
title: "提示",
|
||||
content: "计费暂停,是否前往填写归还信息",
|
||||
confirmText: "立即前往",
|
||||
cancelText: "稍后填写",
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
common_vendor.index.navigateTo({
|
||||
url: `/pages/expressReturn/addExpressReturn?orderId=${this.orderInfo.orderId}`
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}, 3e3);
|
||||
},
|
||||
// 取消订单
|
||||
handleCancelOrder() {
|
||||
common_vendor.index.showModal({
|
||||
title: "确认取消",
|
||||
content: "确定要取消此订单吗?",
|
||||
success: async (res) => {
|
||||
if (res.confirm) {
|
||||
try {
|
||||
common_vendor.index.showLoading({
|
||||
title: "处理中"
|
||||
});
|
||||
const result = await config_user.cancelOrder({
|
||||
orderId: this.orderInfo.orderId
|
||||
});
|
||||
if (result.code === 200) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.showToast({
|
||||
title: "订单已取消",
|
||||
icon: "success"
|
||||
});
|
||||
await this.getOrderDetails();
|
||||
} else {
|
||||
throw new Error(result.msg || "取消订单失败");
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.showToast({
|
||||
title: error.message || "取消订单失败",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
// 立即支付
|
||||
handlePayment() {
|
||||
common_vendor.index.navigateTo({
|
||||
url: `/pages/order/payment?orderId=${this.orderInfo.orderId}`
|
||||
});
|
||||
},
|
||||
// 格式化时间
|
||||
formatTime(minutes) {
|
||||
if (!minutes)
|
||||
return "";
|
||||
const mins = parseInt(minutes);
|
||||
if (mins < 60) {
|
||||
return `${mins}分钟`;
|
||||
} else {
|
||||
const hours = Math.floor(mins / 60);
|
||||
const remainingMins = mins % 60;
|
||||
return remainingMins > 0 ? `${hours}小时${remainingMins}分钟` : `${hours}小时`;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return common_vendor.e({
|
||||
a: common_vendor.t($options.getOrderStatusText()),
|
||||
b: common_vendor.t($data.orderInfo.orderNo),
|
||||
b: common_vendor.t($data.orderInfo.orderNo || "-"),
|
||||
c: common_vendor.t($data.deviceId),
|
||||
d: $data.orderInfo.payWay == "wx_score_pay"
|
||||
}, $data.orderInfo.payWay == "wx_score_pay" ? {
|
||||
e: common_assets._imports_0$3
|
||||
} : $data.orderInfo.payWay == "wx_member_pay" ? {} : $data.orderInfo.payWay == "wx_pay" ? {} : {}, {
|
||||
f: $data.orderInfo.payWay == "wx_member_pay",
|
||||
g: $data.orderInfo.payWay == "wx_pay",
|
||||
h: common_vendor.t($data.orderInfo.startTime),
|
||||
i: $data.orderInfo.endTime
|
||||
}, $data.orderInfo.endTime ? {
|
||||
j: common_vendor.t($data.orderInfo.endTime)
|
||||
} : {}, {
|
||||
f: common_vendor.t($data.orderInfo.startTime),
|
||||
g: common_vendor.t($data.orderInfo.usedTime),
|
||||
h: common_vendor.t($data.orderInfo.currentFee)
|
||||
}, {}, {
|
||||
l: common_vendor.o((...args) => $options.checkReturnStatus && $options.checkReturnStatus(...args)),
|
||||
m: common_vendor.o((...args) => $options.goToHome && $options.goToHome(...args))
|
||||
});
|
||||
k: $data.orderInfo.orderStatus === "in_used"
|
||||
}, $data.orderInfo.orderStatus === "in_used" ? {
|
||||
l: common_vendor.t($data.orderInfo.usedTime)
|
||||
} : {}, {
|
||||
m: $data.orderInfo.orderStatus === "in_used"
|
||||
}, $data.orderInfo.orderStatus === "in_used" ? {
|
||||
n: common_vendor.t($data.orderInfo.currentFee)
|
||||
} : {}, {
|
||||
o: $data.orderInfo.phone
|
||||
}, $data.orderInfo.phone ? {
|
||||
p: common_vendor.t($data.orderInfo.phone)
|
||||
} : {}, {}, {
|
||||
t: $data.orderInfo.depositAmount || $data.orderInfo.packageTime
|
||||
}, $data.orderInfo.depositAmount || $data.orderInfo.packageTime ? common_vendor.e({
|
||||
v: $data.orderInfo.depositAmount
|
||||
}, $data.orderInfo.depositAmount ? {
|
||||
w: common_vendor.t($data.orderInfo.depositAmount)
|
||||
} : {}, {
|
||||
x: $data.orderInfo.packageTime && $data.orderInfo.packagePrice
|
||||
}, $data.orderInfo.packageTime && $data.orderInfo.packagePrice ? {
|
||||
y: common_vendor.t($data.orderInfo.packagePrice),
|
||||
z: common_vendor.t($options.formatTime($data.orderInfo.packageTime))
|
||||
} : {}, {
|
||||
A: common_vendor.t($data.orderInfo.payAmount || 0)
|
||||
}) : {}, {
|
||||
B: $data.orderInfo.orderStatus === "in_used"
|
||||
}, $data.orderInfo.orderStatus === "in_used" ? {} : {}, {
|
||||
C: $data.orderInfo.orderStatus === "in_used"
|
||||
}, $data.orderInfo.orderStatus === "in_used" ? {
|
||||
D: common_vendor.o((...args) => $options.checkReturnStatus && $options.checkReturnStatus(...args))
|
||||
} : {}, {
|
||||
E: $data.orderInfo.orderStatus === "in_used"
|
||||
}, $data.orderInfo.orderStatus === "in_used" ? {
|
||||
F: common_vendor.o((...args) => $options.goToHome && $options.goToHome(...args))
|
||||
} : {}, {
|
||||
G: $data.orderInfo.orderStatus === "used_done" || $data.orderInfo.orderStatus === "used_down"
|
||||
}, $data.orderInfo.orderStatus === "used_done" || $data.orderInfo.orderStatus === "used_down" ? {
|
||||
H: common_vendor.o((...args) => $options.goToHome && $options.goToHome(...args))
|
||||
} : {}, {
|
||||
I: $data.orderInfo.orderStatus === "used_done" || $data.orderInfo.orderStatus === "used_down"
|
||||
}, $data.orderInfo.orderStatus === "used_done" || $data.orderInfo.orderStatus === "used_down" ? {
|
||||
J: common_vendor.o((...args) => $options.viewOrderDetails && $options.viewOrderDetails(...args))
|
||||
} : {}, {
|
||||
K: $data.orderInfo.orderStatus === "waiting_for_payment"
|
||||
}, $data.orderInfo.orderStatus === "waiting_for_payment" ? {
|
||||
L: common_vendor.o((...args) => $options.handleCancelOrder && $options.handleCancelOrder(...args))
|
||||
} : {}, {
|
||||
M: $data.orderInfo.orderStatus === "waiting_for_payment"
|
||||
}, $data.orderInfo.orderStatus === "waiting_for_payment" ? {
|
||||
N: common_vendor.o((...args) => $options.handlePayment && $options.handlePayment(...args))
|
||||
} : {});
|
||||
}
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-6d22bdf8"]]);
|
||||
wx.createPage(MiniProgramPage);
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
<view class="return-container data-v-6d22bdf8"><view class="order-card data-v-6d22bdf8"><view class="order-header data-v-6d22bdf8"><text class="title data-v-6d22bdf8">{{a}}</text><text class="order-no data-v-6d22bdf8">订单号:{{b}}</text></view><view class="device-info data-v-6d22bdf8"><view class="device-left data-v-6d22bdf8"><view class="device-name data-v-6d22bdf8">共享风扇</view><view class="device-id data-v-6d22bdf8">设备号:{{c}}</view></view><view class="device-right data-v-6d22bdf8"><view wx:if="{{d}}" class="payment-badge wx-score data-v-6d22bdf8"><image src="{{e}}" mode="aspectFit" class="badge-icon data-v-6d22bdf8"></image><view class="badge-text data-v-6d22bdf8"><text class="data-v-6d22bdf8">微信支付分</text><text class="divider data-v-6d22bdf8">|</text><text class="highlight data-v-6d22bdf8">免押租借</text></view></view><view wx:else class="payment-badge deposit data-v-6d22bdf8"><text class="badge-text data-v-6d22bdf8">押金租借</text></view></view></view><view class="time-info data-v-6d22bdf8"><view class="time-item data-v-6d22bdf8"><text class="label data-v-6d22bdf8">开始时间</text><text class="value data-v-6d22bdf8">{{f}}</text></view><view class="time-item data-v-6d22bdf8"><text class="label data-v-6d22bdf8">已使用时长</text><text class="value highlight data-v-6d22bdf8">{{g}}</text></view><view class="time-item data-v-6d22bdf8"><text class="label data-v-6d22bdf8">当前费用</text><text class="value data-v-6d22bdf8">¥{{h}}</text></view></view><view wx:if="{{false}}" class="debug-info data-v-6d22bdf8"><view class="debug-title data-v-6d22bdf8">调试信息</view><view class="debug-item data-v-6d22bdf8">原始开始时间: {{i}}</view><view class="debug-item data-v-6d22bdf8">处理后开始时间: {{j}}</view><view class="debug-item data-v-6d22bdf8">订单状态: {{k}}</view></view></view><view class="notice-card data-v-6d22bdf8"><view class="notice-title data-v-6d22bdf8">归还说明</view><view class="notice-list data-v-6d22bdf8"><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">请确保设备完好无损</text></view><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">将风扇插入原位置或空闲插口</text></view><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">系统将自动检测归还并处理退款</text></view><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">归还成功后将自动跳转到成功页面</text></view></view></view><view class="bottom-bar data-v-6d22bdf8"><view class="action-item secondary data-v-6d22bdf8" bindtap="{{l}}">刷新状态</view><view class="action-item primary data-v-6d22bdf8" bindtap="{{m}}">返回首页</view></view></view>
|
||||
<view class="return-container data-v-6d22bdf8"><view class="order-card data-v-6d22bdf8"><view class="order-header data-v-6d22bdf8"><text class="title data-v-6d22bdf8">{{a}}</text><text class="order-no data-v-6d22bdf8">订单号:{{b}}</text></view><view class="device-info data-v-6d22bdf8"><view class="device-left data-v-6d22bdf8"><view class="device-name data-v-6d22bdf8">共享风扇</view><view class="device-id data-v-6d22bdf8">设备号:{{c}}</view></view><view class="device-right data-v-6d22bdf8"><view wx:if="{{d}}" class="payment-badge wx-score data-v-6d22bdf8"><image src="{{e}}" mode="aspectFit" class="badge-icon data-v-6d22bdf8"></image><view class="badge-text data-v-6d22bdf8"><text class="data-v-6d22bdf8">微信支付分</text><text class="divider data-v-6d22bdf8">|</text><text class="highlight data-v-6d22bdf8">免押租借</text></view></view><view wx:elif="{{f}}" class="payment-badge member data-v-6d22bdf8"><text class="badge-text data-v-6d22bdf8">会员订单</text></view><view wx:elif="{{g}}" class="payment-badge deposit data-v-6d22bdf8"><text class="badge-text data-v-6d22bdf8">押金租借</text></view></view></view><view class="time-info data-v-6d22bdf8"><view class="time-item data-v-6d22bdf8"><text class="label data-v-6d22bdf8">开始时间</text><text class="value data-v-6d22bdf8">{{h}}</text></view><view wx:if="{{i}}" class="time-item data-v-6d22bdf8"><text class="label data-v-6d22bdf8">结束时间</text><text class="value data-v-6d22bdf8">{{j}}</text></view><view wx:if="{{k}}" class="time-item data-v-6d22bdf8"><text class="label data-v-6d22bdf8">已使用时长</text><text class="value highlight data-v-6d22bdf8">{{l}}</text></view><view wx:if="{{m}}" class="time-item data-v-6d22bdf8"><text class="label data-v-6d22bdf8">当前费用</text><text class="value data-v-6d22bdf8">¥{{n}}</text></view><view wx:if="{{o}}" class="time-item data-v-6d22bdf8"><text class="label data-v-6d22bdf8">联系电话</text><text class="value data-v-6d22bdf8">{{p}}</text></view></view><view wx:if="{{false}}" class="debug-info data-v-6d22bdf8"><view class="debug-title data-v-6d22bdf8">调试信息</view><view class="debug-item data-v-6d22bdf8">原始开始时间: {{q}}</view><view class="debug-item data-v-6d22bdf8">处理后开始时间: {{r}}</view><view class="debug-item data-v-6d22bdf8">订单状态: {{s}}</view></view></view><view wx:if="{{t}}" class="notice-card data-v-6d22bdf8"><view class="notice-title data-v-6d22bdf8">费用信息</view><view class="notice-list data-v-6d22bdf8"><view wx:if="{{v}}" class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">押金:¥{{w}}</text></view><view wx:if="{{x}}" class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">套餐:¥{{y}}元 / {{z}}</text></view><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">合计:¥{{A}}</text></view></view></view><view wx:if="{{B}}" class="notice-card data-v-6d22bdf8"><view class="notice-title data-v-6d22bdf8">归还说明</view><view class="notice-list data-v-6d22bdf8"><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">请确保设备完好无损</text></view><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">将风扇插入原位置或空闲插口</text></view><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">系统将自动检测归还并处理退款</text></view><view class="notice-item data-v-6d22bdf8"><view class="dot data-v-6d22bdf8"></view><text class="data-v-6d22bdf8">归还成功后将自动跳转到成功页面</text></view></view></view><view class="bottom-bar data-v-6d22bdf8"><view wx:if="{{C}}" class="action-item secondary data-v-6d22bdf8" bindtap="{{D}}"> 刷新状态</view><view wx:if="{{E}}" class="action-item primary data-v-6d22bdf8" bindtap="{{F}}">返回首页</view><view wx:if="{{G}}" class="action-item secondary data-v-6d22bdf8" bindtap="{{H}}">返回首页</view><view wx:if="{{I}}" class="action-item primary data-v-6d22bdf8" bindtap="{{J}}">查看详情</view><view wx:if="{{K}}" class="action-item secondary data-v-6d22bdf8" bindtap="{{L}}">取消订单</view><view wx:if="{{M}}" class="action-item primary data-v-6d22bdf8" bindtap="{{N}}">立即支付</view></view></view>
|
||||
@@ -102,6 +102,14 @@
|
||||
.return-container .order-card .device-info .device-right .payment-badge.wx-score .badge-text .highlight.data-v-6d22bdf8 {
|
||||
font-weight: 500;
|
||||
}
|
||||
.return-container .order-card .device-info .device-right .payment-badge.member.data-v-6d22bdf8 {
|
||||
background: rgba(25, 118, 210, 0.08);
|
||||
}
|
||||
.return-container .order-card .device-info .device-right .payment-badge.member .badge-text.data-v-6d22bdf8 {
|
||||
font-size: 22rpx;
|
||||
color: #1976D2;
|
||||
font-weight: 500;
|
||||
}
|
||||
.return-container .order-card .device-info .device-right .payment-badge.deposit.data-v-6d22bdf8 {
|
||||
background: #f5f5f5;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user