Files
sundynix-pets/pets-fe/pages/record/record.js
T
Blizzard bbc9706576 style(fe): 记录页按 preview-v3 收拾干净
## 分组那片色块是个 bug,不是设计
我把 tone-{{item.tone}} 加在分组外层是为了给组标题上色,但 .tone-N 在
app.wxss 里本身就带 background(`.tone-1{background:var(--primary-soft)}`),
于是整组被涂成一片色块——和视觉稿完全不是一回事。

分组着色单独走 g-1..g-4,只管 .tg-head 的文字色。格子的浅色底仍然是
.quick + .tone-N,那是它本来的用途。

## 另外三处
  三列 → 四列(视觉稿是四列,三列一行只放三个,洗护/清洁要多滚一屏)
  去掉组右侧的数量(6/7/6/5 —— 用户不关心一个组里有几项)
  组名去掉「记录」后缀(「日常记录」在标题位置念着啰嗦,「日常」就够)

## 去掉顶部的宠物切换和添加
这页只是个事项目录,点进去才是表单。记哪只宠物在添加页里选(那页第一行
就是「记录宠物」,多宠家庭最容易记错到别的宠物身上,放在表单里才对)。
record.json 跟着去掉 pet-switch 注册。

## .tg 挪回页面级
历史页那份宫格上一批已经删了,现在只有记录页在用,全局层只放真正共用的。
哪天别的页面要用,检查器会报「跨页借用」提醒再挪上去。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 10:53:31 +08:00

54 lines
2.0 KiB
JavaScript

const store = require('../../utils/store.js');
const recordTypes = require('../../utils/recordTypes.js');
// 这一页只干一件事:把后端配置的记录事项按分组列出来,点一个进添加页。
// 原来它还带着健康洞察、体重趋势、健康时间轴——那三块搬到 pages/history 了,
// 从报告页进。一个「我要记一笔」的页面上摆着三块只读图表,
// 用户每次都得先滚过去才能找到要点的东西。
// tone-N 只给格子用(它自带背景色);组标题的颜色走 g-N。
// short 是去掉「记录」后缀的组名——「日常记录」在标题位置念着啰嗦
const G = { 'tone-1': 'g-1', 'tone-2': 'g-2', 'tone-3': 'g-3', 'tone-4': 'g-4' };
function decorate(g) {
return { ...g, g: G[g.tone] || 'g-1', short: (g.label || '').replace(/记录$/, '') };
}
Page({
data: { pet: {}, typeGroups: [], sheetShow: false, sheetType: '' },
onLoad() {
this._unsub = store.subscribe((pet) => this.setData({ pet }));
},
onUnload() {
if (this._unsub) this._unsub();
},
onShow() {
this.loadTypes();
store
.ready()
.then(() => this.setData({ pet: store.getPet() }))
.catch((e) => wx.showToast({ title: e.message || '加载失败', icon: 'none' }));
},
loadTypes() {
if (this.data.typeGroups.length) return;
recordTypes
.load()
.then((groups) => this.setData({ typeGroups: groups.map(decorate) }))
.catch(() => {});
},
goAdd(e) {
wx.navigateTo({ url: '/pages/addrecord/addrecord?type=' + e.currentTarget.dataset.type });
},
// 没建档时要能建档,所以这页留一个只用于 addPet 的弹层
onAddPet() {
this.setData({ sheetType: 'addPet', sheetShow: true });
},
closeSheet() {
this.setData({ sheetShow: false });
},
onShareAppMessage() {
return { title: '用肉垫计划记录毛孩子的成长', path: '/pages/record/record' };
},
onShareTimeline() {
return { title: '用肉垫计划记录毛孩子的成长' };
},
});