add skill files
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
# E10 内部 API: getFormFieldPage
|
||||
|
||||
## 端点
|
||||
|
||||
```
|
||||
POST /api/workflow/core/form/field/manage/getFormFieldPage
|
||||
```
|
||||
|
||||
浏览器内调用,自动带 session cookie 认证。
|
||||
|
||||
## 请求体
|
||||
|
||||
```json
|
||||
{
|
||||
"pageNo": 1,
|
||||
"pageSize": 20,
|
||||
"module": "workflow",
|
||||
"formFieldSearchEntity": {
|
||||
"isDelete": 0,
|
||||
"status": "enable",
|
||||
"formId": "1185512764483297325",
|
||||
"formTableId": "1185512764483297435"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
| 参数 | 说明 |
|
||||
|------|------|
|
||||
| pageNo | 页码(非 `page`) |
|
||||
| pageSize | 每页条数(非 `size`) |
|
||||
| module | 固定 `workflow` |
|
||||
| formFieldSearchEntity.isDelete | 0 |
|
||||
| formFieldSearchEntity.status | `enable` |
|
||||
| formFieldSearchEntity.formId | 表单 ID |
|
||||
| formFieldSearchEntity.formTableId | 表 ID(主表 vs 明细表);主表必传,明细表传对应的 tableId |
|
||||
|
||||
## 响应结构
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"msg": "接口返回成功",
|
||||
"status": true,
|
||||
"data": {
|
||||
"pageDatas": {
|
||||
"pageNo": 1,
|
||||
"pageSize": 20,
|
||||
"result": [
|
||||
{
|
||||
"title": "申请人",
|
||||
"dataKey": "sqr",
|
||||
"type": "Employee",
|
||||
"fieldId": "1185512764483297398",
|
||||
"formId": "1185512764483297325",
|
||||
"formTableId": "1185512764483297435",
|
||||
"showOrder": 0,
|
||||
"groupName": "基础信息",
|
||||
"columnName": "sqr",
|
||||
"columnType": "MEDIUMTEXT",
|
||||
"systemField": false,
|
||||
"componentKey": "Employee"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 获取 formId 的方法
|
||||
|
||||
### 方法 1: localStorage
|
||||
|
||||
```
|
||||
localStorage key: Form_0_<formId>_checkNewForm
|
||||
```
|
||||
|
||||
示例: `Form_0_1185512764483297325_checkNewForm` → formId = `1185512764483297325`
|
||||
|
||||
### 方法 2: XHR 拦截
|
||||
|
||||
注入 `XMLHttpRequest` 钩子,然后在页面上切换 主表/明细表 tab 触发 API 调用,从捕获的请求体中提取。
|
||||
|
||||
### 方法 3: 页面 URL 提取
|
||||
|
||||
流程详情页 URL: `/info/engine_wf/pathdef/list/company/pathset/<WORKFLOW_ID>/base`
|
||||
|
||||
## 已知示例
|
||||
|
||||
来自"06.用车审批流程"(浙江聿见纺织科技 E10 v10.0.2508.01):
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|-----|
|
||||
| formId | 1185512764483297325 |
|
||||
| formTableId (主表) | 1185512764483297435 |
|
||||
| workflowId | 1185512781721886720 |
|
||||
| 数据库表 | fl_ycsplc |
|
||||
| 主表字段数 | 13 |
|
||||
| 明细表字段数 | 0(无明细表) |
|
||||
@@ -0,0 +1,257 @@
|
||||
# E10 内部 API 参考
|
||||
|
||||
这些是 E10 管理后台前端调用的内部 REST API(非 OpenAPI),在浏览器已登录的情况下可直接用 `fetch()` 调用,session cookie 自动携带。适合替代复杂的 UI 点击操作获取数据。
|
||||
|
||||
> **适用场景**:登录后(Phase 1),所有流程发现、表单查询、字段提取均可通过这些 API 完成,无需逐层点击 UI。
|
||||
|
||||
---
|
||||
|
||||
## 1. 获取所有工作流列表
|
||||
|
||||
**用途**:按分类树形列出所有工作流,找到目标流程的 `workflowId`(也叫 pathSetId)。
|
||||
|
||||
```
|
||||
POST /api/bs/workflow/pathdef/baseSet/getBaseInfoListTree
|
||||
```
|
||||
|
||||
**请求体**:
|
||||
|
||||
```json
|
||||
{
|
||||
"searchParams": {
|
||||
"otherSearchDatas": {
|
||||
"workflowType": "",
|
||||
"workflowId": "",
|
||||
"subCompanyId": ""
|
||||
}
|
||||
},
|
||||
"isTemplate": 0,
|
||||
"belongType": 1
|
||||
}
|
||||
```
|
||||
|
||||
**响应结构**:
|
||||
|
||||
```json
|
||||
{
|
||||
"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
|
||||
```
|
||||
|
||||
**请求体**:
|
||||
|
||||
```json
|
||||
{
|
||||
"module": "workflow",
|
||||
"pageNo": 1,
|
||||
"pageSize": 50,
|
||||
"name": "用车"
|
||||
}
|
||||
```
|
||||
|
||||
**响应结构**:
|
||||
|
||||
```json
|
||||
{
|
||||
"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
|
||||
```
|
||||
|
||||
**请求体**:
|
||||
|
||||
```json
|
||||
{
|
||||
"module": "workflow",
|
||||
"form": {
|
||||
"id": "1185512764483297325"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**响应结构**:
|
||||
|
||||
```json
|
||||
{
|
||||
"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
|
||||
```
|
||||
|
||||
**请求体(主表字段)**:
|
||||
|
||||
```json
|
||||
{
|
||||
"pageNo": 1,
|
||||
"pageSize": 20,
|
||||
"module": "workflow",
|
||||
"formFieldSearchEntity": {
|
||||
"isDelete": 0,
|
||||
"status": "enable",
|
||||
"formId": "1185512764483297325",
|
||||
"formTableId": "1185512764483297435"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**请求体(明细表字段)**:同上,`formTableId` 替换为明细表的 table ID。
|
||||
|
||||
**响应结构**:
|
||||
|
||||
```json
|
||||
{
|
||||
"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`,从中提取数字部分。
|
||||
|
||||
```js
|
||||
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。
|
||||
Reference in New Issue
Block a user