393157e56b
feat: 器械分类网格化 + 分类页标题防乱码 + 按器械/部位多维度筛选
...
- 首页『热门器械』由横滑 chips 改为与『按部位浏览』一致的网格
- 分类页 navbar 标题改由本地分类枚举回写,避免外部传入标题乱码
- 分类页新增二级维度多选筛选:器械维度交叉按部位,其余维度交叉按器械
- 后端 exercises.service 支持 equipment/bodyPart 逗号分隔多值 OR 过滤(向后兼容)
2026-07-24 10:28:40 +08:00
ec0eb98411
fix(category): 实现触底分页加载更多,修复往下翻无内容
...
- 根因:category.js 的 loadExercises 永远只取第 1 页(page=1, pageSize=20),
且用 exercises = res.items 整体替换、从不追加,也没有 onReachBottom/触底加载。
动作数远超 20(全部 1324、胸 163)时,往下翻只能看到前 20 条,其余永远加载不出来。
- 修复:
* loadExercises 首次加载重置 page=1 并按 items.length<total 计算 hasMore
* 新增 onReachBottom + loadMore:触底时 page+1、concat 追加、刷新 hasMore
* wxml 在网格下方加 loadmore 状态条(加载中 spinner/已经到底啦/上拉加载更多)
* wxss 加 .spinner 旋转动画(用 --accent/--line,均在 app.wxss 已定义)
- 后端分页已验证:page=2 返回偏移后的不同数据,total 字段准确
2026-07-23 20:13:53 +08:00
b687c50e3d
fix(category): 分类横列吸顶固定 + 默认高亮「全部」+ 加载态常驻
...
1) 滚动时顶部分类横列不被隐藏
- filterbar 改 position:sticky,top 用 calc(statusBarHeight px + 88rpx) 精确贴在 navbar 下方,
不同机型状态栏高度差异下不串位;加背景色(var(--bg-grad))避免滚动时内容透出
2) 修复「加载有问题」的感知问题
- 进入分类页(如首页分类 tab)时 activeValue 为空且 values 无空值项,导致所有 chip 都不高亮;
现头部插入「全部」项(value:'')并默认选中,进入即明确当前为全部动作
- filterbar 原 wx:if values.length 在加载期间整块消失;现加载/空态常驻占位(显示『加载分类中…』/『暂无分类』)
2026-07-23 19:54:22 +08:00
d74aae02b0
fix: 分类筛选切换无效 —— chip 自定义事件名 tap 与微信原生触摸事件冲突,改 select
...
- chip 组件 triggerEvent 原为 'tap'(微信原生触摸事件名),嵌在 scroll-view scroll-x 内时手势可能被当滚动消费,导致 onValue 收不到 e.detail.value -> 不筛选 -> 仍显示全部动作
- 改为非原生事件名 'select',category.wxml 绑定同步改 bind:select
- 选中态配色从旧金色(gold-soft/gold-2/gold-line)换成 Volt 绿(accent-soft/accent/accent-ring)+加粗,当前分类一眼可见
- 前端筛选逻辑与后端筛选均经沙箱+真机 API 验证正确(bodyPart=chest/back 返回不同数据)
2026-07-22 23:34:04 +08:00
06bd96a473
fix: 修复动作卡片点击双触发导致跳 404
...
- 8 个页面 exercise-card 由 bind:tap 改为 catch:tap,拦截原生 tap 冒泡
避免一次点击被『自定义事件 + 原生冒泡』触发两次,
第二次 e.detail 无 id → navigateTo detail?id=undefined → 404
- 所有 onExercise 顶部加 id 守卫,无 id 直接 return
- exercise-card 点击前校验 exercise.id,缺失不触发
- detail onLoad 的 id 为空时直接显示空态,不再发起错误请求
2026-07-22 15:30:28 +08:00
b3b58e66fb
feat: init fitness-coach (backend + miniprogram)
...
- backend: NestJS service with exercise/plan data
- miniprogram: WeChat mini program client
- exclude node_modules, dist, runtime data-store, local env
2026-07-22 00:35:40 +08:00