Files
test/pages/category/index.js
lingxiao865 6c6fe3d0d6 first commit
2025-09-18 12:39:54 +08:00

237 lines
5.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// pages/category/index.js
Page({
/**
* 页面的初始数据
*/
data: {
// 当前选中的分类
activeCategory: 0,
// 分类列表
categories: [
{ id: 0, name: '全部' },
{ id: 1, name: '面部护理' },
{ id: 2, name: '身体按摩' },
{ id: 3, name: '美甲服务' },
{ id: 4, name: '美发造型' },
{ id: 5, name: '眼部护理' },
{ id: 6, name: '身体护理' },
{ id: 7, name: '特色项目' }
],
// 服务列表
serviceList: [
// 面部护理
{
id: 101,
categoryId: 1,
name: '深层清洁面部护理',
desc: '去除老化角质,深层清洁毛孔',
price: 298,
originalPrice: 398,
image: 'https://img.yzcdn.cn/vant/cat.jpeg',
sales: 256
},
{
id: 102,
categoryId: 1,
name: '补水保湿面膜',
desc: '深层补水,改善干燥缺水',
price: 198,
originalPrice: 258,
image: 'https://img.yzcdn.cn/vant/cat.jpeg',
sales: 312
},
{
id: 103,
categoryId: 1,
name: '美白淡斑护理',
desc: '改善肤色不均,淡化色斑',
price: 358,
originalPrice: 458,
image: 'https://img.yzcdn.cn/vant/cat.jpeg',
sales: 186
},
// 身体按摩
{
id: 201,
categoryId: 2,
name: '精油SPA按摩',
desc: '舒缓压力,放松身心',
price: 398,
originalPrice: 498,
image: 'https://img.yzcdn.cn/vant/cat.jpeg',
sales: 198
},
{
id: 202,
categoryId: 2,
name: '中式推拿',
desc: '疏通经络,缓解疲劳',
price: 328,
originalPrice: 428,
image: 'https://img.yzcdn.cn/vant/cat.jpeg',
sales: 156
},
// 美甲服务
{
id: 301,
categoryId: 3,
name: '日式美甲套餐',
desc: '多款式选择,持久显色',
price: 158,
originalPrice: 258,
image: 'https://img.yzcdn.cn/vant/cat.jpeg',
sales: 312
},
{
id: 302,
categoryId: 3,
name: '手部护理+美甲',
desc: '滋润双手,美甲造型',
price: 218,
originalPrice: 298,
image: 'https://img.yzcdn.cn/vant/cat.jpeg',
sales: 178
},
// 美发造型
{
id: 401,
categoryId: 4,
name: '剪发+造型',
desc: '专业设计,打造个性发型',
price: 128,
originalPrice: 168,
image: 'https://img.yzcdn.cn/vant/cat.jpeg',
sales: 345
},
{
id: 402,
categoryId: 4,
name: '烫发套餐',
desc: '时尚卷发,塑造立体感',
price: 598,
originalPrice: 698,
image: 'https://img.yzcdn.cn/vant/cat.jpeg',
sales: 132
}
],
// 当前显示的服务列表
currentServices: []
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
// 如果有传入的分类ID则设置为当前选中分类
if (options && options.categoryId) {
this.setData({
activeCategory: parseInt(options.categoryId)
});
}
// 初始化服务列表
this.filterServices();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
if (typeof this.getTabBar === 'function' && this.getTabBar()) {
this.getTabBar().init();
}
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
},
/**
* 切换分类
*/
switchCategory(e) {
const categoryId = e.currentTarget.dataset.id;
this.setData({
activeCategory: categoryId
});
// 过滤服务列表
this.filterServices();
},
/**
* 根据当前选中的分类过滤服务列表
*/
filterServices() {
const { activeCategory, serviceList } = this.data;
// 如果是"全部"分类,则显示所有服务
if (activeCategory === 0) {
this.setData({
currentServices: serviceList
});
return;
}
// 否则根据分类ID过滤服务
const filteredServices = serviceList.filter(service => service.categoryId === activeCategory);
this.setData({
currentServices: filteredServices
});
},
/**
* 跳转到服务详情页
*/
goToServiceDetail(e) {
const serviceId = e.currentTarget.dataset.id;
wx.navigateTo({
url: `/pages/appointment/index?serviceId=${serviceId}`
});
}
})