跳转至

视图脚本(VIEW)

配套:generate-view-file。


水印

项 内容
Label VIEW:WATERMARK
属性 waterMarkScript
触发 打开视图(开启水印)
返回 String
(function () {
  return getWebUser().getName();
})()

数据过滤

DQL

项 内容
Label VIEW:DQL_FILTER
属性 filterScript;editMode=01
触发 打开/刷新视图
返回 String;DQL(系统字段前加 $)
(function () {
  return "$formname = 'tlk_LeaveRequest'";
})()

SQL

项 内容
Label VIEW:SQL_FILTER
属性 sqlFilterScript;editMode=02
触发 打开/刷新视图
返回 String;SQL(平台表常带 DOMAINID)
(function () {
  return "select * from TLK_LeaveRequest where DOMAINID='" + getDomainId() + "'";
})()

存储过程

项 内容
Label VIEW:PROCEDURE_FILTER
属性 procedureFilterScript;editMode=03
触发 打开/刷新视图
返回 String;如 call procName
(function () {
  return "call test";
})()

脚本数据

项 内容
Label VIEW:SCRIPTDATA_FILTER
属性 scriptDataFilterScript;editMode=04
触发 打开/刷新视图
返回 行数据对象(或同形 JSON 字符串);也可用以 { 开头的纯 JSON 字面量(不走 JS)
分页 脚本自行分页:读 _currpage / lines,data=当前页,row_count=总数

返回结构:

{
  "row_count": 1,
  "data": [
    {
      "id": "docId",
      "parentId": "",
      "items": [
        { "columnName": "名称", "value": "测试" },
        { "columnName": "说明", "value": "" }
      ]
    }
  ]
}
  • items[].columnName 对齐视图列 name(显示名),写入列 fieldName
  • 可读参数:$WEB.getParameterAsString(key)、params / $PARAMS、paramMap
  • IIFE 以 ( 开头时,运行时外包 JSON.stringify(避免 Graal 返回 JS 对象)
(function () {
  var page = Number($WEB.getParameterAsString("_currpage") || "1");
  var lines = Number($WEB.getParameterAsString("lines") || "15");
  var all = [
    {
      id: "r1",
      parentId: "",
      items: [
        { columnName: "名称", value: "甲" },
        { columnName: "说明", value: "" }
      ]
    }
  ];
  var start = Math.max(0, (page - 1) * lines);
  return { row_count: all.length, data: all.slice(start, start + lines) };
})()

落盘与列约定见 generate-view-file「脚本数据模式」。


值脚本

列值(脚本列)

项 内容
Label VIEW:COLUMN_VALUE
属性 列 valueScript;列类型 COLUMN_TYPE_SCRIPT
触发 渲染行
返回 String;列显示值。可返回 HTML 片段(平台按 HTML 渲染,非转义纯文本)

普通文本:

(function () {
  var val = getCurrentDocument().getItemValueAsString("姓名");
  if (val == null || val === "") {
    val = "-";
  }
  return val;
})()

映射表列表列(硬规则):relatedForm type=65536 时,普通列禁止 FIELD。列表 Item 名是物理列(DEPT_CODE),按表单字段名(deptCode)取值会空白;双击打开表单却有值。valueScript 先读字段名、空则读 mappingStr 物理列名。落盘见 generate-view-file「硬规则:映射表列表列」。

(function () {
  var v = getItemValueAsString("deptCode");
  if (v == null || v === "") v = getItemValueAsString("DEPT_CODE");
  return v == null ? "" : v;
})();

状态类列(硬规则):返回 Element Plus el-tag HTML,实现 tag 样式;落盘约定见 generate-view-file「状态类列 → 脚本列 + HTML tag」。映射表上 empStatus 等须再读 EMP_STATUS;勿因 status/STATUS 碰巧能显示就把其它列写成 FIELD。

(function () {
  // 视图列上下文用裸 getItemValueAsString(勿依赖 getCurrentDocument)
  var v = getItemValueAsString("status");
  if (v == null || v === "") return "-";
  var tone = "info";
  if (v === "生效" || v === "已完成" || v === "已签收") tone = "success";
  else if (v === "草稿" || v === "审批中" || v === "待签收") tone = "warning";
  else if (v === "作废" || v === "驳回" || v === "停用") tone = "danger";
  else if (v === "进行中" || v === "借阅中") tone = "primary";
  return "<span class=\"el-tag el-tag--" + tone + " el-tag--light el-tag--small\">" + v + "</span>";
})();

列标签

项 内容
Label VIEW:COLUMN_LABEL
属性 labelScript
触发 渲染表头
返回 String;列标题
(function () {
  return "姓名";
})()

隐藏脚本

列隐藏

项 内容
Label VIEW:COLUMN_HIDDEN
属性 列 hiddenScript
触发 打开视图
返回 Boolean;true=隐藏
(function () {
  return getWebUser().getName() === "张三";
})()

列打印隐藏

项 内容
Label VIEW:COLUMN_PRINT_HIDE
属性 列打印隐藏脚本(若有)
触发 打印
返回 Boolean;true=隐藏

列动作 / 行内操作

场景 Label 属性 返回
列动作 VIEW:COLUMN_ACTION actionScript 等 依动作
跳转 URL VIEW:COLUMN_DISPATCHERURL dispatcher URL 脚本 String URL
说明展示 VIEW:COLUMN_SHOWEXPLAIN 说明脚本 String
行内操作 VIEW:COLUMN_OPERATE 操作列配置 —
操作动作 VIEW:COLUMN_OPERATE_ACTION actionScript 依动作
操作前 VIEW:COLUMN_OPERATE_BEFORE beforeScript String/Message/空
操作后 VIEW:COLUMN_OPERATE_AFTER afterScript 无强制
(function () {
  return createConfirm("确定执行?");
})()

Excel 选项

项 内容
Label VIEW:COLUMN_EXCEL_OPTION
属性 导出列选项脚本
触发 导出 Excel
返回 选项内容(同选项契约)

树视图

项 内容
Label VIEW:TREEVIEW_LINK
属性 树节点链接脚本
触发 展开/点击树
返回 String;链接/标识

网格操作

场景 Label 属性 返回
确认 VIEW:CONFIRMACTIVITY_SCRIPT confirmActivityScript Boolean/确认逻辑
删除 VIEW:REMOVEACTIVITY_SCRIPT removeActivityScript Boolean/删除许可

视图级另有 editableScript / readonlyScript(可编辑/只读),语义同布尔契约;无独立 ScriptLabel 常量时仍按属性名写入。


视图工具栏

视图 .activity 前后置/隐藏等见 activity.md。