mldong-flow-designer-plus
Version:
本项目包含了作者为B站课堂视频[《工作流设计器开发最佳实践》](https://www.bilibili.com/cheese/play/ss24484)的过程源码。教程中开发的组件也可用于实际生产环境中。以下是和使用文档和课程章节说明。 ## 实战项目 [演示地址](https://flow-pro.mldong.com/)
45 lines (41 loc) • 1.26 kB
text/typescript
// Start.ts
import { ColorEnum, NodeStateEnum } from "../types/enums";
import { CircleNode, CircleNodeModel, ConnectRule } from "@logicflow/core";
class StartModel extends CircleNodeModel {
setAttributes(): void {
this.r = 24;
if((this.text && this.text.value == "") || !this.text) {
this.text.value = "开始";
}
this.text.draggable = false;
this.text.editable = false;
}
getConnectedTargetRules(): ConnectRule[] {
const rules = super.getConnectedTargetRules();
rules.push({
message: "开始节点不能是边的目标节点",
validate: () => false
});
return rules;
}
getNodeStyle() {
const theme = this.graphModel.props.theme;
const style = super.getNodeStyle();
if(this.properties.state == NodeStateEnum.history) {
style.stroke = theme.historyColor || ColorEnum.historyColor;
} else if(this.properties.state == NodeStateEnum.active) {
style.stroke = theme.activeColor || ColorEnum.activeColor;
} else {
style.stroke = theme.primaryColor || ColorEnum.primaryColor;
}
// style.strokeDasharray = "3 3";
return style;
}
}
class StartView extends CircleNode {
}
export default {
type: "start",
view: StartView,
model: StartModel,
};