acdr-ui/dist/dev/mp-weixin/modules/pet/service/search.js
2024-10-01 09:15:35 +08:00

194 lines
6.8 KiB
JavaScript

"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);