【教培管家】小程序实战(五):体验课预约——从流量到转化的闭环
目录⏳ 前情回顾 本节目标第一步数据建模——预约表 (Bookings)第二步页面变量与数据准备第三步搭建“课包信息展示”区域第四步搭建“学员选择”区域第五步搭建“排课选择”区域 (横向日历列表)5.1 数据准备5.2 搭建横向日历 UI最终效果 总结与预告⏳ 前情回顾在上一讲中我们完成了“首页整体装修”通过精美的卡片展示了体验课套餐。当家长被课程吸引并点击“立即预约”时我们需要一套完整的流程来引导他们完成学员选择、时段确认、在线支付。 本节目标预约建模创建Bookings表打通家长、学员、课包、排课与支付的关联。变量驱动UI使用页面变量控制学员选中、日期筛选及排课选中状态。复杂交互搭建实现课包信息展示、横向滚动的学员选择器与日历联动的排课列表。第一步数据建模——预约表 (Bookings)预约表是连接家长、孩子、课程和资金的核心纽带。我们需要记录“谁家长给谁孩子买了什么课课包排课付了多少钱”。创建数据源Bookings(预约表)字段名称字段标识类型说明关联课包course_package_id关联关系关联CoursePackage表记录购买的套餐关联排课schedule_id关联关系关联Schedule表锁定具体上课时间关联学员child_id关联关系关联Children表记录上课学员关联家长parent_id关联关系关联Parents表记录支付人预约编号bookingNo文本唯一订单号规则ORD时间戳随机数支付金额amount数字实际支付金额单位元支付状态payStatus枚举1: 待支付,2: 已支付,3: 已取消微信单号transaction_id文本微信支付回调返回的流水号 设计思考为什么既要关联Schedule又要关联CoursePackageCoursePackage决定了商品属性如价格、课时数而Schedule决定了服务履约的具体时间。第二步页面变量与数据准备为了实现我们预约页面的多步选择我们需要先创建变量保存用户的选择。点击创建页面的图标创建预约页面选中页面组件我们创建一个URL参数用来接收从首页传递过来的课程ID在代码区点击新建创建课包详情变量courseInfo类型选择内置数据表查询数据模型选择套餐表方法选择查询单条查询条件设置为数据标识等于我们的URL参数继续创建变量选中日期selectedDate类型选择数字存储用户选择的上课日期用于筛选排课列表。继续创建变量选中排课记录selectedScheduleId用于存储用户选中的排课记录 ID。继续创建变量上课学员IDselectedChildId用于存储当前选中的上课学员 ID。第三步搭建“课包信息展示”区域这是页面的第一部分让家长确认自己正在购买什么产品。首先给页面添加一个普通容器设置页面的背景色:root{min-height: 100vh;background-color:#F7F8FA;padding-bottom: 96px;}然后在第一行的列里搭建我们的卡片布局总体上是用普通容器结合图片和文本组件进行搭建设置外层的普通容器的布局为横向排列然后给图片绑定字段从我们的courseInfo里绑定最终效果第四步搭建“学员选择”区域拖入一个普通容器里边添加普通容器放置图标和文本组件搭建标题继续添加普通容器里边添加循环展示组件循环展示组件里我们搭建头像和姓名布局然后给循环展示绑定孩子列表数据接着我们给外层的普通容器绑定样式当选中的时候给一个蓝色的边框$w.item_repeater1._id$w.page.dataset.state.selectedChildId?{border:2px solid #2563EB}:{}给容器设置点击事件选中的时候给我们的变量进行赋值第五步搭建“排课选择”区域 (横向日历列表)这里我们将抛弃传统的日期选择器采用更直观的横向日历切换支持展示未来 15 天的排课信息。5.1 数据准备我们需要构建一个包含日期、星期、选中状态的数组。先创建一个calendarList的变量类型选择数组在代码区新建一个自定义方法initCalendar用于生成未来 15 天的数据。exportdefaultfunction({event,data}){constdays[];constweekMap[周日,周一,周二,周三,周四,周五,周六];for(leti0;i15;i){constdnewDate();d.setDate(d.getDate()i);d.setHours(0,0,0,0);constmonthd.getMonth()1;constdated.getDate();constdateStr${d.getFullYear()}-${String(month).padStart(2,0)}-${String(date).padStart(2,0)};days.push({id:i,date:dateStr,// 完整日期用于查询label:i0?今日:weekMap[d.getDay()],// 显示文本value:d.getTime(),// 毫秒值用于某些日期组件的绑定或计算displayDate:${month}-${date},// 显示日期select:i0// 默认选中第一天});}// 1. 更新日历数据$w.page.dataset.state.calendarListdays;// 2. 设置默认选中日期$w.page.dataset.state.selectedDatedays[0].date;}方法创建好之后在页面的onShow事件中调用即可5.2 搭建横向日历 UI横向滚动的效果要靠滚动容器来实现先添加滚动容器设置横向滚动设置宽为340px滚动容器里添加普通容器布局设置为横向排列继续添加循环展示组件数据绑定为我们的日期列表里边添加文本组件绑定我们的日期具体的样式绑定和事件设置和我们第四部分是一样的就不再赘述最终效果打开首页点击立即预约在打开的页面选择孩子、预约日期 总结与预告本节我们通过变量状态管理和数据联动实现了孩子选择和日期选定。下一篇我们继续讲解预约页面根据选择的日期来筛选排课供用户进行预约。

相关新闻

空调集中管理控制系统解决方案:全域管控,节能调度智慧运维

空调集中管理控制系统解决方案:全域管控,节能调度智慧运维

空调集中管理控制系统,是针对多台、多区域空调(中央空调、多联机、分体机等),通过物联网/网络集中平台,实现统一监控、智能控制、节能调度、远程运维的整体解决方案,替代人工逐台操作,把分散空调变成可管、可控、可节能…

2026/7/3 18:12:59 阅读更多 →
你写得越规范,系统越不信你是人?百考通「降重+降AI」,专治“好论文被算法冤枉”

你写得越规范,系统越不信你是人?百考通「降重+降AI」,专治“好论文被算法冤枉”

你有没有过这种荒诞又心累的体验? 论文从选题到结论,全程自己动手:查文献、列提纲、反复修改逻辑,连脚注格式都校对三遍。结果一查重——35%;再用学校指定的AI检测工具一跑,系统冷冷弹出:“高度…

2026/7/3 2:19:10 阅读更多 →
小白也能上手,2026年OpenClaw(Clawdbot)极速简易部署方案

小白也能上手,2026年OpenClaw(Clawdbot)极速简易部署方案

OpenClaw是什么?OpenClaw怎么样?小白也能上手,2026年OpenClaw极速简易部署方案,OpenClaw(Clawdbot)是什么?OpenClaw(原Clawdbot/Moltbot)是一个开源的AI智能体平台&#…

2026/7/3 9:34:33 阅读更多 →

最新新闻

大模型能力边界:为什么它适合当守门员却不胜任中场核心

大模型能力边界:为什么它适合当守门员却不胜任中场核心

1. 项目概述:一场用足球隐喻解构大模型能力边界的实验“如果让大模型踢苏超,DeepSeek只能当守门员”——这个标题一出来,我手里的咖啡杯差点没拿稳。不是因为荒诞,恰恰是因为太准。它像一把手术刀,精准切开了当前大语言…

2026/7/3 18:12:11 阅读更多 →
LAMMPS-8卡GPU测试环境搭建

LAMMPS-8卡GPU测试环境搭建

说明该环境是基于 Ubuntu 22.04.5 系统,主要内容是LAMMPS基本环境的搭建①编译测试包是我个人经验,可能有许多缺陷,并不能完全符合实际物理需求(也希望大大们多指点一下)②本文章并没有输入文件的内容,因为…

2026/7/3 18:10:11 阅读更多 →
SnapLogic 推出 MCP Builder:无需代码,加速企业 AI 应用落地!

SnapLogic 推出 MCP Builder:无需代码,加速企业 AI 应用落地!

MCP Builder:加速 AI 落地的利器 SnapLogic 宣布 MCP Builder 已在其平台全面推出。这是一款基于模板的工具,能将现有的集成管道转化为支持代理的模型上下文协议(MCP)服务器,助力企业更快地将 AI 投入实际应用。 直击痛…

2026/7/3 18:10:11 阅读更多 →
Agent Runtime 正在 commoditize:从 Session 事件日志到托管式智能体运行时

Agent Runtime 正在 commoditize:从 Session 事件日志到托管式智能体运行时

1. 这不是新赛道,而是 runtime 层的“操作系统时刻”正在重演你打开手机看到新闻标题《Anthropic Just Shipped the Layer That’s Already Going to Zero》,第一反应可能是:又一个大模型公司搞出了什么黑科技?但如果你真花十分钟…

2026/7/3 18:08:10 阅读更多 →
实训项目完整文档|SpringBoot+MySQL 图书管理系统项目说明

实训项目完整文档|SpringBoot+MySQL 图书管理系统项目说明

文章标签#SpringBoot 图书管理系统 #Java 实训项目 #图书管理系统文档 #前后端交互项目 #MySQL 数据库设计正文一、前言本次分享一套完整可直接上交实训作业的图书管理系统项目说明书,项目基于 Java SpringBoot MySQL8.0 HTML/CSS/JS 开发,是高校计算机…

2026/7/3 18:08:10 阅读更多 →
MC74HC165A与PIC18LF26K80的SPI扩展输入方案

MC74HC165A与PIC18LF26K80的SPI扩展输入方案

1. 为什么需要MC74HC165A与PIC18LF26K80的组合在工业控制和嵌入式系统中,我们经常遇到需要监控大量开关量输入的场景。传统做法是为每个开关分配一个GPIO引脚,当系统需要监测32个甚至64个开关状态时,这种方案会迅速耗尽微控制器的引脚资源。我…

2026/7/3 18:08:10 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻