获取表单数据
接口
HttpGet:api/FrontEnd/form/{AppItemCode}/{objectId}
按菜单编码和业务数据 ObjectID 获取一条表单主表数据。接口不直接返回子表记录;当表单存在子表时,响应中的 SubTables 会返回子表菜单编码和关联条件,调用方再调用 POST api/FrontEnd/GetListData 按需分页读取子表记录。
接口必须登录,不设置免登录。服务端使用令牌中的当前登录用户校验菜单权限和数据范围,不能通过路径参数查询其他用户无权访问的数据。
请求参数
请求头
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
Authorization | string | 是 | 登录令牌,格式为 Bearer {token}。令牌可通过 POST /Permission/GetToken 获取。 |
UserId | string | 是 | 当前登录账号编码,例如 administrator。 |
TnCode | string | 是 | 租户编码,例如 00000000。 |
路径参数
| 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
AppItemCode | string | 是 | 主表所在功能菜单编码。 |
objectId | string | 是 | 主表业务数据的 ObjectID。 |
请求示例
GET /baseUrl/api/FrontEnd/form/46b97a76f61338bd/205e4ed8-db1f-40c7-9e2d-bf656d53c2cd HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzUxMiJ9...
UserId: administrator
TnCode: 00000000
返回结果
接口响应使用平台统一包装。
| 参数名 | 类型 | 说明 |
|---|---|---|
Code | int | 业务状态码;200 表示成功。 |
Message | string | 错误信息;成功时为空字符串。 |
Result | object | 表单数据结果。 |
Result.AppItemCode | string | 主表菜单编码,即请求中的 AppItemCode。 |
Result.ObjectId | string | 主表业务数据 ObjectID。 |
Result.Data | object | 主表数据。键为实际业务数据表字段名,包含 ObjectID。 |
Result.SubTables | array | 子表查询描述;没有子表时返回空数组。 |
Result.SubTables[].AppItemCode | string | 子表菜单编码,用于调用 GetListData 的 MenuId。 |
Result.SubTables[].DisplayName | string | 子表显示名称。 |
Result.SubTables[].ParentObjectId | string | 当前主表 ObjectID。 |
Result.SubTables[].ParentObjectIdField | string | 子表关联主表的字段名,固定为 ParentObjectID。 |
Result.Workflow | object | 流程信息。仅流程表单返回;普通表单为 null 或不返回该字段。 |
Result.Workflow.Instances | array | 与当前主表数据关联的流程实例。流程表单尚未发起流程时返回空数组。 |
Result.Workflow.Instances[].InstanceId | string | 流程实例 ID,可用于调用流程详情相关接口。 |
Result.Workflow.Instances[].WorkflowCode | string | 流程编码。 |
Result.Workflow.Instances[].State | int | 流程状态值。常用值:0 草稿、2 进行中、4 已结束、5 已取消、11 驳回、12 否决。 |
Result.Workflow.Instances[].StateName | string | 流程状态名称,例如 进行中、已结束。 |
Result.Workflow.Instances[].CurrentNodes | array | 当前运行节点集合。会签或并行分支时可能包含多个节点;流程结束后通常为空数组。 |
Result.Workflow.Instances[].CurrentNodes[].Code | string | 当前节点编码。 |
Result.Workflow.Instances[].CurrentNodes[].Name | string | 当前节点名称。 |
Status | int | 业务状态;1 表示成功,3 表示服务端业务错误。 |
返回示例
{
"Code": 200,
"Message": "",
"ExceptionSeqNo": null,
"Result": {
"AppItemCode": "46b97a76f61338bd",
"ObjectId": "205e4ed8-db1f-40c7-9e2d-bf656d53c2cd",
"Data": {
"ObjectID": "205e4ed8-db1f-40c7-9e2d-bf656d53c2cd",
"Title": "采购申请",
"CreatedTime": "2026-08-07 10:30:00",
"Applicant": "张三"
},
"SubTables": [
{
"AppItemCode": "46b97a76f61338bd_detail",
"DisplayName": "采购明细",
"ParentObjectId": "205e4ed8-db1f-40c7-9e2d-bf656d53c2cd",
"ParentObjectIdField": "ParentObjectID"
}
],
"Workflow": {
"Instances": [
{
"InstanceId": "8f607d58-6099-4d71-9499-50d8e4de8f06",
"WorkflowCode": "purchase_apply",
"State": 2,
"StateName": "进行中",
"CurrentNodes": [
{
"Code": "department_approval",
"Name": "部门审批"
}
]
}
]
}
},
"Status": 1,
"MessageShowType": null
}
查询子表数据
从 Result.SubTables 取得子表 AppItemCode、ParentObjectId 和 ParentObjectIdField 后,调用已有列表接口。子表查询同样需要携带有效的登录令牌、UserId 和 TnCode。
HttpPost:api/FrontEnd/GetListData
{
"UserId": "administrator",
"MenuId": "46b97a76f61338bd_detail",
"ReturnColumns": [
"ObjectID",
"ProductName",
"Quantity",
"Amount",
"ParentObjectID"
],
"PageIndex": 1,
"PageSize": 20,
"SearchCondition": [
{
"ComponentKey": "Text",
"Name": "ParentObjectID",
"Operation": "Equal",
"ValueType": "Custom",
"Value": "205e4ed8-db1f-40c7-9e2d-bf656d53c2cd",
"QueryType": "And"
}
]
}
MenuId 使用 SubTables[].AppItemCode,条件字段 Name 使用 SubTables[].ParentObjectIdField,条件值使用 SubTables[].ParentObjectId。
调用说明
- 未携带或携带无效
Authorization时,服务端返回 HTTP401。 - 普通用户必须拥有
AppItemCode对应菜单权限,且目标数据在其平台数据范围内;否则返回该数据不存在或当前用户无权访问。 - 系统管理员不受菜单角色列表限制,但仍必须使用有效令牌调用。
Data按数据库中实际存在的字段返回,以兼容菜单数据模型中仍保留、但数据库已删除的历史字段。- 子表数据不在本接口中返回,避免详情接口在子表数据量较大时产生大响应;请使用
GetListData的分页参数读取。 - 流程表单会额外返回
Workflow。同一业务数据可能关联多个流程实例,因此调用方应遍历Workflow.Instances,不能假设只有一个实例。 CurrentNodes反映流程当前运行节点;流程已结束、已取消等无运行节点的状态下,该数组为空。