go.js动态自定义设置连线颜色

go.js前端动态自定义设置连线颜色

如图,需要各个模块之间的连线颜色自定义设置
在这里插入图片描述

第一种方法

提示:和此图官网代码一样,数据中直接设置给定颜色
//链接形状和箭头的笔触数据绑定到“ color”属性

myDiagram.linkTemplate =
		        $(go.Link,
		          { toShortLength: 3, relinkableFrom: true, relinkableTo: true },
		          $(go.Shape,
		            { strokeWidth: 2 },
		            new go.Binding("stroke", "color")),
		          $(go.Shape,
		            { toArrow: "Standard", stroke: null },
		            new go.Binding("fill", "color"))
		        );

数据

var nodeDataArray = [
		        { key: 1, text: "烧烤"},
		        { key: 2, text: "火锅"},
		        { key: 3, text: "炒菜"},
		        { key: 4, text: "面条"}
		      ];
		      var linkDataArray = [
		        { from: 1, to: 2, color: "red" },
		        { from: 2, to: 3,color:"yellow"},
		        { from: 3, to: 4, color: "blue" },
		        { from: 4, to: 1, color: "#000000" }
		      ];

第二种方法

如果在数据中不能直接给定颜色或者需要进行复杂的判断,需要前端进行外部判断

myDiagram.linkTemplate =
		        $(go.Link,
		          { toShortLength: 3, relinkableFrom: true, relinkableTo: true },
				  $(go.Shape, {strokeWidth: 2},
					    new go.Binding("stroke", "from", (f) => {
					    //'from'为我从数据中取的参数名,也可以取其他需要的参数
					    //1可以直接判断然后return出颜色就行了
					    //2复杂的话将连线的from参数取到传入自定义的方法colorSet中进行判断
							return colorSet(f);
					})),
		          $(go.Shape,
		            { toArrow: "Standard", stroke: null },
		            new go.Binding("stroke", "from", (f) => {
		            		return colorSet(f);
		            }))
		        );
function colorSet(param){//自定义个方法来判断
					console.log(param)
					switch (param) {
			            case 1:return "red";
			            case 2:return "yellow";
			            case 3:return "blue";
			            case 4:return "#000000";
			            default:return "#eee";
			        }
				}

数据

var nodeDataArray = [
		        { key: 1, text: "烧烤"},
		        { key: 2, text: "火锅"},
		        { key: 3, text: "炒菜"},
		        { key: 4, text: "面条"}
		      ];
		      var linkDataArray = [
		        { from: 1, to: 2},
		        { from: 2, to: 3},
		        { from: 3, to: 4},
		        { from: 4, to: 1}
		      ];

以上就完成了连线颜色的设置。


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Flowable 中,可以通过自定义渲染器来实现自定义流程连线颜色。以下是实现步骤: 1. 创建自定义渲染器类 CustomProcessDiagramGenerator,并继承 DefaultProcessDiagramGenerator 类。 2. 重写 generateDiagram 方法,添加对连线颜色自定义设置。可以通过以下代码实现: ``` @Override protected void drawSequenceFlowWithoutArrowheads(ProcessorContext processorContext, GraphicInfo sourceGraphicInfo, GraphicInfo targetGraphicInfo, List<GraphicInfo> graphicInfoList, String elementId, BPMNEdge bpmnEdge) { super.drawSequenceFlowWithoutArrowheads(processorContext, sourceGraphicInfo, targetGraphicInfo, graphicInfoList, elementId, bpmnEdge); // 设置连线颜色 processorContext.getProcessDiagramCanvas().getGraphics().setColor(Color.RED); processorContext.getProcessDiagramCanvas().getGraphics().setStroke(new BasicStroke(3, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); processorContext.getProcessDiagramCanvas().drawConnection(graphicInfoList, true, true); } ``` 以上代码中,我们通过重写 drawSequenceFlowWithoutArrowheads 方法,并设置连线颜色来实现自定义连线颜色。 3. 在流程引擎配置中添加自定义渲染器类: ``` ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("flowable.cfg.xml"); processEngineConfiguration.setProcessDiagramGenerator(new CustomProcessDiagramGenerator()); ``` 以上代码中,我们通过 setProcessDiagramGenerator 方法设置自定义渲染器类,从而实现自定义连线颜色。 通过以上步骤,我们可以实现自定义流程连线颜色

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值