# 审批定义表单控件参数

在[创建审批定义](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/create)、[查看指定审批定义](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/get)接口内，需要使用 form 参数，即审批定义的表单控件 JSON 数据。本文汇总了各表单控件 JSON 数据中的参数说明，供你参考。

## 审批定义 API 不支持的控件

审批定义 API 未完全支持调用所有的审批表单控件，不支持的控件如下表所示。如果你必须使用 API 不支持的控件，则需前往[飞书审批管理后台](https://www.feishu.cn/approval/admin/approvalList?devMode=on)进进行操作。

**控件名** | **Type**     |
| ------- | ------------ |
| 计算公式    | formula      | 
| 引用多维表格  | mutableGroup |
| 流水号        | serialNumber 			   | 
| 换班控件组    | shiftGroupV2                |
| 加班控件组(仅支持查看)   |  workGroup |
| 请假控件组(仅支持查看)    |  leaveGroup |
| 外出控件组(仅支持查看)    |  outGroup |
| 出差控件组 | tripGroup                   | 

## 通用参数

通用参数是指各控件 JSON 数据中均包含的参数，通过本章节集中说明。

参数 | 类型 | 是否必填 | 描述
---|---|---|---
id | string | 是 | 控件 ID，同一个审批定义内的控件 ID 不可重复。
name | string | 是 | 控件名称的国际化文案 Key，必须以 `@i18n@` 开头，与相应接口的 i18n_resources.texts 参数的 key 对应。<br>例如，在创建审批定义时，控件的 name 取值 `@i18n@demo`，则需要在 i18n_resources.texts 参数的 key 传入同样的值 `@i18n@demo`，并通过 key 对应的 value 为 name 赋值。
type | string | 是 | 控件类型。各控件类型取值参考下文控件参数详细说明。
required | boolean | 是 | 当前控件在创建审批实例时，是否为必填、必选控件。<br>**可选值有**：<br>- true：是<br>- false：否
custom_id | string | 否 | 自定义控件 ID。
printable | boolean | 否 | 是否可以打印。<br>**可选值有**：<br>- true：是<br>- false：否<br>**默认值**：false

## 不同控件的参数

本章节提供不同控件的 type 参数值、JSON 示例以及非通用参数说明。
<md-alert>
**单行文本**、**多行文本**、**单选**、**联系人**、**部门** 控件支持在创建审批定义时设置默认值，具体配置说明参考[为控件设置默认值 API 说明](https://feishu.feishu.cn/docx/GTcAdkmPZobyTNxHsIhcs1zhnCb)。

### 单行文本

控件类型 type 为 input，JSON 示例如下：

```json
{
    "id":"widget123456",
    "name":"@i18n@demo_name",
    "type":"input",
    "required":true
}
```

### 多行文本

控件类型 type 为 textarea，JSON 示例如下：

```json
{
    "id":"widget123456",
    "name":"@i18n@demo_name",
    "type":"textarea",
    "required":true
}
```

### 数字

控件类型 type 为 number，JSON 示例如下：

```json
{
  "id": "widget123456",
  "name": "@i18n@demo_name",
  "type": "number",
  "required": true
}
```

### 图片

控件类型 type 为 image，JSON 示例如下：

```json
{
  "id": "widget123456",
  "name": "@i18n@demo_name",
  "type": "image",
  "required": true
}
```

### 附件

控件类型 type 为 attachmentV2，JSON 示例如下：

```json
{
  "id": "widget123456",
  "name": "@i18n@demo_name",
  "type": "attachmentV2",
  "required": true
}
```

### 金额

控件类型 type 为 amount，JSON 示例如下：

```json
{
  "id": "widget123456",
  "name": "@i18n@demo_name",
  "type": "amount",
  "required": true,
  "value": "CNY",
  "option": {
    "currencyRange": [
      "CNY",
      "USD"
    ]
  }
}
```

非通用参数说明：

参数 | 类型 | 是否必填 | 描述
---|---|---|---
value | string | 是 | 金额控件值，包括：<br>- CNY：人民币<br>- USD：美元<br>- EUR：欧元<br>- JPY：日元<br>- CAD：加拿大元<br>- CHF：瑞士法郎<br>- SGD：新加坡元<br>- AUD：澳大利亚元<br>- KBW：韩元<br>- INR：印度卢比<br>- TWD：新台币<br>- HKD：港元<br>- MOP：澳门元<br>- THB：泰铢<br>- IDR：印尼盾<br>- PHP：菲律宾比索<br>- MYR：马来西亚令吉
option | object | 是 | 可选项配置。
└ currencyRange | string[] | 是 | 货币范围。可选值：<br>- CNY：人民币<br>- USD：美元<br>- EUR：欧元<br>- JPY：日元<br>- CAD：加拿大元<br>- CHF：瑞士法郎<br>- SGD：新加坡元<br>- AUD：澳大利亚元<br>- KBW：韩元<br>- INR：印度卢比<br>- TWD：新台币<br>- HKD：港元<br>- MOP：澳门元<br>- THB：泰铢<br>- IDR：印尼盾<br>- PHP：菲律宾比索<br>- MYR：马来西亚令吉
└ isCapital | boolean | 否 | 是否显示大写数字，建议币种为人民币时将该参数取值为 true。
└ isThousandSeparator | boolean | 否 | 是否显示千位分隔符。
└ keepDecimalPlaces | int | 否 | 设置显示的小数位数。例如设置 2 表示显示 2 位小数位数。
└ maxValue | int | 否 | 金额范围的最大值。
└ minValue | int | 否 | 金额范围的最小值。

### 说明

控件类型 type 为 text，JSON 示例如下：

```json
{
    "id":"widget123456",
    "name":"@i18n@demo_name",
    "type":"text",
    "required":true,
    "value":"@i18n@text"
}
```

非通用参数说明：

参数 | 类型 | 是否必填 | 描述
---|---|---|---
value | string | 是 | 说明内容的国际化文案 Key，必须以 `@i18n@` 开头，需要在相应接口的 i18n_resources.texts 参数中以 Key:Value 格式进行赋值。长度不得少于 9 个字符。

### 单选、多选

- 单选控件类型 type 为 radioV2，JSON 示例如下：

```json
    {
        "id":"widget123456",
        "name":"@i18n@demo_name",
        "type":"radioV2",
        "required":true,
        "value":[{"key":"1","text":"@i18n@choice1"},{"key":"2","text":"@i18n@choice2"}]
    }
	```

- 多选控件类型 type 为 checkboxV2，JSON 示例如下：

```json
    {
        "id":"widget123456",
        "name":"@i18n@demo_name",
        "type":"checkboxV2",
        "required":true,
        "value":[{"key":"1","text":"@i18n@choice1"},{"key":"2","text":"@i18n@choice2"}]
    }
    ```

非通用参数说明：

参数 | 类型 | 是否必填 | 描述
---|---|---|---
value | object[] | 是 | 单选、多选控件的配置项。
└ key | string | 是 | 选项 Key，不可重复。
└ text | string | 是 | 选项内容的国际化文案 Key，必须以 `@i18n@` 开头，需要在相应接口的 i18n_resources.texts 参数中以 Key:Value 格式进行赋值。

如果公司同时使用多个系统（飞书审批、人事系统、销售管理系统），需要将其他系统数据同步到审批表单中作为选项，此时通过配置外部数据源为单选、多选控件的选项，就不需要在多个系统维护同一份数据。详情参见[关联外部选项说明](https://open.feishu.cn/document/ukTMukTMukTM/uADM4QjLwADO04CMwgDN)。关联后，单选、多选控件参数也有所变化，JSON 示例如下：

```json
{
    "id":"widget123456",
    "name":"@i18n@demo_name",
    "type":"radioV2",
    "required":true,
    "value":[],
    "externalData":{
        "externalUrl":"https://xxx.xxx.xxx/",
        "token":"t",
        "key":"k",
        "linkageConfigs":[
            {
                "linkageWidgetID":"widget1",
                "key":"linkageWidget1",
                "value":"example"
            }
        ],
        "externalDataLinkage":true
    }
}
```

非通用参数说明：

参数 | 类型 | 是否必填 | 描述
---|---|---|---
value | object[] | 否 | 固定选项时使用。关联外部选项后需要配置 externalData 参数。
externalData | object | 是 | 关联外部选项的信息。
└ externalUrl | string | 是 | 外部数据源接口 URL。
└ token | string | 是 | 外部数据源接口 Token。
└ key | string | 否 | 外部数据源接口 Key。
└ linkageConfigs | object | 否 | 联动参数配置。
└ └ linkageWidgetID | string | 否 | 联动参数对应的控件 ID。如果包含明细控件，推荐使用对应关联控件的自定义 ID（custom id）。
└ └ key | string | 否 | 参数代码。

### 日期

控件类型 type 为 date，JSON 示例如下：

```json
{
    "id":"widget123456",
    "name":"@i18n@demo_name",
    "type":"date",
    "required":true,
    "value": "YYYY-MM-DD"
}
```

非通用参数说明：

参数 | 类型 | 是否必填 | 描述
---|---|---|---
value | string | 是 | 日期格式。可选值有：<br>- YYYY-MM-DD：年-月-日<br>- YYYY-MM-DD a：年-月-日 上午/下午<br>- YYYY-MM-DD hh:mm：年-月-日 时:分

### 关联审批

控件类型 type 为 connect，JSON 示例如下：

```json
{
    "id":"widget123456",
    "name":"@i18n@demo_name",
    "type":"connect",
    "required":true,
    "value":["code1","code2"]
}
```

非通用参数说明：

参数 | 类型 | 是否必填 | 描述
---|---|---|---
value | string[] | 是 | 需要关联的审批定义 Code 列表。审批定义 Code 获取方式：<br>- 调用[创建审批定义](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/create)接口后，从响应参数 approval_code 获取。<br>- 登录审批管理后台，在指定审批定义的 URL 中获取，具体操作参见[什么是 Approval Code](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/overview-of-approval-resources#8151e0ae)。

### 联系人

控件类型 type 为 contact，JSON 示例如下：

```json
{
    "id":"widget123456",
    "name":"@i18n@demo_name",
    "type":"contact",
    "required":true,
    "value":{
        "ignore": true,
        "multi": false
      }
}
```

非通用参数说明：

参数 | 类型 | 是否必填 | 描述
---|---|---|---
value | object | 否 | 联系人控件配置项。
└ ignore | boolean | 否 | 是否可选自己作为联系人。默认 false 表示可选自己。
└ multi | boolean | 否 | 是否可选多个联系人。默认 false 表示不可选。

### 地址

控件类型 type 为 address，JSON 示例如下：

```json
{
    "id":"widget123456",
    "name":"@i18n@demo_name",
    "type":"address",
    "required":true,
    "value":{
        "enableDetailAddress": false,
        "requiredDetailAddress": false,
        "preLocating": false
      }
}
```
非通用参数说明：

参数 | 类型 | 是否必填 | 描述
---|---|---|---
value | object | 否 | 地址控件的配置项。
└ enableDetailAddress | boolean | 否 | 是否开启详细地址配置项。默认 false 表示不开启。
└ requiredDetailAddress | boolean | 否 | 是否必填详细地址。默认 false 表示非必填。
└ preLocating | boolean | 否 | 是否开启自动定位。默认 false 表示不自动定位。

### 日期区间

控件类型 type 为 dateInterval，JSON 示例如下：

```json
{
    "id":"widget123456",
    "name":"@i18n@demo_name",
    "type":"dateInterval",
    "required":true,
    "value":{
        "format": "YYYY-MM-DD",
        "intervalAllowModify": false,
      }
}
```

非通用参数说明：

参数 | 类型 | 是否必填 | 描述
---|---|---|---
value | object | 是 | 日期区间控件的配置项。
└ format | string | 是 | 日期格式。可选值有：<br>- YYYY-MM-DD：年-月-日<br>- YYYY-MM-DD a：年-月-日 上午/下午<br>- YYYY-MM-DD hh:mm：年-月-日 时:分
└ intervalAllowModify | boolean | 否 | 用户发起审批时，是否可修改系统自动计算的时长。默认为 false，表示不可以修改。

### 电话

控件类型 type 为 telephone，JSON 示例如下：

```json
{
    "id":"widget123456",
    "name":"@i18n@demo_name",
    "type":"telephone",
    "required":true,
    "option":{
        "availableType": "FIXED_LINE_OR_MOBILE"
      }
}
```

非通用参数说明：

参数 | 类型 | 是否必填 | 描述
---|---|---|---
option | object | 是 | 电话控件的配置项。
└ availableType | string | 是 | 电话可选类型。可选值有：<br>- MOBILE：移动电话<br>- FIXED_LINE：固定电话<br>- FIXED_LINE_OR_MOBILE：移动电话或固定电话

### 明细/表格

控件类型 type 为 fieldList，JSON 示例如下：

```json
{
    "id": "widget123456",
    "name": "@i18n@demo_name",
    "type": "fieldList",
    "required": true,
    "value":
    [
        {
            "id": "",
            "name": "",
            "type": "input",
            "required": true
        }
    ],
    "option":
    {
        "inputType": "LIST",
        "printType": "LIST"
    }
}
```
非通用参数说明：

参数 | 类型 | 是否必填 | 描述
---|---|---|---
value | object[] | 是 | 明细/表格控件内添加的其他控件信息。<br>**注意**：明细中不能套用明细/表格控件、收款账户控件、流水号控件以及所有控件组。
└ id | string | 是 | 控件 ID，同一个审批定义内的控件 ID 不可重复。
└ name | string | 是 | 控件名称的国际化文案 Key，必须以 @i18n@ 开头，与相应接口的 i18n_resources.texts 参数的 key 对应。<br>例如，在创建审批定义时，控件的 name 取值 @i18n@demo，则需要在 i18n_resources.texts 参数的 key 传入同样的值 @i18n@demo，并通过 key 对应的 value 为 name 赋值。
└ type | string | 是 | 控件类型。
└ required | boolean | 是 | 当前控件在创建审批实例时，是否为必填、必选控件。<br>**可选值有**：<br>- true：是<br>- false：否
option | object | 是 | 明细控件的配置项。
└ inputType | string | 是 | 明细控件的填写格式。可选值有：<br>- LIST：纵向填写<br>- FORM：横向填写
└ printType | string | 是 | 明细控件的打印格式。可选值有：<br>- LIST：纵向打印<br>- FORM：横向打印

## 控件组
控件组是集合了若干子控件(基础控件，例如单选、文本等)以及大量内置逻辑(比如某个子控件的自动赋值)的特殊控件，定义格式以及使用上会与基础控件有区别，具体可参考控件组参数说明

### 请假控件组
![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/fd675da7bfe8f7f36b2937a0310647c3_r3ARmNVcXa.png?height=1632&lazyload=true&width=2194)

#### 创建审批定义

==暂不支持通过OpenAPI创建包含请假控件的定义==

#### 查看审批定义

控件类型 type 为 leaveGroupV2，JSON 示例如下：

```json
{
  "id": "widgetLeaveGroupV2",
  "name": "",
  "option": null,
  "printable": true,
  "required": true,
  "type": "leaveGroupV2",
  "value": [{"id":"widgetLeaveGroupType","name":"假期类型","option":[],"printable":true,"required":true,"type":"radioV2","visible":true},{"id":"widgetLeaveGroupStartTime","name":"开始时间","options":{"dateCheckEnd":0,"dateCheckStart":0,"dateCheckType":0},"printable":true,"required":true,"type":"date","value":"YYYY-MM-DD hh:mm","visible":true},{"id":"widgetLeaveGroupEndTime","name":"结束时间","options":{"dateCheckEnd":0,"dateCheckStart":0,"dateCheckType":0},"printable":true,"required":true,"type":"date","value":"YYYY-MM-DD hh:mm","visible":true},{"id":"widgetLeaveGroupInterval","name":"时长","option":[],"printable":true,"required":true,"type":"radioV2","visible":true},{"id":"widgetLeaveGroupReason","name":"请假事由","printable":true,"required":true,"type":"textarea","visible":true},{"id":"widgetLeaveGroupUnit","name":"请假单位","option":[{"value":"DAY","text":"天"},{"value":"HOUR","text":"小时"}],"printable":true,"required":true,"type":"radioV2","visible":true},{"default_value_type":"","display_condition":null,"enable_default_value":false,"id":"widgetLeaveGroupFeedingArrivingLate","name":"上班晚到（分钟）","option":[{"value":"0","text":"0"},{"value":"15","text":"15"},{"value":"30","text":"30"},{"value":"45","text":"45"},{"value":"60","text":"60"},{"value":"75","text":"75"},{"value":"90","text":"90"},{"value":"105","text":"105"},{"value":"120","text":"120"}],"printable":true,"required":false,"type":"radioV2","visible":true},{"id":"widgetLeaveGroupFeedingOffLeaveEarly","name":"下班早走（分钟）","option":[{"value":"0","text":"0"},{"value":"15","text":"15"},{"value":"30","text":"30"},{"value":"45","text":"45"},{"value":"60","text":"60"},{"value":"75","text":"75"},{"value":"90","text":"90"},{"value":"105","text":"105"},{"value":"120","text":"120"}],"printable":true,"required":false,"type":"radioV2","visible":true},{"id":"widgetLeaveGroupFeedingRestDaily","name":"每日休息（小时）","printable":true,"required":false,"type":"input","visible":true},{"id":"widgetLeaveCertification","name":"请假证明","printable":true,"required":false,"type":"image","visible":true}],
  "visible": true
}
```

控件组参数说明：

参数 | 类型 | 描述
---|---|---
id | string | 请假控件组ID，id为固定的widgetLeaveGroupV2
type | string | 请假控件组Type，为固定的leaveGroupV2
value | object[] | 子控件列表，由基础控件组成，参考子控件参数说明

子控件参数说明：

id | 控件类型 | JSON示例 | 描述
---|---|---|---
widgetLeaveGroupType | radioV2 | ```<br>{<br>"id": "widgetLeaveGroupType",<br>"name": "假期类型",<br>"option": [],<br>"printable": true,<br>"required": true,<br>"type": "radioV2",<br>"visible": true<br>}<br>``` | 假期类型，单选类型控件，区别于普通单选控件，该控件无预置option，选项来源于假勤管理后台配置
widgetLeaveGroupType | radioV2 | ```<br>{<br>"id": "widgetLeaveGroupStartTime",<br>"name": "开始时间",<br>"printable": true,<br>"required": true,<br>"type": "date",<br>"value": "YYYY-MM-DD hh:mm",<br>"visible": true<br>}<br>``` | 开始时间，日期类型控件
widgetLeaveGroupType | radioV2 | ```<br>{<br>"id": "widgetLeaveGroupEndTime",<br>"name": "结束时间",<br>"printable": true,<br>"required": true,<br>"type": "date",<br>"value": "YYYY-MM-DD hh:mm",<br>"visible": true<br>}<br>``` | 结束时间，日期类型控件
widgetLeaveGroupType | radioV2 | ```<br>{<br>"id": "widgetLeaveGroupInterval",<br>"name": "时长",<br>"option": [],<br>"printable": true,<br>"required": true,<br>"type": "radioV2",<br>"visible": true<br>}<br>``` | 请假时长，单选类型控件，该控件提单时无需填写，会根据假期类型、开始、结束时间自动计算时长以及单位
widgetLeaveGroupType | radioV2 | ```<br>{<br>"id": "widgetLeaveGroupReason",<br>"name": "请假事由",<br>"printable": true,<br>"required": true,<br>"type": "textarea",<br>"visible": true<br>}<br>``` | 请假事由，文本类型控件
widgetLeaveGroupType | radioV2 | ```<br>{<br>"id": "widgetLeaveGroupFeedingArrivingLate",<br>"name": "上班晚到（分钟）",<br>"option": [{"value":"0","text":"0"},{"value":"15","text":"15"},{"value":"30","text":"30"},{"value":"45","text":"45"},{"value":"60","text":"60"},{"value":"75","text":"75"},{"value":"90","text":"90"},{"value":"105","text":"105"},{"value":"120","text":"120"}],<br>"printable": true,<br>"required": false,<br>"type": "radioV2",<br>"visible": true<br>}<br>``` | 上班晚到时长，单选类型控件，可选项为内置的时间范围，无法编辑，仅提交哺乳假申请时使用
widgetLeaveGroupType | radioV2 | ```<br>{<br>"id": "widgetLeaveGroupFeedingOffLeaveEarly",<br>"name": "下班早走（分钟）",<br>"option": [{"value":"0","text":"0"},{"value":"15","text":"15"},{"value":"30","text":"30"},{"value":"45","text":"45"},{"value":"60","text":"60"},{"value":"75","text":"75"},{"value":"90","text":"90"},{"value":"105","text":"105"},{"value":"120","text":"120"}],<br>"printable": true,<br>"required": false,<br>"type": "radioV2",<br>"visible": true<br>}<br>``` | 下班早走时长，单选类型控件，可选项为内置的时间范围，无法编辑，仅提交哺乳假申请时使用

### 加班控件组

关联加班规则时，无加班类型
![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/55af2e2a472e491a1565b741c3746de8_0tfT2m3vPV.png?height=1040&lazyload=true&width=2180)

未关联加班规则时可设置加班类型以及关联的假期类型
![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/1897098a1b21d23aec626a9d3ab02954_yfOYKSlwJo.png?height=1346&lazyload=true&width=2186)

#### 创建审批定义
==暂不支持通过openapi创建包含加班控件组的定义==

#### 查看审批定义
控件类型 type 为 leaveGroupV2，JSON 示例如下：
```
{
    "id": "widgetWorkGroup",
    "name": "加班",
    "option": {
      "allowInsteadMultiUser": 0,
      "allowMultiTimeRange": 1,
      "isSetRule": 1
    },
    "printable": true,
    "required": true,
    "type": "workGroup",
    "value": [{"id":"widgetWorkGroupType","name":"加班类型","option":[],"printable":true,"required":true,"type":"radioV2","visible":true,"widget_default_value":""},{"children":[{"id":"widgetWorkGroupStartTime","name":"开始时间","options":{"dateCheckEnd":0,"dateCheckStart":0,"dateCheckType":0},"printable":true,"required":true,"type":"date","value":"YYYY-MM-DD hh:mm","visible":true,"widget_default_value":""},{"default_value_type":"","display_condition":null,"enable_default_value":false,"id":"widgetWorkGroupEndTime","name":"结束时间","options":{"dateCheckEnd":0,"dateCheckStart":0,"dateCheckType":0},"printable":true,"required":true,"type":"date","value":"YYYY-MM-DD hh:mm","visible":true,"widget_default_value":""}],"default_value_type":"","display_condition":null,"enable_default_value":false,"id":"widgetWorkGroupTimeRangeFieldList","name":"加班时段","option":{"input_type":"LIST","mobile_detail_type":"CARD","print_type":"LIST"},"printable":true,"required":false,"type":"fieldList","visible":true,"widget_default_value":""},{"id":"widgetWorkGroupInterval","name":"加班时长","printable":true,"required":true,"type":"number","visible":true,"widget_default_value":""},{"id":"widgetWorkGroupReason","name":"加班事由","printable":true,"required":true,"type":"textarea","visible":true,"widget_default_value":""},{"id":"widgetWorkGroupUnit","name":"加班单位","option":[{"value":"HOUR","text":"小时"},{"value":"DAY","text":"天"},{"value":"MINUTE","text":"分钟"}],"printable":true,"required":true,"type":"radioV2","visible":true,"widget_default_value":""},{"id":"widgetWorkGroupRule","name":"加班规则","printable":true,"required":true,"type":"input","visible":true,"widget_default_value":""},{"children":[{"id":"widgetWorkGroupDetailType","name":"加班类型","option":[{"value":"LEAVE","text":"调休假"},{"value":"PAY","text":"加班费"},{"value":"NONE","text":"无"}],"printable":true,"required":true,"type":"radioV2","visible":true,"widget_default_value":""},{"id":"widgetWorkGroupDetailStartTime","name":"开始时间","options":{"dateCheckEnd":0,"dateCheckStart":0,"dateCheckType":0},"printable":true,"required":true,"type":"date","value":"YYYY-MM-DD hh:mm","visible":true,"widget_default_value":""},{"id":"widgetWorkGroupDetailEndTime","name":"结束时间","options":{"dateCheckEnd":0,"dateCheckStart":0,"dateCheckType":0},"printable":true,"required":true,"type":"date","value":"YYYY-MM-DD hh:mm","visible":true,"widget_default_value":""},{"default_value_type":"","display_condition":null,"enable_default_value":false,"id":"widgetWorkGroupDetailInterval","name":"加班时长","option":[],"printable":true,"required":true,"type":"radioV2","visible":true,"widget_default_value":""},{"id":"widgetWorkGroupDetailCategory","name":"日期类型","option":[{"value":"0","text":"无"},{"value":"1","text":"工作日"},{"value":"2","text":"休息日"},{"value":"3","text":"节假日"}],"printable":true,"required":true,"type":"radioV2","visible":true,"widget_default_value":""}],"id":"widgetWorkGroupDetail","name":"加班明细","option":{"input_type":"LIST","mobile_detail_type":"CARD","print_type":"LIST"},"printable":true,"required":true,"type":"fieldList","visible":true,"widget_default_value":""},{"id":"widgetWorkGroupOvertimeWorkers","name":"加班人","printable":true,"required":false,"type":"contact","visible":true,"widget_default_value":""}],
    "visible": true,
    "widget_default_value": ""
}
```

控件组参数说明：

参数 | 类型 | 描述
---|---|---
id | string | 加班控件组ID，id为固定的widgetWorkGroup
type | string | 加班控件组Type，为固定的workGroup
value | object[] | 子控件列表，由基础控件组成，参考子控件参数说明
option | object | 控件组属性<br>- allowInsteadMultiUser: 允许代多人提交，仅关联加班规则时可用<br>- allowMultiTimeRange: 允许提交多个加班时段，仅关联加班规则时可用<br>- isSetRule: 是否关联了加班规则，1代表关联，否则代表未关联

子控件参数说明：

id | 控件类型 | JSON示例 | 描述
---|---|---|---
widgetWorkGroupType | radioV2 | ```<br>{<br>"id": "widgetWorkGroupType",<br>"name": "加班类型",<br>"option": [<br>{<br>"value": "-1",<br>"text": "调休"<br>},<br>],<br>"printable": true,<br>"required": true,<br>"type": "radioV2",<br>"visible": true,<br>"widget_default_value": ""<br>}<br>``` | 加班类型，单选控件，如果关联了加班规则，这种情况下定义中则无选项，提单时也无需填写；否则会将选项通过该控件的option返回，这种情况下该控件必填
widgetWorkGroupType | contact | ```<br>{<br>"id": "widgetWorkGroupOvertimeWorkers",<br>"name": "加班人",<br>"printable": true,<br>"required": true,<br>"type": "contact",<br>"visible": true,<br>}<br>``` | 加班人，联系人控件，如果控件组中允许代多人提交，则提单时需要携带该控件，不可代提时无需携带该控件
widgetWorkGroupType | fieldList | ```<br>{<br>"id": "widgetWorkGroupTimeRangeFieldList",<br>"name": "加班时段",<br>"option": {},<br>"printable": true,<br>"required": false,<br>"type": "fieldList",<br>"visible": true,<br>"children": [{"default_value_type":"","display_condition":null,"enable_default_value":false,"id":"widgetWorkGroupStartTime","name":"开始时间","options":{"dateCheckEnd":0,"dateCheckStart":0,"dateCheckType":0},"printable":true,"required":true,"type":"date","value":"YYYY-MM-DD hh:mm","visible":true,"widget_default_value":""},{"default_value_type":"","display_condition":null,"enable_default_value":false,"id":"widgetWorkGroupEndTime","name":"结束时间","options":{"dateCheckEnd":0,"dateCheckStart":0,"dateCheckType":0},"printable":true,"required":true,"type":"date","value":"YYYY-MM-DD hh:mm","visible":true,"widget_default_value":""}]<br>}<br>``` | 加班时段，明细控件，子控件为日期类型的开始、结束时间控件
└widgetWorkGroupStartTime | number | ```<br>{<br>"id": "widgetWorkGroupStartTime",<br>"name": "开始时间",<br>"options": {},<br>"printable": true,<br>"required": true,<br>"type": "date",<br>"value": "YYYY-MM-DD hh:mm",<br>"visible": true,<br>}<br>``` | 开始时间，日期类型，加班的开始时间
└widgetWorkGroupEndTime | number | ```<br>{<br>"id": "widgetWorkGroupEndTime",<br>"name": "结束时间",<br>"options": {},<br>"printable": true,<br>"required": true,<br>"type": "date",<br>"value": "YYYY-MM-DD hh:mm",<br>"visible": true,<br>}<br>``` | 开始时间，日期类型，加班的开始时间
widgetWorkGroupInterval | number | ```<br>{<br>"id": "widgetWorkGroupInterval",<br>"name": "加班时长",<br>"printable": true,<br>"required": true,<br>"type": "number",<br>"visible": true,<br>}<br>``` | 加班时长，数字控件，根据加班类型(或自动关联的加班规则)、加班开始、结束时间自动计算，提单时无需包含该控件
widgetWorkGroupReason | textarea | ```<br>{<br>"id": "widgetWorkGroupReason",<br>"name": "加班事由",<br>"printable": true,<br>"required": true,<br>"type": "textarea",<br>"visible": true,<br>}<br>``` | 加班事由，文本控件，设置中加班事由可见及必填属性分别对应visible和required，不可见时提单则无需携带该控件，否则该控件必填

### 外出控件组
设置外出类型
![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/e9f5dc7e447c378ab2ccf00e2b8f9073_QDCMEHSeBX.png?height=1184&lazyload=true&width=2182)
未设置外出类型
![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/0717c9b74ef51a597c749e782767bc70_Zo4DWvjfGw.png?height=1106&lazyload=true&width=2198)

#### 创建审批定义
==暂不支持通过openapi创建包含外出控件组的定义==

#### 查看审批定义
```
{
    "id": "widgetOutGroup",
    "name": "外出控件组",
    "option": {
      "defaultUnit": "DAY",
      "isSetType": 1,
      "unitMap": {
        "meijufjq-iv2c5qrlm1i-0": "DAY",
        "meijuivb-aqhae0ptrt-0": "HOUR",
        "meijuivb-mhca5ofoj8-0": "HALFDAY"
      }
    },
    "printable": true,
    "required": true,
    "type": "outGroup",
    "value": [{"id":"widgetOutGroupType","name":"外出类型","option":[{"value":"meijuivb-aqhae0ptrt-0","text":"小时"},{"value":"meijuivb-mhca5ofoj8-0","text":"半天"},{"value":"meijufjq-iv2c5qrlm1i-0","text":"天"}],"printable":true,"required":true,"type":"radioV2","visible":true},{"id":"widgetOutGroupUnit","name":"外出单位","option":[{"value":"HOUR","text":"小时"},{"value":"DAY","text":"天"}],"printable":true,"required":true,"type":"radioV2","visible":true},{"id":"widgetOutGroupStartTime","name":"开始时间","options":{"dateCheckEnd":0,"dateCheckStart":0,"dateCheckType":0},"printable":true,"required":true,"type":"date","value":"YYYY-MM-DD hh:mm","visible":true},{"id":"widgetOutGroupEndTime","name":"结束时间","options":{"dateCheckEnd":0,"dateCheckStart":0,"dateCheckType":0},"printable":true,"required":true,"type":"date","value":"YYYY-MM-DD hh:mm","visible":true},{"id":"widgetOutGroupInterval","name":"时长","option":[],"printable":true,"required":true,"type":"radioV2","visible":true},{"id":"widgetOutGroupReason","name":"外出事由","printable":true,"required":true,"type":"textarea","visible":true},{"id":"widgetOutGroupImage","name":"外出拍照","printable":true,"required":false,"type":"image","visible":true}]
}
```

控件组参数说明：

参数 | 类型 | 描述
---|---|---
id | string | 外出控件组ID，id为固定的widgetOutGroup
type | string | 外出控件组Type，为固定的outGroup
value | object[] | 子控件列表，由基础控件组成，参考子控件参数说明
option | object | 控件组属性<br>- isSetType: 是否设置了外出类型  <br>- defaultUnit: 外出时长单位，未设置外出类型时可用<br>- unitMap: 外出类型与时长单位映射

子控件参数说明：

id | 控件类型 | JSON示例 | 描述
---|---|---|---
widgetOutGroupType | radioV2 | ```<br>{<br>"id": "widgetOutGroupType",<br>"name": "外出类型",<br>"option": [<br>{<br>"value": "meijuivb-aqhae0ptrt-0",<br>"text": "小时"<br>},<br>{<br>"value": "meijuivb-mhca5ofoj8-0",<br>"text": "半天"<br>},<br>{<br>"value": "meijufjq-iv2c5qrlm1i-0",<br>"text": "天"<br>}<br>],<br>"printable": true,<br>"required": true,<br>"type": "radioV2",<br>"visible": true<br>}<br>``` | 外出类型，单选控件，如果设置了外出类型，则可选外出类型会通过该控件的option返回，否则无可选值，提交时也无需携带该控件
widgetOutGroupStartTime | date | ```<br>{<br>"id": "widgetOutGroupStartTime",<br>"name": "开始时间",<br>"options": {},<br>"printable": true,<br>"required": true,<br>"type": "date",<br>"value": "YYYY-MM-DD hh:mm"<br>}<br>``` | 外出开始时间，日期控件
widgetOutGroupEndTime | date | ```<br>{<br>"id": "widgetOutGroupEndTime",<br>"name": "结束时间",<br>"options": {},<br>"printable": true,<br>"required": true,<br>"type": "date",<br>"value": "YYYY-MM-DD hh:mm"<br>}<br>``` | 外出结束时间，日期控件
widgetOutGroupInterval | radioV2 | ```<br>{<br>"id": "widgetOutGroupInterval",<br>"name": "时长",<br>"options": {},<br>"printable": true,<br>"required": true,<br>"type": "radioV2",<br>"value": "YYYY-MM-DD hh:mm"<br>}<br>``` | 外出时长，单选类型，根据外出开始、结束时间自动计算
widgetOutGroupReason | textarea | ```<br>{<br>"id": "widgetOutGroupReason",<br>"name": "外出事由",<br>"printable": true,<br>"required": true,<br>"type": "textarea",<br>"visible": true<br>}<br>``` | 外出事由，文本控件，可见性以及必填性由visible和required字段控制，不可见时则提交无需携带该控件
widgetOutGroupImage | image | ```<br>{<br>"id": "widgetOutGroupImage",<br>"name": "外出拍照",<br>"printable": true,<br>"required": false,<br>"type": "image",<br>"visible": true<br>}<br>``` | 外出拍照，图片控件，可见性以及必填性由visible和required字段控制，不可见时则提交无需携带该控件

