视图脚本(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。