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

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

[已解决] 可否前端切换身份

[复制链接]
网络菜菜 发表于 2024-7-5 14:44:45 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:v5.1- sp 1
【浏览器类型】:Chrome/其他
【联系方式-QQ】:260217944
【联系电话】:    请留下您的联系电话,以便技术同事更好解决您的问题
【问题描述】:可否有一些设置可以前端切换身份?现在发觉流程设置时,必须是默认部门才能取到角色,第二部门无法在流程中选择到。设置用户的默认身份是可以后台设置,但有无办法或者哪里打开,能让前端用户选择自己的默认部门?

或者当提交用车申请流程时,由于申请人有两个身份,可以先弹窗让申请人确认以哪个身份提交申请



1、问题描述最好图文并茂,如有视频/脚本可直接放出,这样技术同事在处理该问题时效率更加高效哦~
2、如果该问题已得到解决,请在该帖子下回复\\\"已解决可结帖\\\"

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
巧克力榴莲蛋糕 发表于 2024-7-5 20:05:29 | 显示全部楼层
可以在表单设置一个部门的字段,显示用户自己存在的部门,让用户自己可选,选择哪个部门,提交流程的时候就去获取相关部门的领导,这种方式可不可以
 楼主| 网络菜菜 发表于 2024-7-8 09:52:41 | 显示全部楼层
巧克力榴莲蛋糕 发表于 2024-7-5 20:05
可以在表单设置一个部门的字段,显示用户自己存在的部门,让用户自己可选,选择哪个部门,提交流程的时候就 ...

工程师提的这个意见,我感觉是可行的。我的表单里就有申请部门这个字段。如下图

申请部门现在的代码如下:(现在如果第二部门变成要手工输入,如果能下拉选择就好了)

(function(){
        var doc = getCurrentDocument();
        var id = doc.getAuthor().getDefaultDepartment();
        var process = getDepartmentProcess();
        var dept = process.doView(id);
        var deptname = dept.getName();
        return deptname;
})()

因为部门比较多,不知能否做到下拉部门时根据申请人的部门选择,例如,申请人只有一个部门,直接入选,如果有两个以上部门,先以默认部门入选,但可以通过下拉选取第二部门等。但不要列出公司全部部门。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2024-7-8 18:38:08 | 显示全部楼层
网络菜菜 发表于 2024-7-8 09:52
工程师提的这个意见,我感觉是可行的。我的表单里就有申请部门这个字段。如下图

申请部门现在的代码如 ...

改成下拉框,然后用以下脚本试试。
(function(){
        var value = ""; //部门名称
        var user = getWebUser();
        var depts = user.getDepartments();
        var opts = $TOOLS.createOptions();
        //opts.add("","");
        for (var iter = depts.iterator(); iter.hasNext();) {
                var dept = iter.next();
                value = dept.getName();
                opts.add(dept.getName(), dept.getId());
        }
        return opts;
})();
 楼主| 网络菜菜 发表于 2024-7-9 16:28:14 | 显示全部楼层
yaya 发表于 2024-7-8 18:38
改成下拉框,然后用以下脚本试试。
(function(){
        var value = ""; //部门名称

工程师,你好!

我用你的代码验证时,没有出现下拉的选择项

(function(){
        var value = ""; //部门名称
        var user = getWebUser();
        var depts = user.getDepartments();
        var opts = $TOOLS.createOptions();
        //opts.add("","");
        for (var iter = depts.iterator(); iter.hasNext();) {
                var dept = iter.next();
                value = dept.getName();
                println(value);
                opts.add(dept.getName(), dept.getId());
        }
        println(opts);
        //return opts;
})();

前端打印输出

JsUtil:信息部
JsUtil:cn.myapps.runtime.dynaform.form.ejb.Options@4e44e39d

只有信息部,没有第二个部门信息

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2024-7-10 18:51:24 | 显示全部楼层
网络菜菜 发表于 2024-7-9 16:28
工程师,你好!

我用你的代码验证时,没有出现下拉的选择项

这个脚本应该是可以获取到用户的部门信息的,刷新一下前台,重新打开表单再看看。
 楼主| 网络菜菜 发表于 2024-7-11 11:24:17 | 显示全部楼层
yaya 发表于 2024-7-10 18:51
这个脚本应该是可以获取到用户的部门信息的,刷新一下前台,重新打开表单再看看。

工程师,通过刷新前台同步用户,已经刷出部门名,但下拉的参数感觉无写进去;下拉时还是没有数据



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2024-7-11 17:51:01 | 显示全部楼层
网络菜菜 发表于 2024-7-11 11:24
工程师,通过刷新前台同步用户,已经刷出部门名,但下拉的参数感觉无写进去;下拉时还是没有数据

别注释这句呀:return opts;
 楼主| 网络菜菜 发表于 2024-7-12 09:03:13 | 显示全部楼层
yaya 发表于 2024-7-11 17:51
别注释这句呀:return opts;

工程师,我只是打印输出测试时,才注释的,控件的代码是没有注释的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2024-7-12 10:17:17 | 显示全部楼层
网络菜菜 发表于 2024-7-12 09:03
工程师,我只是打印输出测试时,才注释的,控件的代码是没有注释的。

这个脚本放在哪里的呢。

本版积分规则

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

GMT+8, 2026-8-12 15:08

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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