weaver-e10-builder 1.6.9 → 1.6.11
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-data.d.ts.map +1 -1
- package/dist/commands/form-data.js +4 -1
- package/dist/commands/form-data.js.map +1 -1
- package/dist/commands/report-admin.d.ts.map +1 -1
- package/dist/commands/report-admin.js +378 -2
- package/dist/commands/report-admin.js.map +1 -1
- package/dist/commands/report-validate.d.ts.map +1 -1
- package/dist/commands/report-validate.js +1066 -3
- package/dist/commands/report-validate.js.map +1 -1
- package/dist/commands/report.d.ts.map +1 -1
- package/dist/commands/report.js +341 -3
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/workflow-after-submit-comment.d.ts +3 -0
- package/dist/commands/workflow-after-submit-comment.d.ts.map +1 -0
- package/dist/commands/workflow-after-submit-comment.js +56 -0
- package/dist/commands/workflow-after-submit-comment.js.map +1 -0
- package/dist/commands/workflow-setting.d.ts.map +1 -1
- package/dist/commands/workflow-setting.js +2 -67
- package/dist/commands/workflow-setting.js.map +1 -1
- package/dist/services/action-detail.d.ts.map +1 -1
- package/dist/services/action-detail.js +1 -17
- package/dist/services/action-detail.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.js +6 -2
- package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
- package/dist/services/actionflow/components/custom_trigger.js +1 -1
- package/dist/services/actionflow/components/custom_trigger.js.map +1 -1
- package/dist/services/actionflow/components/dml_execute.js +1 -1
- package/dist/services/actionflow/components/dml_execute.js.map +1 -1
- package/dist/services/actionflow/components/document_actions.js +1 -2
- package/dist/services/actionflow/components/document_actions.js.map +1 -1
- package/dist/services/actionflow/components/eb_get_data_by_id.d.ts.map +1 -1
- package/dist/services/actionflow/components/eb_get_data_by_id.js +2 -2
- package/dist/services/actionflow/components/eb_get_data_by_id.js.map +1 -1
- package/dist/services/actionflow/components/form_data_builder.d.ts.map +1 -1
- package/dist/services/actionflow/components/form_data_builder.js +18 -10
- package/dist/services/actionflow/components/form_data_builder.js.map +1 -1
- package/dist/services/actionflow/components/hrm_actions.js +0 -1
- package/dist/services/actionflow/components/hrm_actions.js.map +1 -1
- package/dist/services/actionflow/components/webhook_trigger.js +3 -3
- package/dist/services/actionflow/components/webhook_trigger.js.map +1 -1
- package/dist/services/actionflow/components/workflow_actions.js +3 -2
- package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
- package/dist/services/actionflow/filter_rules.d.ts.map +1 -1
- package/dist/services/actionflow/filter_rules.js +15 -13
- package/dist/services/actionflow/filter_rules.js.map +1 -1
- package/dist/services/actionflow/form_source.d.ts.map +1 -1
- package/dist/services/actionflow/form_source.js +59 -11
- 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 +4 -1
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/option_field_types.d.ts +5 -0
- package/dist/services/actionflow/option_field_types.d.ts.map +1 -0
- package/dist/services/actionflow/option_field_types.js +20 -0
- package/dist/services/actionflow/option_field_types.js.map +1 -0
- package/dist/services/actionflow/param_group_dto.d.ts.map +1 -1
- package/dist/services/actionflow/param_group_dto.js +7 -3
- package/dist/services/actionflow/param_group_dto.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +42 -18
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/webhook_source.d.ts.map +1 -1
- package/dist/services/actionflow/webhook_source.js +9 -4
- package/dist/services/actionflow/webhook_source.js.map +1 -1
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +11 -8
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/report/blueprint.d.ts +109 -0
- package/dist/services/report/blueprint.d.ts.map +1 -0
- package/dist/services/report/blueprint.js +322 -0
- package/dist/services/report/blueprint.js.map +1 -0
- package/dist/services/report/build.d.ts.map +1 -1
- package/dist/services/report/build.js +8 -3
- package/dist/services/report/build.js.map +1 -1
- package/dist/services/report/card.d.ts +65 -0
- package/dist/services/report/card.d.ts.map +1 -0
- package/dist/services/report/card.js +151 -0
- package/dist/services/report/card.js.map +1 -0
- package/dist/services/report/copy-health.d.ts +31 -0
- package/dist/services/report/copy-health.d.ts.map +1 -0
- package/dist/services/report/copy-health.js +87 -0
- package/dist/services/report/copy-health.js.map +1 -0
- package/dist/services/report/dataset-heal.d.ts +64 -0
- package/dist/services/report/dataset-heal.d.ts.map +1 -0
- package/dist/services/report/dataset-heal.js +89 -0
- package/dist/services/report/dataset-heal.js.map +1 -0
- package/dist/services/report/dataset-ids.d.ts +70 -0
- package/dist/services/report/dataset-ids.d.ts.map +1 -0
- package/dist/services/report/dataset-ids.js +149 -0
- package/dist/services/report/dataset-ids.js.map +1 -0
- package/dist/services/report/dataset.d.ts.map +1 -1
- package/dist/services/report/dataset.js +3 -1
- package/dist/services/report/dataset.js.map +1 -1
- package/dist/services/report/empty-dataset.d.ts +51 -0
- package/dist/services/report/empty-dataset.d.ts.map +1 -0
- package/dist/services/report/empty-dataset.js +213 -0
- package/dist/services/report/empty-dataset.js.map +1 -0
- package/dist/services/report/field-binding.d.ts +75 -0
- package/dist/services/report/field-binding.d.ts.map +1 -0
- package/dist/services/report/field-binding.js +160 -0
- package/dist/services/report/field-binding.js.map +1 -0
- package/dist/services/report/forms.d.ts +32 -0
- package/dist/services/report/forms.d.ts.map +1 -1
- package/dist/services/report/forms.js +90 -0
- package/dist/services/report/forms.js.map +1 -1
- package/dist/services/report/formula-parent.d.ts +25 -0
- package/dist/services/report/formula-parent.d.ts.map +1 -0
- package/dist/services/report/formula-parent.js +116 -0
- package/dist/services/report/formula-parent.js.map +1 -0
- package/dist/services/report/locate.d.ts +40 -0
- package/dist/services/report/locate.d.ts.map +1 -0
- package/dist/services/report/locate.js +122 -0
- package/dist/services/report/locate.js.map +1 -0
- package/dist/services/report/reports.d.ts +4 -0
- package/dist/services/report/reports.d.ts.map +1 -1
- package/dist/services/report/reports.js +4 -2
- package/dist/services/report/reports.js.map +1 -1
- package/dist/services/report/scene.d.ts +22 -0
- package/dist/services/report/scene.d.ts.map +1 -0
- package/dist/services/report/scene.js +145 -0
- package/dist/services/report/scene.js.map +1 -0
- package/dist/services/report/types.d.ts +28 -0
- package/dist/services/report/types.d.ts.map +1 -1
- package/dist/services/report/verify.d.ts +24 -0
- package/dist/services/report/verify.d.ts.map +1 -1
- package/dist/services/report/verify.js +115 -2
- package/dist/services/report/verify.js.map +1 -1
- package/dist/services/report/workbook.d.ts +12 -1
- package/dist/services/report/workbook.d.ts.map +1 -1
- package/dist/services/report/workbook.js +107 -8
- package/dist/services/report/workbook.js.map +1 -1
- package/dist/services/workflow-after-submit-comment.d.ts +20 -0
- package/dist/services/workflow-after-submit-comment.d.ts.map +1 -0
- package/dist/services/workflow-after-submit-comment.js +81 -0
- package/dist/services/workflow-after-submit-comment.js.map +1 -0
- package/ecodecmd/src/build.js +36 -12
- package/package.json +1 -1
- package/skill-docs/SKILL.md +4 -4
- package/skill-docs/_catalog.md +10 -1
- package/skill-docs/actionflows/SKILL.md +1 -0
- package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +2 -2
- package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +2 -0
- package/skill-docs/actionflows/references/components/trigger/WebHookTrigger.md +19 -1
- package/skill-docs/references/coding/guide-form-crud.md +2 -0
- package/skill-docs/references/coding/guide-page-code.md +108 -0
- package/skill-docs/references/components/ref-component-common.md +98 -0
- package/skill-docs/references/report/add-dataset-registration-guide.md +44 -22
- package/skill-docs/references/report/advanced-crosstab-tree-guide.md +82 -0
- package/skill-docs/references/report/ai-report-workflow.md +100 -100
- package/skill-docs/references/report/api-auth-headers.md +129 -0
- package/skill-docs/references/report/api-report-build-fast-path.md +274 -275
- package/skill-docs/references/report/app-datasource-lookup-guide.md +230 -230
- package/skill-docs/references/report/branch-scene-guide.md +293 -0
- package/skill-docs/references/report/build-resilience-guide.md +99 -0
- package/skill-docs/references/report/card-report-guide.md +110 -0
- package/skill-docs/references/report/cell-config-echo-guide.md +44 -9
- package/skill-docs/references/report/cell-transform-guide.md +9 -9
- package/skill-docs/references/report/column-split-report-guide.md +96 -0
- package/skill-docs/references/report/condition-format-guide.md +49 -24
- package/skill-docs/references/report/cross-dataset-filter-guide.md +180 -69
- package/skill-docs/references/report/crosstab-raw-workbook-guide.md +265 -0
- package/skill-docs/references/report/dataset-query-filter-guide.md +231 -235
- package/skill-docs/references/report/dataset-sidebar-ops-guide.md +75 -34
- package/skill-docs/references/report/dataset-table-field-contract-guide.md +196 -46
- package/skill-docs/references/report/datasource-metadata-guide.md +128 -119
- package/skill-docs/references/report/datasource-selection-and-parent-filter-guide.md +183 -148
- package/skill-docs/references/report/date-range-query-reference.md +97 -102
- package/skill-docs/references/report/default-header-style-guide.md +8 -8
- package/skill-docs/references/report/designer-blank-prevention-guide.md +8 -8
- package/skill-docs/references/report/dossier-report-guide.md +69 -0
- package/skill-docs/references/report/drilldown-report-guide.md +59 -0
- package/skill-docs/references/report/event-hreflink-guide.md +53 -47
- package/skill-docs/references/report/expansion-block-parent-config-guide.md +208 -0
- package/skill-docs/references/report/failure-cleanup-and-nonblocking-guide.md +183 -0
- package/skill-docs/references/report/field-bind-exact-match-guide.md +208 -208
- package/skill-docs/references/report/financial-stats-report-guide.md +89 -0
- package/skill-docs/references/report/formula-cell-api-guide.md +325 -258
- package/skill-docs/references/report/golden-case-summary-sheet.md +200 -0
- package/skill-docs/references/report/guide-report-build.md +6 -1
- package/skill-docs/references/report/hidden-row-and-header-merge-guide.md +10 -10
- package/skill-docs/references/report/layout-showlocation-freeze-guide.md +39 -10
- package/skill-docs/references/report/multi-report-crosstab-casebook.md +263 -0
- package/skill-docs/references/report/paged-group-report-guide.md +68 -0
- package/skill-docs/references/report/preaggregate-auto-disable-guide.md +24 -13
- package/skill-docs/references/report/query-condition-api-guide.md +145 -125
- package/skill-docs/references/report/ref-report-commands.md +41 -3
- package/skill-docs/references/report/report-baseinfo-defaults-guide.md +117 -117
- package/skill-docs/references/report/report-building-guide.md +52 -52
- package/skill-docs/references/report/report-case-prompts.md +104 -0
- package/skill-docs/references/report/report-config-schema.md +281 -281
- package/skill-docs/references/report/report-create-modes-guide.md +73 -35
- package/skill-docs/references/report/report-data-model.md +131 -131
- package/skill-docs/references/report/report-delivery-contract.md +23 -3
- package/skill-docs/references/report/report-designer-feature-map.md +30 -35
- package/skill-docs/references/report/report-help-guide.md +304 -0
- package/skill-docs/references/report/report-internal-error-guide.md +71 -0
- package/skill-docs/references/report/report-knowledge-base.md +27 -27
- package/skill-docs/references/report/report-lifecycle-api-guide.md +126 -94
- package/skill-docs/references/report/report-list-page-ops-guide.md +54 -8
- package/skill-docs/references/report/report-permission-guide.md +99 -102
- package/skill-docs/references/report/report-requirement-analysis-template.md +93 -29
- package/skill-docs/references/report/report-self-check-guide.md +164 -164
- package/skill-docs/references/report/report-verification-discipline-guide.md +203 -0
- package/skill-docs/references/report/safe-partial-save-guide.md +151 -151
- package/skill-docs/references/report/shard-freeze-report-guide.md +97 -0
- package/skill-docs/references/report/snowflake-id-precision-guide.md +84 -84
- package/skill-docs/references/report/spec-build-schema.md +71 -71
- package/skill-docs/references/report/targeted-fix-guide.md +155 -97
- package/skill-docs/references/report/user-request-scope-only-guide.md +23 -4
- package/skill-docs/references/workflow/guide-after-submit-comment.md +58 -0
- package/skill-docs/references/workflow/guide-workflow.md +6 -0
|
@@ -12,20 +12,20 @@
|
|
|
12
12
|
|
|
13
13
|
```mermaid
|
|
14
14
|
flowchart TB
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
15
|
+
subgraph dialog["报表权限弹窗"]
|
|
16
|
+
U["使用范围 Tab"]
|
|
17
|
+
D["禁用范围 Tab"]
|
|
18
|
+
end
|
|
19
|
+
subgraph sub["各 Tab 下"]
|
|
20
|
+
G["通用 — shareBrowser 对象列表"]
|
|
21
|
+
M["矩阵相关 — 引用矩阵表 / e-Builder 表单"]
|
|
22
|
+
end
|
|
23
|
+
U --> G
|
|
24
|
+
U --> M
|
|
25
|
+
D --> G
|
|
26
|
+
D --> M
|
|
27
|
+
G --> API1["table/list/new + savePermissions.viewRight / disableRight"]
|
|
28
|
+
M --> API2["matrix/list + savePermissions.viewMatrixRight / matrix/save"]
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
| UI 区域 | 读接口 | 写接口 | 说明 |
|
|
@@ -39,7 +39,7 @@ flowchart TB
|
|
|
39
39
|
|
|
40
40
|
```
|
|
41
41
|
可查看 = (后台查看 ∨ 前台查看 ∨ 使用矩阵 ∨ 使用权限组)
|
|
42
|
-
|
|
42
|
+
∧ ¬(禁用通用 ∨ 禁用矩阵 ∨ 禁用权限组)
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
---
|
|
@@ -65,17 +65,16 @@ flowchart TB
|
|
|
65
65
|
| UI 名称 | objType | obj_id 字段 | _entityType | targetType | targetId | 备注 |
|
|
66
66
|
|---------|---------|-------------|-------------|------------|----------|------|
|
|
67
67
|
| 人员 | `resource` | `obj_id` | `resource` | `1` | 人员 ID | 可加 `user_type`(1 当前人员…) |
|
|
68
|
-
| 部门 | `department` | `obj_id_department` | `dept` | `2` | 部门 ID | Live `本地工作目录` |
|
|
69
68
|
| 分部 | `subcompany` | `obj_id_subcompany` | `subcompany` | `4` | 分部 ID | 可加 `department_attribute` |
|
|
70
69
|
| 角色 | `role` | `obj_id_role` | `role` | **`10`** | 角色 ID | 可加 `role_level`(0 总部/1 分部/2 部门) |
|
|
71
70
|
| 群组 | `channel` | `obj_id_channel` | `channel` | **`14`** | 群组 ID | UI 称「群组」,浏览器为 `hrm/.../channel`;非 `group`/`targetType:5` |
|
|
72
71
|
| 群组 | ~~`group`~~ | ~~`obj_id_group`~~ | — | ~~5~~ | — | **勿用**:`5` 会被存成分部 |
|
|
73
72
|
| 岗位 | `position` | `obj_id_position` | `position` | `6` | 岗位 ID | 可加 `position_level` 等 |
|
|
74
|
-
| 所有人 | `all` | (无) | `all` | `11` | `0` | Live copy 脚本 |
|
|
73
|
+
| 所有人 | `all` | (无) | `all` | `11` | `0` | Live 验证 copy 脚本 |
|
|
75
74
|
| 外部联系人 | `external` | `obj_id_external` | `external` | `7` | 外部人 ID | 须 browser 查真实 ID |
|
|
76
75
|
| 所有外部人 | `allExternal` | (无) | `allExternal` | `12` | `0` | 无对象选择框 |
|
|
77
76
|
|
|
78
|
-
> **targetType
|
|
77
|
+
> **targetType 金标准**(`edc_report_ph_report_view` 的 `org_config.typeEnum`,weaver-edcreportd SQL):
|
|
79
78
|
> 人员 `1|17` · 部门 `2|3|4|…` · 分部 `5|6|7|…` · **角色 `10`** · **群组(channel) `14|1411`** · 岗位 `12|13|…` · 外部 `110` · 所有人 `11`
|
|
80
79
|
> 写入前务必 `table/list/new` 回读;**禁止**把角色写成 `targetType:3`、群组写成 `targetType:5`(会分别落库为部门/分部)。
|
|
81
80
|
> **安全级别**:通用项均可带 `seclevel: {"min": -999, "max": 999}`(UI「安全级别」列)。
|
|
@@ -87,12 +86,12 @@ POST /api/bs/edc/report/permission/table/list/new
|
|
|
87
86
|
Content-Type: application/json
|
|
88
87
|
|
|
89
88
|
{
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
89
|
+
"permissionId": "report_view",
|
|
90
|
+
"id": "<reportId>",
|
|
91
|
+
"current": 1,
|
|
92
|
+
"pageSize": 50,
|
|
93
|
+
"permissionType": 1,
|
|
94
|
+
"params": { "appId": "<appId>" }
|
|
96
95
|
}
|
|
97
96
|
```
|
|
98
97
|
|
|
@@ -106,11 +105,11 @@ Content-Type: application/json
|
|
|
106
105
|
|
|
107
106
|
```json
|
|
108
107
|
{
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
108
|
+
"<reportId>": {
|
|
109
|
+
"viewRight": [ /* permissionType: 1 的 shareBrowser 行 */ ],
|
|
110
|
+
"disableRight": [ /* permissionType: -1 的 shareBrowser 行 */ ],
|
|
111
|
+
"viewMatrixRight": [ /* 使用范围 · 矩阵行,见 §四 */ ]
|
|
112
|
+
}
|
|
114
113
|
}
|
|
115
114
|
```
|
|
116
115
|
|
|
@@ -136,41 +135,39 @@ Content-Type: application/json
|
|
|
136
135
|
|
|
137
136
|
```json
|
|
138
137
|
{
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
138
|
+
"sourceId": "<reportId>",
|
|
139
|
+
"permissionId": "report_view",
|
|
140
|
+
"permissionType": 1,
|
|
141
|
+
"targetType": 11,
|
|
142
|
+
"targetId": 0,
|
|
143
|
+
"sourceType": 1,
|
|
144
|
+
"objType": "all",
|
|
145
|
+
"objTypeSpan": "所有人",
|
|
146
|
+
"_entityType": "all",
|
|
147
|
+
"obj_id_all": [{ "content": "所有人", "icon": "Icon-all02", "id": "0" }],
|
|
148
|
+
"obj_id_span": "所有人",
|
|
149
|
+
"objIdList": ["所有人"],
|
|
150
|
+
"seclevel": { "min": -999, "max": 999 },
|
|
151
|
+
"shareKey": "tmp_all_0_abc123"
|
|
153
152
|
}
|
|
154
153
|
```
|
|
155
154
|
|
|
156
|
-
**部门(使用范围)** — 见 `本地工作目录`:
|
|
157
|
-
|
|
158
155
|
```json
|
|
159
156
|
{
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
157
|
+
"sourceId": "<reportId>",
|
|
158
|
+
"permissionId": "report_view",
|
|
159
|
+
"permissionType": 1,
|
|
160
|
+
"targetType": 2,
|
|
161
|
+
"targetId": "<deptId>",
|
|
162
|
+
"sourceType": 1,
|
|
163
|
+
"objType": "department",
|
|
164
|
+
"objTypeSpan": "部门",
|
|
165
|
+
"_entityType": "dept",
|
|
166
|
+
"obj_id_department": [{ "id": "<deptId>", "name": "总经办", "content": "总经办", "title": "总经办" }],
|
|
167
|
+
"obj_id_span": "总经办",
|
|
168
|
+
"objIdList": ["总经办"],
|
|
169
|
+
"seclevel": { "min": -999, "max": 999 },
|
|
170
|
+
"shareKey": "tmp_dept_<deptId>_abc123"
|
|
174
171
|
}
|
|
175
172
|
```
|
|
176
173
|
|
|
@@ -186,7 +183,7 @@ Content-Type: application/json
|
|
|
186
183
|
| 部门 | `POST /api/workflow/pathdef/common/browser/complete/department` | body 含 `searchValue` |
|
|
187
184
|
| 角色 | `POST /api/hrm/common/browser/complete/role` | body 含 `searchValue` |
|
|
188
185
|
| **群组** | **`POST /api/hrm/common/browser/data/channel`** | **勿用** `/.../group`(返回 browser not found);UI 称群组,API 类型为 `channel` |
|
|
189
|
-
| 分部/岗位 | 设计器 shareBrowser
|
|
186
|
+
| 分部/岗位 | 设计器 shareBrowser 接口返回为准 | 报表弹窗 browser 常仅注册 resource/role/department/subcompany |
|
|
190
187
|
|
|
191
188
|
**Live 示例**(eteams · 进销存应用):
|
|
192
189
|
|
|
@@ -205,7 +202,7 @@ UI:**引用矩阵表**(矩阵表 / e-Builder 表单)→ **条件** → **
|
|
|
205
202
|
|
|
206
203
|
| 字段 | 说明 |
|
|
207
204
|
|------|------|
|
|
208
|
-
| `selectedType` | 组织/矩阵类型,传入 `OrgType.valueOf(...)`(如矩阵表、e-Builder
|
|
205
|
+
| `selectedType` | 组织/矩阵类型,传入 `OrgType.valueOf(...)`(如矩阵表、e-Builder 表单,**接口返回为准**) |
|
|
209
206
|
| `dataId` | JSON 字符串,矩阵/表单引用,如 `[{"id":"<matrixOrFormId>","name":"..."}]` |
|
|
210
207
|
| `matrixConditionData` | 矩阵值**条件**(平台矩阵条件 DSL,JSON 字符串) |
|
|
211
208
|
| `matrixValueRelation` | 矩阵值**关系/取值字段**映射(JSON 字符串) |
|
|
@@ -230,22 +227,22 @@ POST /api/bs/edc/report/permission/matrix/list
|
|
|
230
227
|
|
|
231
228
|
```json
|
|
232
229
|
{
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
230
|
+
"<reportId>": {
|
|
231
|
+
"viewRight": [],
|
|
232
|
+
"disableRight": [],
|
|
233
|
+
"viewMatrixRight": [
|
|
234
|
+
{
|
|
235
|
+
"id": "tmp_matrix_001",
|
|
236
|
+
"targetId": "<reportId>",
|
|
237
|
+
"selectedType": "<OrgType枚举名>",
|
|
238
|
+
"dataId": "[{\"id\":\"<matrixId>\",\"name\":\"矩阵表名\"}]",
|
|
239
|
+
"matrixConditionData": "<条件JSON字符串>",
|
|
240
|
+
"matrixValueRelation": "<取值字段JSON字符串>",
|
|
241
|
+
"rightsType": "1",
|
|
242
|
+
"rightsName": "矩阵权限说明"
|
|
243
|
+
}
|
|
244
|
+
]
|
|
245
|
+
}
|
|
249
246
|
}
|
|
250
247
|
```
|
|
251
248
|
|
|
@@ -260,19 +257,19 @@ POST /api/bs/edc/report/permission/matrix/save
|
|
|
260
257
|
Content-Type: application/json
|
|
261
258
|
|
|
262
259
|
[
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
260
|
+
{
|
|
261
|
+
"id": "tmp_disable_matrix_001",
|
|
262
|
+
"targetId": "<reportId>",
|
|
263
|
+
"selectedType": "<OrgType>",
|
|
264
|
+
"dataId": "[{...}]",
|
|
265
|
+
"matrixConditionData": "...",
|
|
266
|
+
"matrixValueRelation": "...",
|
|
267
|
+
"rightsType": "-1"
|
|
268
|
+
}
|
|
272
269
|
]
|
|
273
270
|
```
|
|
274
271
|
|
|
275
|
-
> **矩阵字段 JSON 结构**因「矩阵表 vs e-Builder 表单」及租户配置而异,**必须以设计器 Network
|
|
272
|
+
> **矩阵字段 JSON 结构**因「矩阵表 vs e-Builder 表单」及租户配置而异,**必须以设计器 Network 接口返回为金标准**;Skill 禁止臆造 `matrixConditionData` / `matrixValueRelation` 内部键名。
|
|
276
273
|
|
|
277
274
|
---
|
|
278
275
|
|
|
@@ -287,12 +284,12 @@ Content-Type: application/json
|
|
|
287
284
|
|
|
288
285
|
| 能力 | Node | Python |
|
|
289
286
|
|------|------|--------|
|
|
290
|
-
| 复制 + 所有人 + 加菜单 | `
|
|
291
|
-
| **任意使用范围** | **`
|
|
292
|
-
| 存为新版本 | `
|
|
287
|
+
| 复制 + 所有人 + 加菜单 | `e10-cli report lifecycle` | `copy_sheet` / `save_permissions` / `add_report_to_menu` |
|
|
288
|
+
| **任意使用范围** | **`e10-cli report scope`** | `build_share_entry` + `save_permissions` |
|
|
289
|
+
| 存为新版本 | `e10-cli report version`(`--list-only` 只读) | `save_as_version()` |
|
|
293
290
|
| 构建 share 行 | — | `ReportApiClient.build_share_entry()`(`group`→`channel`) |
|
|
294
291
|
| 列表/矩阵读 | — | `list_permission_table` / `list_matrix_rights` |
|
|
295
|
-
| **矩阵增删 CLI** | **`
|
|
292
|
+
| **矩阵增删 CLI** | **`e10-cli report group` / `e10-cli report scope matrix`** | `delete_use_matrix_by_replace` / `soft_delete_matrix_row` / `save_matrix_rights` |
|
|
296
293
|
|
|
297
294
|
**Node — 矩阵列表 / 添加 / 删除**:
|
|
298
295
|
|
|
@@ -302,17 +299,17 @@ e10-cli report scope matrix save --app-id <appId> --report-id <id> --file matrix
|
|
|
302
299
|
e10-cli report scope matrix delete --app-id <appId> --report-id <id> --matrix-id <mid> --type 1
|
|
303
300
|
```
|
|
304
301
|
|
|
305
|
-
> 使用矩阵删除走 `savePermissions` 全量替换剩余行;禁用矩阵删除走 `matrix/save` + `deleteType:1`。条件 DSL
|
|
302
|
+
> 使用矩阵删除走 `savePermissions` 全量替换剩余行;禁用矩阵删除走 `matrix/save` + `deleteType:1`。条件 DSL 须接口返回,见 §4.2/4.3。
|
|
306
303
|
> 列表页分组/移动/转移见 **`report-list-page-ops-guide.md`**。
|
|
307
304
|
|
|
308
305
|
**Node — 角色 + 群组使用范围**:
|
|
309
306
|
|
|
310
307
|
```bash
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
308
|
+
e10-cli report scope \
|
|
309
|
+
--host https://<your-e10-host> \
|
|
310
|
+
--app-id <your-app-id> \
|
|
311
|
+
--report-id 1310967397636390912 \
|
|
312
|
+
--scope "role:eb分权管理员,channel:测试-zc0813"
|
|
316
313
|
```
|
|
317
314
|
|
|
318
315
|
**Python 示例**:
|
|
@@ -323,11 +320,11 @@ from report_api_client import ReportApiClient
|
|
|
323
320
|
client = ReportApiClient(...)
|
|
324
321
|
rid = "1310967397636390912"
|
|
325
322
|
client.save_permissions(rid, {
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
323
|
+
"viewRight": [client.build_share_entry("all", report_id=rid)],
|
|
324
|
+
"disableRight": [client.build_share_entry("department", "123", "总经办", report_id=rid, permission_type=-1)],
|
|
325
|
+
"viewMatrixRight": [],
|
|
329
326
|
})
|
|
330
|
-
client.list_permission_table(rid, "report_view", permission_type=-1)
|
|
327
|
+
client.list_permission_table(rid, "report_view", permission_type=-1) # 回读禁用范围
|
|
331
328
|
```
|
|
332
329
|
|
|
333
330
|
---
|
|
@@ -353,7 +350,7 @@ client.list_permission_table(rid, "report_view", permission_type=-1) # 回读禁
|
|
|
353
350
|
| 群组写成 `targetType:5` 或 `objType:group` | 落库成**分部** | 群组 = **`channel` + targetType `14`** |
|
|
354
351
|
| 搜群组用 `/browser/.../group` | browser not found | 改用 **`/hrm/.../data/channel`** |
|
|
355
352
|
| 部门 targetType 写成 3 | 与角色混淆 | 部门 = **`2`** |
|
|
356
|
-
| 权限 ID 末位漂移 | JS JSON.parse | 用
|
|
353
|
+
| 权限 ID 末位漂移 | JS JSON.parse | 用 `` / `` |
|
|
357
354
|
| savePermissions 后旧行还在 | 误解为增量 | 接口为**全量替换**,需提交完整 viewRight/disableRight |
|
|
358
355
|
|
|
359
356
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 报表需求分析交付规范(仅用户要「分析」时必做)
|
|
2
2
|
|
|
3
|
-
> **冷启动禁止通读(纯搭表)**:见 `
|
|
3
|
+
> **冷启动禁止通读(纯搭表)**:见 `api-report-build-fast-path.md`。
|
|
4
4
|
> **适用范围**:凡用户**明确要求**「需求分析」「报表需求分析」「根据效果图/截图分析」「报表搭建指导 / 图示」时,按本规范输出完整分析 + **报表搭建图示**。
|
|
5
5
|
> **不适用**:用户只要「搭建 / 创建报表 / 生成报表」—— **跳过本模板**,直接走 `api-report-build-fast-path.md` + `report-delivery-contract.md` **模式 A**(交设计器地址即结束)。
|
|
6
6
|
> **HTML 手册**:非强制;仅用户点名要 HTML/指导文档时才 `build_guide_html.py`。
|
|
@@ -9,6 +9,31 @@
|
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
+
## 〇、场景识别(**先判定,再套配置** · SKILL A0.13)
|
|
13
|
+
|
|
14
|
+
> 本节规则**优先级高于原有报表规则**,但**仅在识别命中时启用**;
|
|
15
|
+
> **不满足识别条件的普通需求 → 完全沿用原有报表逻辑**,不执行任何特殊配置。
|
|
16
|
+
|
|
17
|
+
**识别方式**:解析需求文件**内容结构**(**不依赖关键词**)—— `e10-cli report scene detect --req <需求文件>`。
|
|
18
|
+
|
|
19
|
+
| 场景 | 识别条件(结构特征) | 命中后的强制配置(分析报告必须写明) |
|
|
20
|
+
|------|---------------------|-----------------------------------|
|
|
21
|
+
| **A · 同 sheet 多报表** | 同一个 sheet 存在**多行数据源字段单元格** → 上下放置多个独立报表 | ① Sheet 左上角**公共父格**(自定义文本 + `isActiveParent`);② 各独立报表的**扩展父格**左父格**统一绑定**它;③ 其余格父格**维持不变** |
|
|
22
|
+
| **B · 自增序号** | 单元格标注**【自增序号单元格】** | 统一用系统序号 `{seq}`(`SequenceNumber` · **纵向扩展**);**禁止**公式生成序号 |
|
|
23
|
+
| **C · 单元格跳转 Sheet 页** | 需求描述含「**点击跳转sheetX / 点击可跳转到sheetX**」 | 当前格加**点击跳转事件**:`pcHreflink` = 报表预览页 `/sp/edc/report/view/<reportId>` + **`sheetIndex=<N-1>`**(sheet1→0,**从 0 起**);打开方式默认**弹出页** `openType="blank"` |
|
|
24
|
+
|
|
25
|
+
**识别边界(防过度触发)**:① 仅**同一 sheet 多组独立数据源字段**才算多报表,**单报表单数据源 sheet 不加公共父格**;
|
|
26
|
+
② 公共父格**只**做本 sheet 多报表的父格归集,**不改**单报表内部原有左父格;③ 只有**明确标注**「自增序号单元格」才用 `{seq}`,
|
|
27
|
+
**普通序号 / 手工编号不触发**;④ 跳转 Sheet **仅当**出现「点击跳转sheetX」这类描述才触发,`sheetIndex` **从 0 起**计数。
|
|
28
|
+
|
|
29
|
+
**判据纪律**:交叉表的「列维表头」(`Horizontal`) 与「行维入口」(`Vertical`) 属**同一矩阵**,
|
|
30
|
+
**不是**两个独立报表 —— 场景 A 只认**纵向扩展根**,且必须**分布在不同行**。
|
|
31
|
+
|
|
32
|
+
> 分析报告请**单独列出「场景识别」小节**:命中场景 / 结构证据(数据区数、标注位置、跳转描述)/ 对应强制配置 / 未命中则写明「沿用原有规则」。
|
|
33
|
+
> 细则:`branch-scene-guide.md` · `expansion-block-parent-config-guide.md`(场景 A 细化:三类单元格口径/泛化禁令);注意点 `BUILD-43` / `BUILD-44` / `BUILD-45` / `BUILD-46` / `BUILD-47` / `BUILD-48`。
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
12
37
|
## 一、交付清单(缺一不可)
|
|
13
38
|
|
|
14
39
|
每次报表需求分析必须包含以下 **8 个章节**(顺序固定):
|
|
@@ -44,7 +69,6 @@
|
|
|
44
69
|
|
|
45
70
|
**父格**:单数据集且无指定计算时填 **默认**(见 `datasource-selection-and-parent-filter-guide.md` §〇);勿臆造自定义坐标链。
|
|
46
71
|
|
|
47
|
-
|
|
48
72
|
**显示方式**:`列表` · `分组` · `排列` · `汇总` · `隐藏`
|
|
49
73
|
|
|
50
74
|
**汇总方式**:`—` · `sum` · `count` · `distinctcount` · `avg` · `max` · `min`
|
|
@@ -92,23 +116,23 @@
|
|
|
92
116
|
|
|
93
117
|
```text
|
|
94
118
|
┌─────────────────────────────────────────────────────────────┐
|
|
95
|
-
│
|
|
119
|
+
│ {报表名称} │
|
|
96
120
|
├─────────────────────────────────────────────────────────────┤
|
|
97
|
-
│
|
|
121
|
+
│ [查询条件区] [搜索] [重置] [导出] [打印] [更多] │
|
|
98
122
|
├─────────────────────────────────────────────────────────────┤
|
|
99
|
-
│
|
|
123
|
+
│ 报表 Sheet 工作区 │
|
|
100
124
|
└─────────────────────────────────────────────────────────────┘
|
|
101
125
|
```
|
|
102
126
|
|
|
103
127
|
### 5.2 网格与表头合并(R1/R2/R3)
|
|
104
128
|
|
|
105
129
|
```text
|
|
106
|
-
|
|
107
|
-
R1
|
|
108
|
-
R2
|
|
109
|
-
R3
|
|
110
|
-
|
|
111
|
-
|
|
130
|
+
A B C …
|
|
131
|
+
R1 ┌─────────┬──────────────── 分组标题1 ────────────────┬──────── 分组标题2 ────────┐
|
|
132
|
+
R2 │ 列名A │ 列名B │ 列名C │ …
|
|
133
|
+
R3 │ ★行基格 │ 指标B │ 指标C │ … ← 数据区起点,行基格纵向扩展
|
|
134
|
+
│ 维度值1 │ … │ … │
|
|
135
|
+
│ 维度值2 │ … │ … │
|
|
112
136
|
```
|
|
113
137
|
|
|
114
138
|
- 标注 **★ 行基格** 坐标(如 A3)
|
|
@@ -119,41 +143,41 @@ R3 │ ★行基格 │ 指标B │ 指标C │ … ← 数据区起点,行基
|
|
|
119
143
|
|
|
120
144
|
```mermaid
|
|
121
145
|
flowchart TB
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
146
|
+
A3["A3 行基格<br/>纵向扩展"]
|
|
147
|
+
B3["B3 指标列<br/>左父格→A3<br/>纵向+汇总"]
|
|
148
|
+
E3["E3 公式列<br/>左父格→A3<br/>不扩展"]
|
|
149
|
+
A3 --> B3
|
|
150
|
+
A3 --> E3
|
|
127
151
|
```
|
|
128
152
|
|
|
129
153
|
### 5.4 数据集挂载关系
|
|
130
154
|
|
|
131
155
|
```mermaid
|
|
132
156
|
flowchart LR
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
157
|
+
Q[查询条件] --> DS1[(数据集1)]
|
|
158
|
+
Q --> DS2[(数据集2)]
|
|
159
|
+
DS1 --> C1[列 B~J]
|
|
160
|
+
DS2 --> C2[列 K~S]
|
|
161
|
+
DS2 -.leftFilterField.-> DS1
|
|
138
162
|
```
|
|
139
163
|
|
|
140
164
|
### 5.5 列级筛选叠加示意(可选,多口径报表建议画)
|
|
141
165
|
|
|
142
166
|
```text
|
|
143
|
-
|
|
167
|
+
[datasetFilter 全局] + [列 customFilter 时间/新客/伙伴] + [父格筛选 跨表关联]
|
|
144
168
|
```
|
|
145
169
|
|
|
146
170
|
### 5.6 Sheet1 式单元格配置示例(R3 任选一列展示 6 项)
|
|
147
171
|
|
|
148
172
|
```text
|
|
149
173
|
┌──────────────────────────────────────────┐
|
|
150
|
-
│ D3 当前月份新客户伙伴签合同数量
|
|
174
|
+
│ D3 当前月份新客户伙伴签合同数量 │
|
|
151
175
|
├──────────────────────────────────────────┤
|
|
152
|
-
│ 字段:
|
|
153
|
-
│ 父格:
|
|
154
|
-
│ 显示方式: 汇总
|
|
155
|
-
│ 扩展方向: 纵向扩展
|
|
156
|
-
│ 父格筛选: -(同数据集无)
|
|
176
|
+
│ 字段: 合同业绩表.合同号 │
|
|
177
|
+
│ 父格: A3(大区/专项) │
|
|
178
|
+
│ 显示方式: 汇总 │
|
|
179
|
+
│ 扩展方向: 纵向扩展 │
|
|
180
|
+
│ 父格筛选: -(同数据集无) │
|
|
157
181
|
│ 自定义筛选:业绩年月=当月 AND 新客 AND 伙伴签 │
|
|
158
182
|
└──────────────────────────────────────────┘
|
|
159
183
|
```
|
|
@@ -185,7 +209,6 @@ API 写入约束见 `formula-cell-api-guide.md`(cellText 无前导 `=`)。
|
|
|
185
209
|
|
|
186
210
|
## 八、完整示例索引
|
|
187
211
|
|
|
188
|
-
- **EBU 37 列分组表**:`本地工作目录` + `outputs/新版需求-EBU经营数据统计_字段映射.json`
|
|
189
212
|
- **新客户伙伴签约 19 列**:对话示例「2026-06 新客户伙伴签约统计报表」需求分析(A~S 列、双分组表头)
|
|
190
213
|
|
|
191
214
|
---
|
|
@@ -200,3 +223,44 @@ API 写入约束见 `formula-cell-api-guide.md`(cellText 无前导 `=`)。
|
|
|
200
223
|
- [ ] 公式列是否标注「不扩展」与除零规则?
|
|
201
224
|
- [ ] 三类筛选是否分工清晰、无重复?
|
|
202
225
|
- [ ] 是否列出 **待业务确认项**?
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## 十、需求文件解析(Excel 合并单元格 · 逐格勾稽)
|
|
230
|
+
|
|
231
|
+
> **报表结构以需求文件为准逐格还原**:标题跨度、纵向/横向合并、行列数——**禁止凭目测**。
|
|
232
|
+
|
|
233
|
+
### 10.1 xlrd `merged_cells` 为**半开区间**
|
|
234
|
+
|
|
235
|
+
用 `xlrd` 解析 `.xls`(`formatting_info=True` 才带合并信息):
|
|
236
|
+
|
|
237
|
+
```python
|
|
238
|
+
import xlrd
|
|
239
|
+
wb = xlrd.open_workbook(path, formatting_info=True) # ★ 必须 formatting_info=True,否则 merged_cells 为空
|
|
240
|
+
sh = wb.sheet_by_index(0)
|
|
241
|
+
for (r1, r2, c1, c2) in sh.merged_cells: # ★ 半开区间 [r1,r2) × [c1,c2)
|
|
242
|
+
rows = r2 - r1 # 跨行数 = r2 − r1(不是 r2 − r1 + 1)
|
|
243
|
+
cols = c2 - c1 # 跨列数 = c2 − c1
|
|
244
|
+
# 合并左上角 = (r1, c1)
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
| 易错点 | 正解 |
|
|
248
|
+
|--------|------|
|
|
249
|
+
| 跨行/跨列数 | **`r2 − r1`** / **`c2 − c1`**(半开区间,**不要 +1**) |
|
|
250
|
+
| 不开 `formatting_info` | `merged_cells` **恒为空** → 表头合并全丢 |
|
|
251
|
+
| 行列基准 | xlrd 行列均 **0 基**;落到报表 `style.cellType.x/y` 也 0 基 |
|
|
252
|
+
|
|
253
|
+
### 10.2 逐格严格比对 + 回读勾稽
|
|
254
|
+
|
|
255
|
+
1. **搭之前**:把需求文件的**每一处合并区间**(含表头逐格)记录成清单(标题跨度、纵向/横向合并、行列数)。
|
|
256
|
+
2. **搭之后**:用 `getReportDevInfo` 回读,把 `xCount/yCount`(合并跨度)与需求清单**逐条勾稽**,
|
|
257
|
+
任何一处不一致即视为未还原(`dump cells` 可回看每格 `xCount/yCount`)。
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## 十一、多独立扩展块(统计块)需求识别(SKILL A0.13 场景 A 细化)
|
|
262
|
+
|
|
263
|
+
需求文件里**多行数据源字段单元格**、上下放置多个独立统计块时 → 命中 **场景 A**(见 §〇)。
|
|
264
|
+
分析报告须写明:**公共父格 + 三类单元格口径**(入口格/标题·表头行整行 Const 绑公共父格;数据格保持默认链)、
|
|
265
|
+
**合计行按维度合计 / 总计行独立链**、**扩展带公式格父格**。
|
|
266
|
+
> 细则:`expansion-block-parent-config-guide.md`;注意点 `BUILD-46/47/48`。
|