爱简收旧衣按件回收前端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

367 lines
12 KiB

"use strict";
const common_vendor = require("../../common/vendor.js");
const pages_mixins_pullRefreshMixin = require("../mixins/pullRefreshMixin.js");
const _sfc_main = {
mixins: [pages_mixins_pullRefreshMixin.pullRefreshMixin],
data() {
return {
orderId: "",
currentStep: 1,
// 当前进行到第几步
processSteps: [],
address: "",
appointmentTime: "",
estimatePrice: "",
finalPrice: "",
clothesList: [],
currentStatus: {
text: "",
time: "",
icon: ""
},
phone: "",
hasReport: false,
reportTime: "",
showEditButton: true,
expressCompany: "",
expressNo: "",
showCancelModal: false,
statusBarHeight: 0,
orderDetail: null
};
},
computed: {
timeLabel() {
if (this.currentStep === 4) {
return "回收到账时间";
} else if (this.currentStep === 3) {
return "质检完成时间";
} else {
return "上门时间";
}
},
showEstimate() {
return this.currentStep < 3;
}
},
methods: {
async onRefresh() {
await new Promise((resolve) => setTimeout(resolve, 1e3));
common_vendor.index.stopPullRefresh();
},
goBack() {
getApp().globalData.shouldClearRecycle = true;
common_vendor.index.navigateBack();
},
showMore() {
},
onShare() {
},
viewAddress() {
},
viewReport() {
if (this.currentStatus.text.includes("已结款")) {
common_vendor.index.navigateTo({
url: "/pages/component/inspection?status=qualified"
});
} else {
common_vendor.index.navigateTo({
url: "/pages/component/inspection?status=unqualified"
});
}
},
editOrder() {
},
// 更新订单状态
updateOrderStatus(status) {
switch (status) {
case "cancelled":
this.currentStep = 0;
this.currentStatus = {
text: "已取消",
time: "",
icon: "/static/my/【待取件】快递员正在赶来.png"
};
this.showEditButton = false;
break;
case "processing":
this.currentStep = 2;
this.currentStatus = {
text: "【待取件】快递员正在赶来",
time: "2025-04-20 11:00~13:00",
icon: "/static/my/【待取件】快递员正在赶来.png"
};
break;
case "collected":
this.currentStep = 2;
this.currentStatus = {
text: "【已取件】快递员正在送至质检",
time: "2025-04-30 11:42",
icon: "/static/my/【上门中】快递员正在赶来.png"
};
this.showEditButton = false;
break;
case "inspecting":
this.currentStep = 3;
this.currentStatus = {
text: "【质检中】质检员正在质检",
time: "2025-04-20 11:00",
icon: "/static/my/逐件验-配图.png"
};
this.showEditButton = false;
break;
case "pending_payment":
this.currentStep = 4;
this.currentStatus = {
text: "【待结款】待平台确认结款项",
time: "2025-04-20 12:00",
icon: "/static/my/【已结款】平台已结款至账户.png"
};
this.hasReport = true;
this.reportTime = "2025-03-20 11:40";
this.showEditButton = false;
break;
case "completed":
this.currentStep = 4;
this.currentStatus = {
text: "【已结款】平台已结款至账户",
time: "2025-04-20 12:01",
icon: "/static/my/【已结款】平台已结款至账户.png"
};
this.hasReport = true;
this.reportTime = "2025-03-20 11:40";
this.showEditButton = false;
break;
}
},
copyExpressNo() {
common_vendor.index.setClipboardData({
data: this.expressCompany + this.expressNo,
success: () => {
common_vendor.index.showToast({ title: "已复制", icon: "none" });
}
});
},
confirmCancelOrder() {
this.showCancelModal = false;
this.currentStep = 0;
this.currentStatus = {
text: "已取消",
time: this.getNowTime(),
icon: "/static/【待取件】快递员正在赶来.png"
};
},
getNowTime() {
const now = /* @__PURE__ */ new Date();
const y = now.getFullYear();
const m = (now.getMonth() + 1).toString().padStart(2, "0");
const d = now.getDate().toString().padStart(2, "0");
const h = now.getHours().toString().padStart(2, "0");
const min = now.getMinutes().toString().padStart(2, "0");
return `${y}-${m}-${d} ${h}:${min}`;
},
contactCourier() {
if (this.phone) {
common_vendor.index.makePhoneCall({
phoneNumber: this.phone
//仅为示例
});
} else {
common_vendor.index.showToast({ title: "暂无快递员电话", icon: "none" });
}
},
fetchOrderDetail(orderId) {
this.$api && this.$api("getOrderDetail", { orderId }, (res) => {
if (res && res.code === 200 && res.result) {
this.orderDetail = res.result;
this.address = res.result.address + (res.result.addressDetail || "");
this.appointmentTime = res.result.goTime || "";
this.estimatePrice = res.result.price || "";
this.finalPrice = res.result.price || "";
this.clothesList = res.result.commonOrderList || [];
this.expressCompany = res.result.wliu || "";
this.expressNo = res.result.expressNo || "";
this.phone = res.result.phone || "";
this.setOrderStatus(res.result.status, res.result.state, res.result);
}
});
},
setOrderStatus(status, state, data) {
if (state == 3) {
this.currentStep = 0;
this.currentStatus = {
text: "已取消",
time: "",
icon: "/static/【待取件】快递员正在赶来.png"
};
this.showEditButton = false;
return;
}
if (status == 0) {
this.currentStep = 1;
this.currentStatus = {
text: "【在线预约】",
time: data.goTime || "",
icon: "/static/home/① 在线预约.png"
};
} else if (status == 1 && state == 0) {
this.currentStep = 2;
this.currentStatus = {
text: "【待取件】快递员正在赶来",
time: data.goTime || "",
icon: "/static/my/【待取件】快递员正在赶来.png"
};
} else if (status == 1 && state == 1) {
this.currentStep = 2;
this.currentStatus = {
text: "【已取件】快递员正在送至质检",
time: data.goTime || "",
icon: "/static/my/【上门中】快递员正在赶来.png"
};
} else if (status == 2 && state == 1) {
this.currentStep = 3;
this.currentStatus = {
text: "【质检中】质检员正在质检",
time: data.goTime || "",
icon: "/static/my/逐件验-配图.png"
};
} else if (status == 3 && state == 1) {
this.currentStep = 4;
this.currentStatus = {
text: "【待结款】待平台确认结款项",
time: data.goTime || "",
icon: "/static/my/【已结款】平台已结款至账户.png"
};
this.hasReport = true;
this.reportTime = data.updateTime || "";
} else if (status == 3 && state == 2) {
this.currentStep = 4;
this.currentStatus = {
text: "【已结款】平台已结款至账户",
time: data.goTime || "",
icon: "/static/my/【已结款】平台已结款至账户.png"
};
this.hasReport = true;
this.reportTime = data.updateTime || "";
}
},
getAreaList() {
this.$api("getAreaList", {}, (res) => {
common_vendor.index.__f__("log", "at pages/subcomponent/detail.vue:435", res, "getAreaList");
if (res.code == 200 && Array.isArray(res.result)) {
const sorted = res.result.slice().sort((a, b) => a.sort - b.sort);
this.processSteps = sorted.map((item) => ({
// id: item.id,
icon: item.image,
text: item.title
}));
}
});
}
},
onLoad(options) {
if (options.id) {
this.orderId = options.id;
this.fetchOrderDetail(options.id);
}
this.statusBarHeight = common_vendor.index.getSystemInfoSync().statusBarHeight;
this.getAreaList();
},
onShow() {
this.getAreaList();
}
};
if (!Array) {
const _easycom_uni_icons2 = common_vendor.resolveComponent("uni-icons");
_easycom_uni_icons2();
}
const _easycom_uni_icons = () => "../../uni_modules/uni-icons/components/uni-icons/uni-icons.js";
if (!Math) {
_easycom_uni_icons();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: common_vendor.p({
type: "left",
size: "20"
}),
b: common_vendor.o((...args) => $options.goBack && $options.goBack(...args)),
c: common_vendor.t($data.orderDetail && $data.orderDetail.ordeNo ? $data.orderDetail.ordeNo : $data.orderId),
d: common_vendor.f($data.processSteps, (step, index, i0) => {
return {
a: step.icon,
b: common_vendor.t(step.text),
c: $data.currentStep === index + 1 ? 1 : "",
d: $data.currentStep === 0 && index === 1 ? 1 : "",
e: index,
f: $data.currentStep === 0 && index === 1 ? 1 : ""
};
}),
e: $data.currentStatus
}, $data.currentStatus ? common_vendor.e({
f: $data.currentStatus.icon,
g: $data.currentStep === 0
}, $data.currentStep === 0 ? {} : {
h: common_vendor.t($data.currentStatus.text)
}, {
i: common_vendor.t($data.currentStatus.time)
}) : {}, {
j: $data.currentStep === 0
}, $data.currentStep === 0 ? {} : {}, {
k: $data.currentStep !== 0 && $data.currentStep < 3
}, $data.currentStep !== 0 && $data.currentStep < 3 ? {
l: common_vendor.t($data.expressCompany),
m: common_vendor.t($data.expressNo),
n: common_vendor.o((...args) => $options.copyExpressNo && $options.copyExpressNo(...args))
} : {}, {
o: $data.currentStep !== 0 && $data.currentStep < 4
}, $data.currentStep !== 0 && $data.currentStep < 4 ? {} : {}, {
p: $data.currentStep !== 0 && $data.currentStep < 4
}, $data.currentStep !== 0 && $data.currentStep < 4 ? {
q: common_vendor.t($data.address),
r: common_vendor.o((...args) => $options.viewAddress && $options.viewAddress(...args)),
s: common_vendor.t($options.timeLabel),
t: common_vendor.t($data.appointmentTime)
} : {}, {
v: common_vendor.t($data.orderDetail && $data.orderDetail.ordeNo ? $data.orderDetail.ordeNo : $data.orderId),
w: $data.currentStep < 3
}, $data.currentStep < 3 ? {
x: common_vendor.t($data.estimatePrice)
} : $data.currentStep === 4 ? {
z: common_vendor.t($data.finalPrice),
A: common_vendor.t($data.finalPrice)
} : {}, {
y: $data.currentStep === 4,
B: common_vendor.f($data.clothesList, (item, index, i0) => {
return {
a: item.image,
b: common_vendor.t(item.name),
c: common_vendor.t(item.details),
d: common_vendor.t(item.onePrice),
e: common_vendor.t(item.num),
f: common_vendor.t(item.price),
g: index
};
}),
C: $data.currentStep === 4
}, $data.currentStep === 4 ? {
D: common_vendor.o((...args) => $options.viewReport && $options.viewReport(...args))
} : {}, {
E: $data.currentStep === 4
}, $data.currentStep === 4 ? {
F: common_vendor.t($data.address)
} : {}, {
G: $data.currentStatus.text === "【待取件】快递员正在赶来"
}, $data.currentStatus.text === "【待取件】快递员正在赶来" ? {
H: common_vendor.o(($event) => $data.showCancelModal = true),
I: common_vendor.o((...args) => $options.contactCourier && $options.contactCourier(...args))
} : {}, {
J: $data.showCancelModal
}, $data.showCancelModal ? {
K: common_vendor.o(($event) => $data.showCancelModal = false),
L: common_vendor.o((...args) => $options.confirmCancelOrder && $options.confirmCancelOrder(...args))
} : {});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-3c6ff866"]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/subcomponent/detail.js.map