1. 问题背景与核心挑战
在远程协作白板应用中,多人同时编辑时最让人崩溃的场景莫过于:你精心绘制的设计草图,被同事的橡皮擦无意中抹去关键部分。这种"互删灾难"不仅影响工作效率,更会引发团队协作中的挫败感。其根本原因在于传统白板工具将擦除操作简单处理为像素删除——就像用真实橡皮擦掉纸上墨水一样不可逆。

从技术视角看,这个问题涉及三个关键矛盾点:
- 操作意图模糊:橡皮擦手势无法区分"清除自己的笔迹"和"修正他人内容"
- 数据持久化缺失:物理删除导致历史版本无法追溯
- 权限控制薄弱:缺乏基于作者身份的擦除权限管理
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 非破坏性擦除方案设计
2.1 核心架构设计
我们采用"对象化存储+逻辑擦除"的架构方案:
mermaid复制graph TD
A[笔迹数据] --> B{存储为独立对象}
B --> C[包含作者ID]
B --> D[包含时间戳]
E[擦除操作] --> F{记录为遮罩对象}
F --> G[关联目标笔迹ID]
F --> H[保留原始数据]
关键设计决策:
-
笔迹对象化:每个笔画存储为包含元数据的独立对象
json复制{ "type": "stroke", "id": "uuidv4", "author": "user123", "timestamp": 1625097600000, "points": [[x1,y1],[x2,y2],...], "color": "#FF0000", "width": 3 } -
擦除即遮罩:擦除操作不删除数据,而是创建遮罩区域
json复制{ "type": "erase", "id": "uuidv4", "target": "stroke_id", "region": [[x1,y1],[
