| 控件内支持的脚本方法与对象 | 建模工具 | 应用前端 | 控件内调用示例 |
---|
1 | dwf_axios | √ | √ |
代码块 |
---|
| //2-调用app的restful API示例1
this.dwf_ctx.dwf_axios.post(`http://192.168.30.63/workorder/init`,param); |
|
2 | dwf_modeler_axios | √ | √ |
代码块 |
---|
| //获取当前登录用户
var curUserId = this.dwf_ctx.user.oid;
//调用modeler端的restful API
this.dwf_ctx.dwf_modeler_axios("/dwf/v1/org/users/${curUserId}/groups"); |
|
3 | msgbox | √ | √ |
代码块 |
---|
| //目前如下几种消息提示都是在界面上方提示后自动关闭
this.dwf_ctx.msgbox.success("成功的提示");
this.dwf_ctx.msgbox.info("一般的提示");
this.dwf_ctx.msgbox.error("错误的提示"); |
|
4 | msgboxDialog | × | √ |
代码块 |
---|
| this.dwf_ctx.msgboxDialog.confirm (“title标题”,"请确认是否删除?", <function>(点击确定之后的回调函数), <function>(点击取消之后的回调函数)); |
|
5 | env | √ | √ |
代码块 |
---|
| this.dwf_ctx.env.serverURL//服务器ip+端口地址
this.dwf_ctx.env.serverIp//服务器ip
this.dwf_ctx.env.serverPort//端口地址
this.dwf_ctx.env.metaServicePort//元数据服务接口端口
this.dwf_ctx.env.objServicePort//对象数据服务接口端口
this.dwf_ctx.env.appConfig//服务器appConfig |
|
6 | user | √ | √ |
代码块 |
---|
| this.dwf_ctx.user.userName//用户名
this.dwf_ctx.user.displayName//用户显示名
this.dwf_ctx.user.oid//用户oid
this.dwf_ctx.user.token//用户token
this.dwf_ctx.user.userGroups//用户组 |
|
7 | displayType | × | √ |
代码块 |
---|
| //获取表单显示类型
this.dwf_ctx.displayType(); |
|
8 | className | × | √ |
代码块 |
---|
| //获取表单类
this.dwf_ctx.className(); |
|
9 | getRootAddin | × | √ |
代码块 |
---|
| //获取表单对象
this.dwf_ctx.getRootAddin(); |
|
10 | getAddinById | × | √ |
代码块 |
---|
| //通过Id获取表单内控件对象
this.dwf_ctx.getAddinById(id); |
|
11 | getAllAddin | × | √ |
代码块 |
---|
| //获取表单内所有控件
this.dwf_ctx.getAllAddin(); |
|
12 | obj | × | √ |
代码块 |
---|
| //获取表单对象
this.dwf_ctx.obj(); |
|
13 | validateForm | × | √ |
代码块 |
---|
| //触发表单验证
if(this.dwf_ctx.validateForm()){
console.log('表单验证成功')
}else{
console.log('表单验证失败')
} |
|
14 | create | × | √ |
代码块 |
---|
| var newObj = {id:'idXXX',name:'nameXXX'};
var className = 'Part';
//新增保存
this.dwf_ctx.create(newObj, className).then(newRtnObj =>{
//返回的newRtnObj为后台新增后返回的对象,即包含了oid等属性
//todo:针对newRtnObj继续处理…
}); |
|
15 | delete | × | √ |
代码块 |
---|
| var curObj = {oid:uuid,id:'idXXX',name:'nameXXX'};
var className = 'Part';
this.dwf_ctx.delete(curObj, className).then(rtnObj =>{
// rtnObj返回值 = true/false,是否删除成功
//建议如果返回false,那么返回message错误原因提示信息
}); |
|
16 | edit | × | √ |
代码块 |
---|
| var editObj = {id:’idXXX’,name:’nameXXX’};
var className = ‘Part’;
editObj.id = ‘idYYY’;
this.dwf_ctx.edit(editObj, className).then(rtnObj =>{
//返回的rtnObj为后台修改保存后返回的对象
//todo:针对rtnObj继续处理…
}); |
|
17 | spinShow | × | √ |
代码块 |
---|
| //打开遮罩
this.dwf_ctx.spinShow(); |
|
18 | spinHide | × | √ |
代码块 |
---|
| //关闭遮罩
this.dwf_ctx.spinHide(); |
|
19 | closeDialog | × | √ |
代码块 |
---|
| //关闭弹窗
this.dwf_ctx.closeDialog(); |
|
20 | closeTab | × | √ |
代码块 |
---|
| //关闭页签
this.dwf_ctx.closeTab();
//关闭tab传值到后处理
this.dwf_ctx.closeTab(data); |
|
21 | closeTabById | × | √ |
代码块 |
---|
| //关闭指定页签
this.dwf_ctx.closeTabById('moduleName-authority');
//关闭指定页签传值
this.dwf_ctx.closeTabById('moduleName-authority',data); |
|
22 | getOperation | × | √ |
代码块 |
---|
| //通过getOperation获取到已有的操作(需要存储到数据库中),再通过executeOperation进行调用,并且允许修改已有操作的操作样式和动作。
//@param targetClass:已有操作绑定的目标类;
//@param operName:已有操作的英文名
this.dwf_ctx.getOperation("WorkOrder", "createWO").then(res =>{
//先取出原始操作
var opr = res.data.data;
// 替代前处理脚本,不用的话可以不写
opr.beforeExecute = function() {
//新的前处理脚本
return {
obj:{...},//选填,对象
query:"",//选填,查询条件
data:{...}}//选填,自定义属性
}
// 替代原来操作的后处理脚本,不用的话可以不写
opr.afterExecute = function() {
//新的后处理脚本,可根据
...
}
this.dwf_ctx.executeOperation(opr)
}); |
|
23 | executeOperation | × | √ |
代码块 |
---|
| //自定义操作对象(在现在的脚本中定义操作对象,无需事先定义操作)通过executeOperation进行调用
//opr:定义的操作对象
//targetClass:目标类的类名
//viewName:目标类中的表单名称
//oprName:操作英文名
//displayName: 操作中文名
//displayType:动作支持create、edit、visit、next_create、url
//url: 如果displayType是url需要增加这个参数来传url地址
//oprStyle:操作样式dialog、tab、drawerL、 drawerR
//displayOperation:默认操作 true、false
//beforeExecute:表示前处理函数,代表前处理脚本
//afterExecute:表示后处理函数,代表后处理脚本
//定义新的create动作的dialog样式的操作
var opr = {
targetClass: "WorkOrder", //目标类的类名
viewName:"SinlgeWO" ,//目标类中的表单名称
oprName: "openCreatedial" , //操作英文名,生造操作时可以自定义
displayName:"创建工单" , //操作中文名
displayType:"create" ,//动作支持create、edit、visit、next_create、url
oprStyle:"dialog", //操作样式dialog、tab、drawer
displayOperation:true, //默认操作 true、false
beforeExecute:function(){ //前处理函数,代表前处理脚本
//新的前处理脚本
return {
obj:this.selectedObjs[0],//选填,当前表单多对象控件选中的对象
//query:"and obj.woTitle = '工单1'", //选填,非必填
data:{ "woDesc1":"自定义属性"//选填,woDesc1是自定义的属性,非实体了上绑定的已有属性;,需要在打开表单页面增加初始化操作,接收前处理脚本传入的自定义属性值
}
}
}
afterExecute:function(){ //表示后处理函数,代表后处理脚本
//新的后处理脚本,可根据实际情况维护
var data = this.confirmData;
console.log(`自定义后处理`)
console.log(data)
}
}
this.dwf_ctx.executeOperation(opr); |
|
24 | handleQueryData | √ | √ |
代码块 |
---|
| //后台数据强制刷新/查询
//查询条件
let queryConditon = {
targetClass:"Part",
query:{query:`and obj.id='${this.dwf_ctx.obj.name}'`},
fresh: true //是否从后台强制刷新查询(建议默认值为true)
};
//基于DB进行查询
this.dwf_ctx.handleQueryData(queryConditon).then(res => {
//针对res值(查询返回值)直接处理…
}); |
|
25 | selectedObjs | × | √ |
代码块 |
---|
| //获取选中多对象控件中对象
var allRowDatas = this.dwf_ctx.selectedObjs(); |
|
26 | defaultObjsAddin | × | √ |
代码块 |
---|
| //获取表单默认多对象控件
this.dwf_ctx.defaultObjsAddin(); |
|
27 | openForm | × | √ |
代码块 |
---|
| //脚本打开弹窗
//参数如下
//@param targetClass:表示对应的类
//@param viewName:表示需要打开的表单名称
//@param args:高级设置,推荐使用null,用executeOperation方法处理业务。打开表单时的其他参数,在之前的实现保持不变的前提下,保证兼容性,做如下简化:
//initialScript:string,前处理脚本,默认为空,慎用,如果设置的前处理脚本通过 return { obj:{...}, query: {...}, data: {...}} 返回了对象,同时在args里也设置了initParams,则args里的initParams会被覆盖掉。
//afterScript:string,后处理脚本,默认为空,慎用。
//@param displayType:create/edit/visit
//@param initParams:object,与操作中的前处理脚本中return { obj:{...}, query: {...}, data: {...}} 返回的格式一致,可以设置对象,查询条件和夹带的数据
let initParams={
obj:this.selectedObjs[0],
// query:`and obj.woTitle != '工单标题11'`
data:{
woDesc1:'cheney'
}
}
this.dwf_ctx.openForm(this.className,'SingleWO',null,'edit',initParams) |
|
28 | openTab | × | √ |
代码块 |
---|
| //脚本打开tab
//queryOpr中的参数
//@param targetClass:表示对应的类
//@param viewName:表示需要打开的表单名
//@param action:动作
//@param authority:英文名
//@param extSettings:是否打开默认操作
//@param args中的参数
//initParams:object,与操作中的前处理脚本中return { obj:{...}, query: {...}, data: {...}} 返回的格式一致,可以设置对象,查询条件和夹带的数据
//displayType:create/edit/visit
var grid=this.dwf_ctx.getAddinById("D0050C68B42743D79C646E1F8FB7D397");
obj=grid.getSelected();
var queryOpr = {
targetClass: this.dwf_ctx.className,
viewName:'SingleWO',
action: 'edit',//动作
authority: 'hihilalal',//英文名
displayName: '设置的显示名',//显示名
extSettings: JSON.stringify({needDefaultOpr:true})
}
var args = {
initScript:` return{
obj:this.selectedObjs[0]
// obj:obj[0]
}`,
displayType:'edit'
}
this.dwf_ctx.openTab(queryOpr, args); |
|
29 | openDrawer | × | √ |
代码块 |
---|
| //脚本打开滑窗
//@param targetClass:表示对应的类
//@param viewName:表示需要打开的表单名称
//@param left/right:表示右滑窗还是左滑窗
//@param args:打开表单时的其他参数,在之前的实现保持不变的前提下,保证兼容性,推荐使用null
//@param displaType:tab页签打开时的状态
//@param initParams:nitParams:object,与操作中的前处理脚本中return { obj:{...}, query: {...}, data: {...}} 返回的格式一致,可以设置对象,查询条件和夹带的数据
//传入初始化脚本,可以传一个对象obj,也支持query,也支持自定义内容data
let initParams={
obj:this.selectedObjs[0],
data:{
woDesc1:'cheney'
}
}
this.dwf_ctx.openDrawer(this.className,'SingleWOTest' ,'left', null,'edit',initParams); |
|
30 | getAttribute(AttributeName) | √ | × |
代码块 |
---|
| // 获取属性对应的JSON对象
// @param attributeName属性的英文名
let attr = this.dwf_ctx.getAttribute("name");
console.log(attr); |
|
31 | getAttributesByClass(className) | √ | × |
代码块 |
---|
// 获取指定类绑定的所有属性
// @param className类的英文名
let assetAttrs = this.dwf_ctx.getAttributesByClass("Asset");
assetAttrs.forEach(a => {
console.log(a);
}); |
|
32 | getEntityClass(targetClass) | √ | × |
代码块 |
---|
// 获取当前DWF内的所有实体类
// @param targetClass实体类的英文名,如果不传则返回所有实体类
let entities = this.dwf_ctx.getEntityClass();
entities.forEach(e => {
console.log(e);
}); |
|
33 | getRelationClass(targetClass) | √ | × |
代码块 |
---|
// 获取当前DWF内的所有关联类
// @param targetClass关联类的英文名,如果不传则返回所有实体类
let relations = this.dwf_ctx.getRelationClass();
relations.forEach(r => {
console.log(r);
}); |
|
34 | isEntitySysAttribute(attribute) | √ | × |
代码块 |
---|
// 判断attributes是否为实体类系统属性, 返回值为-1时为非系统属性,其余为系统属性
let assetAttrs = this.dwf_ctx.getAttributesByClass("Asset");
assetAttrs.forEach(a => {
if (this.dwf_ctx.isEntitySysAttribute(a)){
console.log(a);
}
}); |
|
35 | isRelationSysAttribute(attribute) | √ | × |
代码块 |
---|
// 判断attribute是否为实体类系统属性, 返回值为-1时为非系统属性,其余为系统属性
let relAttrs = this.dwf_ctx.getAttributesByClass("PartToPart");
relAttrs.forEach(a => {
if (this.dwf_ctx.isRelationSysAttribute(a)){
console.log(a);
}
}); |
|