泛微ECOLOGY9流程选择框显示文本根据表单选择的内容动态显示

文章描述了一个使用场景,如何通过JavaScript和WfForm库实现供应商选择框的动态展示,当供应商字段值改变时,自动将显示名称替换为实际的供应商名称,提高界面直观性。
摘要由CSDN通过智能技术生成

使用场景介绍

批量申请的东西需要多家供应商报价、同时供应商不固定,在选择时又根据不同的东西会选择最优的供应商。在这个需求下,只能用流程明细来批量实现东西的申请,同时 设定3家供应商,分别命名为 供应商一、供应商二、供应商三,然后在选择最终供应商时, 用 选择框 选择为 供应商一,供应商二,供应商三, 但这样看起来不够直观,并不是显示对应供应商的名称,所以就有了以下需求,动态的将 供应商一、供应商二、供应商三 替换为 实际的供应商名称。

初始场景

选择框设定
在这里插入图片描述

在这里插入图片描述
这种方式显示的不够直观,最好是能将 填好的供应商名称 对应显示在明细中。

调整后效果

在这里插入图片描述
实现:上面的最终供应方由下面的供应商名称动态的变动而变动。

实现代码

	var GYS1id = WfForm.convertFieldNameToId("GYS1"); //获取供应商一的字段ID
    var GYS2id = WfForm.convertFieldNameToId("GYS2"); //获取供应商二的字段ID
    var GYS3id = WfForm.convertFieldNameToId("GYS3"); //获取供应商三的字段ID
    var qrgyfid = WfForm.convertFieldNameToId("qrgyf","detail_1"); //获取确认供应方的字段ID

    var xgllk = function(val){ //将修改选择框的显示值 做为一个函数用
      var gys1value =WfForm.getFieldValue(GYS1id); //获取供应商一的值
      var gys2value =WfForm.getFieldValue(GYS2id); //获取供应商二的值
      var gys3value =WfForm.getFieldValue(GYS3id); //获取供应商三的值
      window.setTimeout(function(){ //加个延时,点击选择框时,HTML弹窗加载需要时间,不加延时修改不到。
        $(val).each(function() {
          var $this = $(this);
          var title='';
          if(val=='.child-item'){ //浏览框为只读时,只有显示值,没有 属性为 title的项。
            title = $this.text(); 
          }else{
            title = $this.attr("title");//定位用,不修改            
          }
          
          switch(title){
            case "供应商一":
              if(gys1value !=""){
                $this.text(gys1value);
              }
            break;
            case "供应商二":
              if(gys2value !=""){
                $this.text(gys2value);
              }
            break;
            case "供应商三":
              if(gys3value !=""){
                $this.text(gys3value);
              }
            break;               
          }          
        });
      }, 10);
    } 
    var zzxg =function(){
      xgllk(".ant-select-selection-selected-value"); //点击选择框弹出选择项内容的修改
      xgllk(".child-item"); //选择框只读时的修改。
      xgllk(".ant-select-dropdown-menu-item"); //选择框选定后显示内容的修改
    }
	
    zzxg();  //流程打开时调用
      WfForm.bindFieldAction("onclick", qrgyfid, function(fieldid,rowIndex){       
        zzxg(); //选择框点击时调用
      });
      WfForm.bindDetailFieldChangeEvent(qrgyfid,function(id,rowIndex,value){
        zzxg(); //选择框内容变动时调用
      });
      $(document).on('click', '.ant-select-arrow', function() {
        zzxg();  //选择框边上的小三角点击时调。这里是对流程中所有小三角生效,但内容修改只修改 属性title 为  供应商一、 供应商二、供应商三 的。
      });

   WfForm.bindFieldChangeEvent(GYS1id, function(obj,id,value){//供应商一变更时也做同步的变更
      zzxg();
    });
    WfForm.bindFieldChangeEvent(GYS2id, function(obj,id,value){//供应商二变更时也做同步的变更
      zzxg();
    });
    WfForm.bindFieldChangeEvent(GYS3id, function(obj,id,value){//供应商三变更时也做同步的变更
      zzxg();
    });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东枫落定

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值