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

336 lines
11 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 {
statusBarHeight: 0,
navBarContentHeight: 44,
tabBarHeight: 48,
navBarHeight: 44,
navBarRealHeight: 44,
tabs: [
{ label: "全部", value: -1 },
{ label: "已预约", value: 0 },
{ label: "待质检", value: 1 },
{ label: "已结款", value: 2 },
{ label: "已驳回", value: 3 }
],
currentTab: 0,
orderList: [],
searchMode: false,
searchText: "",
historyOrderMode: false,
pageNum: 1,
pageSize: 10,
hasMore: true,
isLoading: false,
userId: ""
};
},
onLoad(options) {
const sys = common_vendor.index.getSystemInfoSync();
this.statusBarHeight = sys.statusBarHeight;
this.$nextTick(() => {
common_vendor.index.createSelectorQuery().select(".nav-bar").boundingClientRect((rect) => {
if (rect) {
this.navBarRealHeight = rect.height;
}
}).exec();
});
if (options && options.historyOrder) {
this.historyOrderMode = true;
}
if (options && options.userId) {
this.userId = options.userId;
}
this.fetchOrderList();
},
computed: {
filteredOrders() {
if (this.searchText) {
const text = this.searchText.toLowerCase();
return this.orderList.filter(
(order) => order.orderNo && order.orderNo.toLowerCase().includes(text) || order.userName && order.userName.toLowerCase().includes(text) || order.phone && order.phone.toLowerCase().includes(text)
);
}
const tabValue = this.tabs[this.currentTab].value;
if (tabValue === -1)
return this.orderList;
if (tabValue === 0) {
return this.orderList.filter((order) => order.status == 1);
} else if (tabValue === 1) {
return this.orderList.filter((order) => order.status == 2);
} else if (tabValue === 2) {
return this.orderList.filter((order) => order.status == 3);
} else if (tabValue === 3) {
return this.orderList.filter((order) => order.status == 4);
}
return this.orderList;
}
},
methods: {
goBack() {
common_vendor.index.navigateBack();
},
onTabChange(idx) {
this.currentTab = idx;
this.pageNum = 1;
this.hasMore = true;
this.orderList = [];
this.fetchOrderList();
},
onSearchIconClick() {
this.searchMode = true;
this.$nextTick(() => {
this.$refs.searchInput && this.$refs.searchInput.focus();
});
},
onClearSearch() {
this.searchText = "";
},
onCancelSearch() {
this.searchText = "";
this.searchMode = false;
},
goToOrderDetail(order) {
common_vendor.index.navigateTo({
url: "/pages/manager/order-detail?id=" + order.id
});
},
refreshData() {
},
async onRefresh() {
await this.refreshData && this.refreshData();
},
fetchOrderList(isLoadMore = false) {
if (this.isLoading || !isLoadMore && !this.hasMore)
return;
this.isLoading = true;
const params = {
pageNum: this.pageNum,
pageSize: this.pageSize
};
if (this.userId) {
params.userId = this.userId;
}
this.$api && this.$api("getOrderList", params, (res) => {
if (res && res.code === 200 && res.result && res.result.records) {
const newOrders = res.result.records.map((order) => {
const statusInfo = this.getOrderStatusInfo(order.status, order.state);
return {
id: order.id,
orderNo: order.ordeNo,
userName: order.name,
phone: order.phone,
appointTime: order.goTime,
cancelTime: order.state === 3 ? order.updateTime : "",
qualityTime: order.status === 2 && order.state === 1 ? order.updateTime : "",
statusText: order.isBy === "Y" ? statusInfo.label : "不包邮",
statusClass: statusInfo.class,
statusLabel: statusInfo.label,
actions: this.getOrderActions(order.status, order.state),
status: this.getOrderStatus(order.status, order.state)
};
});
if (isLoadMore) {
this.orderList = [...this.orderList, ...newOrders];
} else {
this.orderList = newOrders;
}
this.hasMore = newOrders.length === this.pageSize;
this.pageNum = isLoadMore ? this.pageNum + 1 : 1;
}
this.isLoading = false;
});
},
getOrderStatusInfo(status, state) {
if (status === 1) {
return { label: "已预约", class: "green" };
} else if (state === 1) {
return { label: "待质检", class: "orange" };
} else if (status === 3) {
return { label: "已结款", class: "blue" };
} else if (status === 1 && state === 3) {
return { label: "已驳回", class: "red" };
}
return { label: "未知状态", class: "gray" };
},
getOrderStatus(status, state) {
if (status === 1)
return 1;
if (state === 1)
return 2;
if (status === 3)
return 3;
if (status === 1 && state === 3)
return 4;
return -1;
},
getOrderActions(status, state) {
const actions = [];
if (status === 2 && state === 1) {
actions.push({ icon: "undo", text: "驳回" });
actions.push({ icon: "person", text: "审批" });
}
return actions;
},
onLoadMore() {
if (this.hasMore && !this.isLoading) {
this.fetchOrderList(true);
}
},
scanCode() {
common_vendor.index.scanCode({
scanType: ["qrCode"],
success: (res) => {
common_vendor.index.__f__("log", "at pages/manager/order.vue:330", "扫码结果:", res);
if (res.result) {
common_vendor.index.navigateTo({
url: "/pages/manager/order-detail?id=" + res.result
});
}
},
fail: (err) => {
common_vendor.index.__f__("error", "at pages/manager/order.vue:340", "扫码失败:", err);
common_vendor.index.showToast({
title: "扫码失败",
icon: "none"
});
}
});
}
},
onPullDownRefresh() {
this.pageNum = 1;
this.hasMore = true;
this.orderList = [];
this.fetchOrderList();
common_vendor.index.stopPullDownRefresh();
},
onReachBottom() {
this.onLoadMore();
}
};
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.o($options.goBack),
b: common_vendor.p({
type: "left",
size: "24",
color: "#222"
}),
c: common_vendor.t($data.historyOrderMode ? "历史订单" : "订单管理"),
d: $data.statusBarHeight + "px",
e: $data.statusBarHeight + $data.navBarContentHeight + "px",
f: !$data.historyOrderMode
}, !$data.historyOrderMode ? {
g: common_vendor.f($data.tabs, (tab, idx, i0) => {
return {
a: common_vendor.t(tab.label),
b: tab.value,
c: common_vendor.n({
active: $data.currentTab === idx
}),
d: common_vendor.o(($event) => $options.onTabChange(idx), tab.value)
};
}),
h: $data.tabs.length * 20 + "%",
i: $data.navBarRealHeight + "px",
j: $data.tabBarHeight + "px"
} : {}, {
k: !$data.historyOrderMode
}, !$data.historyOrderMode ? common_vendor.e({
l: !$data.searchMode
}, !$data.searchMode ? {
m: common_vendor.o($options.onSearchIconClick),
n: common_vendor.p({
type: "search",
size: "22",
color: "#999"
}),
o: common_vendor.o($options.scanCode),
p: common_vendor.p({
type: "scan",
size: "22",
color: "#999"
})
} : common_vendor.e({
q: common_vendor.p({
type: "search",
size: "22",
color: "#999"
}),
r: $data.searchText,
s: common_vendor.o(($event) => $data.searchText = $event.detail.value),
t: $data.searchText
}, $data.searchText ? {
v: common_vendor.o($options.onClearSearch),
w: common_vendor.p({
type: "close",
size: "22",
color: "#ccc"
})
} : {}, {
x: common_vendor.o((...args) => $options.onCancelSearch && $options.onCancelSearch(...args))
}), {
y: $data.navBarRealHeight + $data.tabBarHeight + "px"
}) : {}, {
z: common_vendor.f($options.filteredOrders, (order, k0, i0) => {
return common_vendor.e({
a: common_vendor.t(order.orderNo),
b: order.statusText === "不包邮"
}, order.statusText === "不包邮" ? {
c: common_vendor.t(order.statusText)
} : {}, {
d: common_vendor.t(order.userName),
e: common_vendor.t(order.phone),
f: order.appointTime
}, order.appointTime ? {
g: common_vendor.t(order.appointTime)
} : {}, {
h: order.cancelTime
}, order.cancelTime ? {
i: common_vendor.t(order.cancelTime)
} : {}, {
j: order.qualityTime
}, order.qualityTime ? {
k: common_vendor.t(order.qualityTime)
} : {}, {
l: common_vendor.t(order.statusLabel),
m: common_vendor.n(order.statusClass),
n: order.actions && order.actions.length && !$data.historyOrderMode
}, order.actions && order.actions.length && !$data.historyOrderMode ? {
o: common_vendor.f(order.actions, (action, k1, i1) => {
return {
a: "33a4a1f0-5-" + i0 + "-" + i1,
b: common_vendor.p({
type: action.icon,
size: "28",
color: "#666"
}),
c: common_vendor.t(action.text),
d: action.text,
e: common_vendor.o(($event) => action.text === "审批" ? $options.goToOrderDetail(order) : null, action.text)
};
})
} : {}, {
p: order.id,
q: common_vendor.o(($event) => $options.goToOrderDetail(order), order.id)
});
}),
A: $data.navBarRealHeight + ($data.historyOrderMode ? 0 : $data.tabBarHeight + 16 + 40) + "px"
});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-33a4a1f0"]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/manager/order.js.map