weaver-e10-builder 1.5.12 → 1.5.13
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/dist/commands/designer-common.d.ts.map +1 -1
- package/dist/commands/designer-common.js +91 -0
- package/dist/commands/designer-common.js.map +1 -1
- package/dist/commands/form-add-detail-table.d.ts.map +1 -1
- package/dist/commands/form-add-detail-table.js +97 -1
- package/dist/commands/form-add-detail-table.js.map +1 -1
- package/dist/commands/form-formula.d.ts.map +1 -1
- package/dist/commands/form-formula.js +21 -4
- package/dist/commands/form-formula.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +333 -25
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +18 -4
- package/dist/commands/workflow.js.map +1 -1
- package/dist/services/actionflow/context_preflight.d.ts +5 -0
- package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
- package/dist/services/actionflow/context_preflight.js +88 -34
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/filter_rules.d.ts.map +1 -1
- package/dist/services/actionflow/filter_rules.js +9 -8
- package/dist/services/actionflow/filter_rules.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +2 -1
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +34 -15
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +3 -3
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +25 -13
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/form-linkage-condition.d.ts +15 -0
- package/dist/services/form-linkage-condition.d.ts.map +1 -1
- package/dist/services/form-linkage-condition.js +19 -10
- package/dist/services/form-linkage-condition.js.map +1 -1
- package/dist/services/form-sub-detail.d.ts +25 -0
- package/dist/services/form-sub-detail.d.ts.map +1 -1
- package/dist/services/form-sub-detail.js +64 -0
- package/dist/services/form-sub-detail.js.map +1 -1
- package/dist/services/workflow-operator.d.ts +12 -5
- package/dist/services/workflow-operator.d.ts.map +1 -1
- package/dist/services/workflow-operator.js +41 -16
- package/dist/services/workflow-operator.js.map +1 -1
- package/package.json +1 -1
- package/skill-docs/SKILL.md +37 -173
- package/skill-docs/_catalog.md +3 -1
- package/skill-docs/references/coding/guide-page-code.md +2 -0
- package/skill-docs/references/coding/ref-compile-rules.md +2 -0
- package/skill-docs/references/common/capability-boundaries.md +15 -0
- package/skill-docs/references/common/guide-install.md +44 -0
- package/skill-docs/references/common/guide-plan-template.md +167 -167
- package/skill-docs/references/common/map.md +9 -0
- package/skill-docs/references/common/ref-cli-commands.md +650 -648
- package/skill-docs/references/form/guide-field-linkage.md +56 -14
- package/skill-docs/references/form/guide-form-formula-functions.md +354 -343
- package/skill-docs/references/form/guide-form-linkage.md +56 -66
- package/skill-docs/references/workflow/guide-workflow.md +1 -1
|
@@ -1,16 +1,26 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 显示属性联动指南
|
|
2
2
|
|
|
3
3
|
## 概述
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
显示属性联动根据字段值或布尔公式的结果,改变字段、选项或明细表组件的显示与读写属性。它适合在同一布局中按业务条件动态切换;不同流程节点无条件地采用不同布局或固定权限时,仍使用节点布局或节点字段权限。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
条件不满足时,目标恢复到布局中的默认读写属性。不同规则同时命中同一字段时,平台优先级为:隐藏 > 只读 > 必填 > 编辑;同一触发字段或目标字段尽量避免落入多条相互冲突的规则。
|
|
8
|
+
|
|
9
|
+
## 规则生命周期
|
|
8
10
|
|
|
9
11
|
```bash
|
|
10
|
-
e10-cli form linkage add <appId> <objId>
|
|
12
|
+
e10-cli form linkage add <appId> <objId> <名称> --config @rule.json [--disabled]
|
|
13
|
+
e10-cli form linkage list <appId> <objId> [--keyword <名称>]
|
|
14
|
+
e10-cli form linkage get <appId> <objId> <规则ID> --json
|
|
15
|
+
e10-cli form linkage layout-targets <appId> <objId>
|
|
16
|
+
e10-cli form linkage state <appId> <objId> <规则ID> --set on|off
|
|
17
|
+
e10-cli form linkage update <appId> <objId> <规则ID> [--name <新名称>] [--config @patch.json]
|
|
18
|
+
e10-cli form linkage delete <appId> <objId> <规则ID>
|
|
11
19
|
```
|
|
12
20
|
|
|
13
|
-
|
|
21
|
+
规则名最长 200 字。新增默认启用,`--disabled` 可新建为停用;启停独立保存并读回。更新先读详情,只替换 `--name` 或配置中明确提供的 `conditions`、`detailType`、`effect`、`actions`、公式;未提供的部分保持原样。`actions` 是整组替换,修改前先用 `get --json` 核对现有目标。删除时按当前表单核对规则归属,再删除并回读确认。
|
|
22
|
+
|
|
23
|
+
## 配置结构
|
|
14
24
|
|
|
15
25
|
```json
|
|
16
26
|
{
|
|
@@ -23,6 +33,7 @@ e10-cli form linkage add <appId> <objId> <name> --config @<json文件>
|
|
|
23
33
|
],
|
|
24
34
|
"actions": [
|
|
25
35
|
{
|
|
36
|
+
"linkageObj": "field",
|
|
26
37
|
"prop": "hide",
|
|
27
38
|
"fields": [
|
|
28
39
|
{
|
|
@@ -62,9 +73,9 @@ e10-cli form linkage add <appId> <objId> <name> --config @<json文件>
|
|
|
62
73
|
|
|
63
74
|
**怎么认出明细字段**:`form read` 的输出里,明细字段会标注所属明细表 —— 带 `明细表: xxx` 那些就是,照它填 `isDetail: true`。
|
|
64
75
|
|
|
65
|
-
### conditions
|
|
76
|
+
### 简易条件 `conditions`
|
|
66
77
|
|
|
67
|
-
|
|
78
|
+
多个条件用顶层 `detailType: "AND" | "OR"` 指定全部满足或任一满足;未指定时由平台采用默认值。
|
|
68
79
|
|
|
69
80
|
| 字段 | 说明 |
|
|
70
81
|
|------|------|
|
|
@@ -72,6 +83,8 @@ e10-cli form linkage add <appId> <objId> <name> --config @<json文件>
|
|
|
72
83
|
| operator | 比较符,见下表 |
|
|
73
84
|
| value | 普通字段的比较值(文本/数字)。**「为空 / 不为空」不要给** |
|
|
74
85
|
| options | Select/RadioBox 字段的选项,格式:`[{"optionId": "选项ID", "content": "选项名"}]` |
|
|
86
|
+
| sourceFieldId | 以另一个表单字段的值作右值,走 `VARIABLE`,与常量值二选一 |
|
|
87
|
+
| sourceContent | 人员、日期等结构化常量对象,直接编码为平台 `sourceContent`;与 `value/options` 二选一 |
|
|
75
88
|
|
|
76
89
|
比较符:
|
|
77
90
|
|
|
@@ -85,6 +98,8 @@ e10-cli form linkage add <appId> <objId> <name> --config @<json文件>
|
|
|
85
98
|
|
|
86
99
|
**「为空」的算子写错,报错会指向完全无关的地方。** 平台不认 `EMPTY` 这类写法时不会说「算子不合法」,而是在写库时抛一句 `mybatis PersistenceException / Error updating database` —— 容易让人误判成字段配置问题(真实发生过:被当成「目标字段 `dataKey` 为空导致 NOT NULL」去查,而 `dataKey` 留空本身是没问题的)。用 `NULL` / `NOT_NULL`,或者写 `EMPTY` 交给命令归一。
|
|
87
100
|
|
|
101
|
+
触发字段可以是主表或明细表字段,也可包含平台返回的系统字段 ID。主表触发控制明细字段时,目标整列变化;明细字段触发本表同一行的目标字段时,按行变化。明细字段触发主表或其他明细表目标时,任意一行满足即可触发。复杂值类型先从现有字段和选项读回真实 ID,不猜测。
|
|
102
|
+
|
|
88
103
|
### 多个条件之间:任一 / 全部
|
|
89
104
|
|
|
90
105
|
界面上的「满足以下**任一**条件」= `OR`,「满足以下**全部**条件」= `AND`。在 config 顶层写 `detailType`:
|
|
@@ -95,6 +110,10 @@ e10-cli form linkage add <appId> <objId> <name> --config @<json文件>
|
|
|
95
110
|
|
|
96
111
|
**不写这个键时由平台取自己的默认值** —— 设计器每次都显式发,所以缺省行为没有依据,命令不替平台决定。多条件时建议明确写。
|
|
97
112
|
|
|
113
|
+
### 布尔函数条件
|
|
114
|
+
|
|
115
|
+
与 `conditions` 二选一。编写前用 `e10-cli form formula functions --scene form-view-linkage` 查询该场景可选函数;例如不为空用 `NOT(ISEMPTY(...))`。可在配置中写 `"formula":"{主表.任务编号}==1111"` 并可选写 `formulaName`,CLI 解析字段引用,按 `Boolean` 返回类型保存公式,再把返回的公式 ID 绑定到显示属性联动。也可传已有公式的 `formulaId` 和 `formulaName`。公式保存若要求平台二次验证,命令会明确报错并停止,不会把未保存的公式当成成功;公式已保存而联动保存失败时应先核对公式 ID,避免重复创建。
|
|
116
|
+
|
|
98
117
|
## 生效维度(生效范围)
|
|
99
118
|
|
|
100
119
|
联动可以只对**某一种展示形态**生效。在 config 里用 `effect` 指定:
|
|
@@ -136,13 +155,35 @@ e10-cli wf-form linkage <formId> "规则名" --workflow-id <流程ID> --config @
|
|
|
136
155
|
| 属性 | prop 值 | 效果 |
|
|
137
156
|
|------|---------|------|
|
|
138
157
|
| 隐藏 | `hide` | 字段隐藏不可见 |
|
|
139
|
-
| 隐藏行 | `hideLine` |
|
|
158
|
+
| 隐藏行 | `hideLine` | 字段所在行整行隐藏(表格式布局;流式布局效果与隐藏相同;`hideRow` 兼容旧写法) |
|
|
140
159
|
| 显示(只读) | `show` | 字段显示但不可编辑 |
|
|
141
160
|
| 编辑 | `edit` | 字段显示且可编辑 |
|
|
142
161
|
| 只读 | `readonly` | 字段显示且不可编辑(同 show) |
|
|
143
162
|
| 必填 | `required` | 字段显示且必填(条件满足时必填) |
|
|
144
163
|
|
|
145
|
-
|
|
164
|
+
对象类型写在每个 action 的 `linkageObj`:
|
|
165
|
+
|
|
166
|
+
| 对象 | 写法与允许效果 |
|
|
167
|
+
|---|---|
|
|
168
|
+
| 字段 `field`(缺省) | `fields[]` 指目标字段;hide/show/edit/readonly/required/hideLine。明细目标加 `isDetail:true` |
|
|
169
|
+
| 选项 `option` | `fields[]` 指选项所属字段,`options[]` 逐项给 `fieldId/optionId/optionName`;hide/disabled |
|
|
170
|
+
| 明细表组件 `detail` | `fields[]` 指明细表组件 ID、名称与类型;hide/show/edit/readonly/hideLine |
|
|
171
|
+
| 布局组件 `layout` | `fields[]` 指布局组件 ID,CLI 从 `layout-targets` 查询并补全完整组件对象;hide/show/hideLine |
|
|
172
|
+
|
|
173
|
+
一条规则可含多个不同对象的 action。选项型对象包含单选框、复选框、下拉单选/多选、图片单选/多选;按平台的真实选项 ID 配置。布局组件以 `layout-targets` 实际返回的可选列表为准;当前抓包已确认折叠分组 `Fold` 的保存结构,其他类型是否可选取决于当前表单布局和平台返回值。
|
|
174
|
+
|
|
175
|
+
布局组件示例:先执行 `form linkage layout-targets <appId> <objId>` 取得分组的 `id`,再在配置中写:
|
|
176
|
+
|
|
177
|
+
```json
|
|
178
|
+
{
|
|
179
|
+
"conditions": [{"fieldId":"updater","operator":"EQUAL","sourceContent":{"valueType":"LIST","optionValues":[{"valueType":"TEXT","textValue":"员工ID","name":"员工名"}]}}],
|
|
180
|
+
"actions": [{"linkageObj":"layout","prop":"hideLine","fields":[{"id":"布局组件ID"}]}]
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
CLI 会根据 `id` 读取可选目标并使用平台返回的完整对象保存;不在可选列表中的组件会被拒绝。`hideLine` 在表格式布局隐藏所在行,流式布局与隐藏效果一致。
|
|
185
|
+
|
|
186
|
+
**优先级**:`hide` > `readonly` > `required` > `edit`
|
|
146
187
|
|
|
147
188
|
多个联动规则同时满足时,优先级高的生效。
|
|
148
189
|
|
|
@@ -182,7 +223,7 @@ e10-cli wf-form linkage <formId> "规则名" --workflow-id <流程ID> --config @
|
|
|
182
223
|
"conditions": [
|
|
183
224
|
{
|
|
184
225
|
"fieldId": "金额字段ID",
|
|
185
|
-
"operator": "
|
|
226
|
+
"operator": "GREATER",
|
|
186
227
|
"value": "10000"
|
|
187
228
|
}
|
|
188
229
|
],
|
|
@@ -204,66 +245,15 @@ e10-cli wf-form linkage <formId> "规则名" --workflow-id <流程ID> --config @
|
|
|
204
245
|
|
|
205
246
|
## 注意事项
|
|
206
247
|
|
|
207
|
-
1. **主表 vs
|
|
248
|
+
1. **主表 vs 明细表**:主表触发字段可修改主表或明细字段(明细目标按整列变化);明细表触发本表同一行字段时按行变化,触发主表或其他明细表目标时任意一行满足即可触发。
|
|
208
249
|
目标落在明细表里时,`actions[].fields[]` 那个条目**必须带 `isDetail: true`**;不带的话这个目标会被当作主表字段提交
|
|
209
|
-
2.
|
|
210
|
-
3.
|
|
211
|
-
4.
|
|
250
|
+
2. **表格布局限制**:通过隐藏行/列/单元格自定义属性隐藏的字段,无法通过联动显示出来;表格式布局中的“隐藏”只隐藏标题与字段组件,不隐藏单元格区域和样式
|
|
251
|
+
3. **明细表字段列隐藏**:需在明细表第一行配置操作按钮元素。明细表本体与表内字段的读写属性独立;即使所有列只读,明细表仍可能允许增删行。默认隐藏的明细字段不能由本行联动重新显示;默认显示的明细字段按行联动隐藏时,列标题仍可显示
|
|
252
|
+
4. **多规则冲突**:避免同一个触发字段或同一个目标字段出现在多个规则里。若规则 A 只看字段 A、规则 B 同时看 A 和 B,B 满足时可能覆盖 A;B 不满足时平台可能回落默认读写属性,而非继续执行规则 A
|
|
212
253
|
5. **默认属性**:字段的默认显示属性为设计器中设置的"读写属性"或"字段权限"
|
|
213
254
|
6. **目标字段 dataKey**:`form read` 不返回它,**留空即可** —— 平台按 `fieldId` 定位,`dataKey` 空着能正常建规则(已对照验证)。填上真值也行,但别为了凑它去猜;它**不是**某些报错的原因。
|
|
214
255
|
7. **Select 选项 ID**:必须用 `form read --app-id` 返回的真实 `valueKey`(自动生成的长 ID,如 `1294601918674214939`),不能用建表单时给的短 `valueKey`(如 `"GQ"` / `"5"`)
|
|
215
256
|
|
|
216
257
|
---
|
|
217
258
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
值带出不是 `linkage add` 的显隐规则,而是**字段级配置**(`ffRelateField`):当 EBuilder 关联字段选中某条记录后,自动将该记录的某个字段值复制到当前字段。例如:选客户→自动带出联系人;选合同→自动带出合同金额。
|
|
221
|
-
|
|
222
|
-
### 创建时配置
|
|
223
|
-
|
|
224
|
-
`form create --fields` 里用 `relateFrom` 定义,CLI 在 create Step 3 自动配置 ffRelateField:
|
|
225
|
-
|
|
226
|
-
```json
|
|
227
|
-
{ "componentKey": "Text", "fieldName": "联系人",
|
|
228
|
-
"relateFrom": { "ebuilderField": "关联客户", "sourceFieldId": "1296220571782152194" } }
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
### 创建后补配
|
|
232
|
-
|
|
233
|
-
```bash
|
|
234
|
-
e10-cli form edit-field <objId> <appId> <fieldId> \
|
|
235
|
-
--relate-from <EBuilder字段名> \
|
|
236
|
-
--relate-from-source <目标表单源字段fieldId>
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
> ⚠️ **`sourceFieldId` 和 `--relate-from-source` 必须传字段的数字 fieldId**(如 `1296220571782152194`),不能传字段名(如"联系人姓名")。用 `form read <objId> --app-id <appId>` 获取字段的 fieldId。
|
|
240
|
-
|
|
241
|
-
- `--relate-from`:本表单中的 EBuilder 关联字段名(如 `"关联客户"`)
|
|
242
|
-
- `--relate-from-source`:关联目标表单中要复制值的字段 fieldId
|
|
243
|
-
|
|
244
|
-
### HRM 值带出(form relate,表内 Employee/Department 源)
|
|
245
|
-
|
|
246
|
-
换表内的**人员字段**或**部门字段**自动填目标字段。源字段是表单里的 Employee/Department 类型,目标字段按 HRM 属性带出值。结构差异:**Employee 源 ffRelateField 带 `module:"hrm"`,Department 源不带**。
|
|
247
|
-
|
|
248
|
-
```bash
|
|
249
|
-
# 换「申请人」(Employee) → 自动填「申请人工号」为邮箱
|
|
250
|
-
e10-cli form relate <appId> <objId> 申请人工号 --from 申请人 --key email
|
|
251
|
-
|
|
252
|
-
# 换「所属部门」(Department) → 自动填「申请人工号」为部门编号
|
|
253
|
-
e10-cli form relate <appId> <objId> 申请人工号 --from 所属部门 --key code
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
参数:
|
|
257
|
-
| 参数 | 说明 |
|
|
258
|
-
|------|------|
|
|
259
|
-
| `<targetField>` | 目标字段(被填充),名称或 fieldId |
|
|
260
|
-
| `--from <field>` | 源字段(触发),必须 Employee 或 Department 类型 |
|
|
261
|
-
| `--key <key>` | 带出属性 key。默认 Employee=`department`、Department=`name`。不传 `--title` 时自动取属性中文名 |
|
|
262
|
-
|
|
263
|
-
`--key` 从平台清单校验(`listBusinessField`),非法 key 会报错并列出可选属性:
|
|
264
|
-
|
|
265
|
-
**Employee 源**(人员属性,部分):`username`姓名 / `email`邮箱 / `superior`上级 / `mobile`手机 / `jobNum`工号 / `hiredate`入职时间 / `department`部门 / `position`岗位 / `grade`职级 / `allSuperiors`所有上级 …
|
|
266
|
-
|
|
267
|
-
**Department 源**(部门属性,全部):`name`部门名称(→Text) / `code`部门编号(→Text) / `parent`上级部门(→Department) / `fullname`部门全称(→Text) / `department.coadjutant`协办人(→RelateBrowser) / `deptEmployee`部门人员(→Employee)
|
|
268
|
-
|
|
269
|
-
> 目标字段类型与属性不匹配时命令只提示警告、不阻止(如 `deptEmployee` 通常只能填 Employee 字段)。
|
|
259
|
+
字段值带出与赋值(`relateFrom`、`form relate`、`form field-linkage`)见 [字段联动指南](guide-field-linkage.md)。
|
|
@@ -139,7 +139,7 @@ e10-cli workflow nodes <workflowId>
|
|
|
139
139
|
```bash
|
|
140
140
|
# 指定人
|
|
141
141
|
e10-cli workflow set-operator <workflowId> <nodeId> 张三
|
|
142
|
-
#
|
|
142
|
+
# 指定角色(名称精确优先;子串命中多个时会列出候选,要求改用完整名称或角色 ID)
|
|
143
143
|
e10-cli workflow set-operator <workflowId> <nodeId> 财务主管 --type role
|
|
144
144
|
# 发起人上级
|
|
145
145
|
e10-cli workflow set-operator <workflowId> <nodeId> --type superior
|