20260702173140
This commit is contained in:
1 parent
cab91978f3
commit
2bbeea19fa
2 files changed
+350
-33
No files matched your search
@@ -112,14 +112,7 @@
|
||||
- 加菜(type=2)和留下备注(type=4)两个动作需要触发家庭动态,调用 `recordFeed()`;其余操作不触发。
|
||||
- 备注(type=4)仅允许 `create_by` 本人删除,不可编辑;操作日志(type≠4)不暴露删除入口。
|
||||
- 活动日志按 `create_time` 升序展示,形成每顿饭的互动时间轴。
|
||||
- 餐食安排通过 `source_type` 区分来源:`1` 在家做饭,`2` 外出就餐;后续如需外卖或跳过某餐,再扩展枚举。
|
||||
- 外出就餐时,`location` 字段可填餐厅或地点名称,选填。
|
||||
- 外出就餐时,`cook_by`(做饭人)字段隐藏不展示。
|
||||
- 餐食明细统一保存到 `b_meal_plan_item`,不为外出就餐单独建明细表。
|
||||
- 在家做饭时,`b_meal_plan_item.dish_id` 必填,菜名和图片来自菜品库。
|
||||
- 外出就餐可以只记录地点,不强制填写具体菜品;如果填写外出菜品明细,则 `b_meal_plan_item.dish_name` 必填,`dish_id` 为空,`image_file_key` 选填。
|
||||
- 在家做饭时,`dish_id` 可以为空,即发起一顿饭但不指定菜品,等待其他家庭成员添加。
|
||||
- 第一版不单独建餐厅表。只有后续需要复用餐厅、收藏餐厅、统计常去餐厅、人均消费或地图定位时,再新增 `b_meal_restaurant` 并从 `b_meal_plan` 关联。
|
||||
- 餐食安排统一视为在家做饭,`dish_id` 可以为空,即发起一顿饭但不指定菜品,等待其他家庭成员添加。
|
||||
|
||||
## 5.2 简化操作原则
|
||||
|
||||
@@ -290,8 +283,6 @@
|
||||
- family_id
|
||||
- plan_date
|
||||
- meal_slot_id
|
||||
- source_type
|
||||
- location
|
||||
- remark
|
||||
- cook_by
|
||||
- create_time
|
||||
@@ -304,10 +295,8 @@
|
||||
- `plan_date`:餐食日期,例如今天、明天或用户选择的日期。
|
||||
- `meal_slot_id`:餐段 ID,指向 `b_meal_slot`。
|
||||
- 同一个家庭、同一天、同一个餐段建议只有一条餐食安排。
|
||||
- `source_type`:餐食来源,1=在家做饭(默认),2=外出就餐。
|
||||
- `location`:餐厅或地点名称,选填,仅外出就餐时有意义,例如「海底捞」「外婆家」。
|
||||
- `remark`:这顿饭的备注,选填。
|
||||
- `cook_by`:做饭人,选填,仅在家就餐时展示,指向家庭成员用户。
|
||||
- `cook_by`:做饭人,选填,指向家庭成员用户。
|
||||
|
||||
### 餐段 b_meal_slot
|
||||
|
||||
@@ -340,8 +329,6 @@
|
||||
- family_id
|
||||
- plan_id
|
||||
- dish_id
|
||||
- dish_name
|
||||
- image_file_key
|
||||
- quantity
|
||||
- remark
|
||||
- sort_number
|
||||
@@ -352,9 +339,8 @@
|
||||
|
||||
说明:
|
||||
|
||||
- 统一保存一顿饭的菜品明细,不区分在家或外出明细表。
|
||||
- 在家做饭时,`dish_id` 必填,指向 `b_meal_dish`,图片和菜名从菜品库取;`dish_name` 和 `image_file_key` 可以为空。
|
||||
- 外出就餐明细可选;如果填写明细,则 `dish_id` 为空,`dish_name` 必填,自由文本,例如「红烧肉」「海底捞牛肉卷」;`image_file_key` 选填,拍照上传,走现有 S3 规则。
|
||||
- 统一保存一顿饭的菜品明细。
|
||||
- `dish_id` 必填,指向 `b_meal_dish`,菜名和图片从菜品库取。
|
||||
- `quantity` 第一版表示份数或数量,默认 1。
|
||||
- 明细独立保存,方便一顿饭安排多道菜,也方便从餐段区块移除单道菜。
|
||||
|
||||
@@ -414,8 +400,8 @@
|
||||
1. 进入「今日」页。
|
||||
2. 默认选中今天。
|
||||
3. 页面按家庭启用餐段展示餐食区块,每个区块底部展示该餐的活动时间轴(操作记录 + 备注)。
|
||||
4. 点击某个区块的加菜,默认按在家做饭处理。
|
||||
5. 从菜品库选择一道或多道菜;如果切换为外出就餐,则填写餐厅或地点,并可选填写临时菜名。
|
||||
4. 点击某个区块的加菜。
|
||||
5. 从菜品库选择一道或多道菜。
|
||||
6. 直接保存到该日期和餐段。
|
||||
7. 保存成功后:向 `b_meal_plan_log` 写入 type=2 记录(每道菜一条);调用 `recordFeed()` 触发家庭动态。
|
||||
8. 可选设置做饭人;设置后写入 type=5 记录。
|
||||
@@ -423,11 +409,9 @@
|
||||
|
||||
校验规则:
|
||||
|
||||
- 在家做饭时至少选择 1 道菜。
|
||||
- 至少选择 1 道菜。
|
||||
- 日期默认今天,也可以快捷切换明天。
|
||||
- 餐段必填,来自家庭自定义餐段。
|
||||
- 来源默认在家做饭;外出就餐时不展示做饭人。
|
||||
- 外出就餐时至少填写餐厅或地点、临时菜名二者之一;如果填写临时菜名,每道菜名不能为空。
|
||||
- 数量默认 1,不强制用户填写。
|
||||
- 保存时生成或更新 `b_meal_plan` 和 `b_meal_plan_item`;同步写入 `b_meal_plan_log`。
|
||||
|
||||
@@ -481,7 +465,7 @@
|
||||
- 家庭自定义餐段。
|
||||
- 餐食安排支持一次选择多道菜。
|
||||
- 餐食安排支持设置做饭人。
|
||||
- 餐食安排支持记录外出就餐,外出就餐不单独维护餐厅档案。
|
||||
- 餐食安排支持设置做饭人。
|
||||
- 今日/明日餐食视图。
|
||||
- 餐食安排提供快速记账按钮。
|
||||
|
||||
@@ -512,7 +496,7 @@
|
||||
- 今日/明日餐食可以用 `loadDataBySql` 做菜品、餐食安排、明细的聚合查询;第一版也可以前端分别查询后组合。
|
||||
- 删除菜品时优先软删除,避免破坏历史餐食安排。
|
||||
- 保存餐食安排建议在前端用一次 `saveData` 批量保存 `b_meal_plan` 和 `b_meal_plan_item`。
|
||||
- 外出就餐先作为 `b_meal_plan.source_type = 2` 处理,不新增餐厅表;后续确实需要餐厅复用和统计时,再加 `b_meal_restaurant`。
|
||||
- 餐食安排统一视为在家做饭。
|
||||
- 如果后续要求状态流转、想吃列表或权限校验,再单独设计,不放入第一版。
|
||||
- 图片上传复用现有 S3 上传接口。
|
||||
- 前端状态可以新增 `meal` store,负责菜品、分类、标签、餐食安排缓存。
|
||||
@@ -566,8 +550,8 @@
|
||||
- [ ] 设计 `b_meal_tag` 表结构,包含 `parent_id` 支持父子标签。
|
||||
- [ ] 设计 `b_meal_dish_tag` 表结构。
|
||||
- [ ] 设计 `b_meal_slot` 表结构,支持家庭自定义餐段。
|
||||
- [ ] 设计 `b_meal_plan` 表结构,包含 `plan_date`、`meal_slot_id`、`cook_by`、`source_type`、`location`。
|
||||
- [ ] 设计 `b_meal_plan_item` 表结构,统一保存餐食明细;在家做饭用 `dish_id`,外出就餐用临时 `dish_name` 和可选 `image_file_key`。
|
||||
- [ ] 设计 `b_meal_plan` 表结构,包含 `plan_date`、`meal_slot_id`、`cook_by`。
|
||||
- [ ] 设计 `b_meal_plan_item` 表结构,`dish_id` 指向菜品库。
|
||||
- [ ] 设计 `b_meal_plan_log` 表结构,包含 `plan_id`、`type`、`content`、`ref_id`,统一记录操作和备注。
|
||||
- [ ] 补充索引设计,例如 `family_id/plan_date/meal_slot_id/sort_number`。
|
||||
- [ ] 生成 SQL 文件并确认命名、字段类型、默认值。
|
||||
@@ -704,10 +688,8 @@
|
||||
- [ ] 新增餐食安排编辑页或 BottomSheet。
|
||||
- [ ] 支持今天/明天快捷选择。
|
||||
- [ ] 支持选择家庭自定义餐段。
|
||||
- [ ] 支持选择餐食来源:在家做饭或外出就餐。
|
||||
- [ ] 支持填写每道菜数量。
|
||||
- [ ] 支持选择做饭人。
|
||||
- [ ] 外出就餐时支持填写餐厅或地点名称,并支持录入临时菜名。
|
||||
- [ ] 支持填写餐食备注。
|
||||
- [ ] 提交后创建或更新餐食安排和餐食安排明细。
|
||||
- [ ] 安排餐食时写入 type=1 日志记录。
|
||||
@@ -723,8 +705,7 @@
|
||||
|
||||
验收标准:
|
||||
|
||||
- 在家做饭时至少选择一道菜才能提交。
|
||||
- 外出就餐时至少填写餐厅或地点、临时菜名二者之一;如果填写多道临时菜名,则每道菜名不能为空。
|
||||
- 至少选择一道菜才能提交。
|
||||
- 数量必须大于 0。
|
||||
- 保存中有 LoadingOverlay。
|
||||
|
||||
@@ -736,7 +717,6 @@
|
||||
- [ ] 支持打开日期选择器查看其他日期。
|
||||
- [ ] 支持按家庭自定义餐段分组展示。
|
||||
- [ ] 支持在每个餐段区块直接加菜。
|
||||
- [ ] 支持把某个餐段切换为外出就餐,并展示餐厅或地点名称。
|
||||
- [ ] 支持在每个餐段区块移除菜。
|
||||
- [ ] 支持从历史餐食安排再次安排同样的菜。
|
||||
- [ ] 每个餐段区块下方展示活动时间轴,按 `create_time` 升序列出操作记录和备注。
|
||||
@@ -753,7 +733,6 @@
|
||||
- 今天和明天餐食安排能按家庭自定义餐段清晰展示。
|
||||
- 切换日期后数据正确刷新。
|
||||
- 再次安排能复用原菜品生成新的餐食安排明细。
|
||||
- 外出就餐能在同一餐段区块展示,不需要进入独立餐厅或外出明细页面。
|
||||
|
||||
### 阶段 8:历史餐食与复用
|
||||
|
||||
|
||||
Reference in new issue
Block a user