react-phone-apps/.blueprint/modules/floor-map.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

1.7 KiB
Raw Blame History

id name area status
floor-map 楼层地图与标记点管理 rn-app done

概述

以 SVG/Image 占位图为底图支持长按添加标记点、点击标记点进入编辑的交互逻辑。标记点坐标以相对比例0~1存储替换真实楼层图时无需修改数据。

任务卡

🔵 平面图占位容器与坐标系

  • status: done
  • complexity: M
  • files: apps/property-survey/src/features/map/FloorMap.tsx
  • depends: survey-app-shell
  • acceptance: 渲染一个带灰色背景的矩形占位区域作为平面图,使用 onLayout 获取实际像素尺寸并转换相对坐标0~1容器宽高比固定为 4:3适配折叠/展开两种宽度

🔵 长按手势添加标记点

  • status: done
  • complexity: M
  • files: apps/property-survey/src/features/map/useMarkerGesture.ts
  • depends: floor-map
  • acceptance: 在平面图区域长按 500ms 后触发,将触点位置转换为相对坐标并调用 insertMarker 写入数据库,新标记点立即在地图上显示,不误触短按事件

🔵 标记点图标组件

  • status: done
  • complexity: M
  • files: apps/property-survey/src/features/map/MapMarker.tsx
  • depends: floor-map
  • acceptance: 在平面图上按相对坐标绝对定位渲染图钉图标,已有物品的标记点显示蓝色图钉 + 物品数量角标,空标记点显示灰色图钉,点击触发 onPress 回调

🔵 当前楼层标记点数据加载

  • status: done
  • complexity: S
  • files: apps/property-survey/src/features/map/MarkerList.tsx
  • depends: floor-map
  • acceptance: 楼层切换时调用 getMarkersByFloor 重新查询,渲染该楼层所有 MapMarker删除标记点时弹出确认对话框含级联删除提示