weaver-e10-builder 1.6.11 → 1.6.12
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/form-browser-definition.d.ts.map +1 -1
- package/dist/commands/form-browser-definition.js +108 -7
- package/dist/commands/form-browser-definition.js.map +1 -1
- package/dist/commands/form-browser-scope-rules.d.ts +27 -0
- package/dist/commands/form-browser-scope-rules.d.ts.map +1 -0
- package/dist/commands/form-browser-scope-rules.js +141 -0
- package/dist/commands/form-browser-scope-rules.js.map +1 -0
- package/dist/commands/form-browser-scope-tree.d.ts +14 -0
- package/dist/commands/form-browser-scope-tree.d.ts.map +1 -0
- package/dist/commands/form-browser-scope-tree.js +115 -0
- package/dist/commands/form-browser-scope-tree.js.map +1 -0
- package/dist/commands/matrix-maintainer.d.ts +3 -0
- package/dist/commands/matrix-maintainer.d.ts.map +1 -0
- package/dist/commands/matrix-maintainer.js +117 -0
- package/dist/commands/matrix-maintainer.js.map +1 -0
- package/dist/commands/matrix.d.ts.map +1 -1
- package/dist/commands/matrix.js +2 -0
- package/dist/commands/matrix.js.map +1 -1
- package/dist/commands/report-validate.d.ts.map +1 -1
- package/dist/commands/report-validate.js +36 -0
- package/dist/commands/report-validate.js.map +1 -1
- package/dist/commands/role.d.ts.map +1 -1
- package/dist/commands/role.js +354 -0
- package/dist/commands/role.js.map +1 -1
- package/dist/commands/special.d.ts.map +1 -1
- package/dist/commands/special.js +67 -31
- package/dist/commands/special.js.map +1 -1
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +1 -121
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/commands/workflow-layout-components.d.ts +3 -0
- package/dist/commands/workflow-layout-components.d.ts.map +1 -0
- package/dist/commands/workflow-layout-components.js +36 -0
- package/dist/commands/workflow-layout-components.js.map +1 -0
- package/dist/commands/workflow-node-batch.d.ts +3 -0
- package/dist/commands/workflow-node-batch.d.ts.map +1 -0
- package/dist/commands/workflow-node-batch.js +136 -0
- package/dist/commands/workflow-node-batch.js.map +1 -0
- package/dist/commands/workflow-node-opinion.d.ts +3 -0
- package/dist/commands/workflow-node-opinion.d.ts.map +1 -0
- package/dist/commands/workflow-node-opinion.js +51 -0
- package/dist/commands/workflow-node-opinion.js.map +1 -0
- package/dist/commands/workflow-node-reject.js +1 -1
- package/dist/commands/workflow-node-reject.js.map +1 -1
- package/dist/commands/workflow-node.d.ts.map +1 -1
- package/dist/commands/workflow-node.js +4 -3
- package/dist/commands/workflow-node.js.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/components/send_message.d.ts.map +1 -1
- package/dist/services/actionflow/components/send_message.js +8 -3
- package/dist/services/actionflow/components/send_message.js.map +1 -1
- package/dist/services/actionflow/context_preflight.js +1 -1
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +1 -0
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +107 -31
- 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 +4 -1
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/form-layout-describe.d.ts.map +1 -1
- package/dist/services/form-layout-describe.js +3 -2
- package/dist/services/form-layout-describe.js.map +1 -1
- package/dist/services/form-layout-document.d.ts.map +1 -1
- package/dist/services/form-layout-document.js +2 -1
- package/dist/services/form-layout-document.js.map +1 -1
- package/dist/services/matrix-maintainer.d.ts +27 -0
- package/dist/services/matrix-maintainer.d.ts.map +1 -0
- package/dist/services/matrix-maintainer.js +142 -0
- package/dist/services/matrix-maintainer.js.map +1 -0
- package/dist/services/report/drill.d.ts +74 -0
- package/dist/services/report/drill.d.ts.map +1 -0
- package/dist/services/report/drill.js +259 -0
- package/dist/services/report/drill.js.map +1 -0
- package/dist/services/role-function-permission.d.ts +12 -0
- package/dist/services/role-function-permission.d.ts.map +1 -0
- package/dist/services/role-function-permission.js +46 -0
- package/dist/services/role-function-permission.js.map +1 -0
- package/dist/services/special-layout.d.ts +113 -0
- package/dist/services/special-layout.d.ts.map +1 -0
- package/dist/services/special-layout.js +178 -0
- package/dist/services/special-layout.js.map +1 -0
- package/dist/services/workflow-base-settings.d.ts +1 -10
- package/dist/services/workflow-base-settings.d.ts.map +1 -1
- package/dist/services/workflow-field-permission-route.d.ts +15 -41
- package/dist/services/workflow-field-permission-route.d.ts.map +1 -1
- package/dist/services/workflow-field-permission-route.js +23 -8
- package/dist/services/workflow-field-permission-route.js.map +1 -1
- package/dist/services/workflow-layout-components.d.ts +52 -0
- package/dist/services/workflow-layout-components.d.ts.map +1 -0
- package/dist/services/workflow-layout-components.js +66 -0
- package/dist/services/workflow-layout-components.js.map +1 -0
- package/dist/services/workflow-layout-draft.d.ts +49 -0
- package/dist/services/workflow-layout-draft.d.ts.map +1 -0
- package/dist/services/workflow-layout-draft.js +98 -0
- package/dist/services/workflow-layout-draft.js.map +1 -0
- package/dist/services/workflow-node-batch-spec.d.ts +122 -0
- package/dist/services/workflow-node-batch-spec.d.ts.map +1 -0
- package/dist/services/workflow-node-batch-spec.js +496 -0
- package/dist/services/workflow-node-batch-spec.js.map +1 -0
- package/dist/services/workflow-node-batch.d.ts +73 -0
- package/dist/services/workflow-node-batch.d.ts.map +1 -0
- package/dist/services/workflow-node-batch.js +328 -0
- package/dist/services/workflow-node-batch.js.map +1 -0
- package/dist/services/workflow-node-opinion-description.d.ts +12 -0
- package/dist/services/workflow-node-opinion-description.d.ts.map +1 -0
- package/dist/services/workflow-node-opinion-description.js +52 -0
- package/dist/services/workflow-node-opinion-description.js.map +1 -0
- package/dist/services/workflow-node-opinion-layout.d.ts +22 -0
- package/dist/services/workflow-node-opinion-layout.d.ts.map +1 -0
- package/dist/services/workflow-node-opinion-layout.js +113 -0
- package/dist/services/workflow-node-opinion-layout.js.map +1 -0
- package/dist/services/workflow-node-opinion-range.d.ts +21 -0
- package/dist/services/workflow-node-opinion-range.d.ts.map +1 -0
- package/dist/services/workflow-node-opinion-range.js +74 -0
- package/dist/services/workflow-node-opinion-range.js.map +1 -0
- package/dist/services/workflow-node-opinion.d.ts +43 -0
- package/dist/services/workflow-node-opinion.d.ts.map +1 -0
- package/dist/services/workflow-node-opinion.js +198 -0
- package/dist/services/workflow-node-opinion.js.map +1 -0
- package/dist/services/workflow-opinion-settings.d.ts +14 -0
- package/dist/services/workflow-opinion-settings.d.ts.map +1 -1
- package/dist/services/workflow-opinion-settings.js +18 -2
- package/dist/services/workflow-opinion-settings.js.map +1 -1
- package/package.json +1 -1
- package/skill-docs/SKILL.md +164 -162
- package/skill-docs/_catalog.md +3 -2
- package/skill-docs/actionflows/references/components/message/SendMessage.md +32 -30
- package/skill-docs/references/common/guide-plan-template.md +4 -1
- package/skill-docs/references/common/map.md +28 -4
- package/skill-docs/references/common/ref-cli-commands.md +14 -4
- package/skill-docs/references/form/guide-browser-definition.md +2 -219
- package/skill-docs/references/form/guide-browser-scope.md +285 -0
- package/skill-docs/references/form/guide-create-form.md +1 -1
- package/skill-docs/references/hrm/guide-matrix.md +276 -245
- package/skill-docs/references/hrm/guide-role.md +77 -0
- package/skill-docs/references/report/drilldown-report-guide.md +17 -1
- package/skill-docs/references/report/event-hreflink-guide.md +2 -0
- package/skill-docs/references/report/query-condition-api-guide.md +29 -0
- package/skill-docs/references/workflow/guide-layout-components.md +26 -0
- package/skill-docs/references/workflow/guide-node-opinion.md +58 -0
- package/skill-docs/references/workflow/guide-workflow.md +43 -0
- package/skill-docs/references/form/guide-ebuilder-scope.md +0 -82
|
@@ -1,245 +1,276 @@
|
|
|
1
|
-
# HRM 矩阵指南(条件矩阵 / 部门矩阵 / 分部矩阵)
|
|
2
|
-
|
|
3
|
-
> 矩阵 = 「条件维度(行)→ 值维度(列)」的映射查询表。例如:部门 + 费用类型 → 审批人。用于流程中的矩阵对应操作者类型。
|
|
4
|
-
|
|
5
|
-
## 命令参考
|
|
6
|
-
|
|
7
|
-
### 矩阵管理
|
|
8
|
-
|
|
9
|
-
| 命令 | 说明 |
|
|
10
|
-
|------|------|
|
|
11
|
-
| `e10-cli matrix create <name>` | 新建矩阵。`--type 0=分部/1=部门/2=自定义` `--desc` `--org-id` |
|
|
12
|
-
| `e10-cli matrix update <id>` | 更新矩阵。`--name` `--desc` `--type` |
|
|
13
|
-
| `e10-cli matrix list` | 查询矩阵列表。`--name` `--enable-status` `--org-id`。非 JSON 输出会标出「行随组织同步 / 行手工维护」「字段只读」 |
|
|
14
|
-
| `e10-cli matrix config <id>` | 查看矩阵配置(条件字段 + 值字段) |
|
|
15
|
-
| `e10-cli matrix config-edit <id>` | 编辑配置。`--value`(配合可选 `--condition`)或 `--config` 一次性提交。**`--condition` 可省略**,省略则沿用现有条件列 |
|
|
16
|
-
| `e10-cli matrix enable <id>` | 启用矩阵 |
|
|
17
|
-
| `e10-cli matrix disable <id>` | 停用矩阵 |
|
|
18
|
-
| `e10-cli matrix delete <ids...>` | 删除矩阵。**矩阵里有数据行时平台会拒绝删除**(报"存在不能删除的矩阵"且不指出是哪个)——先 `matrix data delete <id> <rowIds...>` 清空数据行再删;批量删除时只要有**一条**不可删,整批都失败 |
|
|
19
|
-
|
|
20
|
-
###
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
e10-cli
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
# 3.
|
|
73
|
-
e10-cli matrix
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
[
|
|
235
|
-
{"
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
1
|
+
# HRM 矩阵指南(条件矩阵 / 部门矩阵 / 分部矩阵)
|
|
2
|
+
|
|
3
|
+
> 矩阵 = 「条件维度(行)→ 值维度(列)」的映射查询表。例如:部门 + 费用类型 → 审批人。用于流程中的矩阵对应操作者类型。
|
|
4
|
+
|
|
5
|
+
## 命令参考
|
|
6
|
+
|
|
7
|
+
### 矩阵管理
|
|
8
|
+
|
|
9
|
+
| 命令 | 说明 |
|
|
10
|
+
|------|------|
|
|
11
|
+
| `e10-cli matrix create <name>` | 新建矩阵。`--type 0=分部/1=部门/2=自定义` `--desc` `--org-id` |
|
|
12
|
+
| `e10-cli matrix update <id>` | 更新矩阵。`--name` `--desc` `--type` |
|
|
13
|
+
| `e10-cli matrix list` | 查询矩阵列表。`--name` `--enable-status` `--org-id`。非 JSON 输出会标出「行随组织同步 / 行手工维护」「字段只读」 |
|
|
14
|
+
| `e10-cli matrix config <id>` | 查看矩阵配置(条件字段 + 值字段) |
|
|
15
|
+
| `e10-cli matrix config-edit <id>` | 编辑配置。`--value`(配合可选 `--condition`)或 `--config` 一次性提交。**`--condition` 可省略**,省略则沿用现有条件列 |
|
|
16
|
+
| `e10-cli matrix enable <id>` | 启用矩阵 |
|
|
17
|
+
| `e10-cli matrix disable <id>` | 停用矩阵 |
|
|
18
|
+
| `e10-cli matrix delete <ids...>` | 删除矩阵。**矩阵里有数据行时平台会拒绝删除**(报"存在不能删除的矩阵"且不指出是哪个)——先 `matrix data delete <id> <rowIds...>` 清空数据行再删;批量删除时只要有**一条**不可删,整批都失败 |
|
|
19
|
+
|
|
20
|
+
### 矩阵维护者
|
|
21
|
+
|
|
22
|
+
矩阵维护者与矩阵数据行、流程节点操作者是不同设置。先用 `matrix maintainer options <matrixId>` 读取当前矩阵的维护者类型、权限、可维护条件码表和值列 ID;用 `matrix maintainer list <matrixId>` 查询现有条目,`get <matrixId> <维护者条目ID>` 查看已保存的表单、条件和列。`list/options` 可用 `--out <文件>` 保存完整结果。
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
e10-cli matrix maintainer options <matrixId>
|
|
26
|
+
e10-cli matrix maintainer list <matrixId>
|
|
27
|
+
e10-cli matrix maintainer get <matrixId> <维护者条目ID>
|
|
28
|
+
e10-cli matrix maintainer add <matrixId> @maintainer.json
|
|
29
|
+
e10-cli matrix maintainer update <matrixId> <维护者条目ID> @maintainer.json
|
|
30
|
+
e10-cli matrix maintainer delete <matrixId> <维护者条目ID> [更多条目ID...]
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
`add/update` 的配置是**整条维护者规则**,不是增量补丁。`subjects` 可混合人员 `resource`、部门 `department`、分部 `subcompany`、角色 `role`、群组 `channel`、岗位 `position` 和所有人 `all`;各项使用当前环境的真实 ID,所有人的 ID 为 `0`。命令按组织浏览框回读每个具体对象,找不到就停止,不会用输入 ID 假造展示对象。可选类型仍以 `options` 的实时结果为准;界面码 `user/dept/group` 分别对应配置码 `resource/department/channel`。
|
|
34
|
+
|
|
35
|
+
`type` 取 `data`(数据维护,协议值 `0`)或 `full`(完全控制,协议值 `1`)。数据维护可配置 `permissions` 中的 `add`、`delete`(新建/删除数据行)、`columns` 中的值列 ID,以及 `conditions`。这些限制不适用于完全控制,CLI 会拒绝在 `full` 中混用。**省略数据维护的权限、列或条件,表示该项提交为空**;更新前应先 `get` 并在配置文件中保留需要继续生效的项。
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"subjects": [{"type":"resource","id":"<人员ID>"}, {"type":"role","id":"<角色ID>"}],
|
|
40
|
+
"type": "data",
|
|
41
|
+
"permissions": ["add", "delete"],
|
|
42
|
+
"columns": ["<矩阵值列configId>"],
|
|
43
|
+
"conditions": [{"type":"department","value":"108","ids":["<部门ID>"]}]
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
`conditions[].type/value` 取自当前 `options.conditions[].id/valOptionList[].id`,不要把某个矩阵的码表推广到所有矩阵。带浏览框的条件(如“指定部门/分部”)必须给 `ids`,CLI 会按当前环境回读这些 ID;其他条件不接受 `ids`。`columns` 必须属于该矩阵的值列,不能填条件列 ID。写入后 CLI 会重新读取列表与详情,核对维护者主体、类型、数据权限、条件和列;平台仅返回 HTTP/业务成功不视为验收完成。
|
|
48
|
+
|
|
49
|
+
`delete` 删除的是指定矩阵中的维护者条目,可一次给出多个条目 ID;它不会删除矩阵或矩阵数据行,也不同于数据维护权限中的 `permissions: ["delete"]`。先用 `list` 取得真实条目 ID。CLI 会在提交前确认每个 ID 都属于该矩阵,调用维护者删除接口后再次列出条目,确认目标均消失且非目标条目仍存在。若回读异常,应先查询列表核实实际状态,不要盲目重试。
|
|
50
|
+
|
|
51
|
+
### 矩阵数据维护
|
|
52
|
+
|
|
53
|
+
| 命令 | 说明 |
|
|
54
|
+
|------|------|
|
|
55
|
+
| `e10-cli matrix data list <matrixId>` | 分页查询矩阵数据行。`--condition` `--value` 过滤 |
|
|
56
|
+
| `e10-cli matrix data save <matrixId> --rows @file` | 保存数据行(新增/修改)。简写: `[{rowId?, "字段configId":["实体ID"]}]` —— 带 `rowId` 为改该行,不带为新增 |
|
|
57
|
+
| `e10-cli matrix data delete <matrixId> <ids...>` | 删除数据行 |
|
|
58
|
+
| `e10-cli matrix data template <matrixId>` | 下载导入模板(Excel) |
|
|
59
|
+
| `e10-cli matrix data import <matrixId> <file>` | 从 Excel 导入。`--mode add/cover` |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 典型工作流
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# 1. 创建矩阵(新建即启用;分权租户的所属机构自动取当前机构)
|
|
67
|
+
e10-cli matrix create "审批人映射表" --type 2 --desc "部门→审批人"
|
|
68
|
+
|
|
69
|
+
# 2. 查 ID
|
|
70
|
+
e10-cli matrix list --name "审批人"
|
|
71
|
+
|
|
72
|
+
# 3. 配字段(条件=部门,值=审批人)—— 直接可用,不需要先开设计器
|
|
73
|
+
e10-cli matrix config-edit <matrixId> \
|
|
74
|
+
--condition '[{"type":"department","name":"所属部门"}]' \
|
|
75
|
+
--value '[{"type":"resource","name":"审批人","singleType":1}]'
|
|
76
|
+
|
|
77
|
+
# 4. 启用
|
|
78
|
+
e10-cli matrix enable <matrixId>
|
|
79
|
+
|
|
80
|
+
# 5. 填数据
|
|
81
|
+
echo '[{"<条件configId>":["<部门ID>"],"<值configId>":["<人员ID>"]}]' > rows.json
|
|
82
|
+
e10-cli matrix data save <matrixId> --rows @rows.json
|
|
83
|
+
|
|
84
|
+
# 6. 查数据
|
|
85
|
+
e10-cli matrix data list <matrixId>
|
|
86
|
+
|
|
87
|
+
# 7. 在流程中使用矩阵
|
|
88
|
+
e10-cli workflow set-operator <wf> <nodeId> --type matrix \
|
|
89
|
+
--matrix-id <matrixId> --value-config-id <值configId> \
|
|
90
|
+
--matrix-rule "<条件configId>:1:1:1"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
部门矩阵少一步 —— 条件列是平台建矩阵时自动给的,只配值列:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# 1. 建(--sync-depart = 界面上那个「从组织架构中同步部门」;行随组织同步,不可增删)
|
|
97
|
+
e10-cli matrix create "部门负责人" --type 1 --sync-depart --desc "部门→负责人"
|
|
98
|
+
|
|
99
|
+
# 2. 只配值列,--condition 省略(CLI 会沿用平台建好的「部门」条件列)
|
|
100
|
+
e10-cli matrix config-edit <matrixId> \
|
|
101
|
+
--value '[{"type":"resource","name":"部门负责人","singleType":0}]'
|
|
102
|
+
|
|
103
|
+
# 3. 看行 —— 同步型矩阵的行是组织架构带来的,行 id 就是部门 id
|
|
104
|
+
e10-cli matrix data list <matrixId>
|
|
105
|
+
|
|
106
|
+
# 4. 给某一行填值(带 rowId 才是改那一行,不带就是新增一行)
|
|
107
|
+
echo '[{"rowId":"<部门id>","<值configId>":["<人员ID>"]}]' > rows.json
|
|
108
|
+
e10-cli matrix data save <matrixId> --rows @rows.json
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 行从哪来、字段能不能改:看 `syncType` 和 `permList`
|
|
114
|
+
|
|
115
|
+
`matrix list --json` 每条记录带几个标记位。**不要拿 `sysType` 当判据** —— 它只说明是不是平台内置的,不决定能力:
|
|
116
|
+
|
|
117
|
+
| 字段 | 取值 | 含义 |
|
|
118
|
+
|---|---|---|
|
|
119
|
+
| `type` | `0` / `1` / `2` | `0`=分部矩阵、`1`=部门矩阵、`2`=自定义矩阵 |
|
|
120
|
+
| `syncType` | `1` / `0` | **行从哪来**。`1`=数据行随组织架构同步(**行不可增删,行 id 就是部门/分部 id**);`0`=行手工维护(行 id 是平台发号的雪花) |
|
|
121
|
+
| `permList` | 数组 | **含 `FIELD` 才能改字段配置**;不含就是字段只读(平台内置矩阵是这种) |
|
|
122
|
+
| `sysType` | `1` / `0` | 是否平台内置。只影响名字语义,**不影响能做什么** |
|
|
123
|
+
|
|
124
|
+
`matrix list` 的非 JSON 输出会直接把这两条标出来:`行随组织同步 / 行手工维护`、`字段只读`。
|
|
125
|
+
|
|
126
|
+
同一租户里四个矩阵的对照,四个象限都出现过:
|
|
127
|
+
|
|
128
|
+
| 矩阵 | type | sysType | syncType | permList 有 `FIELD` | 结果 |
|
|
129
|
+
|---|---|---|---|---|---|
|
|
130
|
+
| 平台内置的部门矩阵 | 1 | 1 | 1 | 否 | 行随组织同步、字段只读 |
|
|
131
|
+
| 部门负责人矩阵 | 1 | 0 | 0 | 是 | 行手工维护、字段可改 |
|
|
132
|
+
| 自建并勾了「同步部门」 | 1 | 0 | 1 | 是 | 行随组织同步、字段可改 |
|
|
133
|
+
| 自建未勾同步 | 1 | 0 | 0 | 是 | 行手工维护、字段可改 |
|
|
134
|
+
|
|
135
|
+
> **`type` 与 `syncType` 互相独立**:`type=1` 的部门矩阵既可以是同步的、也可以是手工维护的;创建时用 `--sync-depart` / `--sync-subcompany` 决定,事后也能用 `matrix update --sync-depart` 改。
|
|
136
|
+
>
|
|
137
|
+
> 不管哪种,**在流程里的用法完全一样**(都是 `workflow set-operator --type matrix`)。
|
|
138
|
+
|
|
139
|
+
## 部门矩阵 / 分部矩阵:条件列是平台给的
|
|
140
|
+
|
|
141
|
+
建部门矩阵(`matrix create <name> --type 1 --sync-depart`)时,平台会**自动把条件列建好**:
|
|
142
|
+
|
|
143
|
+
```json
|
|
144
|
+
"conditionConfigList": [
|
|
145
|
+
{ "id": "<矩阵id + 1>", "name": "部门", "type": "department", "singleType": 1 }
|
|
146
|
+
],
|
|
147
|
+
"valueConfigList": [] ← 这才是你要配的
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
所以配列时**只给值列就行**,`--condition` 省略掉:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
e10-cli matrix config-edit <matrixId> \
|
|
154
|
+
--value '[{"type":"resource","name":"部门负责人","singleType":0}]'
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
CLI 会把现有条件列原样带上(会打印一行 `ℹ 未指定条件列,已沿用现有的: 部门`)。
|
|
158
|
+
|
|
159
|
+
> **别手写条件列。** 写一个不带 `id` 的 `{"type":"department","name":"部门"}` 进去,CLI 会当成新列去 `addField` 取号,结果矩阵里多出一条一模一样的「部门」列。
|
|
160
|
+
>
|
|
161
|
+
> 可用类型用 `GET /api/bs/hrm/matrix2/config/typeList?id=<matrixId>&matrixType=<0|1|2>` 查:部门矩阵返回 `conditionTypeList:[department]` / `valueTypeList:[resource]`。
|
|
162
|
+
|
|
163
|
+
**所属机构与分权**:矩阵强制校验"所属机构",而落到哪个字段由**分权状态**决定——分权开启时平台读 `belong_org_id`(归属机构),关闭时读 `targetId`。CLI 建矩阵前会自动查 `check-detach` 判断并选对字段,分权租户还会直接用返回的当前机构兜底,所以 `matrix create` 通常不用手写机构;只有"非分权租户"或"归属机构与目标机构必须不同"时才需要 `--org-id` / `--target-id`。
|
|
164
|
+
|
|
165
|
+
**列表的状态过滤**:`matrix list` 走管理端点 `matrix2/list`,能看到**停用的矩阵**并显示真实状态;`--name`(模糊)、`--enable-status`、`--org-id` 都是服务端过滤。
|
|
166
|
+
|
|
167
|
+
## 完整配置:条件列 → 人员列 → 数据映射 → 运行时读回
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# ① 建矩阵(自定义矩阵。系统矩阵是平台内置的,用 matrix list 找现成的)
|
|
171
|
+
# 新建即为「启用」状态,不需要再 enable;要停用才跑 matrix disable
|
|
172
|
+
# 所属机构:分权租户自动取当前机构,非分权租户用 --org-id 显式指定(不加会有"所属机构不能为空")
|
|
173
|
+
e10-cli matrix create "部门审批人" --type 2 --desc "部门→审批人"
|
|
174
|
+
|
|
175
|
+
# ② 配列:条件列 + 值列。值列 type=resource 就是"人员列";singleType 0=多选 1=单选
|
|
176
|
+
e10-cli matrix config-edit <matrixId> \
|
|
177
|
+
--condition '[{"type":"department","name":"所属部门"}]' \
|
|
178
|
+
--value '[{"type":"resource","name":"审批人","singleType":1}]'
|
|
179
|
+
|
|
180
|
+
# ③ 取各列 configId(数据映射的键就是它),再填数据行
|
|
181
|
+
e10-cli matrix config <matrixId> # → conditionConfigList[].id / valueConfigList[].id
|
|
182
|
+
e10-cli matrix data save <matrixId> --rows @rows.json
|
|
183
|
+
e10-cli matrix data list <matrixId> # 回读数据行
|
|
184
|
+
|
|
185
|
+
# ④ 启用并挂到流程节点
|
|
186
|
+
e10-cli matrix enable <matrixId>
|
|
187
|
+
e10-cli workflow set-operator <wf> <nodeId> --type matrix \
|
|
188
|
+
--matrix-id <matrixId> --value-config-id <值列configId> \
|
|
189
|
+
--matrix-rule "<条件列configId>:1:1:1"
|
|
190
|
+
|
|
191
|
+
# ⑤ 运行时读回:确认条件列/值列是否就是流程实际在读的那一组
|
|
192
|
+
e10-cli matrix config <matrixId>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
> **矩阵类型不用手填**:`--type matrix` 的 `sourceType` / 条件列中文名由 CLI 自动读 `GET /api/bs/hrm/matrix2/config?id=<matrixId>` 解析——`conditionConfigList[].type` 是 `department` 即部门矩阵、`subcompany` 即分部矩阵。条件列不在目标矩阵里时会直接报错并列出可选列,不会静默挂错。
|
|
196
|
+
>
|
|
197
|
+
> 排查"取不到人"时按这个顺序看:`matrix config`(列对不对)→ `matrix data list`(行有没有)→ 流程节点的矩阵规则是否引用了正确的 `条件configId`。
|
|
198
|
+
|
|
199
|
+
## 字段类型枚举
|
|
200
|
+
|
|
201
|
+
设计器「字段维护」里就这 **7 档**:
|
|
202
|
+
|
|
203
|
+
| 中文 | API 值 |
|
|
204
|
+
|------|--------|
|
|
205
|
+
| 人员 | `resource` |
|
|
206
|
+
| 部门 | `department` |
|
|
207
|
+
| 分部 | `subcompany` |
|
|
208
|
+
| 岗位 | `position` |
|
|
209
|
+
| 客户 | `customer` |
|
|
210
|
+
| 项目 | `project` |
|
|
211
|
+
| 自定义浏览框 | `customBrowser` |
|
|
212
|
+
|
|
213
|
+
## 自定义浏览框列
|
|
214
|
+
|
|
215
|
+
条件列和值列都可以是**自定义浏览框**。它的读写形状**不一样**,这点最容易踩:
|
|
216
|
+
|
|
217
|
+
| | 形状 |
|
|
218
|
+
|---|---|
|
|
219
|
+
| **写**(要发的) | `customBrowser:<浏览框富对象>` + `singleType` |
|
|
220
|
+
| **读**(回来的) | `browserModule` + `browserType` + `configDetailDto{dataId,singleType}` + `showConfig` |
|
|
221
|
+
|
|
222
|
+
平台**只认写的那个形状**:把读回来的三个键原样发回去,会被回「**自定义浏览框参数异常**」。所以:
|
|
223
|
+
|
|
224
|
+
- **新建**一列时用浏览框**名字**指名即可,CLI 会去查回富对象:
|
|
225
|
+
```json
|
|
226
|
+
{ "type": "自定义浏览框", "name": "这里是显示名字", "browser": "测试自定义浏览框", "singleType": 0 }
|
|
227
|
+
```
|
|
228
|
+
`browser` 也收完整对象(想直接贴 bean 就用 `customBrowser`)。名字**精确匹配**,同名多条或查不到都会报错并列候选。
|
|
229
|
+
- **沿用**老列(省略 `--condition`)时,CLI 会按读回里的 `configDetailDto.dataId` **把富对象反查回来再发** —— 不需要你补;也不要手写 `browserType` / `configDetailDto`,发了会被拒。
|
|
230
|
+
- `singleType`:`0` 多选 / `1` 单选(列底下那个「单选」勾选框)。自定义浏览框列默认 `0`。
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
e10-cli matrix config-edit <矩阵ID> \
|
|
234
|
+
--condition '[{"type":"部门","name":"所属门店"},{"type":"自定义浏览框","name":"合同","browser":"测试自定义浏览框"}]' \
|
|
235
|
+
--value '[{"type":"人员","name":"门店经理","singleType":1}]'
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## config-edit 参数
|
|
239
|
+
|
|
240
|
+
```json
|
|
241
|
+
{
|
|
242
|
+
"id": "<矩阵ID>",
|
|
243
|
+
"conditionConfigList": [
|
|
244
|
+
{ "id": "<现有条件列id>", "type": "department", "name": "显示名", "sort": 1 }
|
|
245
|
+
],
|
|
246
|
+
"valueConfigList": [
|
|
247
|
+
{ "id": "<现有值列id>", "type": "resource", "name": "显示名", "singleType": 1, "sort": 1 },
|
|
248
|
+
{ "type": "resource", "name": "新加的列", "singleType": 0, "sort": 2 }
|
|
249
|
+
],
|
|
250
|
+
"conditionDelList": [],
|
|
251
|
+
"valueDelList": []
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
- `singleType`: 0=多选, 1=单选。值字段必传,条件字段可省(省了沿用现有的)。条件列在平台上**本身是必填的**,空着下发会被拒(「请至少维护一个条件字段」)。自定义浏览框列默认 0。
|
|
256
|
+
- **自定义浏览框列**用 `"browser":"<浏览框名>"` 指名即可(CLI 查回富对象再发),详见上面「自定义浏览框列」一节。写 `browserType` / `configDetailDto` 这类**读回形状**会被平台拒。
|
|
257
|
+
- **已有的列要带 `id`**(从 `matrix config` 拿);不带 `id` 的会被当成新列去 `addField` 取号,**等于多建一列**。不带 id 但与现有列重名时 CLI 会告警。
|
|
258
|
+
- **列 id 必须属于该矩阵**。传了别的矩阵的列 id,平台只回一句「系统内部错误」(NPE),CLI 会抢先报错并点名是哪一列。
|
|
259
|
+
- ⚠ **保存是「按 id 合并」,不是整表替换**:没传的列**不会**被删(删列要走 `--value-del`)。所以「加一列」只传那一列就够了,不必把现有列全列一遍。
|
|
260
|
+
- 保存后回读比对提交的列(在不在、名字对不对),平台回 200 但没按提交落库会直接报错。
|
|
261
|
+
|
|
262
|
+
## data save 简写格式
|
|
263
|
+
|
|
264
|
+
```json
|
|
265
|
+
[
|
|
266
|
+
{"<条件configId>": ["<实体ID>"], "<值configId>": ["<实体ID>"]},
|
|
267
|
+
{"rowId": "<行id>", "<值configId>": ["<实体ID>"]}
|
|
268
|
+
]
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
- 不带 `rowId` = 新增一行;带 `rowId`(或写作 `id`)= 改那一行。行 id 用 `matrix data list <matrixId>` 拿。
|
|
272
|
+
- **改行只给要改的列就行**:平台是整行覆盖,CLI 会先读回该行、把没给的列补上再发。
|
|
273
|
+
- 键不是该矩阵的列时直接报错并列出可用列,不会静默发出去。
|
|
274
|
+
|
|
275
|
+
CLI 自动查 config 判断 `conditionAble` 标记并展开为完整格式;改过的行保存后会回读比对,平台回 200 但没按提交落库会直接报错。
|
|
276
|
+
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# 角色与成员配置
|
|
2
|
+
|
|
3
|
+
适用于后台管理中心的角色设置。角色功能权限、角色成员、矩阵维护者是三套不同配置;不要把 `role permission`、`role member-*` 与 `matrix maintainer` 混用。
|
|
4
|
+
|
|
5
|
+
## 操作顺序
|
|
6
|
+
|
|
7
|
+
先用 `role list` 确认角色 ID,`role get <roleId>` 读取基础信息;修改角色基础信息后再读一次。成员先用 `role member-list <roleId>` 找**成员条目 ID**,再用 `member-get <roleId> <memberId>` 读取完整设置。成员对象 ID(人员/部门/岗位 ID)不等于成员条目 ID,修改和删除必须传后者。功能权限先 `role permission list <roleId>`,再按返回的 `permissionSetCode` 增减。
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
e10-cli role list
|
|
11
|
+
e10-cli role get <roleId>
|
|
12
|
+
e10-cli role update <roleId> --name "新角色名" --remark "说明"
|
|
13
|
+
e10-cli role update <roleId> --parent <父角色ID>
|
|
14
|
+
e10-cli role permission list <roleId>
|
|
15
|
+
e10-cli role permission add <roleId> <permissionSetCode>
|
|
16
|
+
e10-cli role permission remove <roleId> <permissionSetCode>
|
|
17
|
+
e10-cli role member-list <roleId>
|
|
18
|
+
e10-cli role member-get <roleId> <memberId>
|
|
19
|
+
e10-cli role member-delete <roleId> <memberId> [更多成员条目ID...]
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
`role update` 支持 `--name`、`--code`、`--remark`、`--parent`,未指定项沿用角色详情;`--parent` 只能给当前角色树中存在、且不是自身或子孙的角色 ID。`--remark ""` 清空备注。功能权限读取当前角色的权限树,`add/remove` 每次只改变一个权限集并核对选中状态,不需要、也不应手填 `menuCode` 和权限名称。禁用的权限集不能修改。
|
|
23
|
+
|
|
24
|
+
## 添加成员
|
|
25
|
+
|
|
26
|
+
`role add-member <roleId> [名称...] --type <类型>` 支持 `resource` 人员、`department` 部门、`subcompany` 分部、`position` 岗位、`channel` 群组;名称同名时改用 `--id <对象ID,对象ID>`。`--level` 是**角色成员级别**:`1` 总部、`2` 分部、`3` 部门,也接受中文名。`--sec-min/--sec-max` 是安全级别上下限,范围随租户而变;`--is-seclevel` 开启校验。部门/分部可给 `--department-attribute subordinate,partTimeStaff`:前者包含下级,后者包含兼职;省略表示均不启用。
|
|
27
|
+
|
|
28
|
+
`--org-scope` 是成员分权范围(不同于成员级别)。新增命令支持无需指定机构的范围;“指定部门/指定分部”通过先添加成员、再用 `member-update` 设置,避免只有范围码却没有机构对象。
|
|
29
|
+
|
|
30
|
+
没有具体浏览对象的“所有人”和“全部外部联系人”走另一条命令:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
e10-cli role add-scope-member <roleId> --type all [--level 总部]
|
|
34
|
+
e10-cli role add-scope-member <roleId> --type allExternal [--level 分部]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
它们的类型码分别是 `all`、`allExternal`;**指定外部人员** `external` 不支持。新增后返回的成员条目 ID 可用于 `member-get`、`member-delete`。
|
|
38
|
+
|
|
39
|
+
新增范围成员和批量删除会先确认成员列表完整;若平台只返回部分分页,命令会停止,不会据不完整列表判定新增或删除成功。
|
|
40
|
+
|
|
41
|
+
## 修改成员:先查询,再只改所需项
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
e10-cli role member-update <roleId> <memberId> --department-attribute subordinate,partTimeStaff
|
|
45
|
+
e10-cli role member-update <roleId> <memberId> --department-attribute ""
|
|
46
|
+
e10-cli role member-update <roleId> <memberId> --level 部门 --sec-min 0 --sec-max 100
|
|
47
|
+
e10-cli role member-update <roleId> <memberId> --org-scope 指定部门 --org-departments <部门ID>
|
|
48
|
+
e10-cli role member-update <roleId> <memberId> --org-scope 指定分部 --org-subcompanies <分部ID> --org-attribute subordinate
|
|
49
|
+
e10-cli role member-update <roleId> <memberId> --position-level 2 --position-subcompany <分部ID>
|
|
50
|
+
e10-cli role member-update <roleId> <memberId> --position-level 3 --position-department <部门ID>
|
|
51
|
+
e10-cli role member-update <roleId> <memberId> --expire-type DAY --expire-detail 20
|
|
52
|
+
e10-cli role member-update <roleId> <memberId> --expire-type APPOINT --expire-detail 2027-01-07
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
修改会先读取该成员整条配置,保留未指定项;指定机构 ID 从组织浏览接口回读真实对象,找不到就停止。修改成员级别用 `--level`(总部/分部/部门或 1/2/3),安全级别用 `--sec-min`、`--sec-max`;是否启用校验用 `--enable-seclevel` 或 `--disable-seclevel`,两者不能同时给。上下限的可用范围以当前租户和成员表单为准,CLI 只校验数值与下限不高于上限。`--department-attribute` 只用于部门/分部成员。`--position-level` 只用于岗位成员,码表 `1` 全部、`2` 指定分部、`3` 指定部门;对应的机构 ID 分别用 `--position-subcompany`、`--position-department`,多个 ID 用逗号分隔。它与 `--level` 的成员级别无关。岗位兼职 `position_attribute` 尚无正向保存证据,暂不提供配置项。
|
|
56
|
+
|
|
57
|
+
分权范围 `--org-scope` 可用中文名或协议码:
|
|
58
|
+
|
|
59
|
+
| 中文名 | 协议码 |
|
|
60
|
+
|---|---|
|
|
61
|
+
| 全部机构 | `ALL_SCOPE` |
|
|
62
|
+
| 同部门 | `ORIGINAL_DEPT_SCOPE` |
|
|
63
|
+
| 同部门的下级部门 | `ORIGINAL_DEPT_SUB_SCOPE` |
|
|
64
|
+
| 同部门及下级部门 | `ORIGINAL_DEPT_INCLUDE_SUB_SCOPE` |
|
|
65
|
+
| 同分部 | `ORIGINAL_SUBCOMPANY_SCOPE` |
|
|
66
|
+
| 同分部的下级分部 | `ORIGINAL_SUBCOMPANY_SUB_SCOPE` |
|
|
67
|
+
| 同分部及下级分部 | `ORIGINAL_SUBCOMPANY_INCLUDE_SUB_SCOPE` |
|
|
68
|
+
| 指定部门 | `DEPARTMENT` |
|
|
69
|
+
| 指定分部 | `SUBCOMPANY` |
|
|
70
|
+
|
|
71
|
+
指定部门必须有 `--org-departments`;指定分部必须有 `--org-subcompanies`;二者不能混用。两者都可选 `--org-attribute subordinate` 表示包含下级,传 `--org-attribute ""` 表示不含。其他范围不接受指定机构或该选项。
|
|
72
|
+
|
|
73
|
+
有效期 `--expire-type` 的码表为:`UNLIMITED` 长期、`TEMPORARY` 临时、`DAY` 天、`WEEK` 周、`MONTH` 月、`YEAR` 年、`APPOINT` 指定日期。`DAY/WEEK/MONTH/YEAR` 须用 `--expire-detail` 给正整数,`APPOINT` 须给 `YYYY-MM-DD` 日期;`UNLIMITED/TEMPORARY` 不接受 detail。平台根据类型和 detail 计算 `expireDate`,CLI 不把旧的 `expireDate` 回传;写后核对类型与 detail。实际到期时间仍应以 `member-get` 回读的 `expireDate` 为准。
|
|
74
|
+
|
|
75
|
+
## 边界
|
|
76
|
+
|
|
77
|
+
角色维护者暂不支持;指定外部人员 `external` 暂不支持;岗位兼职项暂不支持。不要把 `allExternal` 理解为指定外部人员,也不要把功能权限当作菜单可见范围。删除角色成员与删除角色是不同命令,先确认 ID 所指对象。
|