"use strict"; var __async = (__this, __arguments, generator) => { return new Promise((resolve, reject) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e) { reject(e); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e) { reject(e); } }; var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; const common_vendor = require("../../../common/vendor.js"); const utils_http = require("../../../utils/http.js"); const utils_commUtils = require("../../../utils/commUtils.js"); if (!Array) { const _easycom_wd_icon2 = common_vendor.resolveComponent("wd-icon"); const _easycom_wd_loadmore2 = common_vendor.resolveComponent("wd-loadmore"); const _component_layout_default_uni = common_vendor.resolveComponent("layout-default-uni"); (_easycom_wd_icon2 + _easycom_wd_loadmore2 + _component_layout_default_uni)(); } const _easycom_wd_icon = () => "../../../node-modules/wot-design-uni/components/wd-icon/wd-icon.js"; const _easycom_wd_loadmore = () => "../../../node-modules/wot-design-uni/components/wd-loadmore/wd-loadmore.js"; if (!Math) { (_easycom_wd_icon + PetSitterCard + _easycom_wd_loadmore + EmptyState)(); } const PetSitterCard = () => "../../../components/PetSitterCard.js"; const EmptyState = () => "../../../components/EmptyState.js"; const _sfc_main = { __name: "search", setup(__props) { const searchTerm = common_vendor.ref(""); const priceSortAsc = common_vendor.ref(true); const petSitters = common_vendor.ref([]); const page = common_vendor.ref(1); const loading = common_vendor.ref(false); const noMoreData = common_vendor.ref(false); const serviceTypes = common_vendor.ref([ { name: "interaction", label: "宠物互动", icon: "@/static/home/book.png" }, { name: "nanny", label: "宠物月嫂", icon: "@/static/home/pb.png" }, { name: "canteen", label: "宠物美容", icon: "@/static/home/yl.png" }, { name: "training", label: "社交教培", icon: "@/static/home/mr.png" }, { name: "cleaning", label: "宠物清洁", icon: "@/static/home/yl.png" } ]); const selectedService = common_vendor.ref(serviceTypes.value[0].label); const sortField = common_vendor.ref(""); const sortOrder = common_vendor.ref(""); const fetchPetSitters = () => __async(this, null, function* () { if (loading.value) return; loading.value = true; try { const response = yield utils_http.httpPost( "/personal-service/list", { current: page.value, size: 10, data: { serviceName: searchTerm.value, type: selectedService.value } }, { sortField: sortField.value, sortOrder: sortOrder.value } ); if (response.code === 200) { if (page.value === 1) { petSitters.value = response.records; } else { petSitters.value = [...petSitters.value, ...response.records]; } if (response.records.length < 10) { noMoreData.value = true; } } else { console.error("获取宠托师数据失败", response.message); } } catch (error) { console.error("获取宠托师数据失败", error); } finally { loading.value = false; } }); const loadMore = () => __async(this, null, function* () { if (!noMoreData.value) { page.value += 1; fetchPetSitters(); } }); const sortByPrice = () => __async(this, null, function* () { priceSortAsc.value = !priceSortAsc.value; sortField.value = "price"; sortOrder.value = priceSortAsc.value ? "asc" : "desc"; page.value = 1; noMoreData.value = false; yield fetchPetSitters(); }); const sortByLatest = () => __async(this, null, function* () { sortField.value = "createTime"; sortOrder.value = "desc"; page.value = 1; noMoreData.value = false; yield fetchPetSitters(); }); const sortByDistance = () => { }; const filterByService = (serviceName) => __async(this, null, function* () { selectedService.value = serviceName; page.value = 1; noMoreData.value = false; fetchPetSitters(); }); const onSearch = () => { page.value = 1; noMoreData.value = false; fetchPetSitters(); }; common_vendor.onLoad(() => { fetchPetSitters(); }); return (_ctx, _cache) => { return common_vendor.e({ a: common_vendor.p({ name: "search", size: "40" }), b: common_vendor.o([($event) => searchTerm.value = $event.detail.value, onSearch]), c: searchTerm.value, d: common_vendor.o(sortByDistance), e: common_vendor.p({ name: _ctx.priceSortIcon, size: "20" }), f: common_vendor.o(sortByPrice), g: common_vendor.o(sortByLatest), h: common_vendor.p({ name: "arrow-down", size: "20" }), i: common_vendor.f(serviceTypes.value, (serviceType, k0, i0) => { return { a: common_vendor.n(selectedService.value === serviceType.label ? "text-white" : "text-gray-500"), b: "c9825cf8-4-" + i0 + ",c9825cf8-0", c: common_vendor.p({ name: common_vendor.unref(utils_commUtils.imgUrl)(serviceType.icon), size: 48 }), d: common_vendor.n(selectedService.value === serviceType.name ? "bg-_a__a_ffc107_a_" : "bg-gray-200"), e: common_vendor.t(serviceType.label), f: common_vendor.n(selectedService.value === serviceType.label ? "text-_a__a_ffc107_a_" : "text-gray-500"), g: serviceType.name, h: common_vendor.o(($event) => filterByService(serviceType.label), serviceType.name) }; }), j: petSitters.value.length > 0 }, petSitters.value.length > 0 ? { k: common_vendor.f(petSitters.value, (petSitter, index, i0) => { return { a: "c9825cf8-5-" + i0 + ",c9825cf8-0", b: common_vendor.p({ petSitter }), c: index }; }), l: common_vendor.o(loadMore), m: common_vendor.p({ loading: loading.value, finished: noMoreData.value, ["finished-text"]: "没有更多数据了" }) } : { n: common_vendor.p({ type: "search", message: "暂无相关服务" }) }); }; } }; const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-c9825cf8"]]); wx.createPage(MiniProgramPage);