GooFlow修改元素color(背景/字体/连线)

本文介绍如何使用 GooFlow 进行流程图的自定义配置,包括节点颜色、字体颜色及节点属性的修改方法。此外,还介绍了如何实现流程退回功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、修改节点(背景/字体/连线)颜色:

在 GooFlow.color.js 中自定义的键值对

GooFlow.prototype.color={
  main:"#20A0FF",
  font:"#15428B",
  node:"#C0CCDA",
  line:"#1D8CE0",
  lineFont:"#ff6600",
  mark:"#ff8800",
  mix:"#B6F700",
  mixFont:"#777",
  finishstate:"#F64A25",
  runningstate:#84DB1A",
  nodestateFont:"#FFFFFF"
};

在 GooFlow.css 中添加节点(背景/字体)的样式

.GooFlow .item_mix{background:#B6F700;color:#fff}
.GooFlow .item_finishstate{background:#F64A25;color:#fff}
.GooFlow .item_runningstate{background:#84DB1A;color:#fff}

在 GooFlow.js 中引入判断

if(GooFlow.prototype.color.node){
      if(json.type.indexOf(" mix")>-1){
        this.$nodeDom[id].css({"background-color":GooFlow.prototype.color.mix,"border-color":GooFlow.prototype.color.mix});
		if(GooFlow.prototype.color.mixFont){
			this.$nodeDom[id].find("td:eq(1)").css("color",GooFlow.prototype.color.mixFont);
			this.$nodeDom[id].find(".span").css("color",GooFlow.prototype.color.mixFont);
		}
      }else if(json.type.indexOf(" finishstate")>-1){
          this.$nodeDom[id].css({"background-color":GooFlow.prototype.color.finishstate,"border-color":GooFlow.prototype.color.finishstate});
  		if(GooFlow.prototype.color.nodestateFont){
  			this.$nodeDom[id].find("td:eq(1)").css("color",GooFlow.prototype.color.nodestateFont);
  			this.$nodeDom[id].find(".span").css("color",GooFlow.prototype.color.nodestateFont);
  		}
      }else if(json.type.indexOf(" runningstate")>-1){
          this.$nodeDom[id].css({"background-color":GooFlow.prototype.color.runningstate,"border-color":GooFlow.prototype.color.runningstate});
    		if(GooFlow.prototype.color.nodestateFont){
    			this.$nodeDom[id].find("td:eq(1)").css("color",GooFlow.prototype.color.nodestateFont);
    			this.$nodeDom[id].find(".span").css("color",GooFlow.prototype.color.nodestateFont);
    		}
      }
    
    。。。
}

在实例组件功能模块中修改node

 //初始流程图数据
DataJson = $.parseJSON(projectDataStr);   
for(var key in DataJson.nodes){    //node
    //根据业务初始化修改node的type即可改变(背景/字体)
     DataJson.nodes[key].type = "task runningstate";

    for(var linekey in DataJson.lines){    //line
        //根据业务初始化修改line的marked即可改变连线的颜色(默认改变为橙黄色)
         DataJson.lines[linekey].marked=true;
    }
}

2. 自定义节点属性:

//组件获得焦点事件

在表单中回显已有需要的属性同时表单可输入自定义的属性,提交表单是重新给该节点赋值:

if(gooflow_id){
var data = projectTemp.exportData(); //projectTemp为初始化GooFlow实例
if(gooflow_model&&gooflow_model=='node'){
    $.each(data.nodes, function (i, n) {
  if(i==comp_id){
   //这里修改节点事项各个属性
   $form.find("input").each(function(){
   if($(this).prop('name')&&$(this).prop('name')!='gooflow_id'){//组件ID就不修改了
    if(!($(this).attr('modeltype'))||$(this).attr('modeltype')=='node'){
     n[$(this).prop('name')]=$(this).val();        //重新给节点赋值
    }
   }
  }); 
   data.nodes[i]=n;
  }
    });
}
if(gooflow_model&&gooflow_model=='line'){
 $.each(data.lines, function (i, n) {
  if(i==comp_id){
   //这里修改节点事项各个属性
   $form.find("input").each(function(){
    if($(this).prop('name')&&$(this).prop('name')!='gooflow_id'){//组件ID就不修改了
     if(!($(this).attr('modeltype'))||$(this).attr('modeltype')=='line'){
      if($(this).prop('name') == "dash"){
       if($(this).val() == "false"){
        n[$(this).prop('name')]=false;
       }
       if($(this).val() == "true"){
        n[$(this).prop('name')]=true;
       }
      }else{
       n[$(this).prop('name')]=$(this).val();
      }
     }
    }
   }); 
    data.lines[i]=n;
  }
 });
}
projectTemp.clearData();
projectTemp.loadData(data);
}else{
 alert('请先选择节点!');
}
}

3. 不同意返回上级重新审核:

通过  实例GooFlow对象的lines[linekey].to 获取node的id 然后获取节点属性信息进行业务数据回显等处理。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值