5.9 KiB
5.9 KiB
2026-06-23 工作日志
Skills 配置
- 将
heroui-nativeskill 从临时目录安装到用户级 (~/.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_appfamily/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的getFamilyMemberNicknameimport 已移除
动态 meta 字段清理
原则变更:content 自包含,不依赖 meta。recordFeed() 不再接收 meta 参数,所有展示信息直接写入 content。
改动:
helpers/feed.ts—recordFeed签名去掉meta?参数,inserts 不再写 meta 字段tools/index.tsx— fav 调用去掉{ app_name: subItem.title }冗余 metafamily/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)+timePickerDateTimeRange.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 列网格