usable range
process
cms
protal
since
- v6.2
example
//可以在脚本中获取该组件
//方法1:
var datatemplate = this.form.get("name"); //获取组件
//方法2
var datatemplate = this.target; //在组件事件脚本中获取
source
members
nodeelement
组件的节点,mootools封装过的dom对象,可以直接使用原生的js和moootools方法访问和操作该对象。
type
-
element
example
//可以在脚本中获取该组件
var field = this.form.get("fieldid"); //获取组件对象
field.node.setstyle("font-size","12px"); //给节点设置样式
source
jsonjsonobject
组件的配置信息,比如id,类型,是否只读等等。可以在组件的queryload事件里修改该配置来对组件做一些改变。
type
-
jsonobject
example
//可以在脚本中获取该组件
var json = this.form.get("fieldid").json; //获取组件对象
var id = json.id; //获取组件的id
var type = json.type; //获取组件的类型,如textfield 为文本输入组件,select为下拉组件
//在组件queryload事件里设置组件只读。
//当前组件的queryload事件运行时还没有在form里注册,通过this.form.get("fieldid")不能获取到当前组件,需要用this.target获取。
var json = this.target.json;
json.isreadonly = true; //设置组件为只读。
source
formmwf.xapplication.process.xform.form
组件的所在表单对象.
type
example
var form = this.form.get("fieldid").form; //获取组件所在表单对象
var container = form.container; //获取表单容器
source
parentlinemwf.xapplication.process.xform.datatemplate.line|mwf.xapplication.process.xform.datatablepc.line|mwf.xapplication.process.xform.datatablemobile.line
当前组件在数据表格或者数据模板中时,可以通过此属性获取所在行(条目)对象.
type
-
mwf.xapplication.process.xform.datatemplate.line
|mwf.xapplication.process.xform.datatablepc.line
|mwf.xapplication.process.xform.datatablemobile.line
inherited from
example
//获取当前组件所在数据模板/数据表格的行(条目)对象
var line = this.target.parentline;
//获取当前字段所在行下标
var index = line.getindex();
//获取当前字段所在条目的subject字段的值
var data = line.getmodule("subject").getdata();
//设置当前字段所在条目的subject字段的值
line.getmodule("subject").setdata("test1");
source
methods
getallsectiondata() → {object}
summary
当数据模板设置为区段合并展现、区段合并编辑时,可以使用本方法获取所有区段数据。
returns
-
object
对象.
example
var data = this.form.get("fieldid").getallsectiondata();
//data格式如下:
{
"3455b82a-399c-4ee4-b9b9-e70ae40fbaf1": [ //区段1的key和data
{
"good": "yf",
"number_2": 11,
"prize": 1
}
],
"83de86fc-60bc-4b4c-955c-1085915865a4": [ //区段2的key和data
{
"good": "yf",
"number_2": 11,
"prize": 10
}
]
}
source
setdata(data)
summary
为数据模板赋值。
description
当参数为promise的时候,请查看文档:
当表单上没有对应组件的时候,可以使用this.data[fieldid] = data赋值。
parameters
-
data
datatemplatedata
|promise
|array
必选,数组或promise.
examples
this.form.get("fieldid").setdata([]); //赋空值
//如果无法确定表单上是否有组件,需要判断
if( this.form.get('fieldid') ){ //判断表单是否有无对应组件
this.form.get('fieldid').setdata( data );
}else{
this.data['fieldid'] = data;
}
//使用promise
var field = this.form.get("fieldid");
var promise = new promise(function(resolve, reject){ //发起异步请求
var oreq = new xmlhttprequest();
oreq.addeventlistener("load", function(){ //绑定load事件
resolve(oreq.responsetext);
});
oreq.open("get", "/data.json"); //假设数据存放在data.json
oreq.send();
});
promise.then( function(){
var data = field.getdata(); //此时由于异步请求已经执行完毕,getdata方法获得data.json的值
})
field.setdata( promise );
source
setallsectiondata(data, firechange)
summary
当数据模板设置为区段合并展现、区段合并编辑时,可以使用本方法设置所有区段数据。
parameters
-
data
object
必选,对象.
-
firechange
boolean
可选,是否触发change事件,默认false.
examples
this.form.get("fieldid").setallsectiondata({}); //赋空值
this.data['fieldid'].setallsectiondata({
"3455b82a-399c-4ee4-b9b9-e70ae40fbaf1": [ //区段1的key和data
{
"good": "yf",
"number_2": 11,
"prize": 1
}
],
"83de86fc-60bc-4b4c-955c-1085915865a4": [ //区段2的key和data
{
"good": "yf",
"number_2": 11,
"prize": 10
}
]
});
source
isempty() → {boolean}
summary
判断数据模板是否为空.
returns
-
boolean
是否为空
example
if( this.form.get('fieldid').isempty() ){
this.form.notice('至少需要添加一条数据', 'warn');
}
source
getline(index) → {mwf.xapplication.process.xform.datatemplate.line|null}
获取对应的条目。
parameters
-
index
number
条目序号,从零开始
returns
-
mwf.xapplication.process.xform.datatemplate.line
null
对应的数据模板条目
example
//获取数据模板“dt1”的第一个条目。
var line = this.form.get("dt1").getline(0);
//获取第一个条目subject字段的值
var data = line.get("subject").getdata();
//设置subject字段的值
line.get("subject").setdata("test1");
source
addline(dataopt) → {mwf.xapplication.process.xform.datatemplate.line}
在数据模板末尾添加条目。
parameters
-
data
object
添加条目的数据。
returns
-
mwf.xapplication.process.xform.datatemplate.line
添加的数据模板条目
example
var line = this.form.get("dt1").addline();
source
insertline(index, dataopt) → {mwf.xapplication.process.xform.datatemplate.line|null}
在数据模板指定位置添加条目。
parameters
-
index
number
条目序号,从零开始,如果下标超过当前数据模板条目数,插入失败并返回null。
-
data
object
添加条目的数据。
returns
-
mwf.xapplication.process.xform.datatemplate.line
null
插入的数据模板条目
example
var line = this.form.get("dt1").insertline(0);
source
deleteline(index)
删除指定位置的条目。
parameters
-
index
number
条目序号,从零开始,如果下标超过当前数据模板条目数,删除失败。
example
//直接删除第一个条目
this.form.get("dt1").deleteline(0);
source
getmodule(index, id) → {formcomponent}
获取对应表单组件,作用等同于get。
parameters
-
index
number
条目序号,从零开始
-
id
string
组件标识
returns
-
formcomponent
对应表单组件
example
//获取数据模板“dt1”的第一个条目的subject字段。
var module = this.form.get("dt1").getmodule(0, "subject");
//获取subject字段的值
var data = module.getdata();
//设置subject字段的值
module.setdata("test1");
source
get(index, id) → {formcomponent}
获取对应表单组件,作用等同于getmodule。
parameters
-
index
number
条目序号,从零开始
-
id
string
组件标识
returns
-
formcomponent
对应表单组件
example
//获取数据模板“dt1”的第一个条目的subject字段。
var module = this.form.get("dt1").get(0, "subject");
//获取subject字段的值
var data = module.getdata();
//设置subject字段的值
module.setdata("test1");
source
getdata() → {datatemplatedata}
summary
获取数据模板数据.
description
在脚本中使用 this.data[fieldid] 也可以获取组件值。
区别如下:
1、当使用promise的时候
使用异步函数生成器(promise)为组件赋值的时候,用getdata方法立即获取数据,可能返回修改前的值,当promise执行完成以后,会返回修改后的值。
this.data[fieldid] 立即获取数据,可能获取到异步函数生成器,当promise执行完成以后,会返回修改后的值。
2、当表单上没有对应组件的时候,可以使用this.data[fieldid]获取值,但是this.form.get('fieldid')无法获取到组件。
returns
examples
var data = this.form.get('fieldid').getdata();
//如果无法确定表单上是否有组件,需要判断
var data;
if( this.form.get('fieldid') ){ //判断表单是否有无对应组件
data = this.form.get('fieldid').getdata();
}else{
data = this.data['fieldid']; //直接从数据中获取字段值
}
//使用promise
var field = this.form.get("fieldid");
var promise = new promise(function(resolve, reject){ //发起异步请求
var oreq = new xmlhttprequest();
oreq.addeventlistener("load", function(){ //绑定load事件
resolve(oreq.responsetext);
});
oreq.open("get", "/data.json"); //假设数据存放在data.json
oreq.send();
});
promise.then( function(){
var data = field.getdata(); //此时由于异步请求已经执行完毕,getdata方法获得data.json的值
})
field.setdata( promise );
source
validate(routenameopt) → {boolean}
summary
根据组件的校验设置进行校验。
parameters
-
routename
string
可选,路由名称.
inherited from
returns
-
boolean
是否通过校验
example
if( !this.form.get('fieldid').validate() ){
return false;
}
source
getsource(typeopt) → {source|subsource|subsourceitem}
当前组件在数据源组件中时,可以通过此方法获取所在的上级数据源/子数据源/子数项组件.
parameters
-
type
string
需要获取的类型,"source"为表示数据源,"subsource"表示子数据源,"subsourceitem"表示子数据项组件。 如果该参数省略,则获取离当前组件最近的上述组件。
inherited from
returns
-
source
subsource
subsourceitem
。
example
var source = this.target.getsource(); //获取当前组件的所在子上级数据源/子数据源/子数项组件.
var data = source.data; //获取数据
var source = this.form.get("fieldid").getsource("source"); //获取数据源组件
var data = source.data; //获取数据
source
getparentmodule(typeopt, validatefunctionopt) → {mwf.xapplication.process.xform.$module}
获取当前组件所在的祖先组件.
parameters
-
type
string
需要获取的组件类型。 如果该参数省略,则获取离当前组件最近的祖先组件。type有效值如下:
form- 表单common- 通用组件datatable- 数据表格datatableline- 数据表格行datatemplate- 数据模板datatemplateline- 数据模板行div- 容器组件elcommon- element通用组件elcontainer- element容器组件subform- 子表单source- 数据源组件subsource- 子数据源subsourceitem- 子数据项组件tab- 分页组件tabpage- 分页组件的某个分页table- 表格tabletd- 单元格widget- 部件 -
validatefunction
function
进一步校验,参数为获取到匹配到类型的组件,返回false继续往上取对应类型的组件,返回true返回该组件。
inherited from
returns
example
var module = this.target.getparentmodule(); //获取最近的祖先。
var datatemplateline = this.target.getparentmodule("datatemplateline"); //获取当前组件所在的数据模板行.
var module = this.target.getparentmodule(null, function(module){
return module.json.id === "div_1";
}); //获取当前组件id为div_1的父组件。
source
hide()
summary
隐藏组件.
inherited from
example
this.form.get("fieldid").hide(); //隐藏组件
source
show()
summary
显示组件.
inherited from
example
this.form.get("fieldid").show(); //显示组件
source
events
afterload
所有内容加载后执行(包括异步加载)。
see
beforeloadline
每初始化一个条目,但未加载的时候触发,通过this.event可以获取条目对象。
see
afterloadline
每一个条目加载后时候触发,通过this.event可以获取条目对象。
see
change
数据模板改变时触发。通过this.event.lines可以获取修改的条目数组,this.event.type可以获得修改的类型。
this.event.type | 触发类型 | this.event.lines |
---|---|---|
addline | 添加一行 | 添加的行数组 |
deleteline | 删除一行 | 删除的行数组 |
deletelines | 删除多行 | 删除的行数组 |
editmodule | 字段值改变时 | this.event.lines为编辑的行数组 this.event.module为修改的字段 |
import | 导入数据后 | 数据模板所有行 |
see
addline
添加条目时触发。通过this.event.line可以获取对应的条目对象,this.event.ev可以获得事件触发的event。
see
deleteline
删除条目前触发。通过this.event可以获取对应的条目对象。
see
afterdeleteline
删除条目后触发。
see
export
导出excel的时候触发,this.event指向导出的数据,您可以通过修改this.event来修改数据。
see
example
this.event数据格式如下:
{
data : [
["姓名","性别","学历","专业","出生日期","毕业日期"], //标题
[ "张三","男","大学本科","计算机","2001-1-2","2019-9-2" ], //第一行数据
[ "李四","男","大学专科","数学","1998-1-2","2018-9-2" ] //第二行数据
], //导出的数据
colwidtharray : [100, 50, 100, 200, 150, 150], //每列宽度
title : "xxxx" //导出的excel文件标题
}
validimport
在导入excel,进行数据校验后触发,this.event指向导入的数据。
see
example
this.event数据格式如下:
{
data : [
{
"姓名" : "张三",
"性别" : "男",
"学历" : "大学本科",
"专业" : "计算机",
"出生日期" : "aa01-1-2",
"毕业日期" : "2019-9-2",
"errortextlist" : [
"第5列:aa01-1-2不是正确的日期格式。"
] //校验出的错误信息,如果该行数据正确,则无该字段
}
...
], //导入的数据
"validted" : true //是否校验通过,可以在本事件中修改该参数,确定是否强制导入
}
import
在导入excel,数据校验成功将要设置回数据模板的时候触发,this.event指向整理过的导入数据,格式见datatemplatedata。
see
afterimport
在导入excel,数据设置回数据模板以后触发,this.event指向整理过的导入数据,格式见datatemplatedata。
see
queryload
组件加载前触发。queryload执行的时候,当前组件没有在form里注册,通过this.form.get("fieldid")不能获取到当前组件,需要用this.target获取。
postload
组件加载后触发.
load
组件加载后触发.