# 线编辑类 LineEditItem 示例 ::: details 目录 [[toc]] ::: ## 绘制示例 ::: details 示例代码 <<< @/docs/.vuepress/components/edit/items/editline/editline1.vue ::: ## 源代码 ::: details 查看代码 <<< @/docs/guides/edit/items/src/EditLineItem.ts ::: ## 代码说明 ### 1 当 LineEditItem 为编辑状态时,需要将 LineEditItem 赋给 grabItem ``` js {4} // 编辑状态时的 LineItem this.lineItem = new EditLineItem(null, []); this.lineItem.status = SItemStatus.Create; this.scene.grabItem = this.lineItem; ``` ### 2 当 LineEditItem 为正常状态时,需要将 grabItem 置为 null ``` js {4} // 正常状态时的 LineItem this.lineItem = new EditLineItem(null, []); this.lineItem.status = SItemStatus.Normal; this.scene.grabItem = null; ``` ### 3 当 LineEditItem 为试图垂直水平绘制时需要修改 verAndLeve 属性 ``` js {3} // 编辑状态时的 LineItem this.lineItem = new EditLineItem(null, []); this.lineItem.status = SItemStatus.Create; this.lineItem.verAndLeve = true; this.scene.grabItem = this.lineItem; ``` ### 4 当 LineEditItem 修改属性但是画板尚未变化时需要刷新 ``` js {4} // 编辑状态时的 LineItem this.lineItem = new EditLineItem(null, []); this.lineItem.status = SItemStatus.Create; this.view.update(); ``` ## 交互要求 * esc键:若等于两个顶点则为完成,否则为取消操作; * 鼠标左键选择单点可移动; * 双击进入编辑态; * 绘制点时线与线不能交叉(放开鼠标左键后,如果出现交叉,则该点位回到原来位置,如果为创建状态,该点无法生成); * 选中某条边拖动;拖动中不可交叉;(补图,两种线得拖动方式)