• 客户端 API
    • Enhancer 全局对象
      • getBaseUrl() 获取当前应用的基础 URL
      • openPage(pageId[, data]) 打开页面,并传递参数。
      • resetCurrentPage() 重置当前页面。
      • getFileUploadUrl() 获取文件上传 URL。
      • getCustomInterfaceUrl(interfaceName[, params]) 获取自定义接口 URL。
      • getEntityByNumber(no) 根据编号获取实体(帧,窗口)对象。
      • getStaticResourceUrl(name) 获取在工作台全局配置中上传的静态资源 Url。
  • 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}
      【文件上传例子】
    1. var file1 = input1.files[0]; // input 对象即 HTML file input DOM 对象。
    2. var file2 = input2.files[0];
    3. var formData = new FormData();
    4. formData.append('file1', file1);
    5. formData.append('file2', file2);
    6. var url = Enhancer.getFileUploadUrl();
    7. $.ajax({
    8. url: url,
    9. type: 'POST',
    10. data: formData,
    11. cache: false,
    12. dataType: 'json',
    13. processData: false,
    14. contentType: false,
    15. crossDomain: true,
    16. success: function(result) {
    17. if (result.success) {
    18. alert('上传成功!');
    19. console.log(result); //==>
    20. // {
    21. // success: true,
    22. // data: {
    23. // files:[{
    24. // filedName: 文件名
    25. // originalFilename: 初始文件名,
    26. // size: 文件大小,
    27. // url: 文件url地址
    28. // }]
    29. // }
    30. // }
    31. return;
    32. }
    33. alert('上传失败,原因:' + result.message);
    34. },
    35. error: function(err) {
    36. alert('上传失败!');
    37. console.error(err);
    38. }
    39. });

    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。
        【例】
    1. Enhancer.ZMessage.confirm({
    2. title: '确认一下',
    3. content: '要删除张三吗?',
    4. width: 500,
    5. ok: function($d) {
    6. alert('done')
    7. },
    8. cancel: function($d) {
    9. alert('canceled')
    10. }
    11. });

    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没有严格的一一对应关系。
    1. var win = Enhancer.getEntityByNumber(12);
    2. win.setData('STUDENT_NO。', 201808283858);
    3. // 设置后,可以在合适的地方使用变量 @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] 过滤器,例:
    1. {
    2. "groupOp": "OR", // 条件运算: OR | AND
    3. "groups": [ // 条件组,相当于 SQL 条件加括号,可以递归地定义下去。
    4. {
    5. "groupOp": "OR",
    6. "rules": [
    7. {
    8. "field": "birth_place",
    9. "op": "eq",
    10. "data": "浙江"
    11. }
    12. ],
    13. "groups": []
    14. }
    15. ],
    16. "rules": [ // 条件数组,每个元素是一个单独的条件
    17. {
    18. "field": "id", // 字段
    19. "op": "eq", // 操作,取值含义对照:
    20. // eq 等于, ne 不等于, lt 小于, le 小于等于, gt 大于, ge 大于等于, bw 以开头, bn 不以开头,
    21. // ew 以结尾, en 不以结尾, cn 包含, nc 不包含, nu 为空, nn 不为空, in 在集合中, nn 不在集合中
    22. "data": 1 //数据
    23. },
    24. {
    25. "field": "id",
    26. "op": "eq",
    27. "data": 2
    28. }
    29. ]
    30. }
    • @param callback {Function} [required] 结果回调函数,参数即为请求的数据,结构如下:
    1. {
    2. rows:[...],
    3. paged: false,
    4. page: 1,
    5. rowNum: 15,
    6. records: 1321,
    7. metaData: [
    8. {name:'id', dbType: 'CHAR', varType: 'string'},
    9. ...
    10. ]
    11. }
    • @param errCallback {Function} [optional] 请求发生错误时的回调处理函数,参数为错误信息
      【getSourceData 例】
    1. var win = Enhancer.getEntityByNumber(11);
    2. var widget = win.getWidget();
    3. var criteria = {
    4. paged: true,
    5. page: 1,
    6. rowNum: 30,
    7. filters: {
    8. groupOp: 'OR',
    9. rules: [{
    10. field: 'id',
    11. op: 'eq',
    12. data: '32767'
    13. }, {
    14. field: 'name',
    15. op: 'cn',
    16. data: '张'
    17. }]
    18. }
    19. };
    20. widget.getSourceData(1, criteria, function(data) {
    21. alert('成功获取记录 ' + data.rows.length + ' 条');
    22. }, function(result) {
    23. alert('出错了!');
    24. });

    此外,jQuery 可直接使用,无需额外引入。