爱简收旧衣按件回收前端代码仓库
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.
 
 
 
 

402 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 {
// 状态标签配置
statusTabs: [
{ label: "全部", value: "all" },
{ label: "已预约", value: "appointed" },
{ label: "待质检", value: "pending" },
{ label: "待结款", value: "waiting" },
{ label: "已驳回", value: "rejected" }
],
currentStatus: "all",
selectedTime: "",
searchActive: false,
searchKey: "",
showTimePickerModal: false,
timePickerStyle: {
top: 0
},
activeTimeType: "start",
startDate: {
year: "",
month: "",
day: ""
},
endDate: {
year: "",
month: "",
day: ""
},
orderList: [
{
orderId: "RE827381278615224",
userName: "周小艺",
phone: "138****1234",
time: "周四 11:00~13:00",
status: "appointed"
},
{
orderId: "RE827381278615226",
userName: "周小艺",
phone: "138****1234",
time: "2025-03-20 11:00",
status: "pending"
},
{
orderId: "RE827381278615225",
userName: "周小艺",
phone: "138****1234",
time: "2025-03-20 12:00",
status: "rejected"
},
{
orderId: "RE827381278615226",
userName: "周小艺",
phone: "138****1234",
time: "2025-03-20 12:00",
status: "waiting"
}
],
currentDateIndexes: [0, 0, 0],
// 当前选中的年月日索引
// 添加时间范围
timeRange: {
start: "",
end: ""
}
};
},
computed: {
// 年份选项
yearOptions() {
const years = [];
const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
for (let i = 0; i < 6; i++) {
years.push(currentYear + i);
}
return years;
},
// 月份选项
monthOptions() {
return Array.from({ length: 12 }, (_, i) => i + 1);
},
// 日期选项
dayOptions() {
return Array.from({ length: 31 }, (_, i) => i + 1);
},
// 过滤后的订单列表
filteredOrders() {
let result = this.orderList;
if (this.searchKey) {
const keyword = this.searchKey.toLowerCase();
result = result.filter((order) => {
return order.orderId.toLowerCase().includes(keyword) || order.userName.toLowerCase().includes(keyword);
});
}
if (this.currentStatus !== "all") {
result = result.filter((order) => order.status === this.currentStatus);
}
if (this.timeRange.start && this.timeRange.end) {
const startTime = new Date(this.timeRange.start).getTime();
const endTime = new Date(this.timeRange.end).getTime();
result = result.filter((order) => {
const orderTime = this.parseOrderTime(order.time);
return orderTime >= startTime && orderTime <= endTime;
});
}
return result;
}
},
methods: {
async onRefresh() {
await new Promise((resolve) => setTimeout(resolve, 1e3));
common_vendor.index.stopPullRefresh();
},
navigateBack() {
common_vendor.index.navigateBack();
},
// 切换状态
switchStatus(status) {
this.currentStatus = status;
},
// 显示时间选择器
showTimePicker() {
const query = common_vendor.index.createSelectorQuery().in(this);
query.select(".filter-item").boundingClientRect((rect) => {
if (rect) {
this.timePickerStyle = {
top: rect.bottom
};
}
this.showTimePickerModal = true;
this.activeTimeType = "start";
}).exec();
},
// 关闭时间选择器
closeTimePicker() {
this.showTimePickerModal = false;
},
// 切换时间类型
switchTimeType(type) {
this.activeTimeType = type;
const target = type === "start" ? this.startDate : this.endDate;
this.currentDateIndexes = [
this.yearOptions.indexOf(target.year) || 0,
this.monthOptions.indexOf(target.month) || 0,
this.dayOptions.indexOf(target.day) || 0
];
},
// 处理选择器变化
handlePickerChange(e) {
const values = e.detail.value;
const target = this.activeTimeType === "start" ? this.startDate : this.endDate;
target.year = this.yearOptions[values[0]];
target.month = this.monthOptions[values[1]];
target.day = this.dayOptions[values[2]];
this.currentDateIndexes = values;
},
// 重置时间选择
resetTimePicker() {
this.startDate = {
year: "",
month: "",
day: ""
};
this.endDate = {
year: "",
month: "",
day: ""
};
this.currentDateIndexes = [0, 0, 0];
this.activeTimeType = "start";
this.timeRange = {
start: "",
end: ""
};
this.selectedTime = "";
},
// 确认时间选择
confirmTimePicker() {
if (!this.startDate.year || !this.startDate.month || !this.startDate.day) {
common_vendor.index.showToast({
title: "请选择完整的开始时间",
icon: "none"
});
return;
}
if (!this.endDate.year || !this.endDate.month || !this.endDate.day) {
common_vendor.index.showToast({
title: "请选择完整的结束时间",
icon: "none"
});
return;
}
const startTime = new Date(this.startDate.year, this.startDate.month - 1, this.startDate.day);
const endTime = new Date(this.endDate.year, this.endDate.month - 1, this.endDate.day);
if (startTime > endTime) {
common_vendor.index.showToast({
title: "开始时间不能大于结束时间",
icon: "none"
});
return;
}
const start = `${this.startDate.year}${this.startDate.month}${this.startDate.day}`;
const end = `${this.endDate.year}${this.endDate.month}${this.endDate.day}`;
this.selectedTime = `${start} - ${end}`;
this.timeRange = {
start: `${this.startDate.year}-${this.startDate.month}-${this.startDate.day}`,
end: `${this.endDate.year}-${this.endDate.month}-${this.endDate.day}`
};
this.showTimePickerModal = false;
},
// 搜索处理
handleSearch() {
},
// 加载更多
loadMore() {
},
// 获取状态文本
getStatusText(status) {
const statusMap = {
appointed: "已预约",
pending: "待质检",
waiting: "待结款",
rejected: "已驳回"
};
return statusMap[status] || status;
},
// 处理驳回
handleReject(order) {
common_vendor.index.showModal({
title: "提示",
content: "确定要驳回该订单吗?",
success: (res) => {
if (res.confirm)
;
}
});
},
// 处理审批
handleApprove(order) {
common_vendor.index.showModal({
title: "提示",
content: "确定要审批通过该订单吗?",
success: (res) => {
if (res.confirm)
;
}
});
},
// 解析订单时间字符串为时间戳
parseOrderTime(timeStr) {
if (timeStr.includes("周")) {
return (/* @__PURE__ */ new Date()).getTime();
}
return new Date(timeStr).getTime();
}
}
};
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.navigateBack && $options.navigateBack(...args)),
c: common_vendor.f($data.statusTabs, (tab, index, i0) => {
return {
a: common_vendor.t(tab.label),
b: index,
c: $data.currentStatus === tab.value ? 1 : "",
d: common_vendor.o(($event) => $options.switchStatus(tab.value), index)
};
}),
d: common_vendor.t($data.selectedTime || "处理时间"),
e: $data.showTimePickerModal || $data.selectedTime ? 1 : "",
f: common_vendor.p({
type: $data.showTimePickerModal ? "up" : "down",
size: "14",
color: $data.showTimePickerModal || $data.selectedTime ? "#00C853" : "#666"
}),
g: common_vendor.o((...args) => $options.showTimePicker && $options.showTimePicker(...args)),
h: $data.searchActive
}, $data.searchActive ? common_vendor.e({
i: common_vendor.p({
type: "search",
size: "16",
color: "#999"
}),
j: $data.searchKey,
k: common_vendor.o(($event) => $data.searchKey = $event.detail.value),
l: $data.searchKey
}, $data.searchKey ? {
m: common_vendor.o(($event) => $data.searchKey = ""),
n: common_vendor.p({
type: "clear",
size: "16",
color: "#bbb"
})
} : {}, {
o: common_vendor.o(($event) => {
$data.searchActive = false;
$data.searchKey = "";
}),
p: $data.searchActive ? 1 : ""
}) : {
q: common_vendor.p({
type: "search",
size: "20",
color: "#999"
}),
r: common_vendor.o(($event) => $data.searchActive = true)
}, {
s: $data.showTimePickerModal
}, $data.showTimePickerModal ? common_vendor.e({
t: $data.activeTimeType === "start"
}, $data.activeTimeType === "start" ? {} : {}, {
v: $data.activeTimeType === "start" ? 1 : "",
w: common_vendor.o(($event) => $options.switchTimeType("start")),
x: $data.activeTimeType === "end"
}, $data.activeTimeType === "end" ? {} : {}, {
y: $data.activeTimeType === "end" ? 1 : "",
z: common_vendor.o(($event) => $options.switchTimeType("end")),
A: common_vendor.f($options.yearOptions, (year, k0, i0) => {
return {
a: common_vendor.t(year),
b: year
};
}),
B: common_vendor.f($options.monthOptions, (month, k0, i0) => {
return {
a: common_vendor.t(month),
b: month
};
}),
C: common_vendor.f($options.dayOptions, (day, k0, i0) => {
return {
a: common_vendor.t(day),
b: day
};
}),
D: $data.currentDateIndexes,
E: common_vendor.o((...args) => $options.handlePickerChange && $options.handlePickerChange(...args)),
F: common_vendor.o((...args) => $options.resetTimePicker && $options.resetTimePicker(...args)),
G: common_vendor.o((...args) => $options.confirmTimePicker && $options.confirmTimePicker(...args)),
H: $data.timePickerStyle.top + "px",
I: common_vendor.o(() => {
}),
J: common_vendor.o((...args) => $options.closeTimePicker && $options.closeTimePicker(...args)),
K: common_vendor.o(() => {
})
}) : {}, {
L: common_vendor.f($options.filteredOrders, (order, index, i0) => {
return common_vendor.e({
a: common_vendor.t(order.orderId),
b: common_vendor.t($options.getStatusText(order.status)),
c: common_vendor.n(order.status),
d: common_vendor.t(order.userName),
e: common_vendor.t(order.phone),
f: common_vendor.t(order.status === "appointed" ? "预约时间:" : "取件时间:"),
g: common_vendor.t(order.time),
h: order.status === "pending"
}, order.status === "pending" ? {
i: "b419a402-5-" + i0,
j: common_vendor.p({
type: "undo",
size: "16",
color: "#666"
}),
k: common_vendor.o(($event) => $options.handleReject(order), index)
} : {}, {
l: order.status === "pending"
}, order.status === "pending" ? {
m: "b419a402-6-" + i0,
n: common_vendor.p({
type: "checkmarkempty",
size: "16",
color: "#00C853"
}),
o: common_vendor.o(($event) => $options.handleApprove(order), index)
} : {}, {
p: index
});
}),
M: common_vendor.o((...args) => $options.loadMore && $options.loadMore(...args))
});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-b419a402"]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/subcomponent/orders.js.map