# User用户

## 概述

当前系统下的用户相关操作函数

## usersWithRole

返回拥有roleIdList角色中任意一个角色的用户列表

```javascript
User.usersWithRole(roleIdList)
```

| 参数         | 类型              | 描述       |
|------------|-----------------|----------|
| roleIdList | `Array<String>` | 角色的标识符数组 |

**返回值**

类型 `Array<String>`
拥有roleIdList中任意一个角色的用户ID数组

**示例**

```javascript
User.usersWithRole(['admin'])//[user1, user2, user3] 
```

## usersWithDepartment

返回属于departmentIdList部门用的用户列表

```javascript
User.usersWithDepartment(departmentIdList)
```

| 参数         | 类型              | 描述      |
|------------|-----------------|---------|
| departmentIdList | `Array<String>` | 部门标识符数组 |

**返回值**

类型 `Array<String>`
返回属于departmentIdList部门用的用户列表

**示例**

```javascript
User.usersWithDepartment(['yanfabu'])
```

## superiorUsers

返回userId的上级列表

```javascript
User.superiorUsers(userId)
```

| 参数     | 类型     | 描述         |
|--------|--------|------------|
| userId | `String` | 要查询上级的用户ID |

**返回值**

类型 `Array<String>`
用户的上级的ID列表

**示例**

```javascript
User.superiorUsers('user1')//[user2,user3] 
```

## superiorUsersWithLevel

返回userId的连续上级列表

```javascript
User.superiorUsersWithLevel(userId,level)
```

| 参数     | 类型        | 描述         |
|--------|-----------|------------|
| userId | `String`  | 要查询上级的用户ID |
| level | `Integer` | 要查询上级层数    |

**返回值**

类型 `Array<String>`
用户的上级的ID列表

**示例**

```javascript
User.superiorUsersWithLevel(Context.userId(),1)
```

## subordinateUsers

返回userId的下属列表

```javascript
User.subordinateUsers(userId)
```

| 参数     | 类型     | 描述         |
|--------|--------|------------|
| userId | `String` | 要查询下属的用户ID |

**返回值**

类型 `Array<String>`
用户下属的ID列表

**示例**

```javascript
User.subordinateUsers('user1')//[user2,user3] 
```

## subordinateUsersWithLevel

返回userId的连续下属列表

```javascript
User.subordinateUsersWithLevel(userId, level)
```

| 参数     | 类型     | 描述         |
|--------|--------|------------|
| userId | `String` | 要查询下属的用户ID |
| level | `Integer` | 级数 |

**返回值**

类型 `Array<String>`
用户下属的ID列表

**示例**

```javascript
User.subordinateUsersWithLevel('user1',2)//[user2,user3] 
```

## leaderOfDept

返回单个部门负责人列表

```javascript
User.leaderOfDept(departmentId)
```

| 参数           | 类型     | 描述   |
|--------------|--------|------|
| departmentId | `String` | 部门ID |

**返回值**

类型 `Array<String>`
部门的负责人的用户ID列表

**示例**

```javascript
User.leaderOfDept('dept1')//[user2,user3] 
```

## leaderOfDeptWithLevel

返回连续上级部门负责人列表

```javascript
User.leaderOfDeptWithLevel(departmentId,level)
```

| 参数           | 类型     | 描述   |
|--------------|--------|------|
| departmentId | `String` | 部门ID |
| level | `Integer` | 要查询上级层数    |

**返回值**

类型 `Array<String>`
返回连续上级部门负责人列表

**示例**

```javascript
User.leaderOfDeptWithLevel('yanfabu',1)
```

## leaderOfDeptList

返回多个部门的负责人列表

```javascript
User.leaderOfDeptList(departmentIdList)
```

| 参数               | 类型            | 描述     |
|------------------|---------------|--------|
| departmentIdList | `Array<String>` | 部门ID列表 |

**返回值**

类型 `Array<String>`
部门的负责人的用户ID列表

**示例**

```javascript
User.leaderOfDeptList(['dept1', 'dept2'])//[user2,user3,user4] 
```



## parentOfDept

返回部门的父部门ID

```javascript
User.parentOfDept(departmentId)
```

| 参数           | 类型     | 描述   |
|--------------|--------|------|
| departmentId | `String` | 部门ID |

**返回值**

类型 `String`
父部门的ID

**示例**

```javascript
User.parentOfDept('dept1')//dept2 
```

## parentOfDeptList

返回部门的父部门ID列表

```javascript
User.parentOfDeptList(departmentId)
```

| 参数           | 类型     | 描述   |
|--------------|--------|------|
| departmentId | `String` | 部门ID |

**返回值**

类型 `Array<String>`
父部门ID列表

**示例**

```javascript
User.parentOfDept('dept1')//['dept2','dept3'] 
```



## childrenOfDept

返回单个部门所有下级部门列表

部门的结构为树形结构，该接口会递归的返回指定部门下树形结构的所有子节点。

```javascript
User.childrenOfDept(departmentId)
```

| 参数           | 类型     | 描述   |
|--------------|--------|------|
| departmentId | `String` | 部门ID |

**返回值**

类型 `Array<String>`
子部门的ID列表

**示例**

```javascript
User.childrenOfDept('dept1')//[dept2,dept3] 
```



## childrenOfDeptList

返回多个部门的所有下级部门列表

```javascript
User.childrenOfDeptList(departmentList)
```

| 参数             | 类型            | 描述     |
|----------------|---------------|--------|
| departmentList | `Array<String>` | 部门ID列表 |

**返回值**

类型 `Array<String>`
子部门的ID列表

**示例**

```javascript
User.childrenOfDeptList(['dept1', 'dept2'])//[dept2,dept3] 
```



## directChildrenOfDept

返回直接下级部门列表

```javascript
User.directChildrenOfDept(departmentId)
```

| 参数           | 类型     | 描述   |
|--------------|--------|------|
| departmentId | `String` | 部门ID |

**返回值**

类型 `Array<String>`
子部门的ID列表

**示例**

```javascript
User.directChildrenOfDept('dept1')//[dept2] 
```



## user

返回用户信息

```javascript
User.user(userId)
```

| 参数     | 类型     | 描述   |
|--------|--------|------|
| userId | `String` | 用户ID |

**返回值**

类型 [`User`](../script/model.html#user)

**示例**

:::: tabs
::: tab 调用
```javascript
User.user(Context.userId())
```
:::

::: tab 返回值
```json
{
  "avatar": "pic10.png",
  "companyRoleList": [
    "designer",
    "admin"
  ],
  "departmentList": [
    "dev"
  ],
  "id": "zhangsan",
  "leaderList": [],
  "name": "张三",
  "roleList": [
    "admin"
  ],
  "userName": "zhangsan"
}
```
:::

::::


## userInfo

返回用户信息

```javascript
User.userInfo(userId)
```

| 参数     | 类型     | 描述   |
|--------|--------|------|
| userId | `String` | 用户ID |

**返回值**

类型 [`UserInfo`](../script/model.html#userInfo)

**示例**
:::: tabs
::: tab 调用
```javascript
User.userInfo(Context.userId())
```
:::

::: tab 返回值
```json
{
  "avatar": "pic10.png",
  "companyRoleList": [
    "designer",
    "admin"
  ],
  "departmentList": [
    "dev"
  ],
  "id": "zhangsan",
  "leaderList": [],
  "name": "张三",
  "roleList": [
    "admin"
  ],
  "userName": "zhangsan"
}
```
:::

::::




## userList

批量返回用户信息列表

```javascript
User.userList(idList)
```

| 参数     | 类型              | 描述       |
|--------|-----------------|----------|
| idList | `Array<String>` | 用户ID数组 |

**返回值**

类型 `Array<UserInfo>`

**示例**

```javascript
User.userList(['user1', 'user2'])
```

## deptList

返回departmentIdList部门的部门信息列表

```javascript
User.deptList(departmentIdList)
```

| 参数               | 类型              | 描述     |
|------------------|-----------------|--------|
| departmentIdList | `Array<String>` | 部门ID列表 |

**返回值**

类型 `Array<Dept>`

**示例**

```javascript
User.deptList(['dept1', 'dept2'])
```



## dept

返回部门信息

```javascript
User.dept(deptId)
```

| 参数     | 类型     | 描述   |
|--------|--------|------|
| deptId | `String` | 部门ID |

**返回值**

类型 `Dept`

**示例**

```javascript
User.dept('dept1')
```

