6.5 KiB
6.5 KiB
E10 内部 API 参考
这些是 E10 管理后台前端调用的内部 REST API(非 OpenAPI),在浏览器已登录的情况下可直接用 fetch() 调用,session cookie 自动携带。适合替代复杂的 UI 点击操作获取数据。
适用场景:登录后(Phase 1),所有流程发现、表单查询、字段提取均可通过这些 API 完成,无需逐层点击 UI。
1. 获取所有工作流列表
用途:按分类树形列出所有工作流,找到目标流程的 workflowId(也叫 pathSetId)。
POST /api/bs/workflow/pathdef/baseSet/getBaseInfoListTree
请求体:
{
"searchParams": {
"otherSearchDatas": {
"workflowType": "",
"workflowId": "",
"subCompanyId": ""
}
},
"isTemplate": 0,
"belongType": 1
}
响应结构:
{
"code": 200,
"data": {
"total": 42,
"dataGroupTitle": [
{"typeName": "行政类", "count": 9, "id": "1184726218683441153"}
],
"datas": [
{
"typeName": "行政类",
"children": [
{
"id": "1185512781721886720",
"title": "06.用车审批流程",
"defaultWorkflowName": "06.用车审批流程",
"status": "1"
}
]
}
]
}
}
关键字段:
datas[].children[].id— workflowId(pathSetId),用于后续查询datas[].children[].title— 流程名称datas[].typeName— 流程分类(人事类/行政类/财务类/业务类)
2. 搜索表单(按名称)
用途:根据表单名称搜索,获取 formId。名称支持模糊匹配。
POST /api/workflow/core/form/formmanage/getFormList
请求体:
{
"module": "workflow",
"pageNo": 1,
"pageSize": 50,
"name": "用车"
}
响应结构:
{
"code": 200,
"data": {
"pageDatas": {
"result": [
{
"id": "1185512764483297325",
"name": "用车审批流程"
}
]
}
}
}
关键字段:
data.pageDatas.result[].id— formIddata.pageDatas.result[].name— 表单名称
注意:流程名称(如"06.用车审批流程")与表单名称(如"用车审批流程")可能不同(有无编号前缀)。搜索时去掉编号前缀。
3. 获取表单详情
用途:获取表单的元数据(表名、类型、基础设置)。
POST /api/workflow/core/form/formmanage/getForm
请求体:
{
"module": "workflow",
"form": {
"id": "1185512764483297325"
}
}
响应结构:
{
"code": 200,
"data": {
"id": "1185512764483297325",
"tableName": "ft_ycsplc",
"name": "用车审批流程",
"tableType": "MAIN",
"systemTable": false,
"editTable": true
}
}
关键字段:
data.tableName— 数据库表名data.tableType— MAIN(主表)或 DETAIL(明细表)data.name— 表单名称
4. 获取表单字段列表(分页)
用途:获取主表或明细表的所有字段定义(含 fieldId、dataKey、类型、分组)。
POST /api/workflow/core/form/field/manage/getFormFieldPage
请求体(主表字段):
{
"pageNo": 1,
"pageSize": 20,
"module": "workflow",
"formFieldSearchEntity": {
"isDelete": 0,
"status": "enable",
"formId": "1185512764483297325",
"formTableId": "1185512764483297435"
}
}
请求体(明细表字段):同上,formTableId 替换为明细表的 table ID。
响应结构:
{
"code": 200,
"data": {
"pageDatas": {
"pageNo": 1,
"pageSize": 20,
"result": [
{
"title": "申请人",
"dataKey": "sqr",
"type": "Employee",
"fieldId": "1185512764483297398",
"showOrder": 0,
"groupName": "基础信息",
"columnName": "sqr",
"formTableId": "1185512764483297435",
"formId": "1185512764483297325"
}
]
}
}
}
关键字段:
title— 字段显示名称dataKey— 字段编码(API 传参用)fieldId— 字段 ID(API 传参用,纯数字)type— 字段类型(Employee/Date/Text/TextArea/Department/SubCompany/File/EBuilder/Flow/Document)showOrder— 显示顺序groupName— 所属分组columnName— 数据库列名
常见字段类型映射:
| API type | 中文含义 | formData 传值方式 |
|---|---|---|
| Employee | 人员选择 | dataOptions[].type: "resource" |
| Department | 部门选择 | dataOptions[].type: "department" |
| SubCompany | 分部选择 | dataOptions[].type: "subcompany" |
| Date | 日期 | content: "2026-05-27" |
| Text | 单行文本 | content: "文本值" |
| TextArea | 多行文本 | content: "文本值" |
| File | 附件 | dataOptions[].type: "file" + uploadParam |
| EBuilder | 关联e-builder | 选项型传值 |
| Flow | 关联流程 | 选项型传值 |
| Document | 关联文档 | 选项型传值 |
5. 获取 formTableId(主表和明细表)
formTableId 可以从以下途径获取:
- XHR 拦截:在字段管理页面切换 主表/明细表 标签时,页面会调用
getFormFieldPage,其请求体中的formTableId即为当前表的 ID。 - 字段响应反推:主表任一字段的
formTableId即为主表的 table ID。 - 明细表为空时:不需要 formTableId。
formId 的其他获取方式
除了 getFormList API 搜索,还可从以下途径获取 formId:
-
localStorage:访问过表单管理页面后,
localStorage中会有 keyForm_0_<formId>_checkNewForm,从中提取数字部分。for (var key in localStorage) { if (key.startsWith("Form_0_") && key.endsWith("_checkNewForm")) { return key.replace("Form_0_", "").replace("_checkNewForm", ""); } } -
URL 路径(不可靠,仅作参考):流程详情页 URL 中的
pathset/后数字是 workflowId,不是 formId。