跳转到主要内容
套索(Lasso)是笔记/文档中常用的圈选交互:用户用笔在页面上圈出一个区域后,系统会基于该区域计算选中的元素集合,并显示套索工具栏(Lasso Toolbar)。 插件可以在套索工具栏上展示自己注册的按钮;用户点击按钮后进入插件界面,插件即可基于当前套索上下文读取与修改相关数据。

交互流程

  1. 用户在页面上完成套索圈选
  2. 系统显示套索工具栏(可展示插件注册按钮)
  3. 用户点击插件按钮进入插件界面
  4. 插件读取套索区域与套索元素,并执行业务逻辑(例如修改套索中的文本框、标题、几何图形、五角星等)
  5. 插件可按需控制套索框显示/隐藏/移除

数据模型

套索选中的“元素列表”通过 PluginCommAPI.getLassoElements() 获取,返回值是 Element[]
  • 通过 Element.type 区分元素类别(常量见 ElementType
  • 对于大体量点数据(例如角度点、轮廓点等),Element 字段会以访问器形式提供(ElementDataAccessor),避免一次性把大规模点集传到 RN 侧造成内存压力

常用接口

套索框属于 UI 交互矩形,通常以“像素坐标系”表达;而元素点集(笔迹采样点)是 EMR 坐标系。 需要做坐标系对齐时,先明确坐标系,再参考 坐标系 做换算。

示例

下面示例演示如何在插件界面中:
  • 获取套索框位置
  • 按“等比例缩放”规则更新套索框
  • 获取套索元素列表并按类型筛选
  • 控制套索框显示/隐藏/移除

常见约束与建议

  • resizeLassoRect 当前仅支持等比例缩放:建议先调用 getLassoRect 获取当前矩形,再基于中心点做等比缩放后提交调整
  • getLassoElements 返回的元素可能包含访问器字段:不要假设点集已完整在 JS 侧,必要时通过访问器按需取数
  • setLassoBoxState(2) 表示完全移除套索状态:通常用于“操作结束”场景,移除后用户侧套索工具栏会被关闭
  • setLassoBoxState(3) 表示完全隐藏套索框(包含套索元素):通常用于“自定义工具条/界面”场景,隐藏后插件可以自行控制 UI 呈现