1. 脚本基础

了解DWF脚本并利用其开展工作,要点在了解运行环境,表单,数据等方面,DWF为脚本开发者提供的辅助变量,这些辅助变量是DWF保留的一些关键字。

1.1 全局入口

首先,要介绍的是DWF所有保留字的总入口

1.2 环境变量

在了解了全局入口之后,可以通过this.【保留字变量】的方式进一步访问到更深层次的变量或方法,例如前端浏览器环境信息变量如下所示:

图-全局信息变量取值的对应关系示意

1.3 用户信息

接下来介绍一下当前登录用户信息变量,如下所示:

图-用户信息的保留字和对应关系

1.4 消息弹框

最后介绍一下如何控制弹出消息提示

图- 消息弹框示意图

1.5 前端脚本调试

前端脚本可以通过console.log()进行调试,比如:

console.log(this.user);

在脚本中添加这段代码,log函数中填入需要查看的变量或需要显示的信息,打开浏览器的开发模式(如Chrome浏览器为快捷键F12)中的console标签即可查看输出内容。

1.6 表单主动刷新

如果表单内容需要变化,可以通过this.freshData()实现主动刷新,此外this.freshData还有一个带查询条件的版本,this.freshData(query),可以控制全局查询条件,在关于查询条件的编写方法后续章节中介绍。

2. 脚本案例:设备管理

现在,进入建模工具,点击实体类表单,展开设备表单,打开多设备列表表单(MultiAssets)

在设备列表表单上增加一个按钮控件,新增一个操作,在动作中选择implement动作,表示基于脚本扩展的操作定义,如下所示:

图-脚本类型操作的脚本示例

在弹出的对话框中点击前端脚本,输入如下代码

代码如下:

clientscript:
console.log(this, 'DWF前端脚本入口');
this.msgbox.info('hello world!');
console.log(this.user, '当前登录用户');
this.msgbox.info(`hello ${this.user.displayName}!`);
console.log(this.env, '上下文变量');
this.msgbox.info(`hello ${this.user.displayName} from ${this.env.serverIp}`);

在这段脚本中,clientscript: 是前缀关键字,表示这段代码在应用前端执行,msgbox中的 `${...}` 语法是JavaScript支持的转义替换功能,在 `...` 符号范围内,${...} 中的变量被转变为具体取值,与其它字符串内容直接拼接。

图-消息弹框示意图

3. 小结

本节主要介绍DWF前端脚本的总入口,以及配套的全局变量,包括:

同时,这章结合一个最简单的例子在设备列表中通过配置按钮和脚本类型操作的方式,演示了这些变量的简单用法。

4. 附件