Skip to content
On this page

字段类型支持与自定义

系统字段控件目前支持:

  • 文本控件:
  • 数值控件:
  • 下拉控件:
  • 多选下拉控件:
  • 可编辑下拉控件:
  • 选择窗口:
  • 选择窗口(多选):
  • 复选框:
  • 日期控件:
  • 日期时间控件:
  • 仅时间控件:
  • 仅时分控件:
  • 年份控件:
  • 月份控件:
  • 图片上传控件:
  • editor富文本编辑器控件:
  • 自定义控件:

自定义控件仅支持Grid编辑页面,form页面不支持。

自定义控件需要重写defEditTableCell方法:

javascript
//自定义编辑列

  function defEditTableCell(field, value,row, $element,runAll){
    if($element.find('select').length===0){
    // field 为选择框
    varcontrol_name=row["datarule_name"];
    if(value==null||value=="")value=row["has_datarule_name"];
    if(control_name==null||control_name=="") return;
    varnames=control_name.split(";");
    varoptions="",optionJson={};
    for(var i=0;i<names.length;i++){
    var option=names[i];
    if(option.indexOf(",")<0) continue;
    optionJson[option.split(",")[0]]=option.split(",")[1];
    }

    for(var key in optionJson){//遍历设置options
    options+='<optionvalue="'+key+'"'+((value+";").indexOf(key+";")>-1?"selected":"")+'>'+optionJson[key]+'`</option>`';
    }

    var$select = $("<selectclass='form-control' multiple='multiple' data-live-search='true' >"+options+"`</select>`");//multiple

    var blur=function(e){
    let index =$element.parent().data('index'),
    selected = $select.val(),
    tdValue =selected.join(";") + (selected.length?";":"");
    if (tdValue != value) {//数据修改过
    //更新最新值到row
    var rows =$table.bootstrapTable('getData', {useCurrentPage: true, includeHiddenRows:true});
    rows[index][field] =tdValue;
    rows[index]["isUpdateData"] = "1";//标记记录被修改
    hasDuty=true;
    }

    //if(editData[field]["formatter"]==null||typeof(editData[field]["formatter"])=="undefined"||editData[field]["formatter"]=="")$element.html("" + tdValue);
    // else$element.html(eval(editData[field]["formatter"]+"(tdValue,row,index)"));
    if(hasDuty) $element.css("border-bottom","2px dashed #F00");

    };

    $element.html($select);
    $select.select2({
    multiple:true,
    minimumResultsForSearch: 10,
    width: "100%",
    templateResult: function(result, container) {
    return result.text
    }
    }).on("change",blur);

//      $element.find(".select2-selection__choice__remove").on("click",function() {
// alert(222);
//       });
    }
  }