- 物品表单底部新增冻结保存按钮,保存成功显示 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>
48 lines
2.4 KiB
Markdown
48 lines
2.4 KiB
Markdown
---
|
||
id: inventory-summary
|
||
name: 汇总列表与统计
|
||
area: rn-app
|
||
status: 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,返回带楼层、坐标、物品名、数量、单价、备注、照片数的扁平列表;支持按 floor(1/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: 列表每行显示楼层标签、物品名、数量、单价、备注1;FilterBar 提供楼层选择器(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/楼层/标记点/物品名/照片文件路径),方便程序化处理
|