Skip to content

获取表单结构

根据表单模板 ID(tpl_id)获取表单的完整结构定义,便于动态渲染表单、校验字段输入、生成提交流程,或在接入侧做结构同步。

本文档正文聚焦响应结构与接入要点;完整 schema 与完整 demo 已拆分到同目录配套资源中。文中的示例文件均为脱敏或示例化数据。

请求示例

python
import requests

url = 'https://open.cli.im/api/v2/rpc/forms/getTemplate'
data = {
    'tpl_id': 122507
}
headers = {
    'Authorization': 'Bearer <你的API Key>',
    'Content-Type': 'application/json'
}
response = requests.post(url, json=data, headers=headers)
print(response.text)
bash
curl -X POST 'https://open.cli.im/api/v2/rpc/forms/getTemplate' \
  -H 'Authorization: Bearer <你的API Key>' \
  -H 'Content-Type: application/json' \
  -d '{"tpl_id": 122507}'

请求参数

参数类型必填说明
tpl_idinteger表单模板 ID

完整返回示例

以下代码块仅展示成功响应的完整骨架;完整 payload 与完整 success response 请使用下面“Schema 与示例文件”章节中的配套文件。

json
{
  "code": 0,
  "message": "ok",
  "data": {
    "version": "v1",
    "data": {
      "form": {
        "id": 122507,
        "name": "设备巡检",
        "type": 0,
        "type_text": "普通表单",
        "number": "D32",
        "description": "请仔细填写表单中的内容",
        "submit_button_title": "提交",
        "created_at_iso": "2026-02-27 10:26:42(UTC+08:00)",
        "updated_at_iso": "2026-03-09 17:13:04(UTC+08:00)"
      },
      "org": { "id": 94910252 },
      "project": { "id": 1104 },
      "groups": [
        {
          "group_id": 71399639089153,
          "group_title": "",
          "show_group_title": false,
          "is_page_break_group": false,
          "fields": [
            {
              "field_id": 71399639089153,
              "field_title": "巡检人姓名",
              "field_desc": "",
              "field_type": "name",
              "field_short_name": "",
              "group_id": 71399639089153,
              "settings": {
                "is_required": false,
                "is_hidden": false,
                "is_result": false,
                "is_masked": true,
                "is_unique": false,
                "is_highlight": false
              }
            }
          ]
        }
      ],
      "audit_config": {
        "enabled": true,
        "stages": [
          { "id": 20241, "title": "组长审批", "level": 1 },
          { "id": 20242, "title": "厂长审批", "level": 2 }
        ]
      },
      "process_status_config": {
        "enabled": true,
        "options": [
          { "text": "待处理", "color": "#E64340" },
          { "text": "处理中", "color": "#155EB7" },
          { "text": "已完成", "color": "#06AE56" }
        ]
      },
      "rules": {
        "time_limit_record": [
          {
            "start_time": 1773030000,
            "end_time": 1773036000,
            "time_limit_type": 0
          }
        ],
        "tpl_limit_record": null,
        "owner_tpl_limit_record": null
      }
    }
  }
}

完整示例:

响应结构总览

路径类型说明
codeinteger平台状态码,0 表示成功
messagestring状态消息
dataobject统一业务包装层
data.versionstring内容版本号,当前固定为 v1
data.dataobject表单结构对象本体

统一包装层示例:

json
{
  "version": "v1",
  "data": { "...": "..." }
}

data.data 结构详解

data.data 为表单结构对象。完整 payload schema 见 content-json-v1.schema.json,完整示例见 payload-normal.json

顶层字段

字段类型说明
formobject表单基础信息
orgobject所属企业信息
projectobject所属分区信息
groupsarray分组与字段定义列表
audit_configobject审批流程配置
process_status_configobject处理状态配置
rulesobject填写规则配置

form 对象

字段类型说明
idinteger表单 ID
namestring表单名称
typeinteger表单类型编码
type_textstring表单类型说明
numberstring表单编号
descriptionstring表单描述
submit_button_titlestring提交按钮文案
created_at_isostring创建时间,带时区的格式化字符串
updated_at_isostring最后更新时间,带时区的格式化字符串

form.type 枚举

说明
0普通表单
1普通表单
2普通表单
3保密承诺系统表单
7码状态手动变更记录系统表单
12身份组成员申请加入记录表单
13子码编辑记录系统表单
21码留言记录系统表单
22码协作记录系统表单

org / project 对象

对象字段类型说明
orgidinteger企业 ID
projectidinteger分区 ID

groups[]

groups 为数组,每个元素代表一个字段分组。支持分页分组(page break)模式;分页断点组本身不承载字段,仅用于页面分隔。

groups[] 元素字段

字段类型说明
group_idinteger分组 ID
group_titlestring分组标题;无标题时为空字符串
show_group_titleboolean是否显示分组标题
is_page_break_groupboolean是否为分页断点组;为 true 时,fields 通常为空数组
fieldsarray分组内字段列表

分页逻辑说明:

  • is_page_break_group=true 时,该分组表示分页标记。
  • 紧随其后的普通分组通常承载该页的实际字段。
  • 接入侧不应假定“有标题的组一定含字段”,应始终结合 is_page_break_group 判断。

groups[].fields[]

字段类型说明
field_idinteger字段 ID
field_titlestring字段标题
field_descstring字段说明或提示文字
field_typestring字段类型标识
field_short_namestring字段别名/短名称
group_idinteger所属分组 ID
settingsobject字段配置对象,包含通用配置与按类型扩展配置

过滤规则:

  • 子字段不会出现在输出中。
  • 已禁用字段不会出现在输出中。
  • 文档中的 ocr_* 为 OCR 主字段结构,不包含内部实现细节。

settings 通用配置

所有字段类型都包含以下 6 个布尔配置:

字段类型说明
is_requiredboolean是否必填
is_hiddenboolean是否隐藏
is_resultboolean是否结果字段
is_maskedboolean是否启用隐私脱敏
is_uniqueboolean是否开启唯一校验
is_highlightboolean是否高亮显示

settings 扩展配置

不同 field_type 会在 settings 中追加额外配置字段。未列出的字段类型仅包含上面的 6 个通用布尔值。

日期时间类:date / time

字段类型说明
formatstring日期/时间格式
default_to_currentboolean是否默认填入当前日期/时间

数字类:number

字段类型说明
unitstring单位文字,无单位时为空字符串
unit_enabledboolean是否启用单位显示
rangeobject数值范围限制
range.minimumnumber | null最小值限制
range.maximumnumber | null最大值限制
allow_negativeboolean是否允许负数

选项类:sex / radio / checkbox

字段类型说明
optionsarray选项列表
options[].option_idinteger选项 ID
options[].option_textstring选项文本
options[].is_customboolean是否允许自定义输入

检查项:checklist

字段类型说明
is_allow_entry_descboolean是否允许填写备注说明
checklist_itemsarray检查项列表
checklist_items[].item_idinteger检查项 ID
checklist_items[].item_titlestring检查项标题
checklist_result_optionsarray结果选项列表
checklist_result_options[].option_idinteger结果选项 ID
checklist_result_options[].option_valuestring结果选项值
checklist_result_options[].option_textstring结果选项文本

表格类:matrix / dynamic_matrix

字段类型说明
columnsarray列定义列表
columns[].column_idinteger列 ID
columns[].column_titlestring列标题
columns[].column_typestring列类型
columns[].formatstring日期/时间列格式,仅部分列类型出现
columns[].optionsarray选项列候选项,仅 sex / radio 等列类型出现
columns[].options[].option_uuidstring选项 UUID
columns[].options[].option_textstring选项文本
columns[].options[].is_customboolean是否允许自定义输入

级联选择:chained_selects

字段类型说明
chained_optionsarray级联选项树
chained_options[].option_idinteger选项 ID
chained_options[].option_textstring选项文本
chained_options[].levelinteger层级深度,从 1 开始
chained_options[].childrenarray子选项列表,叶子节点为空数组

OCR:ocr_*

字段类型说明
ocr_itemsarrayOCR 识别项列表
ocr_items[].item_idinteger识别项 ID
ocr_items[].item_titlestring识别项标题
ocr_items[].unitstring单位文字
ocr_items[].unit_enabledboolean是否启用单位显示

说明类:description

字段类型说明
description_htmlstringHTML 富文本说明内容

audit_config

字段类型说明
enabledboolean是否启用审批流程
stagesarray审批阶段列表;未启用时通常为空数组
stages[].idinteger审批阶段 ID
stages[].titlestring审批阶段标题
stages[].levelinteger审批层级,从 1 开始递增

process_status_config

字段类型说明
enabledboolean是否启用处理状态功能
optionsarray处理状态选项列表
options[].textstring状态文本
options[].colorstring状态颜色,十六进制色值

rules

rules 描述表单填写限制,包含时间限制、每人填写次数限制、表单总填写次数限制三部分。

字段类型说明
time_limit_recordarray时间限制规则列表
tpl_limit_recordobject | null每人填写次数限制
owner_tpl_limit_recordobject | null表单总填写次数限制

time_limit_record[]

字段类型说明
start_timeinteger | string开始时间。当前示例返回 Unix 时间戳;接入时建议不要强依赖单一展示格式
end_timeinteger | string结束时间。当前示例返回 Unix 时间戳;接入时建议不要强依赖单一展示格式
time_limit_typeinteger时间限制类型:0 不限制、1 日期时间范围、2 每日时间段

tpl_limit_record / owner_tpl_limit_record

字段类型说明
limit_typeinteger限制类型:0 不限制、1 仅一次、2 自定义周期
custom_typeinteger周期类型:0 天、1 周、2 月、3
custom_limitinteger周期内允许填写次数
custom_type_limitinteger周期跨度值

field_type 枚举表

常见组件类型与分类总览见:表单组件类型总览

forms/getTemplate 中,field_type 的主要作用是决定该字段在 settings 中会带出哪些配置项。接入时建议优先按下面的配置视角理解:

分类常见 field_type配置侧关注点
文本/身份信息nametelrecorderidentityjob_numbertexttextareacustomer_namecustomer_mobilecustomer_numbercarnumber通常只有通用布尔配置
选项类sexradiocheckbox关注 options[]
数值/时间类numberdatetime关注 unitrangeformatdefault_to_current
复合类checklistmatrixdynamic_matrixchained_selects关注嵌套结构,如 checklist_itemscolumnschained_options
媒体/展示/OCRimageaudiovideofilesignaturedescriptionocr_*关注媒体能力开关、description_htmlocr_items

如果你更关心某类组件在记录详情里会返回什么值结构,请跳转到 获取单条记录 查看 field_typefield_value 的映射。

Schema 与示例文件

Schema

完整示例

其他字段约定

空值约定

场景返回规则
可选限制规则未配置tpl_limit_recordowner_tpl_limit_record 可能返回 null
字符串字段无内容通常返回空字符串 ""
数组字段无内容通常返回空数组 []
范围边界未设置例如 range.minimum / range.maximum 可能返回 null

脱敏约定

场景说明
接口实际返回是否脱敏取决于企业授权与字段配置
示例文件本文档链接到的示例文件已做脱敏或示例化处理,仅用于结构说明和联调参考
settings.is_masked表示字段开启了脱敏开关,不代表当前看到的示例值一定来自实时接口

错误响应

失败时通常返回非成功状态,响应体可能包含以下字段:

json
{
  "code": 400,
  "error_code": 100300,
  "message": "System error",
  "message_detail": ""
}
字段类型说明
codeintegerHTTP 状态码或平台错误状态
error_codeinteger业务错误码
messagestring错误摘要
message_detailstring详细错误信息,可能为空字符串

具体错误码定义见:错误码说明