Files
fanwei-e10-api-doc/references/internal-apis.md
T
2026-05-31 19:47:50 +08:00

6.5 KiB
Raw Blame History

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 — workflowIdpathSetId),用于后续查询
  • 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 — formId
  • data.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 可以从以下途径获取:

  1. XHR 拦截:在字段管理页面切换 主表/明细表 标签时,页面会调用 getFormFieldPage,其请求体中的 formTableId 即为当前表的 ID。
  2. 字段响应反推:主表任一字段的 formTableId 即为主表的 table ID。
  3. 明细表为空时:不需要 formTableId。

formId 的其他获取方式

除了 getFormList API 搜索,还可从以下途径获取 formId:

  1. localStorage:访问过表单管理页面后,localStorage 中会有 key Form_0_<formId>_checkNewForm,从中提取数字部分。

    for (var key in localStorage) {
        if (key.startsWith("Form_0_") && key.endsWith("_checkNewForm")) {
            return key.replace("Form_0_", "").replace("_checkNewForm", "");
        }
    }
    
  2. URL 路径(不可靠,仅作参考):流程详情页 URL 中的 pathset/ 后数字是 workflowId,不是 formId。