跳转至

视图导入-导入配置用户选择框值脚本

本文档内容来源于 http://doc.myapps.cn/docs/common-script/common-script-1f27ftcc61b7c

脚本说明

该脚本用于在视图导入配置中设置用户选择框的值。当进行视图数据导入时,可以通过脚本动态设置用户选择框的默认值或可选值。

常见实现方式

方式1:设置当前用户为默认值

(function(){
    var currentUser = getWebUser();
    return currentUser.getId();
})();

方式2:设置当前用户的部门

(function(){
    var currentUser = getWebUser();
    var department = currentUser.getDepartment();

    if(department != null){
        return department.getId();
    }

    return "";
})();

方式3:根据条件设置用户

(function(){
    var condition = getParameter("条件参数");
    var userId = "";

    if(condition != null && condition === "类型1"){
        userId = "用户ID1";
    }else if(condition != null && condition === "类型2"){
        userId = "用户ID2";
    }else{
        userId = getWebUser().getId();  // 默认当前用户
    }

    return userId;
})();

方式4:设置角色下的用户列表

(function(){
    var roleName = "角色名称";
    var users = getUsersByRole(roleName);
    var userIds = "";

    if(users != null && users.size() > 0){
        var idList = [];
        for(var i = 0; i < users.size(); i++){
            idList.push(users.get(i).getId());
        }
        userIds = idList.join(";");
    }

    return userIds;
})();

扩展示例

示例1:设置当前用户及上级

(function(){
    var currentUser = getWebUser();
    var userId = currentUser.getId();

    // 获取上级用户
    var superior = currentUser.getSuperior();
    var userIds = userId;

    if(superior != null){
        userIds = userId + ";" + superior.getId();
    }

    return userIds;
})();

示例2:根据部门设置用户

(function(){
    var departmentName = getParameter("部门名称");
    var userIds = "";

    if(departmentName != null && departmentName.trim().length > 0){
        var department = getDepartmentByName(departmentName);

        if(department != null){
            var users = department.getUsers();
            if(users != null && users.size() > 0){
                var idList = [];
                for(var i = 0; i < users.size(); i++){
                    idList.push(users.get(i).getId());
                }
                userIds = idList.join(";");
            }
        }
    }else{
        // 默认当前用户
        userIds = getWebUser().getId();
    }

    return userIds;
})();

示例3:设置多个角色的用户

(function(){
    var roleNames = ["角色1", "角色2", "角色3"];
    var allUserIds = [];

    for(var i = 0; i < roleNames.length; i++){
        var users = getUsersByRole(roleNames[i]);
        if(users != null && users.size() > 0){
            for(var j = 0; j < users.size(); j++){
                var userId = users.get(j).getId();
                if(allUserIds.indexOf(userId) < 0){
                    allUserIds.push(userId);
                }
            }
        }
    }

    return allUserIds.length > 0 ? allUserIds.join(";") : "";
})();

示例4:根据当前文档设置用户

(function(){
    var doc = getCurrentDocument();
    var userIds = "";

    if(doc != null){
        // 从当前文档获取用户字段值
        var docUser = doc.getItemValueAsString("用户字段");

        if(docUser != null && docUser.trim().length > 0){
            userIds = docUser;
        }else{
            // 默认当前用户
            userIds = getWebUser().getId();
        }
    }else{
        userIds = getWebUser().getId();
    }

    return userIds;
})();

示例5:设置用户并格式化显示

(function(){
    var currentUser = getWebUser();
    var userId = currentUser.getId();
    var userName = currentUser.getName();

    // 返回格式:用户ID|用户名称(用于显示)
    return userId + "|" + userName;
})();

关键函数说明

  • getWebUser(): 获取当前登录用户对象
  • getWebUser().getId(): 获取当前用户ID
  • getWebUser().getName(): 获取当前用户姓名
  • getWebUser().getDepartment(): 获取当前用户部门
  • getUsersByRole(roleName): 根据角色获取用户列表
  • getDepartmentByName(name): 根据部门名称获取部门对象
  • department.getUsers(): 获取部门下的用户列表
  • user.getSuperior(): 获取用户的上级

用户选择框值格式

单个用户

return "用户ID";

多个用户

return "用户ID1;用户ID2;用户ID3";

带显示名称(如果支持)

return "用户ID|用户名称";

注意事项

  • ⚠️ 用户ID格式: 多个用户ID用分号(;)分隔
  • ⚠️ 用户存在性: 确保返回的用户ID存在且有效
  • ⚠️ 空值处理: 如果没有符合条件的用户,返回空字符串
  • ⚠️ 权限控制: 确保用户有访问权限
  • 视图导入配置中的用户选择框值脚本用于设置默认值或可选值
  • 返回的用户ID会被用于导入时的用户字段填充
  • 建议根据实际业务需求设置合适的用户

使用场景

  • 视图导入时设置默认用户
  • 根据条件动态设置用户
  • 批量导入时设置用户
  • 用户权限控制
  • 数据关联用户

如需查看完整脚本代码,请访问源文档链接。