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
|
@@ -1,148 +1,183 @@
|
|
|
1
|
-
# 数据源选用与多源父格(强制)
|
|
2
|
-
|
|
3
|
-
> **适用**:需求分析、配置生成、API 建表。
|
|
4
|
-
> **目标**:少挂数据源、少配父格筛选、控制找表空耗。
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 〇、左父格默认优先(强制 · 单数据集)
|
|
9
|
-
|
|
10
|
-
> **事故对照**:同一需求文件生成的「供应商信息管理」`866766714447126529` 与「供应商-1」`1312703681350901760` 均为**单数据集**,却一个把字段左父格串成「逐列自定义链」,一个把明细列都自定义挂到分组列 —— 设计器里大量显示「自定义」,与常规「默认」不一致。
|
|
11
|
-
|
|
12
|
-
**原则**:无多数据集、且需求**未指定**特殊计算/交叉/合计挂靠时,**Field / 普通 Const** 左父格一律默认(`leftX=-1, leftY=-1` / `["default",0,0]`)。
|
|
13
|
-
|
|
14
|
-
> **例外(强制)**:**超链接 Const**(`pcHreflink` 含 `{L4}` 等)**不适用**「左父格默认」。上父格仍为 `-1`;左父格须指向占位依赖的数据格。见 `report-self-check-guide.md` §2.2。
|
|
15
|
-
> **已有报表**:用户未点名时**禁止**批量改父格。
|
|
16
|
-
|
|
17
|
-
| 场景 | 左父格 | 说明 |
|
|
18
|
-
|------|--------|------|
|
|
19
|
-
| **单数据集**列表 / 简单分组 | **默认** | 引擎按相邻扩展自动解析;**禁止**为「看起来整齐」逐格写 custom |
|
|
20
|
-
| 单数据集但需求写明合计行挂某分组、交叉表行列挂靠、公式指定父格 | **自定义**(仅涉及的格) | 见 building-guide / formula-cell-api-guide |
|
|
21
|
-
| **多数据集**跨源关联 | 连续同源区**仅入口格**自定义 + 父格筛选 | 见
|
|
22
|
-
|
|
23
|
-
**硬约束**
|
|
24
|
-
|
|
25
|
-
1. 报表内有效 `dataSetId` 只有 **1 个**(忽略 `-1`)→ **新建/从需求生成时** Field 左父格用 default;**禁止**链式 `左父格=上一列`、也**禁止**无必要地把所有 List 列挂到同一 Group 列。
|
|
26
|
-
2. 同数据集 **禁止**配 `leftFilterField` / `subordination`(那是跨源用的)。
|
|
27
|
-
3. 只有用户/需求明确「按 XX 分组计算」「合计挂在 A3」「交叉维」时才对该格设自定义父格。
|
|
28
|
-
4. 需求分析列级表:单数据集时「父格」列填 **默认**,勿臆造自定义坐标。
|
|
29
|
-
5. **禁止擅自改已有报表父格**:用户仅强调「规则上默认即可」时,**只更新 Skill/新建逻辑**;**不得**对线上已有报表批量把自定义左/上父格改成 default,除非用户**明确要求修改该报表**。
|
|
30
|
-
6. **上父格**:无交叉/横向扩展需求时保持默认/无;勿给普通列表单元格(如 M4 链接文案)乱设上父格。
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
## 一、尽可能少用数据源(强制)
|
|
35
|
-
|
|
36
|
-
**原则**:主业务表上**已有**可展示字段时,**禁止**仅为「好看/完整」再挂关联表。
|
|
37
|
-
|
|
38
|
-
| 场景 | 正确做法 | 错误做法 |
|
|
39
|
-
|------|----------|----------|
|
|
40
|
-
| 考勤表已有用户 ID / 姓名 / 工号 | 直接绑考勤表字段 | 再关联人员表只为显示人员 |
|
|
41
|
-
| 人员表已有部门名称 / 部门 ID | 直接绑人员表部门字段 | 再关联部门表只为显示部门 |
|
|
42
|
-
| 合同表已有供应商名称 | 直接绑合同表字段 | 再挂供应商主数据表只为回显名称 |
|
|
43
|
-
| 需求明确要「主数据维度扩展」(如按部门树下钻、人员多属性)且主表无该字段 | 才允许加第二数据源 | — |
|
|
44
|
-
|
|
45
|
-
**判定顺序**
|
|
46
|
-
|
|
47
|
-
1. 先读主表 `fieldsAndOriginFields` / `form read`,列出需求列能否在**同一 sourceId** 上取到。
|
|
48
|
-
2. 能取到 → **只 add 这一张表**(或需求点名的最少表集合)。
|
|
49
|
-
3. 取不到且业务必须跨表关联 → 再加第二源,并走 §二 父格规则。
|
|
50
|
-
|
|
51
|
-
**禁止**:按「业务实体清单」机械每人/每部门/每组织各挂一张表;禁止未核对字段就先 `addDataset` 多张。
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## 二、多数据源 ·
|
|
56
|
-
|
|
57
|
-
>
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
2.
|
|
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
|
-
|
|
1
|
+
# 数据源选用与多源父格(强制)
|
|
2
|
+
|
|
3
|
+
> **适用**:需求分析、配置生成、API 建表。
|
|
4
|
+
> **目标**:少挂数据源、少配父格筛选、控制找表空耗。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 〇、左父格默认优先(强制 · 单数据集)
|
|
9
|
+
|
|
10
|
+
> **事故对照**:同一需求文件生成的「供应商信息管理」`866766714447126529` 与「供应商-1」`1312703681350901760` 均为**单数据集**,却一个把字段左父格串成「逐列自定义链」,一个把明细列都自定义挂到分组列 —— 设计器里大量显示「自定义」,与常规「默认」不一致。
|
|
11
|
+
|
|
12
|
+
**原则**:无多数据集、且需求**未指定**特殊计算/交叉/合计挂靠时,**Field / 普通 Const** 左父格一律默认(`leftX=-1, leftY=-1` / `["default",0,0]`)。
|
|
13
|
+
|
|
14
|
+
> **例外(强制)**:**超链接 Const**(`pcHreflink` 含 `{L4}` 等)**不适用**「左父格默认」。上父格仍为 `-1`;左父格须指向占位依赖的数据格。见 `report-self-check-guide.md` §2.2。
|
|
15
|
+
> **已有报表**:用户未点名时**禁止**批量改父格。
|
|
16
|
+
|
|
17
|
+
| 场景 | 左父格 | 说明 |
|
|
18
|
+
|------|--------|------|
|
|
19
|
+
| **单数据集**列表 / 简单分组 | **默认** | 引擎按相邻扩展自动解析;**禁止**为「看起来整齐」逐格写 custom |
|
|
20
|
+
| 单数据集但需求写明合计行挂某分组、交叉表行列挂靠、公式指定父格 | **自定义**(仅涉及的格) | 见 building-guide / formula-cell-api-guide |
|
|
21
|
+
| **多数据集**跨源关联 | 连续同源区**仅入口格**自定义 + 父格筛选 | 见 §二(**最高优先**);区域内**其余字段左父格指「入口格」** |
|
|
22
|
+
|
|
23
|
+
**硬约束**
|
|
24
|
+
|
|
25
|
+
1. 报表内有效 `dataSetId` 只有 **1 个**(忽略 `-1`)→ **新建/从需求生成时** Field 左父格用 default;**禁止**链式 `左父格=上一列`、也**禁止**无必要地把所有 List 列挂到同一 Group 列。
|
|
26
|
+
2. 同数据集 **禁止**配 `leftFilterField` / `subordination`(那是跨源用的)。
|
|
27
|
+
3. 只有用户/需求明确「按 XX 分组计算」「合计挂在 A3」「交叉维」时才对该格设自定义父格。
|
|
28
|
+
4. 需求分析列级表:单数据集时「父格」列填 **默认**,勿臆造自定义坐标。
|
|
29
|
+
5. **禁止擅自改已有报表父格**:用户仅强调「规则上默认即可」时,**只更新 Skill/新建逻辑**;**不得**对线上已有报表批量把自定义左/上父格改成 default,除非用户**明确要求修改该报表**。
|
|
30
|
+
6. **上父格**:无交叉/横向扩展需求时保持默认/无;勿给普通列表单元格(如 M4 链接文案)乱设上父格。
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 一、尽可能少用数据源(强制)
|
|
35
|
+
|
|
36
|
+
**原则**:主业务表上**已有**可展示字段时,**禁止**仅为「好看/完整」再挂关联表。
|
|
37
|
+
|
|
38
|
+
| 场景 | 正确做法 | 错误做法 |
|
|
39
|
+
|------|----------|----------|
|
|
40
|
+
| 考勤表已有用户 ID / 姓名 / 工号 | 直接绑考勤表字段 | 再关联人员表只为显示人员 |
|
|
41
|
+
| 人员表已有部门名称 / 部门 ID | 直接绑人员表部门字段 | 再关联部门表只为显示部门 |
|
|
42
|
+
| 合同表已有供应商名称 | 直接绑合同表字段 | 再挂供应商主数据表只为回显名称 |
|
|
43
|
+
| 需求明确要「主数据维度扩展」(如按部门树下钻、人员多属性)且主表无该字段 | 才允许加第二数据源 | — |
|
|
44
|
+
|
|
45
|
+
**判定顺序**
|
|
46
|
+
|
|
47
|
+
1. 先读主表 `fieldsAndOriginFields` / `form read`,列出需求列能否在**同一 sourceId** 上取到。
|
|
48
|
+
2. 能取到 → **只 add 这一张表**(或需求点名的最少表集合)。
|
|
49
|
+
3. 取不到且业务必须跨表关联 → 再加第二源,并走 §二 父格规则。
|
|
50
|
+
|
|
51
|
+
**禁止**:按「业务实体清单」机械每人/每部门/每组织各挂一张表;禁止未核对字段就先 `addDataset` 多张。
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 二、多数据源 · 连续区域父格链(★★ 最高优先 · 强制)
|
|
56
|
+
|
|
57
|
+
> **本节是父格配置的第一优先规则**:先认「入口格」,其余同源字段**全部跟随入口格**。
|
|
58
|
+
> 跨数据集关联的 fieldKey 写法仍遵守 `cross-dataset-filter-guide.md`(`id=currentField` 等);本节约束 **父格链怎么连、筛选配在哪几格**。
|
|
59
|
+
|
|
60
|
+
### 2.0 一句话铁律(先记这句)
|
|
61
|
+
|
|
62
|
+
> **父格筛选只配在该区域的「入口格」上;同区域内的后续字段只要是同一个数据集,一律以这个入口字段为父格。**
|
|
63
|
+
|
|
64
|
+
### 2.1 规则
|
|
65
|
+
|
|
66
|
+
同一布局里,若**连续一片区域**(同行连续列 / 同列连续行)的字段**全部来自同一数据源 B**,且整个区域需挂到另一数据源 A 上:
|
|
67
|
+
|
|
68
|
+
| 角色 | 单元格 | 左父格 `leftX/leftY` | `subordination` + `leftFilterField`(父格筛选) |
|
|
69
|
+
|------|--------|----------------------|--------------------------------------------------|
|
|
70
|
+
| **入口格** | 该连续区域的**第一个**字段(最左 / 最上) | 指向 **A 侧关联键字段所在格**(自定义父格) | **必须配置**(A.key = B.fk) |
|
|
71
|
+
| **后续格** | 同区域其余**同源**字段 | **必须显式指向「本区域入口格」的坐标** | **必须为空**(继承入口格的筛选) |
|
|
72
|
+
|
|
73
|
+
四条硬约束:
|
|
74
|
+
|
|
75
|
+
1. **筛选唯一**:一个连续同源区域**有且仅有 1 个入口格**,只有它能配 `subordination` / `leftFilterField`;任何后续格再配一遍 = 违规(重复筛选)。
|
|
76
|
+
2. **父格跟随**:后续同源字段的左父格**必须**是「本区域入口格」坐标;**禁止**指向异源格(典型误配:指到 A 区的某个格)。指了异源格又没带筛选 → 该列**跨源却无筛选**,脱离入口格的关联约束 → **数据串源、结果对不上**。
|
|
77
|
+
3. **显式写坐标**:多数据集报表里**不要**依赖引擎自动解析扩展链(`-1,-1` / 设计器「默认」)。入口格与后续格一律显式写 `leftX/leftY`,落库后可直接回读校验。
|
|
78
|
+
4. **区域被打断就分段**:连续区域被公式列 / 常量列 / 异源列打断 → **每一段各自**认定入口格(段内规则不变,段首配筛选、段内其余跟随段首)。
|
|
79
|
+
|
|
80
|
+
> **与 §〇 的边界(勿混)**:本节只适用**多数据集**报表的跨源区域。
|
|
81
|
+
> **单数据集**报表的 Field 左父格仍按 §〇 用默认 `-1,-1`,**不要**套用本节。
|
|
82
|
+
|
|
83
|
+
### 2.2 示意
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
A 区(数据源 A)… 〔关联键格〕
|
|
87
|
+
B 区连续(数据源 B,例:第 3 行 E~G 列):
|
|
88
|
+
E3 左父格 → 〔A 区关联键格〕 + 父格筛选(A.key = B.fk) ← 入口格:唯一配筛选的格
|
|
89
|
+
F3 左父格 → E3(本区域入口格) · 父格筛选 空
|
|
90
|
+
G3 左父格 → E3(本区域入口格) · 父格筛选 空
|
|
91
|
+
…
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### 2.3 反例(验证踩过)
|
|
95
|
+
|
|
96
|
+
1. **后续格指向异源格**(真实事故):连续同源区域 E3/F3/G3,入口格 E3 的筛选配好了,但 F3/G3 的 `leftX/leftY` 指到了 A 区的 A3、且没带筛选 → 这两列**跨源却无筛选**,脱离入口格约束、数据串源;设计器里的表现就是用户问的「G3 为啥没有配置父格筛选」。
|
|
97
|
+
- 报表 `1315015331503456271` 验证:F3/G3 的 `leftY` 由 `0`(A 列)改为 `4`(E 列)后恢复正常。
|
|
98
|
+
2. **每格都配一遍**:对 B1、B2、B3 **每个**都设左父格指向 A 区,并各写一遍 `leftFilterField` → 冗余、易错、预览异常风险高。
|
|
99
|
+
3. **把被打断的区域当一整块**:连续区域被公式列 / 常量列打断后仍只配一个入口筛选 → 关联失效。
|
|
100
|
+
|
|
101
|
+
### 2.4 与需求分析表的填法
|
|
102
|
+
|
|
103
|
+
列级配置总表中:
|
|
104
|
+
|
|
105
|
+
- **连续同源区域**:**仅入口列**「父格筛选」写关联;其余列父格筛选填 `-`,**父格填「本区域入口列」**(不是 `default`、更不是异源格)。见 §2.1。
|
|
106
|
+
- **关联键来源**(见 §2.5):需求已写明 → 直接填;推断得到 → 父格筛选列标注「推断·待确认」,并在待确认项列出。
|
|
107
|
+
|
|
108
|
+
### 2.5 多表关联键:需求优先 · 推断须确认(强制)
|
|
109
|
+
|
|
110
|
+
> 报表挂 **≥2 个数据集** 且需跨源父格筛选时适用。配置写法仍见 `cross-dataset-filter-guide.md`。
|
|
111
|
+
|
|
112
|
+
#### 2.5.1 关联键如何确定
|
|
113
|
+
|
|
114
|
+
| 优先级 | 来源 | Agent 行为 |
|
|
115
|
+
|--------|------|------------|
|
|
116
|
+
| **1** | 需求/用户**明确**写出两表关联(如「销售单.客户ID = 客户.ID」「按供应商名称关联」) | **直接**按该对字段配入口格 `subordination` + `leftFilterField`;**不必**再问 |
|
|
117
|
+
| **2** | 需求**未写**关联字段 | 用两表字段元数据**检索匹配**(见下)→ 选出候选 → **必须提示用户确认** 后再落库;用户未回时可用置信度最高的一对**先配**,但交付时注明「推断关联·请确认」 |
|
|
118
|
+
| **3** | 无法推断或候选冲突 | **打断询问**关联关系;**禁止**瞎配;可先交单表/已确认部分,关联筛选标待补(非阻塞,见 `failure-cleanup-and-nonblocking-guide.md`) |
|
|
119
|
+
|
|
120
|
+
#### 2.5.2 字段值/元数据匹配(需求未写明时)
|
|
121
|
+
|
|
122
|
+
对父表 A、子表 B 的字段列表(优先 `fieldsAndOriginFields` / `e10-cli report join suggest`):
|
|
123
|
+
|
|
124
|
+
1. **显示名全等**(如双方都有「供应商名称」)→ 高置信
|
|
125
|
+
2. **系统名/业务键同构**(同 `field_*` 后缀模式、`xxxId`↔`xxx`、外键命名含对方表名)→ 中高置信
|
|
126
|
+
3. **名称近似**(去后缀「编号/名称/ID」后相同、一方「客户」一方「客户名称」)→ 中置信
|
|
127
|
+
4. **多候选同分** → 全部列出,**禁止**静默任选一个不告知
|
|
128
|
+
|
|
129
|
+
**禁止**:仅凭表名臆造 fieldKey;禁止用显示名当 `parentField`/`currentField`(必须三段式 fieldKey)。
|
|
130
|
+
|
|
131
|
+
#### 2.5.3 必须给用户的确认话术(推断时强制)
|
|
132
|
+
|
|
133
|
+
推断关联后,交付/询问中**至少**说明:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
【关联待确认】表 A「…」与表 B「…」未在需求中写明关联字段。
|
|
137
|
+
已按字段匹配推断:A.{显示名/系统名} Equals B.{显示名/系统名}
|
|
138
|
+
请确认是否正确;若不正确请给出正确关联(A.字段 = B.字段)。
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
用户确认或纠正后,再改入口格筛选(定点改,见 `targeted-fix-guide.md`)。
|
|
142
|
+
|
|
143
|
+
#### 2.5.4 CLI(优先)
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
e10-cli report join suggest --app-id <appId> --parent-source <sourceIdA> --child-source <sourceIdB>
|
|
147
|
+
# 或按表名:
|
|
148
|
+
e10-cli report join suggest --app-id <appId> --parent-form "销售单" --child-form "销售明细"
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
输出候选对 + `needConfirm=true`;Agent **优先调 CLI**,勿手写比对脚本。
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
### 2.6 自检判据(落库前后各跑一次 · 可机械执行)
|
|
156
|
+
|
|
157
|
+
对**每个 Field 格**取四件事:① 本格 `dataSetId`;② 本格左父格坐标 → ③ 左父格格 `dataSetId`;④ 本格 `leftFilterField` 是否非空。逐条比对:
|
|
158
|
+
|
|
159
|
+
| 级别 | 判据 | 结论 / 处置 |
|
|
160
|
+
|------|------|-------------|
|
|
161
|
+
| 🔴 | ①≠③ 且 ④ 空 | **跨源却无筛选**:本格若是入口格 → 补筛选;否则 → 左父格改指入口格 |
|
|
162
|
+
| 🔴 | ①≠③ 且本格**不是**区域入口格 | **后续格指了异源**:改指入口格坐标,并清空筛选 |
|
|
163
|
+
| 🔴 | ①=③ 但 ④ 非空 | **同源却配了跨源筛选**:只保留入口格那一份,其余清空 |
|
|
164
|
+
| 🔴 | 同一连续同源区域内 ④ 非空的格 **> 1** | **重复配筛选**:只留入口格 |
|
|
165
|
+
| 🟡 | 多数据集报表里,同源后续格左父格为 `-1,-1` | 扩展链不明:显式改为入口格坐标 |
|
|
166
|
+
|
|
167
|
+
**回读校验(强制)**:改完父格必须重新读一次(`getReportDevInfo`)确认 `leftX/leftY` 真的生效——服务端可能**静默忽略**。
|
|
168
|
+
CLI:`e10-cli report fix parent --report-id <id> --set-parent "x,y=leftX,leftY" [--apply]`(可重复;内置落库后回读,未生效即 exit 2)。
|
|
169
|
+
坐标口径:`x` = 行(0 基)、`y` = 列(0 基)。
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 三、与找表耗时控制的关系
|
|
174
|
+
|
|
175
|
+
少挂源 = 少次 `addDataset` / `fields`。找不准表时的打断规则见 **`app-datasource-lookup-guide.md` §七**。
|
|
176
|
+
|
|
177
|
+
| 文档 | 关系 |
|
|
178
|
+
|------|------|
|
|
179
|
+
| `app-datasource-lookup-guide.md` | 应用内找表 + 多轮打断询问 |
|
|
180
|
+
| `cross-dataset-filter-guide.md` | 入口格筛选的 fieldKey 写法 |
|
|
181
|
+
| `e10-cli report-cli.md` | **CLI 优先**:找表 / join suggest / verify / 删壳 |
|
|
182
|
+
| `api-report-build-fast-path.md` | 建表流程引用本节 |
|
|
183
|
+
| `report-requirement-analysis-template.md` | 列级表父格筛选填法 |
|
|
@@ -1,102 +1,97 @@
|
|
|
1
|
-
# 日期区间查询条件选项参考(已验证样例)
|
|
2
|
-
|
|
3
|
-
>
|
|
4
|
-
> **完整规范**:`query-condition-api-guide.md`(条件字段形态、系统参数默认值、验证清单)
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
|
15
|
-
|
|
16
|
-
| `
|
|
17
|
-
| `filterParam.
|
|
18
|
-
| `filterParam.
|
|
19
|
-
| `filterParam.
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
| `query-condition-api-guide.md` | 查询条件总规范 |
|
|
100
|
-
| `outputs/join_date_filterparam.json` | filterParam 参考样本 |
|
|
101
|
-
| `本地工作目录` | 生成/修复 |
|
|
102
|
-
| `本地工作目录` | 扫描导出 |
|
|
1
|
+
# 日期区间查询条件选项参考(已验证样例)
|
|
2
|
+
|
|
3
|
+
> **金标准来源**:报表 `1304979556231593985`(EBU 经营数据统计)· 查询条件「入职时间」
|
|
4
|
+
> **完整规范**:`query-condition-api-guide.md`(条件字段形态、系统参数默认值、验证清单)
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 一、快捷选项(filterParam.dataOptions · 21 项)
|
|
9
|
+
|
|
10
|
+
设计器 save 后的正确形态:
|
|
11
|
+
|
|
12
|
+
| 字段 | 正确值 |
|
|
13
|
+
|------|--------|
|
|
14
|
+
| `selectOptions` | **`[]`** |
|
|
15
|
+
| `filterParam.enableOption` | `true` |
|
|
16
|
+
| `filterParam.isTile` | `true` |
|
|
17
|
+
| `filterParam.dataOptions` | **21 行**(下表) |
|
|
18
|
+
| `filterParam.optionTile` | **`{}`** |
|
|
19
|
+
| `filterParam.dateSelectDefaultValue` | **`""`** |
|
|
20
|
+
|
|
21
|
+
**勿用旧格式**:15 项数字码(`"9"`、`"{yesterday}"`)+ 9 项 `selectOptions` + 填满 `optionTile` → 齿轮菜单常只剩「自定义」。
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 二、dataOptions catalog(id = selectValue)
|
|
26
|
+
|
|
27
|
+
| selectKey | selectValue / id |
|
|
28
|
+
|-----------|------------------|
|
|
29
|
+
| 近三天 | day3 |
|
|
30
|
+
| 近五天 | day5 |
|
|
31
|
+
| 近七天 | day7 |
|
|
32
|
+
| 今天 | today |
|
|
33
|
+
| 昨天 | yesterday |
|
|
34
|
+
| 明天 | tomorrow |
|
|
35
|
+
| 本周 | thisWeek |
|
|
36
|
+
| 上一周 | lastWeek |
|
|
37
|
+
| 下一周 | nextWeek |
|
|
38
|
+
| 本月 | thisMonth |
|
|
39
|
+
| 上一月 | lastMonth |
|
|
40
|
+
| 下一月 | nextMonth |
|
|
41
|
+
| 本季度 | thisSeason |
|
|
42
|
+
| 上一季 | lastSeason |
|
|
43
|
+
| 下一季 | nextSeason |
|
|
44
|
+
| 今年 | thisYear |
|
|
45
|
+
| 上半年 | firstHalfYear |
|
|
46
|
+
| 下半年 | nextHalfYear |
|
|
47
|
+
| 去年 | lastYear |
|
|
48
|
+
| 明年 | nextYear |
|
|
49
|
+
| 自定义 | custom |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 三、系统参数默认值(与快捷选项独立)
|
|
54
|
+
|
|
55
|
+
默认值写在顶层 **`defaultValueType` + `defaultValue`**,不是 `dateSelectDefaultValue`。
|
|
56
|
+
|
|
57
|
+
| 场景 | defaultValueType | defaultValue | handleDefaultValue 示例 |
|
|
58
|
+
|------|------------------|--------------|-------------------------|
|
|
59
|
+
| 本月 | `custom` | `["{thismonth}",""]` | `["2026-08-01,2026-08-31",""]` |
|
|
60
|
+
| 今天 | `custom` | `["{date}","{date}"]` | `["2026-08-19","2026-08-19"]` |
|
|
61
|
+
|
|
62
|
+
`displayType`:`yyyy-MM-dd` 字段 → `date.ymd`;`yyyy-MM` 字段 → `date.ym`。
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 四、filterParam 完整示例
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"isTile": true,
|
|
71
|
+
"enableOption": true,
|
|
72
|
+
"showType": "tile",
|
|
73
|
+
"multiple": false,
|
|
74
|
+
"dataOptions": [ { "selectKey": "本月", "selectValue": "thisMonth", "id": "thisMonth" } ],
|
|
75
|
+
"optionTile": {},
|
|
76
|
+
"dateSelectDefaultValue": ""
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
(`dataOptions` 须写满 21 项,此处省略。)
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 五、Agent checklist
|
|
85
|
+
|
|
86
|
+
1. 加载本文 + `query-condition-api-guide.md`
|
|
87
|
+
2. `_default_date_filter_param()` + `defaultValueType: custom` + 系统参数
|
|
88
|
+
3. 校验:21 项 dataOptions、`selectOptions=[]`、`handleDefaultValue` 非空
|
|
89
|
+
4. 设计器:齿轮 21 项 + 默认筛选项生效
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 六、相关文件
|
|
94
|
+
|
|
95
|
+
| 文件 | 用途 |
|
|
96
|
+
|------|------|
|
|
97
|
+
| `query-condition-api-guide.md` | 查询条件总规范 |
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# 默认表头样式(强制分流)
|
|
2
2
|
|
|
3
|
-
> **适用**:新建 / `e10-cli report build` 搭表时的标题行、列表字段表头行外观。
|
|
3
|
+
> **适用**:新建 / `e10-cli report build spec` 搭表时的标题行、列表字段表头行外观。
|
|
4
4
|
> **CLI**:`e10-cli report validate style --list` / `--inline '{...}'`
|
|
5
|
-
> **实现**:`e10-cli report validate style` → `
|
|
5
|
+
> **实现**:`e10-cli report validate style` → `e10-cli report build` 分层套用。
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
|
|
37
37
|
```json
|
|
38
38
|
{
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
"styleFromMockup": false,
|
|
40
|
+
"applyDefaultHeader": true,
|
|
41
|
+
"style": { },
|
|
42
|
+
"titleStyle": { },
|
|
43
|
+
"headerStyle": { },
|
|
44
|
+
"bodyStyle": { }
|
|
45
45
|
}
|
|
46
46
|
```
|
|
47
47
|
|
|
@@ -42,12 +42,12 @@
|
|
|
42
42
|
|
|
43
43
|
```javascript
|
|
44
44
|
{
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
enableSnapshot: true,
|
|
46
|
+
cron: '0 0/1 * * * ?', // 例:每分钟
|
|
47
|
+
snapshotName: `${reportName}-{date}-{time}`,
|
|
48
|
+
params: JSON.stringify({ searchCondition: {} }),
|
|
49
|
+
sheetId: String(reportId), // 禁止 Number()
|
|
50
|
+
// id / jobId 若回传:同样 String(...)
|
|
51
51
|
}
|
|
52
52
|
```
|
|
53
53
|
|
|
@@ -107,5 +107,5 @@ CLI 自检:`e10-cli report verify blank <reportId>`(含网格线联动);
|
|
|
107
107
|
|
|
108
108
|
- SKILL 硬规则 **§L**
|
|
109
109
|
- `safe-partial-save-guide.md` §3.2
|
|
110
|
-
- `e10-cli report
|
|
111
|
-
- 脚本:`
|
|
110
|
+
- `e10-cli report-cli.md` §一
|
|
111
|
+
- 脚本:`e10-cli report snapshot`、`e10-cli report validate blank`
|