react-phone-apps/.blueprint/modules/inventory-summary.md
lanrtop cea2a5d208 feat: 表单保存优化、照片保存相册及布局性能改进
- 物品表单底部新增冻结保存按钮,保存成功显示 Toast 提示
- 照片全屏预览时支持一键保存到本地相册(expo-media-library ~16.0.0)
- 左侧标记点列表侧栏宽度从 120 调整为 160
- FoldableLayout 改用 LayoutAnimation 替代 JS 线程宽度动画,修复 Android 地图渲染空白及卡顿问题
- 修复 ImagePicker 废弃 API MediaTypeOptions.Images → MediaType.Images

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 00:12:42 +09:00

2.4 KiB
Raw Blame History

id name area status
inventory-summary 汇总列表与统计 rn-app done

概述

汇总展示全部已登记物品,支持按楼层和物品名筛选,底部显示总件数和总金额统计。提供 CSV 导出通过系统分享面板发送备份。

任务卡

🔵 汇总数据查询 Hook

  • status: done
  • complexity: M
  • files: apps/property-survey/src/features/summary/useSummaryData.ts
  • depends: local-data-layer
  • acceptance: 查询所有 items JOIN markers JOIN photos返回带楼层、坐标、物品名、数量、单价、备注、照片数的扁平列表支持按 floor1/2/3/全部)和 name 关键字过滤;数据写入后调用 refresh() 触发重新查询

🔵 汇总列表与筛选栏

  • status: done
  • complexity: M
  • files: apps/property-survey/src/features/summary/SummaryList.tsx, apps/property-survey/src/features/summary/FilterBar.tsx
  • depends: inventory-summary
  • acceptance: 列表每行显示楼层标签、物品名、数量、单价、备注1FilterBar 提供楼层选择器1F/2F/3F/全部和物品名搜索框滚动性能流畅FlatList空数据时显示引导文案

🔵 统计汇总卡片

  • status: done
  • complexity: S
  • files: apps/property-survey/src/features/summary/SummaryStats.tsx
  • depends: inventory-summary
  • acceptance: 固定在列表顶部,展示:登记点总数、物品种类数、总数量合计、总金额合计(数量×单价求和,单价为空则不计入),数值随筛选条件实时更新

CSV 导出与系统分享

  • status: done
  • complexity: M
  • files: apps/property-survey/src/features/summary/exportData.ts
  • depends: inventory-summary
  • acceptance: 点击导出按钮,将当前筛选结果生成 UTF-8 BOM 的 CSV 文件(含表头:楼层/标记点名/物品名/数量/单价/备注1/备注2/照片数),写入临时目录后调用 expo-sharing 弹出系统分享面板,可发送到微信/邮件/云盘

导出照片关联索引

  • status: done
  • complexity: M
  • files: apps/property-survey/src/features/summary/exportData.ts
  • depends: inventory-summary
  • acceptance: ZIP 结构改为:① 主 CSV 增加"照片目录"列,值为对应子目录路径(无照片则为空);② 照片按物品分子目录存放 photos/{floor}F_{markerLabel}_{name}({itemId})/1.jpg;③ ZIP 根目录生成 photos/index.csv每行对应一张照片物品ID/楼层/标记点/物品名/照片文件路径),方便程序化处理