- 客户端 API
- Enhancer 全局对象
- getBaseUrl() 获取当前应用的基础 URL
- openPage(pageId[, data]) 打开页面,并传递参数。
- resetCurrentPage() 重置当前页面。
- getFileUploadUrl() 获取文件上传 URL。
- getCustomInterfaceUrl(interfaceName[, params]) 获取自定义接口 URL。
- getEntityByNumber(no) 根据编号获取实体(帧,窗口)对象。
- getStaticResourceUrl(name) 获取在工作台全局配置中上传的静态资源 Url。
- Enhancer 全局对象
- Enhancer.Util 对象
- testCondition(condition) 测试条件函数,将带变量的条件表达式做变量替换,然后计算布尔值。
- escapeHTML(str) 转义字符串包含的 HTML 字符:("、'、&、<、>)。
- unescapeHTML(str) 反转义字符串中 HTML 字符串。
- Enhancer.ZContext 对象
- value(varname) 从全局上下文中获取指定变量的值。
- values(vars) 从全局上下文中获取指定变量的值。
- parse(contextStr[, replace]) 解析带变量的文本,将文本中包含的变量替换成对应的值。
- Enhancer.ZUserData 对象
- val(name) 获取用户变量值
- set(name, value) 设置用户变量,只能设置以 10 以下数字开头的变量,供全局使用,如 7-CURR_CHECK_ID。
- get(name) 获取 10 以下数字开头的变量值
- add(name, value) 添加用户变量,只能添加以 10 以下数字开头的变量,供全局使用,如 7-CURR_CHECK_ID。
- Enhancer.ZMessage 对象
- alert(options) 弹框显示消息。
- toast(options) 吐出消息。
- confirm(options) 确认消息。
- Entity 实体对象,包括帧,窗口,一般由 Enhancer.getEntityByNumber 方法获得
- getData(name) 获取实体当前变量数据。
- setData(name, value) 设置变量值,设置之后可以使用变量。
- 【例】注意: setData 方法的效果只是设置了内存中的变量值,供串接逻辑使用,不会改变 Entity(窗口)包含的 HTML 的外观效果。变量和组件的HTML没有严格的一一对应关系。
- open() 打开。
- close() 关闭。
- reset() 重置。
- pop() 弹出。
- push() 按回。
- affected() 受影响。
- block() 锁住窗口。仅窗口有效
- unblock() 解锁窗口。仅窗口有效
- maximize() 最大化窗口。仅窗口有效
- minimize() 最小化窗口。仅窗口有效
- getContainer() 获取窗口或者帧所在 DOM 容器。
- getWidgetContainer() 获取组件所在 DOM 容器。
- Widget 对象,由组件所在窗口 Entity 对象调用 getWidget() 方法,获得。如果是在自定义窗口中,那么 this 对象本身就是指该 widget 对象。
- getSourceData(id[, criteria[, callback, errCallback]) 获取源数据。
- 此外,jQuery 可直接使用,无需额外引入。
客户端 API
客户端 API 包含 Enhaner 官方和 jQuery 三方,可以在任意客户端执行脚本中使用。
Enhancer 全局对象
getBaseUrl() 获取当前应用的基础 URL
- @return url {String}
openPage(pageId[, data]) 打开页面,并传递参数。
- @param pageId {Number} [必须] 页面编号
- @param data {Object} [可选] 传递给页面的参数键值对,目标页面可以通过变量
@9-[KEYNAME]@来取值。
resetCurrentPage() 重置当前页面。
getFileUploadUrl() 获取文件上传 URL。
- @return url {String}
【文件上传例子】
var file1 = input1.files[0]; // input 对象即 HTML file input DOM 对象。var file2 = input2.files[0];var formData = new FormData();formData.append('file1', file1);formData.append('file2', file2);var url = Enhancer.getFileUploadUrl();$.ajax({url: url,type: 'POST',data: formData,cache: false,dataType: 'json',processData: false,contentType: false,crossDomain: true,success: function(result) {if (result.success) {alert('上传成功!');console.log(result); //==>// {// success: true,// data: {// files:[{// filedName: 文件名// originalFilename: 初始文件名,// size: 文件大小,// url: 文件url地址// }]// }// }return;}alert('上传失败,原因:' + result.message);},error: function(err) {alert('上传失败!');console.error(err);}});
getCustomInterfaceUrl(interfaceName[, params]) 获取自定义接口 URL。
- @param interfaceName {String} - [必须] 用户指定的后台接口名
- @param params {Object} -[可选]参数键值对,附加在url后面,后台接口可以通过req.query['参数名'] 获取。如:
{name: '张三', id: '123'}会附加上http://url?name=张三&id=123。 - @return url {String}
getEntityByNumber(no) 根据编号获取实体(帧,窗口)对象。
- @param no {Number} [必须] 窗口或帧编号
- @return entity {Object} 实体对象
getStaticResourceUrl(name) 获取在工作台全局配置中上传的静态资源 Url。
- @param name {String} [必须] 资源名称
- @return {String}
Enhancer.Util 对象
testCondition(condition) 测试条件函数,将带变量的条件表达式做变量替换,然后计算布尔值。
- @param condition {String} 可以是带变量的 JS 条件表达式或类 SQL 语言表达式。比如:
@11-name@ = '张三' AND @11-gender@ != '女' - @return {Boolean}
escapeHTML(str) 转义字符串包含的 HTML 字符:("、'、&、<、>)。
unescapeHTML(str) 反转义字符串中 HTML 字符串。
Enhancer.ZContext 对象
value(varname) 从全局上下文中获取指定变量的值。
- @param varname {String} [必须] 变量名
- @return value
values(vars) 从全局上下文中获取指定变量的值。
- @param vars {Array} [必须] 变量名数组
- @return value
parse(contextStr[, replace]) 解析带变量的文本,将文本中包含的变量替换成对应的值。
- @param contextStr {String} [必须] 含变量的文本
- @param replace {Function} [可选] 指定替换函数
- @return parsed {String} 替换过的字符串
Enhancer.ZUserData 对象
val(name) 获取用户变量值
- @param name {String} [必须] 变量名,只能获取以 10 以下数字开头的变量。
- @return {Object} 变量值
set(name, value) 设置用户变量,只能设置以 10 以下数字开头的变量,供全局使用,如 7-CURR_CHECK_ID。
- @param name {String} [必须] 变量名,必须是以 0 - 9 开头的变量名。
- @param value {Object} [必须] 值。
get(name) 获取 10 以下数字开头的变量值
- @param name {String} [可选] 如果为空,则返回全部 10 以下开头的变量集合。
- @return {Object} 变量或变量集合。
add(name, value) 添加用户变量,只能添加以 10 以下数字开头的变量,供全局使用,如 7-CURR_CHECK_ID。
- @param name {String} [必须] 变量名,必须是以 0 - 9 开头的变量名,如果变量已存在,则覆盖旧值。
- @param value {Object} [必须] 值。
Enhancer.ZMessage 对象
alert(options) 弹框显示消息。
- @params options {String | Object} [必须] 可以是消息内容字符串,直接调用如:
Enhancer.ZMessage.alert('你好')或者是配置项如下:- title {String} [可选] 消息标题。
- content {String} [必须] 消息内容。
- state {String} [可选] 显示状态:default | active | highlight | error 。
- width {String} [可选] 消息框宽度
- confirm {Function} [可选] 用户点击确定之后的回调函数
toast(options) 吐出消息。
- @params options {String | Object} [必须] 可以是消息内容字符串,直接调用如:
Enhancer.ZMessage.toast('你好')或者是配置项如下:- content {String} [必须] 消息内容。
- state {String} [可选] 显示状态:default | active | highlight | error 。
- width {String} [可选] 消息框宽度。
- hPos {String} [可选] 水平位置:left | center | right 默认 center。
- vPos {String} [可选] 垂直位置:top | center | bottom 默认 center。
- duration {Number} 持续展示时间,毫秒,默认 3000。
confirm(options) 确认消息。
- @params options {Object} [必须]
- title {String} [可选] 消息标题。
- content {String} [必须] 消息内容。
- width {String} [可选] 消息框宽度。
- cancel {Function} [可选] 用户点取消之后的回调函数,参数 $d 对话框 DOM。
- ok {Function} [可选] 用户点击确定之后的回调函数,参数 $d 对话框 DOM。
【例】
Enhancer.ZMessage.confirm({title: '确认一下',content: '要删除张三吗?',width: 500,ok: function($d) {alert('done')},cancel: function($d) {alert('canceled')}});
Entity 实体对象,包括帧,窗口,一般由 Enhancer.getEntityByNumber 方法获得
getData(name) 获取实体当前变量数据。
- @param name {String} [必须] 变量名,不需带编号开头的变量名,比如 STUDENT_NO。
- @return {Object} 变量值。
setData(name, value) 设置变量值,设置之后可以使用变量。
- @param name {String} [必须] 变量名,不需带编号的变量名,比如 STUDENT_NO。
- @return {Object} [必须] 变量值。
【例】注意: setData 方法的效果只是设置了内存中的变量值,供串接逻辑使用,不会改变 Entity(窗口)包含的 HTML 的外观效果。变量和组件的HTML没有严格的一一对应关系。
var win = Enhancer.getEntityByNumber(12);win.setData('STUDENT_NO。', 201808283858); // 设置后,可以在合适的地方使用变量 @12-STUDENT_NO@,值为 201808283858。
open() 打开。
close() 关闭。
reset() 重置。
pop() 弹出。
push() 按回。
affected() 受影响。
block() 锁住窗口。仅窗口有效
unblock() 解锁窗口。仅窗口有效
maximize() 最大化窗口。仅窗口有效
minimize() 最小化窗口。仅窗口有效
getContainer() 获取窗口或者帧所在 DOM 容器。
- return {jQuery Object}
getWidgetContainer() 获取组件所在 DOM 容器。
- return {jQuery Object}
Widget 对象,由组件所在窗口 Entity 对象调用 getWidget() 方法,获得。如果是在自定义窗口中,那么 this 对象本身就是指该 widget 对象。
getSourceData(id[, criteria[, callback, errCallback]) 获取源数据。
- @param id
[required] 数据源 ID,由 Widget Configurator 配置生成。 @param criteria
[optional] 查询标准参数- countRecords {boolean}
[optional] 是否要统计记录数,默认 false - paged {Boolean}
[optional] 是否分页,默认 false - page {Number}
[optional] 页号 - rowNum {Number}
[optional] 每页行数 - sortBy {String}
[optional] 排序字段 - format {String}
[optional] 数据返回格式: object | array 默认 object - params {Object}
[optional] 指定参数,覆盖由系统自动捕获的参数上下文。 - metaData {Boolean}
[optional] 是否要求结果集中包含描述数据特征的元数据,默认 false - filters {Object}`[optional] 过滤器,例:
- countRecords {boolean}
{"groupOp": "OR", // 条件运算: OR | AND"groups": [ // 条件组,相当于 SQL 条件加括号,可以递归地定义下去。{"groupOp": "OR","rules": [{"field": "birth_place","op": "eq","data": "浙江"}],"groups": []}],"rules": [ // 条件数组,每个元素是一个单独的条件{"field": "id", // 字段"op": "eq", // 操作,取值含义对照:// eq 等于, ne 不等于, lt 小于, le 小于等于, gt 大于, ge 大于等于, bw 以开头, bn 不以开头,// ew 以结尾, en 不以结尾, cn 包含, nc 不包含, nu 为空, nn 不为空, in 在集合中, nn 不在集合中"data": 1 //数据},{"field": "id","op": "eq","data": 2}]}
- @param callback {Function}
[required] 结果回调函数,参数即为请求的数据,结构如下:
{rows:[...],paged: false,page: 1,rowNum: 15,records: 1321,metaData: [{name:'id', dbType: 'CHAR', varType: 'string'},...]}
- @param errCallback {Function}
[optional] 请求发生错误时的回调处理函数,参数为错误信息
【getSourceData 例】
var win = Enhancer.getEntityByNumber(11);var widget = win.getWidget();var criteria = { paged: true, page: 1, rowNum: 30, filters: { groupOp: 'OR', rules: [{ field: 'id', op: 'eq', data: '32767' }, { field: 'name', op: 'cn', data: '张' }] }};widget.getSourceData(1, criteria, function(data) { alert('成功获取记录 ' + data.rows.length + ' 条');}, function(result) { alert('出错了!');});
