天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 1818|回复: 13

[已解决] 怎么让一个提交按钮只让某个角色可用?

[复制链接]
玄墨默 发表于 2024-1-2 11:08:38 来自手机 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:5.1
【浏览器类型】:Chrome
【联系方式-QQ】:1529567492
【联系方式-电话】:138XXXXXXXX
【问题描述】:一张表需要经过多部门同时填写,怎么只让其中一个部门的角色看见提交按钮?
来自: 微社区
yaya 发表于 2024-1-2 18:02:22 | 显示全部楼层
在隐藏脚本中获取指定部门特定角色下的所有用户来判断
jimmy 发表于 2024-1-3 10:48:40 | 显示全部楼层
隐藏或者只读脚本判断当前用户是否有特定角色,根据判断进行隐藏或者只读
 楼主| 玄墨默 发表于 2024-1-4 09:24:12 来自手机 | 显示全部楼层
jimmy 发表于 2024-1-3 10:48
隐藏或者只读脚本判断当前用户是否有特定角色,根据判断进行隐藏或者只读

我写了一个隐藏脚本,但是一打开表单就报错
(function() {
var User=getWebUser ();
var roleVO= getRoleByName("流程测试");
if (roleVO.contains (User) ) {
    return false;
}
else{
    return ture; }
}())
来自: 微社区
 楼主| 玄墨默 发表于 2024-1-4 09:25:10 来自手机 | 显示全部楼层
玄墨默 发表于 2024-1-4 09:24
我写了一个隐藏脚本,但是一打开表单就报错
(function() {
var User=getWebUser ();

具体报错是这样的
错误
JavaScriptRunning:[Form.测试.Field(_eCbBWdI4imAikCM6sXQ).A1.hiddenScript]:
ReferenceError: "getRoleByName" is not defined.
(_eCbBWdI4imAikCM6sXQ) . A1.hiddenScript#3)
来自: 微社区
 楼主| 玄墨默 发表于 2024-1-4 09:26:56 来自手机 | 显示全部楼层
玄墨默 发表于 2024-1-4 09:24
我写了一个隐藏脚本,但是一打开表单就报错
(function() {
var User=getWebUser ();

(function() {
var User = getWebUser ();
var roleVO = getRoleByName("流程测试");
if (roleVO.contains (User) ) {
    return false;
}
else{
    return ture; }
}())
来自: 微社区
yaya 发表于 2024-1-4 10:29:57 | 显示全部楼层
玄墨默 发表于 2024-1-4 09:26
(function() {
var User = getWebUser ();
var roleVO = getRoleByName("流程测试");


(function(){
//var dptid = getItemValueAsString("部门");
//println("部门id--------->"+dptid);
var doc = getCurrentDocument().getIstmp();
println("文档状态----->"+doc);
var roleid = getRoleIdByName("超级管理员");;
var dptid = "6SmNasR1yhXnjOYoSoX";
var users = getUsersByDptIdAndRoleId(dptid,roleid);
var WebUser = getWebUser().getId();
println("当前用户id----->"+WebUser);
if (users !=null){
for(var iter=users.iterator();iter.hasNext();){
    var user=iter.next();
    //opts.add(user.getName(), user.getId());
        println("用户-----》"+user.getId());
        if(user.getId().equals(WebUser)){
                println("用户=====了");
                return false;
        }
}
}
if(doc){
        println("用户11111了");
        return false;
       
}
println("用户11111222了");
return true;
})()
 楼主| 玄墨默 发表于 2024-1-5 08:52:23 来自手机 | 显示全部楼层
yaya 发表于 2024-1-2 18:02
在隐藏脚本中获取指定部门特定角色下的所有用户来判断

我试了一下您的代码,但是报错了:Wrapped java.lang.NullPointerException (baselib#1)
来自: 微社区
yaya 发表于 2024-1-5 10:08:49 | 显示全部楼层
玄墨默 发表于 2024-1-5 08:52
我试了一下您的代码,但是报错了:Wrapped java.lang.NullPointerException (baselib#1)

报错信息和脚本贴出来看一下
http://www.teemlink.com/bbs/foru ... F%C3%C5%BD%C7%C9%AB
 楼主| 玄墨默 发表于 2024-1-5 15:11:04 来自手机 | 显示全部楼层
yaya 发表于 2024-1-2 18:02
在隐藏脚本中获取指定部门特定角色下的所有用户来判断

之前的代码找不到了,我是用下面这一段实现了
(function(){
var userV0 = getWebUser();  //获取用户
var roles = userV0.getRoles(); //获取用户的角色
if (roles.contains('某角色编码')){ //判断用户是否含有某角色
    return false;
}else{
    return true;
}
})()
来自: 微社区

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 14:25

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表