richarjiang
d941f1b6a9
perf: 优化进度条
2026-09-09 19:19:18 +08:00
richarjiang
6fab1155c7
fix: 防止成长档案编辑弹窗被误关
...
微信端点击输入会冒泡到遮罩,且 onShow 刷新会清空编辑态,导致体测、笔记和照片无法填写。
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-09-09 16:02:24 +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
6e8fc45138
fix: 修复默认启动入口
2026-09-09 10:26:16 +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
52cc3a2985
fix(app): 修复分享页返回首页
2026-04-13 19:23:16 +08:00
richarjiang
497837c1d8
feat(app): refine teacher profile page content
2026-04-13 19:19:33 +08:00
richarjiang
d45a5b2c14
fix(server): support rebooking cancelled slots
2026-04-13 17:50:14 +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
54e30da003
fix(app): 优化首页会员卡闪烁和即将上课卡片交互
...
- CardShop: 采用 stale-while-revalidate 模式,仅首次加载显示骨架屏,
切换 tab 回来时保留旧数据静默刷新,消除列表闪烁
- UpcomingBooking: 补充 PENDING_CONFIRMATION 状态的中文映射和样式
- UpcomingBooking: 卡片点击跳转到预约详情页
2026-04-10 11:29:09 +08:00
richarjiang
57e3227af0
fix(app): 移除已废弃的 uni.getUserProfile 调用修复首次登录失败
...
uni.getUserProfile 在微信基础库 2.27.1+ 已被移除,调用时抛出 TypeError
导致整个登录流程中断。新用户昵称由后端默认生成,用户可在资料页修改。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-10 09:04:16 +08:00
richarjiang
54104c16d2
perf: 支持教师、场馆介绍
2026-04-09 14:29:13 +08:00
richarjiang
a40b4e47e5
perf: 优化 UI
2026-04-09 11:31:12 +08:00
richarjiang
74551085e3
feat: 支持秒杀活动
2026-04-09 10:24:44 +08:00
richarjiang
23bdd05811
feat: 支持会员卡设置
2026-04-07 16:47:56 +08:00
richarjiang
91abedcb86
fix(app): prevent modal disappearing when switching to edit tab
...
Root cause: there was a stale loading overlay outside the tab content
(added by a previous subagent) that rendered when editLoading was true,
covering the entire modal body. Also loadDetailMembership incorrectly
managed editLoading causing state inconsistencies.
Fix:
- Remove the orphaned loading overlay outside tab content blocks
- loadDetailMembership no longer touches editLoading (switchTab owns it)
- switchTab uses Promise.all for parallel loading with formReady guard
- openDetail resets editLoading/formReady to clean state
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-07 10:22:02 +08:00
richarjiang
0a20aef678
fix(app): ensure edit form initializes after async data loads
...
- switchTab('edit') now awaits fetchCardTypes and loadDetailMembership
before calling initEditForm, fixing blank form fields for new cards
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-07 10:13:20 +08:00
richarjiang
e6056bcab1
fix(server): add definite assignment assertions to UpdateUserMembershipDto
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-07 09:53:14 +08:00
richarjiang
f14da2c538
feat(app): add membership edit modal with tab UI
...
- Replace detail-only modal with tab-based (detail/edit) modal
- Detail tab shows membership card info, stats, and action buttons
- Edit tab provides form to modify card type, remaining times, start/expire dates
- Add loadDetailMembership, switchTab, initEditForm, onSaveMembership, onClearMembership functions
- Add computed isTimeBasedCard for edit form conditional rendering
- Append new styles for modal-header, tab-bar, membership-card, edit-form, etc.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-07 09:51:10 +08:00
richarjiang
b281990808
feat(app): add membership management actions to admin store
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-07 09:44:41 +08:00