"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 { tabs: [ { name: "全部", count: 0 }, { name: "进行中", count: 0 }, { name: "已完成", count: 0 } ], currentTab: 0, orderList: [], // 当前显示的订单列表 loading: false, page: 1, pageSize: 10, hasMore: true }; }, created() { this.fetchOrderList(); }, methods: { async fetchOrderList(isLoadMore = false) { this.loading = true; let statusArr = []; if (this.currentTab === 1) statusArr = [0, 1, 2]; else if (this.currentTab === 2) statusArr = [3]; else statusArr = []; let allOrders = []; if (statusArr.length === 0) { await new Promise((resolve) => { this.$api("getOrderListPage", { pageSize: this.pageSize, current: this.page }, (res) => { if (res && res.code === 200 && res.result && Array.isArray(res.result.records)) { allOrders = res.result.records; if (isLoadMore) { this.orderList = this.orderList.concat(allOrders); } else { this.orderList = allOrders; } this.hasMore = allOrders.length === this.pageSize; } resolve(); }); }); } else { for (let status of statusArr) { await new Promise((resolve) => { this.$api("getOrderListPage", { status, pageSize: this.pageSize, current: this.page }, (res) => { if (res && res.code === 200 && res.result && Array.isArray(res.result.records)) { allOrders = allOrders.concat(res.result.records); } resolve(); }); }); } const map = {}; allOrders = allOrders.filter((item) => { if (map[item.id]) return false; map[item.id] = 1; return true; }); if (isLoadMore) { this.orderList = this.orderList.concat(allOrders); } else { this.orderList = allOrders; } this.hasMore = allOrders.length === this.pageSize; } this.loading = false; }, switchTab(index) { if (this.currentTab === index) return; this.currentTab = index; this.page = 1; this.hasMore = true; this.orderList = []; this.fetchOrderList(); }, getOrderStatusText(order) { const { status, state } = order; if (state == 3) return "已取消"; if (status == 0) return "【在线预约】"; if (status == 1 && state == 0) return "【待取件】快递员正在赶来"; if (status == 1 && state == 1) return "【已取件】快递员正在送至质检"; if (status == 2 && state == 1) return "【质检中】质检员正在质检"; if (status == 3 && state == 1) return "【待结款】待平台确认结款项"; if (status == 3 && state == 2) return "【已结款】平台已结款至账户"; return ""; }, async onRefresh() { await new Promise((resolve) => setTimeout(resolve, 1e3)); common_vendor.index.stopPullRefresh(); }, goBack() { common_vendor.index.navigateBack(); }, showMore() { }, onShare() { }, viewAll() { this.switchTab(0); }, // 加载更多 loadMore() { if (this.loading || !this.hasMore) return; this.page++; this.fetchOrderList(true); }, goToDetail(order) { common_vendor.index.navigateTo({ url: `/pages/subcomponent/detail?id=${order.id}` }); } } }; if (!Array) { const _easycom_uni_icons2 = common_vendor.resolveComponent("uni-icons"); const _component_uni_loading = common_vendor.resolveComponent("uni-loading"); (_easycom_uni_icons2 + _component_uni_loading)(); } 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.f($data.tabs, (tab, index, i0) => { return common_vendor.e({ a: common_vendor.t(tab.name), b: tab.count > 0 }, tab.count > 0 ? { c: common_vendor.t(tab.count) } : {}, { d: index, e: $data.currentTab === index ? 1 : "", f: common_vendor.o(($event) => $options.switchTab(index), index) }); }), d: common_vendor.f($data.orderList, (order, k0, i0) => { return { a: common_vendor.t(order.ordeNo || order.id), b: order.image || "/static/回收/衣物.png", c: common_vendor.t(order.num || order.count || 1), d: common_vendor.t(order.onePrice || order.priceRange || 0), e: common_vendor.t(order.price || order.estimatePrice), f: order.statusIcon || "/static/my/【待取件】快递员正在赶来.png", g: common_vendor.t($options.getOrderStatusText(order)), h: common_vendor.t(order.goTime || order.statusTime), i: order.id, j: common_vendor.o(($event) => $options.goToDetail(order), order.id) }; }), e: $data.loading }, $data.loading ? { f: common_vendor.p({ color: "#ffac07", size: 40 }) } : !$data.hasMore && $data.orderList.length ? {} : {}, { g: !$data.hasMore && $data.orderList.length, h: common_vendor.o((...args) => $options.loadMore && $options.loadMore(...args)) }); } const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-e4b66be1"]]); wx.createPage(MiniProgramPage); //# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/subcomponent/order.js.map