20260623212917

This commit is contained in:
oneao committed 2026-06-23 21:29:18 +08:00
1 parent e9e3371be7
commit 056cd4970f
30 files changed
+2093 -636

No files matched your search

+109
View File
@@ -0,0 +1,109 @@
# 2026-06-23 工作日志
## Skills 配置
- 将 `heroui-native` skill 从临时目录安装到用户级 (`~/.workbuddy/skills/`) 和项目级 (`项目/.workbuddy/skills/`)
- 项目中仅使用两个 skills:`heroui-native` 和 `allapp-conventions`
- heroui-native 来源:通过 `npx skills` 安装的 `heroui-inc/heroui` 仓库,原始路径在临时目录 `C:\Users\admin\AppData\Local\Temp\skills-oUbMIJ\`
## 前端页面优化
### tools/index.tsx — 多轮迭代
- 去掉卡片背景(`bg-white shadow-sm`),极简化
- 图标保持原生色,不加彩色圆底
- 收藏:用 `Heart`(非 `Star`)图标,18px 右上角独立触摸,teal 实心/灰色空心
- 图标 26→32px,文字 11→13px,整体放大更利于触摸
### home/index.tsx — 重构
- 宫格布局 → 横向功能卡片(图标圆底 + 标题 + 描述 + 右箭头)
- 计时数字层级化:天 `text-3xl` 主力,时分降级
- 去掉卡片背景,与 tools 页风格统一
- 更多工具独立卡片,用 `Grid3X3` 图标
### 项目目录结构重组
- 主应用所有页面收进 `(main)/` route group:`(tabs)/`, `auth/`, `family/`, `tools/`
- 子应用 `finance/` 保持独立在顶层
- 删除未用的 `star/` 占位页
- 路由引用 `/(tabs)/home` → `/home`(4 处更新)
- 最终目录:`app/(main)/*` + `app/finance/*`,主副清晰分离
### 最近动态功能 — 完整实现
**数据库:**
- 建表 `b_feed`(动态),字段:id, family_id, user_id, type, content, meta(VARCHAR), create_time, update_time, create_by, update_by
- 插入 7 条模拟数据(加入家庭/修改昵称/记账/收藏工具)
**前端新增:**
- `src/helpers/feed.ts` — `recordFeed()` 写入、`loadFeeds()` 查询,全程用通用接口
- `src/app/(main)/activities/index.tsx` — 完整动态列表页,时间轴布局(图标圆底 + 竖线 + 内容)
- 首页 `/activities` 路由,CloseButton 关闭
**埋点位置(4 处):**
- `tools/index.tsx` — 收藏工具时 → `favorite_app`
- `family/entry.tsx` — 创建家庭 → `join_family`(xxx 创建了家庭)
- `family/entry.tsx` — 加入家庭 → `join_family`(xxx 加入了家庭)
- `family/user.tsx` — 修改昵称 → `change_nickname`(旧名 修改了昵称为「新名」)
**首页改造:**
- 最近动态区从 Demo 数据 → 真实 `loadFeeds` 加载,展示最新 3 条
- 右上角「更多 →」入口跳转 `/activities`
- 时间格式化:刚刚 / N分钟前 / N小时前 / N天前 / 日期
### 动态功能优化 — 表名 + 昵称修复
**表名重命名:**
- `b_feed` → `b_family_feed`(统一 `b_family_*` 风格)
- `feed.ts` 中 `table_name` / `view_name` 同步更新
**昵称来源修正:**
- 新增 `getFamilyMemberNickname(familyId, userId)` — 从 `b_family_member.nickname` 查询
- 所有 `recordFeed()` 调用处改用此函数,不再从 `userStore.userInfo.nickname` 取
- `family/user.tsx` 改名时同步更新 `b_family_member.nickname`(之前只更新 `b_user.name`)
**Skill 更新:**
- `allapp-conventions` 新增「家庭动态记录规范」章节,含 5 种触发场景、昵称来源规则、代码示例
- 目录结构修正为 `(main)/` route group
### 动态 type 简化 + content 占位符化
**type 简码:**
- `join_family` → `join`,`change_nickname` → `rename`,`add_finance` → `bill`,`favorite_app` → `fav`
- 数据库存量数据已批量 UPDATE,前端 `TYPE_ICONS` 全部更新
**content 占位符:**
- content 存储模板 `{nickname} 加入了家庭`,不再拼接具体昵称
- `loadFeeds()` 内部通过 `getFamilyMemberNickname()` 动态替换 `{nickname}` 为 `b_family_member.nickname` 最新值
- 改名后历史动态自动显示新昵称,彻底解决写死问题
- `recordFeed()` 调用处不再需要 `getFamilyMemberNickname`,只需传模板字符串
- `entry.tsx` / `user.tsx` / `tools/index.tsx` 的 `getFamilyMemberNickname` import 已移除
### 动态 meta 字段清理
**原则变更**:content 自包含,不依赖 meta。`recordFeed()` 不再接收 meta 参数,所有展示信息直接写入 content。
**改动**:
- `helpers/feed.ts` — `recordFeed` 签名去掉 `meta?` 参数,inserts 不再写 meta 字段
- `tools/index.tsx` — fav 调用去掉 `{ app_name: subItem.title }` 冗余 meta
- `family/user.tsx` — rename content 改为 `{nickname} 修改了昵称为「{新昵称}」`
- `activities/index.tsx` — 去掉 meta JSON.parse + amount 显示逻辑
- 数据库:7 条存量记录 meta 全部置 NULL,bill 记录金额已嵌入 content(如「午餐」¥35)
- Skill 更新:content 模板表同步,新增「content 自包含原则」说明
### tools 卡片样式
- item 加 `bg-white rounded-xl shadow-sm`,去底部分割线
- 左右间距 `mx-3`;标题 + 描述双行布局,`items-center` 垂直居中
### DateTime/DateTimeRange 组件重构
- **替换依赖**:`@yz1311/react-native-wheel-picker` → `react-native-dates-picker`(纯 JS、样式可控)
- `DateTime.tsx` — `mode="single"` + `initialView` 映射(year/month/day)+ `timePicker`
- `DateTimeRange.tsx` — `mode="range"` 原生支持起止日期选择,代码大幅简化(去掉 active/toggle 逻辑)
- 选中色 `selectedItemColor="#0d9488"` 与 teal 主题统一
- BottomSheet 包裹保留
- `chat/index.tsx` 写入完整测试代码(5 种 DateTime 模式 + DateTimeRange)
### 记账页面重构
- 页面分为上下两部分:上 — 大字号金额(40px bold,点击可输入)+ 日期行(文字 + ChevronDown 图标);下 — 类别网格(一行 5 个,flex-wrap)
- 金额使用 `TextInput` 内联,点击切换显示/输入态,`inputMode="decimal"`
- 日期不包在 Input 里,改为 `bg-gray-50 rounded-xl` 行 + 右侧 `ChevronDown`
- 类别区域顶部加本地搜索框(`useMemo` 过滤 `name.includes`),无 API
- 去掉横向滚动的 `LegendList`,改为 `flex-row flex-wrap` 的 `View`
- BottomSheet "更多"面板保留,同样含搜索框 + 5 列网格