> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 构造器函数

> 页面介绍了标准人员模型和部门模型的结构，以及UserBuilder、DirectorBuilder、DeptBuilder、GetObjectField和GetArrayItem等函数的使用方法。这些函数主要用于生成或处理人员和部门数据。

## 模型说明

* 标准人员模型对象

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
"corpId":"cropId",
"label":"姓名(工号)",
"avatar":"头像图片地址",
"key":"userid",
"businessWorkNo":"工作账号"
}
```

* 标准部门模型对象

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
	"label":"当前部门名称",
	"key":"部门id"
}
```

## UserBuilder

### 表达式

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
UserBuilder(["userid","userid"]  |  ${成员组件[{},{}]} )
```

<Warning>
  公式描述：成员构造函数：用于生成指定userId列表或指定成员组件，对应的人员模型集合
</Warning>

### 入参

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
(["userid","userid"]  或 ${成员组件[{},{}]} )
```

### 返回值

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
[{人员对象},{人员对象}]
```

### 示例

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
UserBuilder(["some_userid_123"])

// 返回
[{user1}]
```

## DirectorBuilder

### 表达式

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
DirectorBuilder( "" | "userid"，level )
```

<Warning>
  公式描述：主管构造函数：用于生成当前登录人或指定某1个人的第 level 级主管，参数 level>=1；返回对应主管的人员模型集合，多部门时返回多个对应主管。
</Warning>

### 入参

* 参数1：指定的 userid，用于指定对应人员，传""则代表当前登录人
* 参数2：level，返回 第 level 级主管,level>=1 才有效

### 返回值

* 主管的标准人员模型对象，\[\{人员对象},\{人员对象}]

### 示例：

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
DirectorBuilder("",2)

// 返回
[{user1},{user2}]
```

## DeptBuilder

### 表达式

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
DeptBuilder(无参数 | userid |单选的成员组件)
```

<Warning>
  公式描述：部门构造函数：根据条件获取指定部门对象模型函数，公式不支持子表
</Warning>

### 入参

参数1（3种模式）：

* 无参数， 代表当前登录人的所在直接部门
* 或 userid ，指定成员id的所在直接部门
* 或 单选的成员组件，成员组件对应成员所在直接部门

### 返回值

* 标准部门模型对象，\[部门对象,部门对象]，可以同时属于多个部门

### 示例

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
DeptBuilder("")
// 返回
[{dept},{user2}]
```

## GetObjectField

### 表达式

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
GetObjectField(标准Json对象模型，“fieldKey”)
```

<Warning>
  公式描述：GetObjectField **一种工具函数，JsonObject是一种通用的标准对象存储格式，内部采用key:value模式结构组织数据。GetObjField用于对指定的标准json对象中获取指定key对应的value属性值**'。

  **注：不支持在子表单中使用。**
</Warning>

### 入参

* 参数1：指定的 标准JsonObject对象
* 参数2：fieldKey，指定参数1对象的1级属性key

### 返回值

* 对象属性key对应value值，默认为文本类型

### 示例

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
GetObjectField( GetArrayItem(UserBuilder(成员组件), 1) ,"label")

// 成员组件数据示例：
[{"label":"小王(工号11)","key":"userid123"},{"label":"小红(工号22)","key":"userid124"}]

// 返回

"小王(工号11)"
```

## GetArrayItem

### 表达式

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
GetArrayItem(标准JsonArray类型，n)
```

<Warning>
  公式描述：GetArrayItem  **一种工具函数，JsonArray是一种通用的标准数组集合存储格式，内部的每个单元为标准JsonObject或JsonArray。GetArrayItem用于对指定的标准JsonArray中获取第n个数据单元（可能是JsonObject或JsonArray）**，n>=1 , n=1时代表第1个数据单元'
</Warning>

### 入参

* 参数1：标准JsonArray类型
* 参数2：n，获取数组中的第n个数据单元对象

### 返回值

* 参数1中的第n个数据单元，类型可能是JsonObject或JsonArray

### 示例

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
GetArrayItem(成员组件, 1)
```

<Note>
  成员组件数据示例：

  \[\{"label":"小王(工号11)","key":"userid123"},\{"label":"小红(工号22)","key":"userid124"}]
</Note>

### 返回

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
“”
{"label":"小王(工号11)","key":"userid123"}
```

示例：

<Frame>
  ![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1621327263799-811498d1-45dc-455c-8007-d96426c4a3ec.png)
</Frame>
