表单跳转脚本¶
表单跳转脚本示例代码。
跳转表单¶
(function(){
var request = getParamsTable().getHttpRequest();
var userId = getWebUser().getId();
var Security = new Packages.cn.myapps.common.util.Security();
var token = Security.getToken(userId);
var schema = request.getScheme();
var docId = getId();
var selectId = getParameter("_selects");
var serverName = request.getServerName();
var port = request.getServerPort();
var requestUrl =schema+"://"+serverName;
var appId = getApplication();
var formId="__8x2N4Nc8hcUz3MOdzAw";
var url="/static/portal/vue/index.html#/open?appId="+appId+"&linkType=00&actionContent="+formId+"&docid=&isRefresh=true&TaskId="+selectId+"&dialogWidth=500px&dialogHeight=50px";
var urlLink =requestUrl+url;
//var urlLink =requestUrl+url+"accessToken="+token; 需要分享的时候 要加上token
return urlLink;
})()
跳转按钮跳转表单或视图¶
(function(){
var applicationId=getApplication();
var request = $WEB.getParamsTable().getHttpRequest();
var urlt="http://" + request.getServerName()+":" + request.getServerPort();
// 跳转表单
var url=urlt+"/static/portal/vue/index.html#/open?appId="+applicationId+"&linkType=00&actionContent=__DfLvf30doJU6BmaOJMj&docid=__qfqAbaH4wu64PCEVpoC";
// 跳转视图
var url=urlt+"/static/portal/vue/index.html#/open?appId="+applicationId+"&linkType=01&actionContent=__DfLvf30doJU6BmaOJMj";
// 跳转模板表单 actionContent是模板表单id realformId是对应的表单id
var url=urlt+"/static/portal/vue/index.html#/open?appId="+applicationId+"&linkType=00&actionContent=__a3K9ganYeHIqm1Q9B6x&realformId=__kBf1ySZRWbTQ1wKO3DR&docid=Jqb2NwIFL4ZhnWAYWBW--__kBf1ySZRWbTQ1wKO3DR";
// 跳转统计图
var url=urlt+"/static/portal/vue/index.html#/open?appId="+applicationId+"&linkType=02&actionContent=__E2QgafgeYatl1tTfeeb";
// 跳转报表
var url=urlt+"/static/portal/vue/index.html#/open?appId="+applicationId+"&linkType=09&actionContent=__XDzyJbzN1jFmhoNk4Gv";
// 跳转大屏
var url=urlt+"/static/portal/vue/pageIndexHtml/index.html#/?pageId=__rbd2HJ4eMyc81dae0P1&appId=sOZu9kthmxyP8qQfq0e&domainId=3CffNlgt9B9StIjIUPB&preview=true&reception=true";
println("url-------->"+url);
return url;
})();
脚本说明¶
该脚本用于在表单中实现跳转功能,可以跳转到表单、视图、统计图、报表、大屏等不同的页面。
跳转类型说明¶
linkType 参数值¶
| linkType | 说明 | 示例 |
|---|---|---|
| 00 | 跳转表单 | linkType=00&actionContent=表单ID&docid=文档ID |
| 01 | 跳转视图 | linkType=01&actionContent=视图ID |
| 00 + realformId | 跳转模板表单 | linkType=00&actionContent=模板表单ID&realformId=表单ID |
| 02 | 跳转统计图 | linkType=02&actionContent=统计图ID |
| 09 | 跳转报表 | linkType=09&actionContent=报表ID |
| - | 跳转大屏 | 使用不同的URL路径 |
URL 参数说明¶
通用参数¶
appId: 应用IDlinkType: 链接类型(00=表单,01=视图,02=统计图,09=报表)actionContent: 目标对象ID(表单ID、视图ID、统计图ID、报表ID等)
表单跳转参数¶
docid: 文档ID(可选,用于打开指定文档)isRefresh: 是否刷新(可选)TaskId: 任务ID(可选)dialogWidth: 对话框宽度(可选)dialogHeight: 对话框高度(可选)realformId: 实际表单ID(模板表单时使用)
大屏跳转参数¶
pageId: 大屏页面IDdomainId: 域IDpreview: 是否预览模式reception: 是否接待模式
关键函数说明¶
getParamsTable().getHttpRequest(): 获取HTTP请求对象getWebUser().getId(): 获取当前用户IDSecurity.getToken(userId): 获取用户token(用于分享)request.getScheme(): 获取协议(http/https)request.getServerName(): 获取服务器名称request.getServerPort(): 获取服务器端口getApplication(): 获取应用IDgetId(): 获取当前文档IDgetParameter("_selects"): 获取选中的记录ID
使用场景¶
- 表单按钮跳转到其他表单
- 表单按钮跳转到视图
- 表单按钮跳转到统计图
- 表单按钮跳转到报表
- 表单按钮跳转到大屏
- 根据条件动态跳转
- 带参数跳转
扩展示例¶
示例1:根据条件跳转不同表单¶
(function(){
var doc = getCurrentDocument();
var condition = doc.getItemValueAsString("条件字段");
var request = $WEB.getParamsTable().getHttpRequest();
var urlt = "http://" + request.getServerName() + ":" + request.getServerPort();
var appId = getApplication();
var url = "";
if(condition != null && condition === "类型1"){
url = urlt + "/static/portal/vue/index.html#/open?appId=" + appId + "&linkType=00&actionContent=表单ID1";
}else{
url = urlt + "/static/portal/vue/index.html#/open?appId=" + appId + "&linkType=00&actionContent=表单ID2";
}
return url;
})();
示例2:跳转并传递参数¶
(function(){
var doc = getCurrentDocument();
var docId = doc.getId();
var request = $WEB.getParamsTable().getHttpRequest();
var urlt = "http://" + request.getServerName() + ":" + request.getServerPort();
var appId = getApplication();
var formId = "目标表单ID";
var paramValue = doc.getItemValueAsString("参数字段");
var url = urlt + "/static/portal/vue/index.html#/open?appId=" + appId;
url += "&linkType=00&actionContent=" + formId;
url += "&docid=" + docId;
url += "¶m=" + paramValue; // 传递自定义参数
return url;
})();
示例3:带Token的分享链接¶
(function(){
var request = getParamsTable().getHttpRequest();
var userId = getWebUser().getId();
var Security = new Packages.cn.myapps.common.util.Security();
var token = Security.getToken(userId);
var schema = request.getScheme();
var serverName = request.getServerName();
var port = request.getServerPort();
var requestUrl = schema + "://" + serverName + ":" + port;
var appId = getApplication();
var formId = "表单ID";
var url = "/static/portal/vue/index.html#/open?appId=" + appId;
url += "&linkType=00&actionContent=" + formId;
url += "&accessToken=" + token; // 添加token用于分享
return requestUrl + url;
})();
注意事项¶
- URL中的ID需要替换为实际的对象ID(表单ID、视图ID等)
- 跳转表单时,
docid参数为空则创建新文档,有值则打开指定文档 - 模板表单跳转需要同时提供
actionContent(模板表单ID)和realformId(实际表单ID) - 需要分享功能时,要添加
accessToken参数 - 对话框大小可以通过
dialogWidth和dialogHeight参数设置 - 大屏跳转使用不同的URL路径,不是
/open路径 - 确保有访问目标对象的权限
- URL中的特殊字符需要进行编码处理
URL 格式总结¶
表单跳转格式¶
http://服务器:端口/static/portal/vue/index.html#/open?appId=应用ID&linkType=00&actionContent=表单ID&docid=文档ID
视图跳转格式¶
统计图跳转格式¶
报表跳转格式¶
大屏跳转格式¶
http://服务器:端口/static/portal/vue/pageIndexHtml/index.html#/?pageId=大屏ID&appId=应用ID&domainId=域ID&preview=true&reception=true
本文档内容来源于 http://doc.myapps.cn/docs/common-script/common-script-1f1k6fubejoi9
文档更新时间: 2024-06-26 07:55 作者:john