事件名:cusSoluCtrlOptions
参数:(field,inputType,json)
事件说明:事件在添加自定义条件时触发,调用此方法对过滤条件控件的属性进行补充定义。需要注意的是,如果控件初始化需要依赖额外的js文件,必须在json.moduleName定义。
参数说明:field(过滤条件字段名),inputType(过滤条件控件类型),json(当前控件属性)
返回值说明:无。
样例:
在方案查询页签添加过滤条件时,组件会根据选择的过滤字段数据类型来自动创建相匹配的控件,但是在有些业务场景下,还需要对这些控件的属性做一些调整,甚至是修改为其他类型控件,这时就需要用到该事件。
具体实现方式如下:
1、在定义工具上定义该事件。
2、在js中实现自定义方法getMySoluCtrlOptions。
getMySoluCtrlOptions:function(field,inputType,json){
if (field=="handler.name") {
json.subWidgetOptions.isMulti=true;
json.subWidgetOptions.filteritem="number like '%01%'";
}
if (field=="quantity") {
json.decimalPrecision = 0;
}
}
本样例实现“经手人名称”的F7控件设置为多选,并添加额外过滤条件;“数量”的数字输入框精度设置为0。
3、通常情况下,组件默认创建的F7控件是通用F7,如果需要特定的F7,则需要在json属性中指定类型,并且在json.moduleName定义需要额外依赖的js文件。
比如,“经手人名称”对应的F7控件需要修改为“职员F7”:
if (field=="handler.name") {
json.F7Type="F7Special_Person";
json.subWidgetName="wafPromptSpecial_Person";
json.moduleName="promptSpecial_Person";
}
4、还有些业务场景需要将控件类型进行修改。
比如,“币种”字段默认的控件是“通用F7”,要调整为“下拉框”:
if (field=="currency.name") {
json.inputType = 'select';
json.type = 'EnumString';
json.enumSource = [{value:"RMB",alias:"人民币"},
{value:"DRL",alias:"美元"},
{value:"EUP",alias:"欧元"}];;
json.listHeight = 200;
json.value = {value:"RMB",alias:"人民币"};
}
推荐阅读