weaver-e10-builder 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -19
- package/dist/commands/actionflow.d.ts.map +1 -1
- package/dist/commands/actionflow.js +26 -0
- package/dist/commands/actionflow.js.map +1 -1
- package/dist/commands/form-add-detail-table.d.ts.map +1 -1
- package/dist/commands/form-add-detail-table.js +127 -7
- package/dist/commands/form-add-detail-table.js.map +1 -1
- package/dist/commands/form-ebuilder-columns.d.ts +7 -0
- package/dist/commands/form-ebuilder-columns.d.ts.map +1 -1
- package/dist/commands/form-ebuilder-columns.js +2 -24
- package/dist/commands/form-ebuilder-columns.js.map +1 -1
- package/dist/commands/form-formula.d.ts.map +1 -1
- package/dist/commands/form-formula.js +35 -11
- package/dist/commands/form-formula.js.map +1 -1
- package/dist/commands/form-nlist.d.ts +1 -1
- package/dist/commands/form-nlist.d.ts.map +1 -1
- package/dist/commands/form-nlist.js +5 -3
- package/dist/commands/form-nlist.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +93 -72
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/workflow-auth-resp.d.ts.map +1 -1
- package/dist/commands/workflow-auth-resp.js +69 -8
- package/dist/commands/workflow-auth-resp.js.map +1 -1
- package/dist/commands/workflow-node-assign-flow.d.ts +3 -0
- package/dist/commands/workflow-node-assign-flow.d.ts.map +1 -0
- package/dist/commands/workflow-node-assign-flow.js +342 -0
- package/dist/commands/workflow-node-assign-flow.js.map +1 -0
- package/dist/commands/workflow-node.d.ts +2 -0
- package/dist/commands/workflow-node.d.ts.map +1 -1
- package/dist/commands/workflow-node.js +75 -49
- package/dist/commands/workflow-node.js.map +1 -1
- package/dist/core/auth.js +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/components/assign_var.d.ts +12 -0
- package/dist/services/actionflow/components/assign_var.d.ts.map +1 -0
- package/dist/services/actionflow/components/assign_var.js +133 -0
- package/dist/services/actionflow/components/assign_var.js.map +1 -0
- package/dist/services/actionflow/components/index.d.ts.map +1 -1
- package/dist/services/actionflow/components/index.js +9 -0
- package/dist/services/actionflow/components/index.js.map +1 -1
- package/dist/services/actionflow/dynamic_resources.d.ts +7 -1
- package/dist/services/actionflow/dynamic_resources.d.ts.map +1 -1
- package/dist/services/actionflow/dynamic_resources.js +64 -7
- package/dist/services/actionflow/dynamic_resources.js.map +1 -1
- package/dist/services/actionflow/form_source.d.ts +35 -0
- package/dist/services/actionflow/form_source.d.ts.map +1 -1
- package/dist/services/actionflow/form_source.js +50 -0
- package/dist/services/actionflow/form_source.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +51 -1
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/form-create.d.ts +2 -1
- package/dist/services/form-create.d.ts.map +1 -1
- package/dist/services/form-create.js.map +1 -1
- package/dist/services/form-ebuilder-columns.d.ts +50 -0
- package/dist/services/form-ebuilder-columns.d.ts.map +1 -0
- package/dist/services/form-ebuilder-columns.js +68 -0
- package/dist/services/form-ebuilder-columns.js.map +1 -0
- package/dist/services/form-field-drop.d.ts +30 -1
- package/dist/services/form-field-drop.d.ts.map +1 -1
- package/dist/services/form-field-drop.js +60 -0
- package/dist/services/form-field-drop.js.map +1 -1
- package/dist/services/form-field-patch.d.ts +47 -0
- package/dist/services/form-field-patch.d.ts.map +1 -0
- package/dist/services/form-field-patch.js +88 -0
- package/dist/services/form-field-patch.js.map +1 -0
- package/dist/services/form-nlist.d.ts +1 -0
- package/dist/services/form-nlist.d.ts.map +1 -1
- package/dist/services/form-nlist.js +32 -5
- package/dist/services/form-nlist.js.map +1 -1
- package/dist/services/form-sub-detail.d.ts +51 -3
- package/dist/services/form-sub-detail.d.ts.map +1 -1
- package/dist/services/form-sub-detail.js +183 -20
- package/dist/services/form-sub-detail.js.map +1 -1
- package/dist/services/formula-detail.d.ts +68 -5
- package/dist/services/formula-detail.d.ts.map +1 -1
- package/dist/services/formula-detail.js +110 -44
- package/dist/services/formula-detail.js.map +1 -1
- package/dist/services/rich-text.d.ts +33 -0
- package/dist/services/rich-text.d.ts.map +1 -0
- package/dist/services/rich-text.js +134 -0
- package/dist/services/rich-text.js.map +1 -0
- package/dist/services/workflow-assign-flow.d.ts +114 -0
- package/dist/services/workflow-assign-flow.d.ts.map +1 -0
- package/dist/services/workflow-assign-flow.js +311 -0
- package/dist/services/workflow-assign-flow.js.map +1 -0
- package/dist/services/workflow-node-menu.d.ts +57 -0
- package/dist/services/workflow-node-menu.d.ts.map +1 -0
- package/dist/services/workflow-node-menu.js +144 -0
- package/dist/services/workflow-node-menu.js.map +1 -0
- package/package.json +48 -48
- package/skill-docs/SKILL.md +6 -5
- package/skill-docs/_catalog.md +79 -77
- package/skill-docs/actionflows/SKILL.md +168 -167
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +1 -1
- package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +33 -33
- package/skill-docs/references/common/guide-plan-template.md +254 -251
- package/skill-docs/references/common/ref-cli-commands.md +529 -519
- package/skill-docs/references/form/guide-create-form.md +233 -232
- package/skill-docs/references/form/guide-form-formula-functions.md +11 -1
- package/skill-docs/references/form/guide-form-sub-detail.md +82 -0
- package/skill-docs/references/form/guide-list-custom-text.md +52 -0
- package/skill-docs/references/workflow/guide-workflow-auth-resp.md +198 -190
- package/skill-docs/references/workflow/guide-workflow.md +7 -0
|
@@ -1,232 +1,233 @@
|
|
|
1
|
-
# 新建 EBuilder 表单
|
|
2
|
-
|
|
3
|
-
通过 `e10-cli form create` 在 EBuilder 应用中创建表单。本指南说明从需求整理、`fields.json` 编写到建后配置的完整顺序;字段参数和布局样表的详细规则按需读取专题参考。
|
|
4
|
-
|
|
5
|
-
需求以已有 EB 表单、系统业务表或数据加工结果为实际数据源时,使用 [虚拟表创建与维护](guide-virtual-form.md) 的 `form virtual` 流程。
|
|
6
|
-
|
|
7
|
-
## 标准创建流程
|
|
8
|
-
|
|
9
|
-
1. 确认目标应用 `appId`。
|
|
10
|
-
2. 确认布局类型:流式 `FLOW` 或表格式 `EXCEL`。布局类型在建表时确定。
|
|
11
|
-
3. 从需求中整理字段、明细表、字段顺序和布局要求;遇到完整布局样表时,将空间结构写入 plan 的“表单布局蓝图”。
|
|
12
|
-
4. 将建表时可以完成的配置写入 `fields.json`。
|
|
13
|
-
5. 执行 `form create`,记录返回的 `objId` 和 `formId`。
|
|
14
|
-
6. 使用 `form list-view` 查询并记录默认台账 `listId`。
|
|
15
|
-
7. 按需求完成多语言、联动、校验、权限、视图和按钮等建后配置。
|
|
16
|
-
8. 使用读取命令轻量核对字段、布局和默认台账。
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
e10-cli form create <appId> "<表单名>" --fields @fields.json --layout FLOW|EXCEL
|
|
20
|
-
e10-cli form list-view <objId> <appId>
|
|
21
|
-
e10-cli form read <objId> --app-id <appId> --out fields-created.json
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
需要同时生成台账菜单入口时,在创建命令中增加 `--menu`;建成后也可使用 `menu add-table <appId> <objId>` 添加。默认台账视图与应用菜单入口是两个资源。
|
|
25
|
-
|
|
26
|
-
## 各阶段配置范围
|
|
27
|
-
|
|
28
|
-
| 阶段 | 配置内容 |
|
|
29
|
-
|---|---|
|
|
30
|
-
| 需求与 plan | 表单名称、字段类型、顺序、明细结构、FLOW/EXCEL、布局蓝图及外围配置 |
|
|
31
|
-
| `fields.json` | 字段、选项、默认值、精度、日期格式、关联、公式、明细、分组和显示属性 |
|
|
32
|
-
| `form create` | 表单主体、字段、明细、布局、基础查看权限、默认台账及可选菜单 |
|
|
33
|
-
| 建成后 | 字段多语言、联动、查重、进一步权限、视图名称与列、筛选、按钮及关联页签 |
|
|
34
|
-
| 完成核对 | `objId`、`formId`、`listId`、字段结构和布局结果 |
|
|
35
|
-
|
|
36
|
-
## 建表前整理需求
|
|
37
|
-
|
|
38
|
-
### 布局类型
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
e10-cli form create <appId> "<表单名>" --fields @fields.json --layout FLOW
|
|
42
|
-
e10-cli form create <appId> "<表单名>" --fields @fields.json --layout EXCEL
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
- `FLOW`:流式布局。
|
|
46
|
-
- `EXCEL`:表格式布局,也是 CLI 缺省值。
|
|
47
|
-
- 需求未明确且布局选择会影响结果时,建表前向用户确认。
|
|
48
|
-
- 需求提供完整表格、合并单元格、分组标题、标签与字段交替排布时,按布局样表处理,详见 [表单布局规划](guide-form-layout-planning.md)。
|
|
49
|
-
|
|
50
|
-
### 字段定义
|
|
51
|
-
|
|
52
|
-
字段按照需求顺序写入 `fields.json`。主表字段在前,`DetailTable` 明细表放在数组末尾。
|
|
53
|
-
|
|
54
|
-
```json
|
|
55
|
-
[
|
|
56
|
-
{"componentKey":"Text","fieldName":"合同名称","required":true,"singleRow":true},
|
|
57
|
-
{"componentKey":"DateRange","fieldName":"合同有效期","format":"yyyy-MM-dd"},
|
|
58
|
-
{"componentKey":"Money","fieldName":"合同金额","precision":2},
|
|
59
|
-
{"componentKey":"Select","fieldName":"合同状态","fieldOptions":[{"name":"草稿"},{"name":"履行中"}]},
|
|
60
|
-
{"componentKey":"Employee","fieldName":"负责人"},
|
|
61
|
-
{"componentKey":"DetailTable","fieldName":"付款明细","formFields":[
|
|
62
|
-
{"componentKey":"Date","fieldName":"付款日期"},
|
|
63
|
-
{"componentKey":"Number","fieldName":"付款金额","precision":2}
|
|
64
|
-
]}
|
|
65
|
-
]
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
常用字段类型包括文本、数字、选项、日期、组织、关联、行政区域和其他类型。完整类型、关联码表及各类型属性见 [表单字段定义参考](ref-form-fields.md);明细表通过表单结构配置创建。
|
|
69
|
-
|
|
70
|
-
## 常用字段属性
|
|
71
|
-
|
|
72
|
-
| 属性 | 作用 |
|
|
73
|
-
|---|---|
|
|
74
|
-
| `required:true` | 字段必填 |
|
|
75
|
-
| `readOnly:true` | 禁止手工编辑 |
|
|
76
|
-
| `hidden:true` | 布局中隐藏,字段仍可参与计算 |
|
|
77
|
-
| `singleRow:true` | 独占一行 |
|
|
78
|
-
| `group:"基本信息"` | 放入指定字段分组 |
|
|
79
|
-
| `multiple:true` | 支持多选的字段设置为多选 |
|
|
80
|
-
| `maxLen:500` | 文本最大长度 |
|
|
81
|
-
| `precision:2` | 数字或金额小数位 |
|
|
82
|
-
| `defaultValue` | 字段默认值 |
|
|
83
|
-
|
|
84
|
-
### 字段分组
|
|
85
|
-
|
|
86
|
-
以需求为准:只有需求明确要求字段分组时,才在 `fields.json` 中设置 `group`;需求未要求时保持不分组。
|
|
87
|
-
|
|
88
|
-
```json
|
|
89
|
-
[
|
|
90
|
-
{"componentKey":"Text","fieldName":"项目名称","group":"基本信息","required":true},
|
|
91
|
-
{"componentKey":"Employee","fieldName":"负责人","group":"基本信息"},
|
|
92
|
-
{"componentKey":"Number","fieldName":"项目金额","group":"财务信息","precision":2}
|
|
93
|
-
]
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
同名 `group` 的字段进入同一个分组。分组内字段按字段顺序排列,需要整行展示的字段增加 `singleRow:true`。已有表单补充分组时使用:
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
e10-cli form group <objId> <appId> --groups '{"基本信息":["项目名称","负责人"]}'
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### 日期区间
|
|
103
|
-
|
|
104
|
-
字段本身包含开始与结束含义,如“项目周期、合同有效期、请假时间、活动时间”,优先使用 `DateRange`。明确要求两个独立字段,或开始、结束需要分别参与公式和联动时,再拆成两个日期字段。
|
|
105
|
-
|
|
106
|
-
```json
|
|
107
|
-
{"componentKey":"DateRange","fieldName":"项目周期","format":"yyyy-MM-dd"}
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### 选项和多选
|
|
111
|
-
|
|
112
|
-
```json
|
|
113
|
-
{"componentKey":"Select","fieldName":"状态","fieldOptions":[{"name":"启用"},{"name":"停用"}]},
|
|
114
|
-
{"componentKey":"Employee","fieldName":"项目成员","multiple":true}
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
`Select`、`RadioBox`、`CheckBox` 可在 `fieldOptions` 中定义选项。人员、部门、EBuilder、Browser 和 Select 等支持按字段能力设置多选。共享选项可使用 `optionTemplate`;详细结构见 [表单字段定义参考](ref-form-fields.md)。
|
|
118
|
-
|
|
119
|
-
### 关联字段
|
|
120
|
-
|
|
121
|
-
EBuilder 关联字段在创建时指定目标表单 `objId` 和显示字段:
|
|
122
|
-
|
|
123
|
-
```json
|
|
124
|
-
{
|
|
125
|
-
"componentKey":"EBuilder",
|
|
126
|
-
"fieldName":"关联客户",
|
|
127
|
-
"sformId":"<目标表单objId>",
|
|
128
|
-
"dataTitle":"客户名称",
|
|
129
|
-
"displayColumns":["客户名称","客户类型"]
|
|
130
|
-
}
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
`Flow` 的 `sformId` 同样指向目标流程绑定的表单 `objId`。原生关联对象和通用浏览类型的配置码表见 [表单字段定义参考](ref-form-fields.md);关联数据过滤和范围分别见 [EBuilder 过滤](guide-ebuilder-filter.md) 与 [关联浏览数据范围](guide-ebuilder-scope.md)。
|
|
134
|
-
|
|
135
|
-
### 明细表与二级明细
|
|
136
|
-
|
|
137
|
-
明细字段写入 `DetailTable.formFields
|
|
138
|
-
|
|
139
|
-
```json
|
|
140
|
-
[
|
|
141
|
-
{"componentKey":"DetailTable","fieldName":"任务明细","
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
{"componentKey":"
|
|
147
|
-
|
|
148
|
-
]
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
|
161
|
-
|
|
|
162
|
-
| `
|
|
163
|
-
| `
|
|
164
|
-
| `
|
|
165
|
-
| `
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
- `
|
|
191
|
-
- `
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
|
201
|
-
|
|
|
202
|
-
|
|
|
203
|
-
|
|
|
204
|
-
|
|
|
205
|
-
|
|
|
206
|
-
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
e10-cli form
|
|
221
|
-
e10-cli form
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
- [
|
|
230
|
-
- [
|
|
231
|
-
- [
|
|
232
|
-
- [
|
|
1
|
+
# 新建 EBuilder 表单
|
|
2
|
+
|
|
3
|
+
通过 `e10-cli form create` 在 EBuilder 应用中创建表单。本指南说明从需求整理、`fields.json` 编写到建后配置的完整顺序;字段参数和布局样表的详细规则按需读取专题参考。
|
|
4
|
+
|
|
5
|
+
需求以已有 EB 表单、系统业务表或数据加工结果为实际数据源时,使用 [虚拟表创建与维护](guide-virtual-form.md) 的 `form virtual` 流程。
|
|
6
|
+
|
|
7
|
+
## 标准创建流程
|
|
8
|
+
|
|
9
|
+
1. 确认目标应用 `appId`。
|
|
10
|
+
2. 确认布局类型:流式 `FLOW` 或表格式 `EXCEL`。布局类型在建表时确定。
|
|
11
|
+
3. 从需求中整理字段、明细表、字段顺序和布局要求;遇到完整布局样表时,将空间结构写入 plan 的“表单布局蓝图”。
|
|
12
|
+
4. 将建表时可以完成的配置写入 `fields.json`。
|
|
13
|
+
5. 执行 `form create`,记录返回的 `objId` 和 `formId`。
|
|
14
|
+
6. 使用 `form list-view` 查询并记录默认台账 `listId`。
|
|
15
|
+
7. 按需求完成多语言、联动、校验、权限、视图和按钮等建后配置。
|
|
16
|
+
8. 使用读取命令轻量核对字段、布局和默认台账。
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
e10-cli form create <appId> "<表单名>" --fields @fields.json --layout FLOW|EXCEL
|
|
20
|
+
e10-cli form list-view <objId> <appId>
|
|
21
|
+
e10-cli form read <objId> --app-id <appId> --out fields-created.json
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
需要同时生成台账菜单入口时,在创建命令中增加 `--menu`;建成后也可使用 `menu add-table <appId> <objId>` 添加。默认台账视图与应用菜单入口是两个资源。
|
|
25
|
+
|
|
26
|
+
## 各阶段配置范围
|
|
27
|
+
|
|
28
|
+
| 阶段 | 配置内容 |
|
|
29
|
+
|---|---|
|
|
30
|
+
| 需求与 plan | 表单名称、字段类型、顺序、明细结构、FLOW/EXCEL、布局蓝图及外围配置 |
|
|
31
|
+
| `fields.json` | 字段、选项、默认值、精度、日期格式、关联、公式、明细、分组和显示属性 |
|
|
32
|
+
| `form create` | 表单主体、字段、明细、布局、基础查看权限、默认台账及可选菜单 |
|
|
33
|
+
| 建成后 | 字段多语言、联动、查重、进一步权限、视图名称与列、筛选、按钮及关联页签 |
|
|
34
|
+
| 完成核对 | `objId`、`formId`、`listId`、字段结构和布局结果 |
|
|
35
|
+
|
|
36
|
+
## 建表前整理需求
|
|
37
|
+
|
|
38
|
+
### 布局类型
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
e10-cli form create <appId> "<表单名>" --fields @fields.json --layout FLOW
|
|
42
|
+
e10-cli form create <appId> "<表单名>" --fields @fields.json --layout EXCEL
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
- `FLOW`:流式布局。
|
|
46
|
+
- `EXCEL`:表格式布局,也是 CLI 缺省值。
|
|
47
|
+
- 需求未明确且布局选择会影响结果时,建表前向用户确认。
|
|
48
|
+
- 需求提供完整表格、合并单元格、分组标题、标签与字段交替排布时,按布局样表处理,详见 [表单布局规划](guide-form-layout-planning.md)。
|
|
49
|
+
|
|
50
|
+
### 字段定义
|
|
51
|
+
|
|
52
|
+
字段按照需求顺序写入 `fields.json`。主表字段在前,`DetailTable` 明细表放在数组末尾。
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
[
|
|
56
|
+
{"componentKey":"Text","fieldName":"合同名称","required":true,"singleRow":true},
|
|
57
|
+
{"componentKey":"DateRange","fieldName":"合同有效期","format":"yyyy-MM-dd"},
|
|
58
|
+
{"componentKey":"Money","fieldName":"合同金额","precision":2},
|
|
59
|
+
{"componentKey":"Select","fieldName":"合同状态","fieldOptions":[{"name":"草稿"},{"name":"履行中"}]},
|
|
60
|
+
{"componentKey":"Employee","fieldName":"负责人"},
|
|
61
|
+
{"componentKey":"DetailTable","fieldName":"付款明细","formFields":[
|
|
62
|
+
{"componentKey":"Date","fieldName":"付款日期"},
|
|
63
|
+
{"componentKey":"Number","fieldName":"付款金额","precision":2}
|
|
64
|
+
]}
|
|
65
|
+
]
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
常用字段类型包括文本、数字、选项、日期、组织、关联、行政区域和其他类型。完整类型、关联码表及各类型属性见 [表单字段定义参考](ref-form-fields.md);明细表通过表单结构配置创建。
|
|
69
|
+
|
|
70
|
+
## 常用字段属性
|
|
71
|
+
|
|
72
|
+
| 属性 | 作用 |
|
|
73
|
+
|---|---|
|
|
74
|
+
| `required:true` | 字段必填 |
|
|
75
|
+
| `readOnly:true` | 禁止手工编辑 |
|
|
76
|
+
| `hidden:true` | 布局中隐藏,字段仍可参与计算 |
|
|
77
|
+
| `singleRow:true` | 独占一行 |
|
|
78
|
+
| `group:"基本信息"` | 放入指定字段分组 |
|
|
79
|
+
| `multiple:true` | 支持多选的字段设置为多选 |
|
|
80
|
+
| `maxLen:500` | 文本最大长度 |
|
|
81
|
+
| `precision:2` | 数字或金额小数位 |
|
|
82
|
+
| `defaultValue` | 字段默认值 |
|
|
83
|
+
|
|
84
|
+
### 字段分组
|
|
85
|
+
|
|
86
|
+
以需求为准:只有需求明确要求字段分组时,才在 `fields.json` 中设置 `group`;需求未要求时保持不分组。
|
|
87
|
+
|
|
88
|
+
```json
|
|
89
|
+
[
|
|
90
|
+
{"componentKey":"Text","fieldName":"项目名称","group":"基本信息","required":true},
|
|
91
|
+
{"componentKey":"Employee","fieldName":"负责人","group":"基本信息"},
|
|
92
|
+
{"componentKey":"Number","fieldName":"项目金额","group":"财务信息","precision":2}
|
|
93
|
+
]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
同名 `group` 的字段进入同一个分组。分组内字段按字段顺序排列,需要整行展示的字段增加 `singleRow:true`。已有表单补充分组时使用:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
e10-cli form group <objId> <appId> --groups '{"基本信息":["项目名称","负责人"]}'
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 日期区间
|
|
103
|
+
|
|
104
|
+
字段本身包含开始与结束含义,如“项目周期、合同有效期、请假时间、活动时间”,优先使用 `DateRange`。明确要求两个独立字段,或开始、结束需要分别参与公式和联动时,再拆成两个日期字段。
|
|
105
|
+
|
|
106
|
+
```json
|
|
107
|
+
{"componentKey":"DateRange","fieldName":"项目周期","format":"yyyy-MM-dd"}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 选项和多选
|
|
111
|
+
|
|
112
|
+
```json
|
|
113
|
+
{"componentKey":"Select","fieldName":"状态","fieldOptions":[{"name":"启用"},{"name":"停用"}]},
|
|
114
|
+
{"componentKey":"Employee","fieldName":"项目成员","multiple":true}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
`Select`、`RadioBox`、`CheckBox` 可在 `fieldOptions` 中定义选项。人员、部门、EBuilder、Browser 和 Select 等支持按字段能力设置多选。共享选项可使用 `optionTemplate`;详细结构见 [表单字段定义参考](ref-form-fields.md)。
|
|
118
|
+
|
|
119
|
+
### 关联字段
|
|
120
|
+
|
|
121
|
+
EBuilder 关联字段在创建时指定目标表单 `objId` 和显示字段:
|
|
122
|
+
|
|
123
|
+
```json
|
|
124
|
+
{
|
|
125
|
+
"componentKey":"EBuilder",
|
|
126
|
+
"fieldName":"关联客户",
|
|
127
|
+
"sformId":"<目标表单objId>",
|
|
128
|
+
"dataTitle":"客户名称",
|
|
129
|
+
"displayColumns":["客户名称","客户类型"]
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
`Flow` 的 `sformId` 同样指向目标流程绑定的表单 `objId`。原生关联对象和通用浏览类型的配置码表见 [表单字段定义参考](ref-form-fields.md);关联数据过滤和范围分别见 [EBuilder 过滤](guide-ebuilder-filter.md) 与 [关联浏览数据范围](guide-ebuilder-scope.md)。
|
|
134
|
+
|
|
135
|
+
### 明细表与二级明细
|
|
136
|
+
|
|
137
|
+
明细字段写入 `DetailTable.formFields`。二级明细关系配置在父明细表上,父明细每一行分别拥有对应的子明细数据:
|
|
138
|
+
|
|
139
|
+
```json
|
|
140
|
+
[
|
|
141
|
+
{"componentKey":"DetailTable","fieldName":"任务明细","enableSubDetail":true,
|
|
142
|
+
"subDetailConfig":[{"subForm":"工时明细","subField":"父任务标识"}],"formFields":[
|
|
143
|
+
{"componentKey":"Text","fieldName":"任务名称"}
|
|
144
|
+
]},
|
|
145
|
+
{"componentKey":"DetailTable","fieldName":"工时明细","formFields":[
|
|
146
|
+
{"componentKey":"Text","fieldName":"父任务标识"},
|
|
147
|
+
{"componentKey":"Number","fieldName":"工时","precision":2}
|
|
148
|
+
]}
|
|
149
|
+
]
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
父级行标识缺省使用行 ID;子级行标识必须为单行文本。多父级复用、多子级和多级嵌套的规则,以及已有表单的查询、增加、删除、启停命令见 [二级明细表配置](guide-form-sub-detail.md)。
|
|
153
|
+
|
|
154
|
+
### 表单结构与布局组件
|
|
155
|
+
|
|
156
|
+
主表字段直接写在 `fields.json` 根数组中;明细表使用 `DetailTable` 配置,并通过 `formFields` 维护其字段。主表与明细表字段采用相同的字段类型和属性规则。
|
|
157
|
+
|
|
158
|
+
布局初始化会根据表单结构生成相应的内部组件:
|
|
159
|
+
|
|
160
|
+
| 组件 | 在创建流程中的作用 |
|
|
161
|
+
| --- | --- |
|
|
162
|
+
| `DetailTable` | 定义明细表及其字段 |
|
|
163
|
+
| `DataTable` | 在布局中承载和展示明细表 |
|
|
164
|
+
| `Fold` | 承载字段分组和折叠区域 |
|
|
165
|
+
| `Placeholder` | 维护布局中的占位位置 |
|
|
166
|
+
| `EbuilderAppTag` | 维护 EB 应用相关的布局标签 |
|
|
167
|
+
|
|
168
|
+
业务字段从字段类型码表中选择;以上结构与内部组件由明细表、分组和布局配置生成与维护。
|
|
169
|
+
|
|
170
|
+
### 字段公式
|
|
171
|
+
|
|
172
|
+
可在目标字段中写 `formula`,由创建流程完成公式创建和字段绑定:
|
|
173
|
+
|
|
174
|
+
```json
|
|
175
|
+
{"componentKey":"Number","fieldName":"项目收益","formula":"{主表.已收款}-{主表.项目费用}"}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
公式表达式、明细汇总和函数格式见 [字段公式函数参考](guide-form-formula-functions.md)。复杂编号属于建后配置,见 [表单复杂编号](guide-form-serial-mark.md)。
|
|
179
|
+
|
|
180
|
+
## 执行创建
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
e10-cli form create <appId> "采购合同" --fields @fields.json --layout EXCEL
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
创建流程会依次完成表单主体、字段和明细、布局初始化、字段高级属性、关联关系、选项、公式、分组、基础查看权限及默认台账配置。传入 `--menu` 时同时添加台账菜单入口。
|
|
187
|
+
|
|
188
|
+
记录命令返回的:
|
|
189
|
+
|
|
190
|
+
- `objId`:EB 表单业务对象 ID,多数 `form` 命令使用它。
|
|
191
|
+
- `formId`:底层表单 ID,布局和部分底层接口使用它。
|
|
192
|
+
- `listId`:默认台账 ID,通过 `form list-view` 查询。
|
|
193
|
+
|
|
194
|
+
## 建成后配置
|
|
195
|
+
|
|
196
|
+
按需求执行,未提出的配置不额外增加:
|
|
197
|
+
|
|
198
|
+
| 需求 | 命令或指南 |
|
|
199
|
+
|---|---|
|
|
200
|
+
| 字段中英文名称 | `form field-lang set` |
|
|
201
|
+
| 字段显隐、只读、必填联动 | [表单联动](guide-form-linkage.md) |
|
|
202
|
+
| 字段查重 | `form validate` |
|
|
203
|
+
| 表单和数据权限 | `form permission` |
|
|
204
|
+
| 默认台账改名、列、筛选和分组 | [表单视图](guide-form-view.md) |
|
|
205
|
+
| 表单及视图按钮 | [表单按钮](guide-form-button.md) |
|
|
206
|
+
| 关联页签 | [表单关联页签](guide-form-association.md) |
|
|
207
|
+
| 复杂编号 | [表单复杂编号](guide-form-serial-mark.md) |
|
|
208
|
+
|
|
209
|
+
需求写成 `中文/English`(如 `项目/project`)时,先以中文名称创建字段,再设置多语言:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
e10-cli form field-lang set <objId> <appId> <fieldId> --zh "项目" --en "project"
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## 完成核对
|
|
216
|
+
|
|
217
|
+
使用与本次需求直接相关的读取命令核对即可:
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
e10-cli form read <objId> --app-id <appId> --out fields-created.json
|
|
221
|
+
e10-cli form list-view <objId> <appId>
|
|
222
|
+
e10-cli form layout read <objId> <appId>
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
重点确认字段数量与类型、明细结构、分组和显示属性、布局类型、默认台账名称与 `listId`。需要菜单时再确认菜单入口。
|
|
226
|
+
|
|
227
|
+
## 专题参考
|
|
228
|
+
|
|
229
|
+
- [表单字段定义参考](ref-form-fields.md):完整字段类型、属性、关联类型和 JSON 结构。
|
|
230
|
+
- [表单布局规划](guide-form-layout-planning.md):FLOW/EXCEL、布局样表、布局蓝图及建后调整。
|
|
231
|
+
- [表单复杂编号](guide-form-serial-mark.md):编号段、流水和代字配置。
|
|
232
|
+
- [字段公式函数参考](guide-form-formula-functions.md):公式表达式和函数。
|
|
233
|
+
- [表单视图](guide-form-view.md):默认台账、视图名称和列表配置。
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
# 字段函数公式大全(平台 funcList)
|
|
2
2
|
|
|
3
3
|
> 来源:平台公式函数目录,共 **219 个函数**,11 类。写 `fields.json` 的 `formula` 或 `form formula set --expression` 时查这里。
|
|
4
|
-
> 引用字段语法:`{主表.字段名}`;**日期差用 `DAYS(开始,结束)`**(相减不生效)。
|
|
4
|
+
> 引用字段语法:`{主表.字段名}` / `{明细表名.字段名}`;**日期差用 `DAYS(开始,结束)`**(相减不生效)。
|
|
5
|
+
>
|
|
6
|
+
> **两种写法都收**:设计器的公式编辑器里显示和输入的是方括号 `[字段名]`,平台存储的是花括号
|
|
7
|
+
> `{主表.字段名}`。CLI 两者都认,**从编辑器里复制原文直接传即可**,会先归一化成花括号再下发。
|
|
8
|
+
> 不必自己把 `[通知]` 改写成 `{主表.通知}`。
|
|
9
|
+
>
|
|
10
|
+
> ⚠️ 注意区分:**函数签名里的 `[...]` 表示「可选参数」**(如 `CONCAT(文本1, 文本2, [文本3, …])`),
|
|
11
|
+
> 而表达式里写在字段位置上的 `[字段名]` 才是字段引用。别把签名里的方括号当成引用照抄。
|
|
12
|
+
>
|
|
13
|
+
> 返回类型不填时按目标字段类型推断(数字/金额→Number,日期/时间→Date,其余→String)。
|
|
14
|
+
> **纯常量公式**(不含任何字段引用)平台允许,会带一条提示正常保存。
|
|
5
15
|
> 完整原始数据含参数说明/示例结果:`senba6/公式表.json`。
|
|
6
16
|
|
|
7
17
|
## 函数速查矩阵
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# 二级明细表配置
|
|
2
|
+
|
|
3
|
+
二级明细表配置在父明细表上。父明细的每一行分别拥有一组子明细数据;新增子明细数据时,平台把对应父行的行标识自动写入子级行标识字段,用于维持归属关系。
|
|
4
|
+
|
|
5
|
+
## 结构规则
|
|
6
|
+
|
|
7
|
+
- 一个父明细可以关联多个子明细。
|
|
8
|
+
- 同一个子明细可以被多个父明细复用。
|
|
9
|
+
- 明细关系可以继续向下嵌套,例如 A → B → C。
|
|
10
|
+
- 当前明细不能选择自身、直属父级或任一祖先作为子明细。通过候选列表选择目标即可。
|
|
11
|
+
- 调换父子方向时,先删除原关系,再重新查询新父明细的候选列表并建立反向关系。例如将 `A → B` 改为 `B → A`,依次执行:删除 `A → B`、查询 B 的候选列表、新增 `B → A`。
|
|
12
|
+
- 父级行标识支持行 ID、单行文本 `Text`、单选框 `RadioBox`、下拉单选框 `Select`,没有明确要求时使用行 ID。
|
|
13
|
+
- 子级行标识必须使用单行文本 `Text`。
|
|
14
|
+
|
|
15
|
+
## 创建时配置
|
|
16
|
+
|
|
17
|
+
先定义全部明细表,再把 `enableSubDetail` 和 `subDetailConfig` 写在父明细表上:
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
[
|
|
21
|
+
{
|
|
22
|
+
"componentKey": "DetailTable",
|
|
23
|
+
"fieldName": "任务明细",
|
|
24
|
+
"enableSubDetail": true,
|
|
25
|
+
"defaultExpandRow": true,
|
|
26
|
+
"subDetailConfig": [
|
|
27
|
+
{"subForm": "工时明细", "subField": "父任务标识"}
|
|
28
|
+
],
|
|
29
|
+
"formFields": [
|
|
30
|
+
{"componentKey": "Text", "fieldName": "任务名称"}
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"componentKey": "DetailTable",
|
|
35
|
+
"fieldName": "工时明细",
|
|
36
|
+
"formFields": [
|
|
37
|
+
{"componentKey": "Text", "fieldName": "父任务标识"},
|
|
38
|
+
{"componentKey": "Number", "fieldName": "工时", "precision": 2}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
缺省父级行标识为 `rowId`。需要使用父明细字段时,在关系中增加 `parentField`,可传字段名或字段 ID:
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{"subForm":"工时明细","subField":"父任务标识","parentField":"任务编码"}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## 已有表单维护
|
|
51
|
+
|
|
52
|
+
先查询父明细当前可选的子明细,再配置关系:
|
|
53
|
+
|
|
54
|
+
```shell
|
|
55
|
+
e10-cli form detail-table sub-detail candidates <objId> <appId> <父明细>
|
|
56
|
+
e10-cli form detail-table sub-detail add <objId> <appId> <父明细> --target <子明细> --target-field <子级文本标识>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
常用命令:
|
|
60
|
+
|
|
61
|
+
| 操作 | 命令 |
|
|
62
|
+
| --- | --- |
|
|
63
|
+
| 查询全部明细表 | `form detail-table list <objId> <appId>` |
|
|
64
|
+
| 查询某父明细当前配置 | `form detail-table read <objId> <appId> <父明细>` |
|
|
65
|
+
| 查询可选子明细 | `form detail-table sub-detail candidates <objId> <appId> <父明细>` |
|
|
66
|
+
| 增加或更新一条关系 | `form detail-table sub-detail add ... --target <子明细> --target-field <子级标识> [--parent-field <父级标识>]` |
|
|
67
|
+
| 完整替换关系 | `form detail-table sub-detail set ... --target <子明细> --target-field <子级标识> [--parent-field <父级标识>]` |
|
|
68
|
+
| 删除一条关系 | `form detail-table sub-detail remove ... --target <子明细>` |
|
|
69
|
+
| 启用或停用 | `form detail-table sub-detail enable\|disable ...` |
|
|
70
|
+
| 清空全部关系 | `form detail-table sub-detail clear ...` |
|
|
71
|
+
|
|
72
|
+
`add` 保留父明细已有的其他子明细关系;`set` 完整替换父明细的关系配置。删除最后一条关系后,二级明细功能随之关闭。`disable` 仅停用并保留关系,后续可用 `enable` 恢复。
|
|
73
|
+
|
|
74
|
+
## 执行顺序
|
|
75
|
+
|
|
76
|
+
1. 创建父、子明细表及字段。
|
|
77
|
+
2. 确认子明细存在可用的 `Text` 行标识字段。
|
|
78
|
+
3. 使用 `candidates` 查询当前父明细可选目标。
|
|
79
|
+
4. 使用 `add` 或 `set` 保存关系;未指定父级字段时使用 `rowId`。
|
|
80
|
+
5. 使用 `read` 回读父明细的 `enableSubDetail`、`defaultExpandRow` 和 `subDetailConfig`。
|
|
81
|
+
|
|
82
|
+
关系方向发生变化时,先对原父明细执行 `remove`,再按第 3~5 步以新的父明细重新配置。
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# 列表自定义文本列
|
|
2
|
+
|
|
3
|
+
表单的列表式视图(台账)里,列除了直接绑表单字段,还能加一列**自定义文本**:内容是一段富文本,
|
|
4
|
+
可以写固定文字、插图,也能在文字中间**插入表单字段**(「合计:〔金额〕元」这种说明性排版)。
|
|
5
|
+
|
|
6
|
+
命令是 `form nlist apply`:模板里**不给 `fieldId`、改给 `html`** 的列项,就是自定义文本列。
|
|
7
|
+
|
|
8
|
+
```json
|
|
9
|
+
[
|
|
10
|
+
[
|
|
11
|
+
{"fieldId": "1317534123603582976", "text": "金额", "width": 1},
|
|
12
|
+
{"html": "<p>合计:{{金额}} 元</p>", "text": "合计", "width": 1}
|
|
13
|
+
]
|
|
14
|
+
]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
e10-cli form nlist apply <objId> <appId> <listId> @template.json
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 在自定义文本里插入表单字段
|
|
22
|
+
|
|
23
|
+
写 `{{字段名}}` 或 `{{fieldId}}`,CLI 查表单元数据后展开成平台的字段引用标记。
|
|
24
|
+
|
|
25
|
+
上面那段 `html` 存进去的是:
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<p>合计:<span contenteditable="false" data-type="list" data-val="{objId.fieldId}">{表名.字段名}</span> 元</p>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
规则:
|
|
32
|
+
|
|
33
|
+
- 同一字段写几次就展开几份 —— 平台按**出现位置**逐个记引用,不去重。
|
|
34
|
+
- 字段显示名在表单内重复时报错,改用 `fieldId`。
|
|
35
|
+
- 字段不存在 → 报错并中止,不会把半截 HTML 写进视图。
|
|
36
|
+
|
|
37
|
+
## 直接写字段引用标记
|
|
38
|
+
|
|
39
|
+
已经拿到平台原样标记时,也可以把它整段写进 `html`。CLI 会校验 `data-val` 里的 fieldId 在这张
|
|
40
|
+
表单里是否存在,查不到只**告警**(平台对这种引用不报错,只是静默显示不出值,所以提醒一声)。
|
|
41
|
+
|
|
42
|
+
标记的形状固定为 `<span contenteditable="false" data-type="list" data-val="{objId.fieldId}">{表名.字段名}</span>`:
|
|
43
|
+
**身份在 `data-val` 里的 `objId.fieldId`**,span 里的 `{表名.字段名}` 只是占位文本。
|
|
44
|
+
|
|
45
|
+
## 其它
|
|
46
|
+
|
|
47
|
+
- 列显示名用模板项的 `text`,缺省「自定义文本」。
|
|
48
|
+
- 富文本的配色、字号、背景直接写在内联 `style` 里,与设计器编辑器一致,例如
|
|
49
|
+
`<span style="background-color:#27ae60">应收</span>`。
|
|
50
|
+
- `form nlist apply` 按模板整体重建显示列与排布,PC 与移动端两个槽位一并写入;
|
|
51
|
+
当前配置用 `form nlist show <objId> <appId> <listId>` 查看。
|
|
52
|
+
- ⚠ 只对列表式(NList)生效,表格式台账用 `form table-view`。
|