泛微E9开发 根据故障来源新增明细行,并且初始化错误类型

发布于:2024-07-02 ⋅ 阅读:(145) ⋅ 点赞:(0)

1、需求说明

用户对出现故障的机器或设备进行判断问题判断,系统根据软硬件故障自动识别相关的故障原因,并且对故障原因进行确认,当存在某个现象时,明细表自动新增行,并初始化错误类型。

  1. “硬件故障”
    在这里插入图片描述

  2. “硬件故障”去掉“硬盘存在坏道或损坏”故障原因在这里插入图片描述

  3. “软件故障”
    在这里插入图片描述

2、实现方法

代码块

<script>
  var gzlxField = WfForm.convertFieldNameToId("gzlypd");
  
  var yjgzFieldArr = ["26199","26200","26201","26202","26203","26204","26205"];
  var rjgzFieldArr = ["26206","26208","26209","26210","26211","26212","26213"];
  
  //故障来源判断,清空故障相关值
  clearData = function(gzlyV){
    //硬件故障,清空软件故障相关值
    if(gzlyV == "0"){
      WfForm.changeMoreField({field26199:{value:""},field26200:{value:""},field26201:{value:""},field26202:{value:""},field26203:{value:""},field26204:{value:""},field26205:{value:""},field26214:{value:""}}
                            ,{field26199:{viewAttr:3},field26200:{viewAttr:3},field26201:{viewAttr:3},field26202:{viewAttr:3},field26203:{viewAttr:3},field26204:{viewAttr:3},field26205:{viewAttr:3},field26214:{viewAttr:3}});
    }else if(gzlyV == "1"){     //软件故障,清空硬件故障相关值
      WfForm.changeMoreField({field26206:{value:""},field26208:{value:""},field26209:{value:""},field26210:{value:""},field26211:{value:""},field26212:{value:""},field26213:{value:""},field26214:{value:""}}
                            ,{field26206:{viewAttr:3},field26208:{viewAttr:3},field26209:{viewAttr:3},field26210:{viewAttr:3},field26211:{viewAttr:3},field26212:{viewAttr:3},field26213:{viewAttr:3},field26214:{viewAttr:3}});
    }else{
      
    }
  }
  
  operateDetailRow = function(value,fieldLable){
    //无问题,表示清空该行
    if(value == "1"){ 
      var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
      for(var i=0; i<rowArr.length; i++){
          var rowIndex = rowArr[i];
          if(rowIndex !== ""){
            var fieldMark = "field25902_"+rowIndex;    //遍历明细行字段
            var fieldValue = WfForm.getFieldValue(fieldMark);
            if(fieldValue == fieldLable){
              WfForm.delDetailRow("detail_1",rowIndex.toString());
            }
          }
      }
    }else if(value == "0"){
      WfForm.addDetailRow("detail_1",{field25902:{value:fieldLable}});
    }else{
      
    }
    
  } 
  
  jQuery(document).ready(function(){
    debugger;
    
    //故障来源判断  - 值触发
    WfForm.bindFieldChangeEvent(gzlxField,function(obj,id,value){
      WfForm.delDetailRow("detail_1","all");
      clearData(value); 
    });
    
    //硬件故障+其他  - 值触发
    WfForm.bindFieldChangeEvent("field26199,field26200,field26201,field26202,field26203,field26204,field26205,field26214",function(obj,id,value){
      var gzlxValue = WfForm.getFieldValue(gzlxField);
      if(gzlxValue == "1"){
        return;
      }
      if(value){
        var fieldid = id.substring(5,id.length);
        var fieldInfo = WfForm.getFieldInfo(fieldid);
        var fieldLable = fieldInfo.fieldlabel;
        operateDetailRow(value,fieldLable);
      }
    });
    
    //软件故障+其他  - 值触发
    WfForm.bindFieldChangeEvent("field26206,field26208,field26209,field26210,field26211,field26212,field26213,field26214",function(obj,id,value){
      var gzlxValue = WfForm.getFieldValue(gzlxField);
      if(gzlxValue == "0"){
        return;
      }
      if(value){
        var fieldid = id.substring(5,id.length);
        var fieldInfo = WfForm.getFieldInfo(fieldid);
        var fieldLable = fieldInfo.fieldlabel;
        operateDetailRow(value,fieldLable);
      }
    });
    
  })

</script>

3、扩展知识点

3.1 批量修改字段值或显示属性

3.1.1 格式

changeMoreField: function(changeDatas, changeVariable)

3.1.2 参数

参数说明

参数 参数类型 参数类型 参数类型
changeMoreField JSON 修改的字段值信息集合
changeVariable JSON 修改的字段显示属性集合
3.1.3 演示
WfForm.changeMoreField({
    field110:{value:"修改后的值"},
    field111:{value:"2,3",specialobj:[
        {id:"2",name:"张三"},{id:"3",name:"李四"}
    ]},
    ...
},{
    field110:{viewAttr:2},
    field111:{viewAttr:3},
    ...
});

3.2 根据字段ID获取字段信息

说明:根据字段ID获取字段信息,JSON格式,包括名称、类型、只读必填属性等

3.2.1 格式

getFieldInfo:function(fieldid)

3.2.2 参数

参数说明

参数 参数类型 参数类型 参数类型
fieldid String 字段ID,不带任何标示
返回值字段信息JSON重要属性说明
参数 说明
htmltype 字段大类型(文本/多行文本…)
detailtype 字段小类型(整数/浮点数…)
fieldname 字段数据库名称
fieldlabel 字段显示名
viewattr 字段属性(1:只读;2:可编辑;3:必填)
3.2.3 演示
WfForm.getFieldInfo("111");