richarjiang
58c6d2092a
fix(app): 修复课程管理待确认按钮文字颜色隐形问题
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-14 14:41:25 +08:00
richarjiang
d91282ecbd
fix: 修复身体画像约课阻断、页面响应式丢失及多项边界问题
...
- fix(booking): 修复未认领画像阻断约课问题,支持约课事务内自动认领绑定
- fix(app): 修复 Pinia 状态解构导致响应式失效,补齐 PortraitRadar 组件实例传参
- fix(admin): 修复经营助手复测待办点击 404,优化体验课后线索回访文案
- fix(server): 线下评估日期间隔按中国时区校验,复测按期次单项核销,优化单次评估分享卡与限流清理
- test: 补齐 body-portrait-offline 与 booking 来源画像单元测试
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 22:45:44 +08:00
richarjiang
ab6602e41d
feat: 新增个人身体画像评估与馆主经营助手
...
把 3 分钟身体状态评估做成独立获客链路,匿名测评后登录认领完整报告,并接入体验预约与今日待办。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-11 22:09:19 +08:00
richarjiang
806f3ee770
fix(server): preserve admin 'rest day' intent across cron runs
...
publishDaySlots used to DELETE the TimeSlot rows of a day that an admin
just 'cleared', which made the nightly slot-generation cron resurrect
the default schedule the next morning — a real production bug where
classes would reappear on a teacher's rest day.
Changes:
- publishDaySlots now CLOSEs (never DELETEs) orphaned rows, and materializes
the default template for days with no rows so an empty publish still
records intent. update on existing rows preserves their current status,
so re-publishing the page cannot silently reopen a CLOSED rest day.
- SlotGeneratorService.generateSlots pre-fetches dates that already have any
TimeSlot row and skips them, so the cron no longer overwrites admin-touched
days even when admin only set status without changing times.
- SlotGeneratorService.prunePastClosedSlots (new) deletes past CLOSED slots
with no bookings, scheduled nightly at 02:35, so the 'no DELETE' rule
above does not leak rows forever.
- schedule.vue surfaces the CLOSED state with a grey '已关闭' badge and
card style.
Tests: 12 new specs across time-slot.service.spec.ts (publishDaySlots
behaviour) and slot-generator.service.spec.ts (skip touched dates +
prune conditions). Full suite: 315 / 315 passing.
2026-09-10 22:32:32 +08:00
richarjiang
9af558286b
chore: 清理管理中心 fetchDashboardStats 与 GET /admin/stats 已无用的接口
2026-09-10 19:23:08 +08:00
richarjiang
99814f3720
refactor(app): 移除管理中心顶部统计卡,数据已在统计分析页提供
2026-09-10 19:22:44 +08:00
richarjiang
014685ed04
refactor(app): 管理中心列表改为纯文字入口并按业务重组分组
2026-09-10 19:22:18 +08:00
richarjiang
9f5608f13c
fix(app): 教学报告两张卡片合并为同一列表组,去掉四周圆角
2026-09-10 19:21:18 +08:00
richarjiang
3e049d2c1d
feat: 优化微信订阅消息体系并新增约课取消通知与开课前1小时提醒
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 16:20:13 +08:00
richarjiang
d32f592e54
fix(app): 修复预约页首次进入定位当前时段不生效
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 15:33:37 +08:00
richarjiang
d793749134
fix(app): 在确认手势内同步调起订阅,预约页首次进入定位到当前时段
...
微信要求授权框落在 tap 同步栈,先 await 会丢失弹层;订阅失败不再打断预约或支付。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-10 14:53:14 +08:00
richarjiang
57edd8dcc0
perf: 移除秒杀相关功能
2026-09-10 11:33:19 +08:00
richarjiang
51dea488f6
feat: 优化预定页面UI和交互
2026-09-10 11:00:13 +08:00
richarjiang
d941f1b6a9
perf: 优化进度条
2026-09-09 19:19:18 +08:00
richarjiang
139882d7a1
feat: 支持课后评价与成长档案
...
完成后即可评价并订阅提醒,馆主可记录体测、笔记与成长照片,首页展示匿名星级均分。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-09 15:55:48 +08:00
richarjiang
c3e46f7ffa
fix(teaching-schedule): 当日课表展示所有状态,并支持点入课程详情
...
- 后端 getTeachingScheduleByDate 在查询当天时不再以 PENDING/CONFIRMED 过滤 timeSlot
也不限制 include.bookings 的状态,但仍保留 EXISTS 守卫过滤空 slot
- 其他日期维持原「只看待上课」语义
- 抽出私有 formatLocalDate 工具方法,消除服务端 YYYY-MM-DD 构造的 3 处重复
- 前端 teaching-schedule 的 session 卡片可点击跳到 /pages/booking/detail?slotId=
- 补全 student__status--completed / --cancelled 样式
2026-09-09 14:51:06 +08:00
richarjiang
75ef5e94a6
refactor: 调整 admin 目录结构并精简个人中心快捷区
...
- 将 admin 相关的 store/utils 移入对应子目录(pages/admin/stores、pages/admin/utils)
- 更新 manifest.json、pages.json 路由与配置
- 个人中心 ProfileMenu 移除顶部「我的会员卡 / 我的预约」快捷卡片,与 UserCard 会员卡入口合并
- 「我的预约」下移至菜单列表,紧邻「个人信息」
- 清理 profile/index.vue 中不再使用的 bookingStore / 计算属性 / 透传
2026-09-09 14:36:34 +08:00
richarjiang
57107c02dc
perf: 优化个人中心会员卡进度展示
2026-09-09 11:27:03 +08:00
richarjiang
726c65f0f0
perf: 会员卡页面支持分享
2026-09-09 10:28:11 +08:00
richarjiang
f4cee127ce
feat: 优化个人中心邀请卡片
2026-09-09 10:10:52 +08:00
richarjiang
99c5c211ad
feat: 支持上课统计功能;优化会员管理默认筛选状态
2026-09-09 10:04:29 +08:00
richarjiang
30ebc1c344
feat: 支持邀请好友功能
2026-09-08 22:31:39 +08:00
richarjiang
5a4d2c7a1b
perf: 优化 预约详情 UI
2026-09-08 17:47:38 +08:00
richarjiang
8e2db3a74a
perf: 优化我的课程 UI
2026-09-08 17:31:26 +08:00
richarjiang
f54a12efbd
perf: 优化预订页面 UI
2026-09-08 16:35:18 +08:00
richarjiang
b937895bc9
perf: 优化会员卡购买页面
2026-09-08 15:52:34 +08:00
richarjiang
b4b3caac70
perf: 支持课程补录
2026-09-08 15:08:29 +08:00
richarjiang
d1f193e13e
feat: 优化首页、个人中心页面 UI
2026-09-08 14:20:43 +08:00
richarjiang
301f9ae385
feat: 优化页面 UI 以及支持个人中心 练习足迹
2026-09-08 11:26:46 +08:00
richarjiang
87d946adb5
fix: 修复月卡无法编辑次数的问题
2026-09-07 18:10:39 +08:00
richarjiang
86ad9ee64f
fix: 老师代约只允许已发布课表,去掉临时加开时段
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-07 17:21:19 +08:00
richarjiang
f5c7b7eaac
perf: 优化订阅刷新逻辑
2026-09-07 16:17:57 +08:00
richarjiang
88cd8419c8
feat: 支持同卡种续卡叠加并修复过期登录态
...
支付成功后将次数或有效期叠加到已有会员卡,首页与详情页引导续卡;接口 401 时同步清掉本地登录态。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-07 14:04:11 +08:00
richarjiang
801e2f47da
feat: 补充月卡退卡按次卡单价结算说明
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-06 20:23:51 +08:00
richarjiang
15d96c722b
feat: 调整默认排课节奏并限制时间选择
...
第一节 08:00-09:00,之后从 09:30 起每小时一节至 21:30;排课时间仅可选整点或半点。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-06 20:12:52 +08:00
richarjiang
bd3d519b4f
feat(app): 新增个人中心课表视图
2026-04-19 22:23:23 +08:00
richarjiang
9575210b06
feat: 支持分享邀请好友功能
2026-04-19 14:12:25 +08:00
richarjiang
b02f38dcc7
feat(card): add cover image support for card types
2026-04-15 23:50:12 +08:00
richarjiang
4dacd908a6
feat: 优化排课管理
2026-04-15 23:25:09 +08:00
richarjiang
6ab16f508a
feat: 支持画廊图片更新
2026-04-15 13:58:51 +08:00
richarjiang
7ce7cef77c
feat: UI 页面优化
2026-04-14 10:07:31 +08:00
richarjiang
497837c1d8
feat(app): refine teacher profile page content
2026-04-13 19:19:33 +08:00
richarjiang
f78cdcc9d1
feat: 添加教练详情页面及相关数据模型
2026-04-13 17:08:17 +08:00
richarjiang
1f45c3dc3f
perf: 个人中心支持展示约课数量
2026-04-12 22:27:36 +08:00
richarjiang
6cee28bf66
feat: 支持管理员消息推送
2026-04-12 22:18:34 +08:00
richarjiang
c60821c5ff
perf: 支持约课以及消息推送能力
2026-04-12 21:44:44 +08:00
richarjiang
9639f44698
fix: 修复订单管理功能
2026-04-12 18:16:18 +08:00
richarjiang
0810f71250
fix: 修复订单列表不能查看的问题
2026-04-10 23:07:56 +08:00
richarjiang
54104c16d2
perf: 支持教师、场馆介绍
2026-04-09 14:29:13 +08:00
richarjiang
74551085e3
feat: 支持秒杀活动
2026-04-09 10:24:44 +08:00