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

@@ -44,10 +44,13 @@ app-rn/ # React Native 前端
├── src/
│ ├── app/ # Expo Router 页面
│ │ ├── _layout.tsx # 根布局
│ │ ├── (tabs)/ # 主 Tab(home / space / tools / chat / mine)
│ │ ├── auth/ # 登录页
│ │ ├── tools/ # 工具广场
│ │ └── finance/ # 记账子模块
│ │ ├── (main)/ # 主应用(route group,不影响 URL)
│ │ │ ├── (tabs)/ # 主 Tab(home / chat / my)
│ │ │ ├── auth/ # 登录页
│ │ │ ├── family/ # 家庭管理
│ │ │ ├── tools/ # 工具广场
│ │ │ └── activities/ # 动态列表
│ │ └── finance/ # 记账子模块(独立于 main)
│ ├── components/ # 通用组件(layout/view / AZIndex 等)
│ ├── configs/ # pages.ts(子应用列表配置)
│ ├── layouts/ # 布局(ModuleLayout 等)
@@ -188,11 +191,47 @@ b_finance - 记账记录
b_finance_category - 记账分类
b_finance_category_default - 默认分类模板
b_app_favorite - 子应用收藏
b_family_feed - 家庭动态
```
视图:`v_family_member`(join b_family_member + b_user)
## 常见操作示例
## 家庭动态(b_family_feed)记录规范
以下场景**必须**调用 `recordFeed()` 写入动态。
**type 简码对照**:`join`(加入/创建)、`rename`(改名)、`bill`(记账)、`fav`(收藏)
| 触发场景 | type | content 模板 | 触发位置 |
|---------|------|-------------|---------|
| 创建家庭 | `join` | `{nickname} 创建了家庭「{名称}」` | `family/entry.tsx` handleCreate |
| 加入家庭 | `join` | `{nickname} 加入了家庭` | `family/entry.tsx` handleJoin |
| 修改昵称 | `rename` | `{nickname} 修改了昵称为「{新昵称}」` | `family/user.tsx` handleRename |
| 记账 | `bill` | `{nickname} 记了一笔「{备注}」¥{金额}` | `finance/add/` 保存成功 |
| 收藏应用 | `fav` | `{nickname} 收藏了「{应用名}」` | `tools/index.tsx` 收藏操作 |
**⚠️ content 自包含原则**:所有展示信息直接写在 content 字符串中,不依赖 meta 字段。`recordFeed()` 不接收 meta 参数,`loadFeeds()` 只做 `{nickname}` 替换。meta 列保留但始终为 NULL。
**content 占位符规则**:content 存储模板字符串,用户昵称用 `{nickname}` 占位,**不在写入时拼接**。`loadFeeds()` 会自动将 `{nickname}` 替换为 `b_family_member.nickname` 的最新值,确保改名后历史动态也显示最新昵称。
```ts
import { recordFeed } from "@/helpers/feed";
// 正确写法 — 用 {nickname} 占位符,不拼接昵称
recordFeed(familyId, userId, "join", "{nickname} 加入了家庭");
// 错误写法 — 禁止拼接昵称写死
recordFeed(familyId, userId, "join", `${nick} 加入了家庭`); // ❌
```
**修改昵称时同步更新**:`family/user.tsx` 的 `handleRename` 除了更新 `b_user.name`,还必须同步更新 `b_family_member.nickname`:
```ts
saveDataApi([
{ table_name: "b_user", updates: [{ id: uid, name: newName }] },
{ table_name: "b_family_member", updates: [{ id: memberId, nickname: newName }] },
]);
```
### 前端:拉取数据
```ts