课后报名小程序 --- 从需求到原型的全栈实践
一个面向教培机构的课程报名与教务管理平台,覆盖家长端 + 管理后台,基于 Vue 3 构建。
项目背景
课外培训行业长期面临几个痛点:家长报名流程繁琐、机构排课靠人工表格、财务对账效率低下。课后报名小程序正是为了解决这些问题而设计的一站式平台,目标是打通"课程浏览 → 在线报名 → 支付 → 排课 → 考勤 → 退款"的完整业务闭环。
适用场景包括:K12 学科辅导、艺术兴趣班、体育训练营、编程启蒙课等各类课外教育机构。
技术选型
| 层级 | 技术栈 |
|---|---|
| 前端框架 | Vue 3 + Composition API |
| 路由 | Vue Router 4 |
| 状态管理 | Pinia |
| 构建工具 | Vite |
| UI 风格 | 自定义 CSS 变量体系,移动端优先 |
| 目标平台 | 微信小程序 / H5 / App(UniApp 可扩展) |
功能全景
家长端(移动端)
家长端采用底部 Tab 导航,包含 5 个主入口和多个二级页面。
1. 登录页
支持微信一键登录和手机号登录两种方式,底部提供管理员入口。

2. 首页
展示课程分类入口(艺术、体育、编程、音乐)、热门推荐和最新课程列表。

3. 课程浏览与详情
课程列表支持分类筛选,课程详情页包含价格、教师介绍、课程大纲、学员评价等完整信息,底部提供收藏、咨询、报名三个操作按钮。


4. 报名与支付
确认报名页支持选择学员、查看优惠券、确认支付金额。支付完成后展示结果页,可直接查看课表或返回首页。

5. 课表
日历视图展示每月课程安排,点击日期切换当天课程列表,有课的日期标注蓝色圆点。

6. 消息中心
按类型展示系统通知、上课提醒、退款进度等消息,支持未读红点标记。

7. 个人中心
包含订单管理、学员管理、课时记录、优惠券、收藏课程、意见反馈、设置等功能入口。

8. 订单管理
订单列表支持按状态筛选(全部/待支付/已完成/已退款),订单详情页展示课程信息、支付信息和课时进度。


9. 学员管理
支持查看已绑定学员信息、添加新学员(每个账号最多 5 位)。

10. 更多功能页
- 优惠券:分"可使用/已使用/已过期"三栏展示
- 收藏课程:支持取消收藏,点击跳转课程详情
- 意见反馈:选择反馈类型 + 文字描述 + 联系方式
- 设置:账号管理、通知开关、隐私政策、关于我们


管理后台(PC 端)
管理后台采用左侧边栏导航,支持多机构切换,包含 8 个功能模块。
1. 数据看板
展示核心运营指标:今日报名数、本月营收、活跃学员数、待处理退款。下方提供报名趋势图和营收统计图。

2. 课程管理
课程列表支持搜索、分类筛选、状态筛选,提供新增课程、编辑、发布/下架等操作。

3. 排课管理
周视图展示教室 × 时间的排课网格,支持按教师和教室筛选,可新增排课并自动检测冲突。

4. 学员管理
学员列表展示在读课程数、剩余课时、出勤率等关键数据,课时不足自动标红预警,支持搜索和导出名单。

5. 退款审批
分"待审批/已通过/已拒绝"三栏管理退款申请,支持一键通过或填写拒绝原因。

6. 财务报表
按日/月/年维度展示收入、退款、净收入等财务数据,支持自定义日期范围和 Excel 导出。

7. 机构管理
支持多校区/多机构管理,可新增、编辑、启用/停用机构,侧边栏顶部实时切换当前机构。

8. 权限管理
基于 RBAC 模型的角色权限矩阵,支持自定义角色和细粒度权限配置。

项目结构
frontend/src/
├── router/index.js # 路由配置(30 条路由)
├── stores/app.js # Pinia 全局状态
├── components/CourseCard.vue # 可复用课程卡片
├── pages/
│ ├── LoginPage.vue # 登录
│ ├── MainLayout.vue # Tab 布局容器
│ ├── HomePage.vue # 首页
│ ├── CoursesPage.vue # 课程列表
│ ├── CourseDetailPage.vue # 课程详情
│ ├── ConfirmPage.vue # 确认报名
│ ├── PayResultPage.vue # 支付结果
│ ├── SchedulePage.vue # 课表
│ ├── MessagesPage.vue # 消息中心
│ ├── MyPage.vue # 个人中心
│ ├── OrdersPage.vue # 订单列表
│ ├── OrderDetailPage.vue # 订单详情
│ ├── StudentsPage.vue # 学员管理
│ ├── AttendancePage.vue # 课时记录
│ ├── RefundPage.vue # 退款申请
│ ├── CouponsPage.vue # 优惠券
│ ├── FavoritesPage.vue # 收藏课程
│ ├── FeedbackPage.vue # 意见反馈
│ ├── SettingsPage.vue # 设置
│ └── admin/
│ ├── AdminLayout.vue # 管理后台布局
│ ├── DashboardPage.vue # 数据看板
│ ├── CourseMgmtPage.vue # 课程管理
│ ├── SchedulingPage.vue # 排课管理
│ ├── StudentsMgmtPage.vue # 学员管理
│ ├── RefundReviewPage.vue # 退款审批
│ ├── FinancePage.vue # 财务报表
│ ├── OrgMgmtPage.vue # 机构管理
│ └── RoleMgmtPage.vue # 权限管理
设计亮点
移动端体验优先:家长端全部页面按 375px 宽度设计,圆角卡片 + 渐变色彩 + 底部弹窗交互,贴合微信小程序的使用习惯。
CSS 变量体系 :全局定义 --blue、--green、--red 等语义化颜色变量,一处修改全局生效,方便后续品牌定制。
前后端分离架构:前端使用 Pinia 管理 Mock 数据,所有页面预留 API 接口调用位置,后端就绪后可无缝切换。
完整的交互反馈:每个按钮都有明确的点击响应 --- 弹窗确认、Toast 提示、状态切换、页面跳转,没有"死按钮"。
在线体验
访问地址:https://srcs.hei-ai.com/256.html
- 家长端:打开首页即可浏览
- 管理后台:登录页底部点击"管理员入口"进入
本项目为教培行业数字化转型的一次实践探索,欢迎交流讨论。