didi / LogicFlow

专注于业务自定义的流程图编辑框架,支持实现脑图、ER图、UML、工作流等各种图编辑场景。A flow chart editing framework focusing on business customization.

Home Page:https://site.logic-flow.cn

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Bug Report]: 审批流示例中,连接到菱形节点(type: jugement)的边线无法拖拽,控制台报错 Cannot read properties of undefined (reading 'x')

Hickays opened this issue · comments

发生了什么?

在线案例:https://examples.logic-flow.cn/demo/dist/examples/#/usage/approve?from=doc
无法拖动菱形(判断)节点周边的连接线,控制台报错
image

logicflow/core版本

1.2.10

logicflow/extension版本

1.2.10

logicflow/engine版本

No response

浏览器&环境

Chrome

浮点数精度计算导致的修改packages/core/src/algorithm/edge.ts文件中isInSegment可以临时解决

/* 判断一个点是否在线段中
入参点:point, 线段起终点,start,end,
返回值: 在线段中true,否则false
*/
export const isInSegment = (point, start, end) => {
  const { x, y } = point;
  const { x: startX, y: startY } = start;
  const { x: endX, y: endY } = end;
  // 计算向量ab和ac的叉积
  const crossProduct = (endX - startX) * (y - startY) - (endY - startY) * (x - startX);
  console.log(Math.abs(crossProduct).toFixed(0));
  // 如果不等于0,说明不共线,直接返回false
  if (Math.abs(crossProduct).toFixed(0) !== '0') {
    return false;
  }
  // 否则,检查c点是否在ab线段的范围内
  return (
    Math.min(startX, endX) <= x
    && x <= Math.max(startX, endX)
    && Math.min(startY, endY) <= y
    && y <= Math.max(startY, endY)
  );
};

请问一下,还没更新到最新版本吗?

请问一下,还没更新到最新版本吗?

更新了,辛苦升到1.2.27试下

请问一下,还没更新到最新版本吗?

更新了,辛苦升到1.2.27试下

感谢