Iplat4j优秀代码笔记

文章讲述了如何在IPLATUI框架中使用EFMultiSelect组件实现下拉多选框的定制,包括联动效果,如当研究院选项改变时动态加载设备模型数据。同时介绍了自定义下拉框的查询服务和在EiInfo对象中的数据处理。
摘要由CSDN通过智能技术生成

EFMultiSelect 下拉多选

 <EF:EFMultiSelect ename="inqu-0-MAT_TYPE"
                                  cname="工位" template="#=valueField#-#=textField#"
                                  colWidth="3" ratio="3:9"
                                  filter="contains"
                                  autoClose="false">
                    <EF:EFCodeOption codeName="jhy.kf.station"/>
 </EF:EFMultiSelect>
  //样式区分 联动
      IPLATUI.EFSelect = {
          "inqu-0-styleDev": {
              change: function (e) { //获取改变值
                  console.log("研究院")
                  // queryProduct("#inqu_status-0-matType", "KFSY14", "query1");
                  var inInfo = new EiInfo();
                  inInfo.setByNode("inqu");
                  EiCommunicator.send("KFSY14", "query1", inInfo, {
                      onSuccess: function (e) {
                          //动态选择展示或隐藏EFOption标签
                          const zhi = $("#inqu-0-styleDev").val();
                          const list = e["blocks"][zhi]["rows"];
                          const datasource = new kendo.data.DataSource({
                              data:[
                                  {textField:'',valueField:''},
                              ]
                          });
                          if(!$.isEmptyObject(list)){
                              datasource.add({textField:'',valueField:''});
                              for (let i = 0; i < list.length; i++) {
                                  datasource.add({textField:list[i][0],valueField:list[i][1]})
                              }
                          }
                          IPLAT.EFMultiSelect.setDataSource($("#inqu-0-matType"),datasource);

                      }, onFail: function (e) {
                          NotificationUtil("查询表信息异常", "error");
                      }
                  }, {async: false});
              }
          }
      };

EFGrid 自定义下拉框

service

 /**
     * 根据检测中类查询检测标准
     *
     * @param inInfo
     * @return
     */
    public EiInfo queryEquipmentModel(EiInfo inInfo) {
        EiInfo outInfo = new EiInfo();
        try {
            Map paramMap = new HashMap();
//            paramMap.put("type", "1");
            List<Map> equipmentModelList = dao.query("CPBS01.equipmentModelList", paramMap);

            //添加一个空数据便于自定义下拉框选择
            Map map = new HashMap();
            map.put("EQUIPMENT_CODE", "");
            map.put("EQUIPMENT_NO", "");
            map.put("EQUIPMENT_NAME", "");
            equipmentModelList.add(map);

            outInfo.set("equipmentModelList", equipmentModelList);
        } catch (Exception ex) {
            inInfo.setStatus(EiConstant.STATUS_FAILURE);
            inInfo.setMsg("查询失败!" + ex.getMessage());
            logger.error("查询失败!" + ex.getMessage());
        }
        return outInfo;
    }

jsp

 <EF:EFRegion id="result" title="记录集">
        <EF:EFGrid blockId="result" autoDraw="no" personal="true" checkMode="multiple,row">

            <EF:EFColumn ename="id" cname="ID" maxLength="255" hidden="true"/>
            <EF:EFComboColumn ename="middleCode" cname="检测项中类" align="center" width="200" filter="contains"
                              columnTemplate="#=textField#">
                <EF:EFCodeOption codeName="jhy.bc.middleTestItem"/>
            </EF:EFComboColumn>
            
            <EF:EFColumn ename="equipmentModel" cname="型号" maxLength="255"/>
            
            <EF:EFColumn ename="equipmentName" cname="设备名称" maxLength="255"/>
            <EF:EFColumn ename="equipmentNo" cname="设备号" maxLength="255" hidden="true"/> 
        </EF:EFGrid>
    </EF:EFRegion>

js

 IPLATUI.EFGrid = {
        "result": {
            columns: [
                {
                    field: "equipmentModel",
                    editor: function (container, options) {
                        var input = $('<input style="width: 200px"/>');
                        var dataSource;

                        input.attr("name", options.field);
                        input.attr("id", options.field);
                        input.appendTo(container);

                        var eiInfo = new EiInfo();
                        eiInfo.set("type", "1");

                        EiCommunicator.send("CPBS01", "queryEquipmentModel", eiInfo, {
                            onSuccess: function (ei) {
                                dataSource = ei.get("equipmentModelList");
                            }, onFail: function (ei) {
                            }
                        }, {async: false});
                        
                        input.kendoDropDownList({
                            valuePrimitive: true,
                            dataTextField: "EQUIPMENT_CODE",
                            dataValueField: "EQUIPMENT_CODE",
                            dataSource: dataSource,
                            template: "#=EQUIPMENT_CODE#",
                            filter: "contains"
                        });
                    }
                }
            ] 
        },

    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值