Skip to content

Commit

Permalink
fix(connet validate):Compatible result two formats
Browse files Browse the repository at this point in the history
  • Loading branch information
rexyao committed Aug 24, 2021
1 parent 62425c4 commit 20fdd28
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 5 deletions.
4 changes: 2 additions & 2 deletions packages/core/src/model/node/BaseNodeModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ export default class BaseNodeModel implements IBaseModel {
/**
* 在连线的时候,是否允许这个节点为source节点,连线到target节点。
*/
isAllowConnectedAsSource(target: BaseNodeModel): ConnectRuleResult {
isAllowConnectedAsSource(target: BaseNodeModel): ConnectRuleResult | Boolean{
const rules = !this.hasSetSourceRules
? this.getConnectedSourceRules()
: this.sourceRules;
Expand Down Expand Up @@ -212,7 +212,7 @@ export default class BaseNodeModel implements IBaseModel {
* 在连线的时候,是否允许这个节点未target节点
*/

isAllowConnectedAsTarget(source: BaseNodeModel): ConnectRuleResult {
isAllowConnectedAsTarget(source: BaseNodeModel): ConnectRuleResult | Boolean {
const rules = !this.hasSetTargetRules
? this.getConnectedTargetRules()
: this.targetRules;
Expand Down
14 changes: 14 additions & 0 deletions packages/core/src/util/node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -417,3 +417,17 @@ export const getSvgTextWidthHeight = ({ rows, rowsLength, fontSize }) => {
height: rowsLength * (fontSize + 2) + fontSize / 4,
};
};


/**
* @description 格式化连线校验信息
*/
export const formateAnchorConnectValidateData= (data) =>{
if(typeof data !== 'object'){
return {
isAllPass:!!data,
msg:!!data?'':'不允许连接'
}
}
return data
}
6 changes: 3 additions & 3 deletions packages/core/src/view/Anchor.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { h, Component } from 'preact';
import { createDrag } from '../util/drag';
import { targetNodeInfo, distance } from '../util/node';
import { formateAnchorConnectValidateData, targetNodeInfo, distance } from '../util/node';
import Circle from './basic-shape/Circle';
import Line from './basic-shape/Line';
import { ElementState, EventType } from '../constant/constant';
Expand Down Expand Up @@ -93,8 +93,8 @@ class Anchor extends Component<IProps, IState> {
if (!this.targetRuleResults.has(targetNode.id)) {
const sourceRuleResult = nodeModel.isAllowConnectedAsSource(targetNode);
const targetRuleResult = targetNode.isAllowConnectedAsTarget(nodeModel);
this.sourceRuleResults.set(targetNode.id, sourceRuleResult);
this.targetRuleResults.set(targetNode.id, targetRuleResult);
this.sourceRuleResults.set(targetNode.id, formateAnchorConnectValidateData(sourceRuleResult));
this.targetRuleResults.set(targetNode.id, formateAnchorConnectValidateData(targetRuleResult));
}
const { isAllPass: isSourcePass } = this.sourceRuleResults.get(targetNode.id);
const { isAllPass: isTargetPass } = this.targetRuleResults.get(targetNode.id);
Expand Down

0 comments on commit 20fdd28

Please sign in to comment.