weaver-e10-builder 1.6.10 → 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.
Files changed (155) hide show
  1. package/dist/commands/report-admin.d.ts.map +1 -1
  2. package/dist/commands/report-admin.js +378 -2
  3. package/dist/commands/report-admin.js.map +1 -1
  4. package/dist/commands/report-validate.d.ts.map +1 -1
  5. package/dist/commands/report-validate.js +1066 -3
  6. package/dist/commands/report-validate.js.map +1 -1
  7. package/dist/commands/report.d.ts.map +1 -1
  8. package/dist/commands/report.js +341 -3
  9. package/dist/commands/report.js.map +1 -1
  10. package/dist/commands/workflow-after-submit-comment.d.ts +3 -0
  11. package/dist/commands/workflow-after-submit-comment.d.ts.map +1 -0
  12. package/dist/commands/workflow-after-submit-comment.js +56 -0
  13. package/dist/commands/workflow-after-submit-comment.js.map +1 -0
  14. package/dist/commands/workflow-setting.d.ts.map +1 -1
  15. package/dist/commands/workflow-setting.js +2 -67
  16. package/dist/commands/workflow-setting.js.map +1 -1
  17. package/dist/services/report/blueprint.d.ts +109 -0
  18. package/dist/services/report/blueprint.d.ts.map +1 -0
  19. package/dist/services/report/blueprint.js +322 -0
  20. package/dist/services/report/blueprint.js.map +1 -0
  21. package/dist/services/report/build.d.ts.map +1 -1
  22. package/dist/services/report/build.js +8 -3
  23. package/dist/services/report/build.js.map +1 -1
  24. package/dist/services/report/card.d.ts +65 -0
  25. package/dist/services/report/card.d.ts.map +1 -0
  26. package/dist/services/report/card.js +151 -0
  27. package/dist/services/report/card.js.map +1 -0
  28. package/dist/services/report/copy-health.d.ts +31 -0
  29. package/dist/services/report/copy-health.d.ts.map +1 -0
  30. package/dist/services/report/copy-health.js +87 -0
  31. package/dist/services/report/copy-health.js.map +1 -0
  32. package/dist/services/report/dataset-heal.d.ts +64 -0
  33. package/dist/services/report/dataset-heal.d.ts.map +1 -0
  34. package/dist/services/report/dataset-heal.js +89 -0
  35. package/dist/services/report/dataset-heal.js.map +1 -0
  36. package/dist/services/report/dataset-ids.d.ts +70 -0
  37. package/dist/services/report/dataset-ids.d.ts.map +1 -0
  38. package/dist/services/report/dataset-ids.js +149 -0
  39. package/dist/services/report/dataset-ids.js.map +1 -0
  40. package/dist/services/report/dataset.d.ts.map +1 -1
  41. package/dist/services/report/dataset.js +3 -1
  42. package/dist/services/report/dataset.js.map +1 -1
  43. package/dist/services/report/empty-dataset.d.ts +51 -0
  44. package/dist/services/report/empty-dataset.d.ts.map +1 -0
  45. package/dist/services/report/empty-dataset.js +213 -0
  46. package/dist/services/report/empty-dataset.js.map +1 -0
  47. package/dist/services/report/field-binding.d.ts +75 -0
  48. package/dist/services/report/field-binding.d.ts.map +1 -0
  49. package/dist/services/report/field-binding.js +160 -0
  50. package/dist/services/report/field-binding.js.map +1 -0
  51. package/dist/services/report/forms.d.ts +32 -0
  52. package/dist/services/report/forms.d.ts.map +1 -1
  53. package/dist/services/report/forms.js +90 -0
  54. package/dist/services/report/forms.js.map +1 -1
  55. package/dist/services/report/formula-parent.d.ts +25 -0
  56. package/dist/services/report/formula-parent.d.ts.map +1 -0
  57. package/dist/services/report/formula-parent.js +116 -0
  58. package/dist/services/report/formula-parent.js.map +1 -0
  59. package/dist/services/report/locate.d.ts +40 -0
  60. package/dist/services/report/locate.d.ts.map +1 -0
  61. package/dist/services/report/locate.js +122 -0
  62. package/dist/services/report/locate.js.map +1 -0
  63. package/dist/services/report/reports.d.ts +4 -0
  64. package/dist/services/report/reports.d.ts.map +1 -1
  65. package/dist/services/report/reports.js +4 -2
  66. package/dist/services/report/reports.js.map +1 -1
  67. package/dist/services/report/scene.d.ts +22 -0
  68. package/dist/services/report/scene.d.ts.map +1 -0
  69. package/dist/services/report/scene.js +145 -0
  70. package/dist/services/report/scene.js.map +1 -0
  71. package/dist/services/report/types.d.ts +28 -0
  72. package/dist/services/report/types.d.ts.map +1 -1
  73. package/dist/services/report/verify.d.ts +24 -0
  74. package/dist/services/report/verify.d.ts.map +1 -1
  75. package/dist/services/report/verify.js +115 -2
  76. package/dist/services/report/verify.js.map +1 -1
  77. package/dist/services/report/workbook.d.ts +12 -1
  78. package/dist/services/report/workbook.d.ts.map +1 -1
  79. package/dist/services/report/workbook.js +107 -8
  80. package/dist/services/report/workbook.js.map +1 -1
  81. package/dist/services/workflow-after-submit-comment.d.ts +20 -0
  82. package/dist/services/workflow-after-submit-comment.d.ts.map +1 -0
  83. package/dist/services/workflow-after-submit-comment.js +81 -0
  84. package/dist/services/workflow-after-submit-comment.js.map +1 -0
  85. package/ecodecmd/src/build.js +36 -12
  86. package/package.json +1 -1
  87. package/skill-docs/SKILL.md +4 -4
  88. package/skill-docs/_catalog.md +10 -1
  89. package/skill-docs/references/coding/guide-page-code.md +95 -0
  90. package/skill-docs/references/components/ref-component-common.md +98 -0
  91. package/skill-docs/references/report/add-dataset-registration-guide.md +44 -22
  92. package/skill-docs/references/report/advanced-crosstab-tree-guide.md +82 -0
  93. package/skill-docs/references/report/ai-report-workflow.md +100 -100
  94. package/skill-docs/references/report/api-auth-headers.md +129 -0
  95. package/skill-docs/references/report/api-report-build-fast-path.md +274 -275
  96. package/skill-docs/references/report/app-datasource-lookup-guide.md +230 -230
  97. package/skill-docs/references/report/branch-scene-guide.md +293 -0
  98. package/skill-docs/references/report/build-resilience-guide.md +99 -0
  99. package/skill-docs/references/report/card-report-guide.md +110 -0
  100. package/skill-docs/references/report/cell-config-echo-guide.md +44 -9
  101. package/skill-docs/references/report/cell-transform-guide.md +9 -9
  102. package/skill-docs/references/report/column-split-report-guide.md +96 -0
  103. package/skill-docs/references/report/condition-format-guide.md +49 -24
  104. package/skill-docs/references/report/cross-dataset-filter-guide.md +180 -69
  105. package/skill-docs/references/report/crosstab-raw-workbook-guide.md +265 -0
  106. package/skill-docs/references/report/dataset-query-filter-guide.md +231 -235
  107. package/skill-docs/references/report/dataset-sidebar-ops-guide.md +75 -34
  108. package/skill-docs/references/report/dataset-table-field-contract-guide.md +196 -46
  109. package/skill-docs/references/report/datasource-metadata-guide.md +128 -119
  110. package/skill-docs/references/report/datasource-selection-and-parent-filter-guide.md +183 -148
  111. package/skill-docs/references/report/date-range-query-reference.md +97 -102
  112. package/skill-docs/references/report/default-header-style-guide.md +8 -8
  113. package/skill-docs/references/report/designer-blank-prevention-guide.md +8 -8
  114. package/skill-docs/references/report/dossier-report-guide.md +69 -0
  115. package/skill-docs/references/report/drilldown-report-guide.md +59 -0
  116. package/skill-docs/references/report/event-hreflink-guide.md +53 -47
  117. package/skill-docs/references/report/expansion-block-parent-config-guide.md +208 -0
  118. package/skill-docs/references/report/failure-cleanup-and-nonblocking-guide.md +183 -0
  119. package/skill-docs/references/report/field-bind-exact-match-guide.md +208 -208
  120. package/skill-docs/references/report/financial-stats-report-guide.md +89 -0
  121. package/skill-docs/references/report/formula-cell-api-guide.md +325 -258
  122. package/skill-docs/references/report/golden-case-summary-sheet.md +200 -0
  123. package/skill-docs/references/report/guide-report-build.md +6 -1
  124. package/skill-docs/references/report/hidden-row-and-header-merge-guide.md +10 -10
  125. package/skill-docs/references/report/layout-showlocation-freeze-guide.md +39 -10
  126. package/skill-docs/references/report/multi-report-crosstab-casebook.md +263 -0
  127. package/skill-docs/references/report/paged-group-report-guide.md +68 -0
  128. package/skill-docs/references/report/preaggregate-auto-disable-guide.md +24 -13
  129. package/skill-docs/references/report/query-condition-api-guide.md +145 -125
  130. package/skill-docs/references/report/ref-report-commands.md +41 -3
  131. package/skill-docs/references/report/report-baseinfo-defaults-guide.md +117 -117
  132. package/skill-docs/references/report/report-building-guide.md +52 -52
  133. package/skill-docs/references/report/report-case-prompts.md +104 -0
  134. package/skill-docs/references/report/report-config-schema.md +281 -281
  135. package/skill-docs/references/report/report-create-modes-guide.md +73 -35
  136. package/skill-docs/references/report/report-data-model.md +131 -131
  137. package/skill-docs/references/report/report-delivery-contract.md +23 -3
  138. package/skill-docs/references/report/report-designer-feature-map.md +30 -35
  139. package/skill-docs/references/report/report-help-guide.md +304 -0
  140. package/skill-docs/references/report/report-internal-error-guide.md +71 -0
  141. package/skill-docs/references/report/report-knowledge-base.md +27 -27
  142. package/skill-docs/references/report/report-lifecycle-api-guide.md +126 -94
  143. package/skill-docs/references/report/report-list-page-ops-guide.md +54 -8
  144. package/skill-docs/references/report/report-permission-guide.md +99 -102
  145. package/skill-docs/references/report/report-requirement-analysis-template.md +93 -29
  146. package/skill-docs/references/report/report-self-check-guide.md +164 -164
  147. package/skill-docs/references/report/report-verification-discipline-guide.md +203 -0
  148. package/skill-docs/references/report/safe-partial-save-guide.md +151 -151
  149. package/skill-docs/references/report/shard-freeze-report-guide.md +97 -0
  150. package/skill-docs/references/report/snowflake-id-precision-guide.md +84 -84
  151. package/skill-docs/references/report/spec-build-schema.md +71 -71
  152. package/skill-docs/references/report/targeted-fix-guide.md +155 -97
  153. package/skill-docs/references/report/user-request-scope-only-guide.md +23 -4
  154. package/skill-docs/references/workflow/guide-after-submit-comment.md +58 -0
  155. package/skill-docs/references/workflow/guide-workflow.md +6 -0
@@ -0,0 +1,56 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { AuthSession } from '../core/auth.js';
3
+ import { ApiClient } from '../core/client.js';
4
+ import { parseLayoutJson } from '../services/form-layout-source/json.js';
5
+ import { AfterSubmitCommentSettings, displayFields } from '../services/workflow-after-submit-comment.js';
6
+ import { normalized } from '../services/workflow-base-settings.js';
7
+ import { booleanValue } from '../services/workflow-opinion-settings.js';
8
+ export function registerAfterSubmitComment(base, program) {
9
+ for (const kind of ['after-submit-display', 'comment-set']) {
10
+ const cmd = base.command(kind).description(kind === 'comment-set' ? '评论设置:自定义和启用评论独立配置' : '提交流程后显示内容设置').argument('<workflowId>', '流程 ID');
11
+ cmd.option('--schema', '读取程序表单、选项及默认/已有配置').option('--data <json>', '局部配置 JSON 或 @文件').option('--custom <0|1>', '启用自定义;0继承全局,关闭时单独使用');
12
+ const mapping = kind === 'comment-set' ? { custom: 'commentSetTypeDTO', enable: 'enableComment', allowRelate: 'allowCommentRelate', relateRange: 'relateRangeSelect', relateItems: 'relateRangeBrowser', allowUpload: 'allowUpload', displayType: 'commentdisplayTypeDTO', defaultExpand: 'defaultDisplayComment' } : { custom: 'customOpen', pcType: 'pcForwardType', mobileType: 'mobileForwardType', pcUrl: 'customPcUrl', mobileUrl: 'customMobileUrl' };
13
+ if (kind === 'comment-set')
14
+ cmd.option('--enable <0|1>', '启用评论(不再同时修改自定义开关)').option('--allow-relate <0|1>', '允许评论关联事项').option('--relate-range <0|1>', '0全部/1选择范围').option('--relate-items <ids...>', '事项类型 ID(不是流程实例 ID)').option('--clear-relate-items', '清空事项范围').option('--allow-upload <0|1>', '允许评论上传附件').option('--upload-catalog <id>', '附件目录ID;0清空').option('--display-type <0|1>', '0与意见合并/1独立显示').option('--display-reply <0|1>', '对意见回复显示在意见区').option('--default-expand <0|1>', '审批意见中默认展开评论').option('--candidates <relate|catalog>', '查询事项类型/目录候选(首100项或根节点)');
15
+ else
16
+ cmd.option('--pc-type <type>', '0不显示/1流程图/2流转情况/3自定义页面;也接受选项名称').option('--mobile-type <type>', '移动端显示类型,同PC').option('--pc-stay <0|1>', 'PC停留在流程图').option('--mobile-stay <0|1>', '移动端停留在流程图').option('--pc-url <url>', 'PC自定义页面地址').option('--mobile-url <url>', '移动端自定义页面地址');
17
+ cmd.action(async (w, o) => {
18
+ try {
19
+ const auth = await AuthSession.fromOptions(program.opts());
20
+ if (!auth)
21
+ throw Error('无法读取认证');
22
+ const svc = new AfterSubmitCommentSettings(new ApiClient(auth, 1, parseLayoutJson), auth.getBaseUrl());
23
+ if (o.candidates) {
24
+ if (Object.keys(o).length !== 1 || !['relate', 'catalog'].includes(o.candidates))
25
+ throw Error('--candidates须单独使用 relate/catalog');
26
+ console.log(JSON.stringify(await svc.displayCandidates(w, o.candidates === 'relate' ? 'relateRangeBrowser' : 'uploadCatalogBrowser'), null, 2));
27
+ return;
28
+ }
29
+ const p = o.data === undefined ? {} : parseLayoutJson(o.data.startsWith('@') ? readFileSync(o.data.slice(1), 'utf8') : o.data);
30
+ if (!p || typeof p !== 'object' || Array.isArray(p))
31
+ throw Error('--data必须为对象');
32
+ const put = (k, v) => { if (k in p)
33
+ throw Error(`重复指定 ${k}`); p[k] = v; };
34
+ for (const [flag, k] of Object.entries(mapping))
35
+ if (o[flag] !== undefined)
36
+ put(k, o[flag]);
37
+ for (const [flag, k] of [['pcStay', 'pcStopInChart'], ['mobileStay', 'mobileStopInChart'], ['displayReply', 'displayReplyDTO']])
38
+ if (o[flag] !== undefined)
39
+ put(k, booleanValue(o[flag]) ? ['0'] : []);
40
+ if (o.clearRelateItems)
41
+ put('relateRangeBrowser', []);
42
+ if (o.uploadCatalog !== undefined)
43
+ put('uploadCatalogBrowser', o.uploadCatalog === '0' ? [] : [o.uploadCatalog]);
44
+ if (o.schema && Object.keys(p).length)
45
+ throw Error('--schema不可与修改参数混用');
46
+ const result = Object.keys(p).length ? await svc.saveDisplay(kind, w, p) : await svc.readDisplay(kind, w).then(f => o.schema ? { settings: normalized(f), form: f } : normalized(f));
47
+ console.log(JSON.stringify(result, null, 2));
48
+ }
49
+ catch (e) {
50
+ console.error(`操作失败: ${e.message}`);
51
+ process.exitCode = 1;
52
+ }
53
+ }).addHelpText('after', `\n不带修改参数为读取;首次保存读取程序默认值,已有配置仅合并指定项并回读。\n字段:${displayFields[kind].join(', ')}。JSON开关用true/false,复选框用[]/["0"],浏览对象用字符串ID数组。\n具体设置生效须 --custom 1;关闭自定义恢复继承全局。\n`);
54
+ }
55
+ }
56
+ //# sourceMappingURL=workflow-after-submit-comment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-after-submit-comment.js","sourceRoot":"","sources":["../../src/commands/workflow-after-submit-comment.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-setting.d.ts","sourceRoot":"","sources":["../../src/commands/workflow-setting.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAkLnF"}
1
+ {"version":3,"file":"workflow-setting.d.ts","sourceRoot":"","sources":["../../src/commands/workflow-setting.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAkInF"}
@@ -1,3 +1,4 @@
1
+ import { registerAfterSubmitComment } from './workflow-after-submit-comment.js';
1
2
  import { registerWorkflowFunctionSettings } from './workflow-function-settings.js';
2
3
  import { SignFileSettings } from '../services/workflow-sign-file-settings.js';
3
4
  import { editTabs, getTabLocales } from '../services/workflow-tabs-editor.js';
@@ -9,20 +10,6 @@ import { workflowBaseCommand } from './workflow-base-command.js';
9
10
  import { AuthSession } from '../core/auth.js';
10
11
  import { ApiClient } from '../core/client.js';
11
12
  import { getTabConfig, tabLabel, } from '../services/workflow-tab-config.js';
12
- /**
13
- * Merge only known keys from source into target, converting boolean to 0/1.
14
- * This prevents leaking UI-internal fields (layout, items, etc.) to save APIs.
15
- */
16
- function mergeKnown(target, source) {
17
- const result = { ...target };
18
- for (const key of Object.keys(target)) {
19
- if (key in source) {
20
- const v = source[key];
21
- result[key] = typeof v === 'boolean' ? (v ? 1 : 0) : v;
22
- }
23
- }
24
- return result;
25
- }
26
13
  export function registerWorkflowSettingCommands(wf, program) {
27
14
  const base = workflowBaseCommand(wf);
28
15
  registerWorkflowFunctionSettings(wf, program);
@@ -190,58 +177,6 @@ export function registerWorkflowSettingCommands(wf, program) {
190
177
  process.exitCode = 1;
191
178
  }
192
179
  });
193
- // ======== comment ========
194
- base.command('comment-set')
195
- .description('查看/配置评论设置')
196
- .argument('<workflowId>', '流程 ID')
197
- .option('--enable <0|1>', '评论功能开关')
198
- .action(async (workflowId, cmdOpts) => {
199
- const opts = program.opts();
200
- const auth = await AuthSession.fromOptions(opts);
201
- if (!auth)
202
- process.exit(1);
203
- const client = new ApiClient(auth);
204
- const baseUrl = auth.getBaseUrl();
205
- const getRes = await client.get(`${baseUrl}/api/bs/workflow/pathdef/commentset/getCommentSet?workflowId=${workflowId}`);
206
- if (getRes?.code !== 200 || !getRes?.status) {
207
- console.error(`查询失败: ${getRes?.msg || getRes?.data?.msg}`);
208
- process.exit(1);
209
- }
210
- const raw = getRes?.data || {};
211
- const form = raw.commentSet?.data || raw.data || raw;
212
- if (!cmdOpts.enable) {
213
- if (opts.json) {
214
- console.log(JSON.stringify(form, null, 2));
215
- }
216
- else {
217
- console.log(`评论功能: ${form.commentSetTypeDTO || form.enableComment === '1' || form.enableComment === 1 ? '✅ 开启' : '⛔ 关闭'}`);
218
- }
219
- return;
220
- }
221
- const payload = mergeKnown({
222
- workflowId,
223
- commentSetTypeDTO: true,
224
- enableComment: 0,
225
- commentdisplayTypeDTO: '0',
226
- displayReplyDTO: [],
227
- defaultDisplayComment: false,
228
- allowCommentRelate: 1,
229
- relateRangeSelect: '0',
230
- relateRangeBrowser: [],
231
- allowUpload: true,
232
- uploadCatalog: '',
233
- uploadCatalogBrowser: [],
234
- }, form);
235
- payload.commentSetTypeDTO = cmdOpts.enable === '1';
236
- payload.enableComment = parseInt(cmdOpts.enable, 10);
237
- const saveRes = await client.post(`${baseUrl}/api/bs/workflow/pathdef/commentset/saveCommentSet`, payload);
238
- if (saveRes?.code === 200 && saveRes?.status) {
239
- console.log(opts.json ? JSON.stringify({ success: true, workflowId }) : '评论设置已保存');
240
- }
241
- else {
242
- console.error(`保存失败: ${saveRes?.msg || '未知错误'}`);
243
- process.exit(1);
244
- }
245
- });
180
+ registerAfterSubmitComment(base, program);
246
181
  }
247
182
  //# sourceMappingURL=workflow-setting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-setting.js","sourceRoot":"","sources":["../../src/commands/workflow-setting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-setting.js","sourceRoot":"","sources":["../../src/commands/workflow-setting.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * 从「蓝图」整表重建报表(灾后救援)。
3
+ *
4
+ * 蓝图声明本报表的**数据集**与**每格内容**;键模板与样式可从一张健康的同款报表派生。
5
+ * 两条硬门禁(都来自真实事故):
6
+ *
7
+ * 1. **数据集 id 只认蓝图声明的本报表数据集** —— `dataSetId` / `fieldKey` / 四个筛选键
8
+ * 绝不从样式来源表继承。否则设计器右侧「字段」下拉空白、父格筛选不回显。
9
+ * 2. **克隆纪律**:0 坐标冲突 / 0 META 键残留(id、createTime…)/ 0 白名单外的旧数据集 id。
10
+ */
11
+ import type { ReportHttp } from './http.js';
12
+ import type { DevField } from './types.js';
13
+ export interface BlueprintDataset {
14
+ key?: string;
15
+ /** 本报表 addDataset 返回的 datasetId(给了就直接用)。 */
16
+ id?: string;
17
+ /** 数据源 sourceId(没给 id 时按它在本报表解析/挂载)。 */
18
+ sourceId?: string;
19
+ sourceName?: string;
20
+ sourceType?: string;
21
+ sourceGroup?: string;
22
+ /** = 数据源 sourceId,用于拼 fieldKey 三段。 */
23
+ nameIndex?: string;
24
+ tableName?: string;
25
+ }
26
+ export interface BlueprintCell {
27
+ /** 0 基行号;也接受 `r`。 */
28
+ x?: number;
29
+ r?: number;
30
+ /** 0 基列号;也接受 `c`。 */
31
+ y?: number;
32
+ c?: number;
33
+ cellType?: 'Field' | 'Const' | 'Formula';
34
+ /** 简写:有 `field` 即 Field 格,有 `text` 无 `field` 即 Const 格。 */
35
+ field?: string;
36
+ name?: string;
37
+ text?: string;
38
+ cellText?: string;
39
+ datasetKey?: string;
40
+ leftX?: number;
41
+ leftY?: number;
42
+ left?: [number, number];
43
+ expandType?: string;
44
+ isActiveParent?: boolean | number;
45
+ [k: string]: unknown;
46
+ }
47
+ export interface Blueprint {
48
+ reportId: string;
49
+ appId: string;
50
+ name?: string;
51
+ dataset?: BlueprintDataset;
52
+ datasets?: BlueprintDataset[];
53
+ styleSource?: {
54
+ reportId: string;
55
+ appId: string;
56
+ };
57
+ cells?: BlueprintCell[];
58
+ sheets?: Array<{
59
+ name?: string;
60
+ cells: BlueprintCell[];
61
+ }>;
62
+ }
63
+ export interface ResolvedDatasetRef extends BlueprintDataset {
64
+ key: string;
65
+ }
66
+ export interface SheetBuild {
67
+ name: string;
68
+ index: number;
69
+ fields: DevField[];
70
+ }
71
+ export interface BlueprintBuild {
72
+ sheets: SheetBuild[];
73
+ fields: DevField[];
74
+ datasets: ResolvedDatasetRef[];
75
+ allowedIds: string[];
76
+ counts: Record<string, number>;
77
+ /** 模板里被剔除的键(诊断用)。 */
78
+ templateKeys: string[];
79
+ }
80
+ /** 解析数据集声明:有 id 直接用;只有 sourceId 的走本报表解析/挂载。 */
81
+ export declare function resolveBlueprintDatasets(http: ReportHttp, bp: Blueprint): Promise<ResolvedDatasetRef[]>;
82
+ /** 从样式来源表取每种 cellType 的第一个格作模板。 */
83
+ export declare function loadCellTemplates(http: ReportHttp, src: {
84
+ reportId: string;
85
+ appId: string;
86
+ }): Promise<Record<string, DevField>>;
87
+ export interface CloneDiscipline {
88
+ duplicates: string[];
89
+ metaLeaks: string[];
90
+ staleIds: string[];
91
+ }
92
+ /** 克隆纪律自检(按 sheet 维度调用 —— 不同 sheet 同坐标是合法的)。 */
93
+ export declare function checkCloneDiscipline(fields: DevField[], allowedIds: string[]): CloneDiscipline;
94
+ /** 把蓝图展开成字段记录(不落库)。 */
95
+ export declare function buildBlueprint(http: ReportHttp, bp: Blueprint): Promise<BlueprintBuild>;
96
+ /** 回读校验:格数、类型计数、Field 绑定自洽。 */
97
+ export declare function verifyBlueprintReadback(afterFields: DevField[], expected: BlueprintBuild): {
98
+ ok: boolean;
99
+ issues: string[];
100
+ counts: Record<string, number>;
101
+ };
102
+ /** 数据集白名单校验(落库前)。 */
103
+ export declare function assertAllowedDatasetIds(fields: DevField[], allowedIds: string[]): string[];
104
+ /**
105
+ * 当前报表已挂的数据集 id(给「蓝图里只写了 sourceId」的场景复用判断用)。
106
+ * 暴露出来便于命令层先展示将要使用哪几条数据集。
107
+ */
108
+ export declare function ownDatasetIds(http: ReportHttp, reportId: string, appId: string): Promise<string[]>;
109
+ //# sourceMappingURL=blueprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blueprint.d.ts","sourceRoot":"","sources":["../../../src/services/report/blueprint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,322 @@
1
+ import { getReportDevInfo } from './reports.js';
2
+ import { resolveDataset, listDatasets } from './dataset.js';
3
+ import { DATASET_ID_KEYS, refsOfField } from './dataset-ids.js';
4
+ /** 身份键与「别的报表的数据集」相关键,绝不从模板格继承。 */
5
+ const IDENTITY_KEYS = new Set([
6
+ 'id',
7
+ 'createTime',
8
+ 'updateTime',
9
+ 'creator',
10
+ 'deleteType',
11
+ 'reportId',
12
+ 'sheetIndex',
13
+ 'showOrder',
14
+ 'x',
15
+ 'y',
16
+ 'leftX',
17
+ 'leftY',
18
+ 'topX',
19
+ 'topY',
20
+ 'refX',
21
+ 'refY',
22
+ ]);
23
+ const NEVER_INHERIT = new Set([
24
+ ...DATASET_ID_KEYS,
25
+ 'allNeedFields',
26
+ 'tableName',
27
+ ]);
28
+ /** 解析数据集声明:有 id 直接用;只有 sourceId 的走本报表解析/挂载。 */
29
+ export async function resolveBlueprintDatasets(http, bp) {
30
+ const declared = [];
31
+ if (bp.dataset)
32
+ declared.push({ ...bp.dataset, key: bp.dataset.key || 'default' });
33
+ for (const [i, d] of (bp.datasets || []).entries()) {
34
+ declared.push({ ...d, key: String(d.key || `ds${i + 1}`) });
35
+ }
36
+ const out = [];
37
+ for (const d of declared) {
38
+ const key = String(d.key || 'default');
39
+ if (d.id) {
40
+ out.push({ ...d, key, nameIndex: String(d.nameIndex || d.sourceId || '') });
41
+ continue;
42
+ }
43
+ if (!d.sourceId) {
44
+ throw new Error(`蓝图数据集「${key}」缺少 id / sourceId`);
45
+ }
46
+ const resolved = await resolveDataset(http, {
47
+ reportId: bp.reportId,
48
+ appId: bp.appId,
49
+ sourceId: String(d.sourceId),
50
+ sourceName: d.sourceName,
51
+ sourceType: d.sourceType || 'logic',
52
+ sourceGroup: d.sourceGroup,
53
+ });
54
+ out.push({
55
+ ...d,
56
+ key,
57
+ id: resolved.id,
58
+ nameIndex: String(d.nameIndex || d.sourceId),
59
+ tableName: d.tableName || `${d.sourceName || resolved.name}(${d.sourceType === 'form' ? '表单' : '业务模块'})`,
60
+ });
61
+ }
62
+ return out;
63
+ }
64
+ /** 从样式来源表取每种 cellType 的第一个格作模板。 */
65
+ export async function loadCellTemplates(http, src) {
66
+ const dev = await getReportDevInfo(http, src.reportId);
67
+ const byType = {};
68
+ for (const f of (dev.fields || [])) {
69
+ const t = String(f.cellType || 'Const');
70
+ if (!byType[t])
71
+ byType[t] = f;
72
+ }
73
+ return byType;
74
+ }
75
+ function normalizeCell(c) {
76
+ const x = c.x ?? c.r;
77
+ const y = c.y ?? c.c;
78
+ if (x == null || y == null)
79
+ throw new Error('蓝图格缺少坐标(x/y 或 r/c)');
80
+ let cellType = c.cellType;
81
+ if (!cellType)
82
+ cellType = c.field ? 'Field' : 'Const';
83
+ const out = {
84
+ ...c,
85
+ x: Number(x),
86
+ y: Number(y),
87
+ cellType,
88
+ };
89
+ if (cellType === 'Field') {
90
+ if (!out.name && c.field)
91
+ out.name = String(c.field);
92
+ // Field 格的 text 是「字段显示名」;蓝图只写 field 时用它兜底
93
+ if (out.text == null)
94
+ out.text = String(c.text ?? out.name ?? '');
95
+ }
96
+ if (cellType === 'Const' && out.cellText == null && c.text != null)
97
+ out.cellText = String(c.text);
98
+ if (cellType !== 'Field' && c.field) {
99
+ throw new Error(`格 (${x},${y}) 声明为 ${cellType} 却给了 field`);
100
+ }
101
+ if (c.left) {
102
+ out.leftX = Number(c.left[0]);
103
+ out.leftY = Number(c.left[1]);
104
+ }
105
+ return out;
106
+ }
107
+ function buildCell(template, bp, ctx) {
108
+ const cell = {};
109
+ for (const [k, v] of Object.entries(template || {})) {
110
+ if (IDENTITY_KEYS.has(k) || NEVER_INHERIT.has(k))
111
+ continue;
112
+ cell[k] = v;
113
+ }
114
+ for (const [k, v] of Object.entries(bp)) {
115
+ if (k === 'cellType' || k === 'datasetKey' || k === 'field' || k === 'r' || k === 'c' || k === 'left')
116
+ continue;
117
+ // Const 的 text 是 cellText 的简写;Field 的 text 是显示名,需要保留
118
+ if (k === 'text' && bp.cellType === 'Const')
119
+ continue;
120
+ cell[k] = v;
121
+ }
122
+ cell.cellType = bp.cellType;
123
+ cell.x = bp.x;
124
+ cell.y = bp.y;
125
+ cell.xCount = Number(bp.xCount || 1);
126
+ cell.yCount = Number(bp.yCount || 1);
127
+ cell.sheetIndex = ctx.sheetIndex;
128
+ cell.reportId = '0';
129
+ cell.showOrder = 0;
130
+ cell.deleteType = 0;
131
+ cell.fixed = 0;
132
+ // width=0 是「隐藏列」,是合法值,不能被 falsy 判断覆盖
133
+ if (cell.width === undefined || cell.width === null || cell.width === '')
134
+ cell.width = 150;
135
+ if (!cell.height)
136
+ cell.height = 24;
137
+ cell.expandType = bp.expandType || (bp.cellType === 'Field' ? 'Vertical' : 'NoExpand');
138
+ cell.displayType = cell.displayType || 'Group';
139
+ const ds = ctx.dataset;
140
+ if (bp.cellType === 'Field') {
141
+ if (!ds || !ds.id) {
142
+ throw new Error(`Field 格 (${bp.x},${bp.y})「${bp.name}」未解析到数据集:请给 dataset 或 datasets[] 的 key,并在格上写 datasetKey`);
143
+ }
144
+ cell.dataSetId = String(ds.id);
145
+ cell.nameIndex = String(ds.nameIndex || '');
146
+ cell.fieldKey = `${ds.id}.${cell.nameIndex}.${bp.name}`;
147
+ cell.tableName = bp.tableName || ds.tableName || '';
148
+ if (cell.countType === undefined)
149
+ cell.countType = 'none';
150
+ cell.transType = cell.transType || 'default';
151
+ cell.openType = cell.openType || 'blank';
152
+ cell.cellText = '';
153
+ for (const k of ['leftFilterField', 'topFilterField', 'customFilterField', 'dataFilterField']) {
154
+ if (bp[k] === undefined)
155
+ cell[k] = '[]';
156
+ }
157
+ cell.allNeedFields = bp.allNeedFields !== undefined ? bp.allNeedFields : '';
158
+ }
159
+ else if (bp.cellType === 'Formula') {
160
+ cell.dataSetId = '-1';
161
+ for (const k of ['leftFilterField', 'topFilterField', 'customFilterField', 'dataFilterField']) {
162
+ cell[k] = '[]';
163
+ }
164
+ }
165
+ else {
166
+ cell.dataSetId = '-1';
167
+ for (const k of ['leftFilterField', 'topFilterField', 'customFilterField', 'dataFilterField']) {
168
+ if (bp[k] === undefined)
169
+ cell[k] = '[]';
170
+ }
171
+ }
172
+ if (bp.leftX !== undefined) {
173
+ cell.leftX = Number(bp.leftX);
174
+ cell.leftY = Number(bp.leftY);
175
+ }
176
+ else {
177
+ cell.leftX = ctx.firstOfRow ? -1 : bp.x;
178
+ cell.leftY = ctx.firstOfRow ? -1 : ctx.prevY;
179
+ }
180
+ return cell;
181
+ }
182
+ /** 克隆纪律自检(按 sheet 维度调用 —— 不同 sheet 同坐标是合法的)。 */
183
+ export function checkCloneDiscipline(fields, allowedIds) {
184
+ const allow = new Set(allowedIds.map(String));
185
+ const seen = new Set();
186
+ const duplicates = [];
187
+ const metaLeaks = [];
188
+ const staleIds = [];
189
+ const META = ['id', 'createTime', 'updateTime', 'creator'];
190
+ for (const f of fields) {
191
+ const k = `${Number(f.x)},${Number(f.y)}`;
192
+ if (seen.has(k))
193
+ duplicates.push(k);
194
+ else
195
+ seen.add(k);
196
+ for (const m of META) {
197
+ const v = f[m];
198
+ if (v !== undefined && v !== null && String(v) !== '')
199
+ metaLeaks.push(`${k}.${m}=${String(v).slice(0, 16)}`);
200
+ }
201
+ for (const r of refsOfField(f)) {
202
+ if (!allow.has(r.id))
203
+ staleIds.push(`${k}.${r.key}=${r.id}`);
204
+ }
205
+ }
206
+ return { duplicates, metaLeaks, staleIds };
207
+ }
208
+ /** 把蓝图展开成字段记录(不落库)。 */
209
+ export async function buildBlueprint(http, bp) {
210
+ if (!bp.reportId || !bp.appId)
211
+ throw new Error('蓝图缺 reportId / appId');
212
+ const datasets = await resolveBlueprintDatasets(http, bp);
213
+ if (!datasets.length)
214
+ throw new Error('蓝图缺 dataset / datasets[](本报表的数据集声明)');
215
+ const byKey = new Map(datasets.map((d) => [d.key, d]));
216
+ const allowedIds = datasets.map((d) => String(d.id));
217
+ const sheetDefs = bp.sheets && bp.sheets.length
218
+ ? bp.sheets.map((s, i) => ({ name: s.name || `Sheet${i + 1}`, cells: s.cells || [], index: i }))
219
+ : [{ name: 'Sheet1', cells: bp.cells || [], index: 0 }];
220
+ const templates = bp.styleSource
221
+ ? await loadCellTemplates(http, bp.styleSource)
222
+ : {};
223
+ const templateKeys = [...new Set(Object.values(templates).flatMap((t) => Object.keys(t || {})))];
224
+ const sheets = [];
225
+ for (const sd of sheetDefs) {
226
+ const cells = sd.cells.map(normalizeCell).sort((a, b) => Number(a.x) - Number(b.x) || Number(a.y) - Number(b.y));
227
+ const fields = [];
228
+ let curX = null;
229
+ let prevY = -1;
230
+ for (const c of cells) {
231
+ const firstOfRow = Number(c.x) !== curX;
232
+ if (firstOfRow) {
233
+ curX = Number(c.x);
234
+ prevY = -1;
235
+ }
236
+ if (c.cellType === 'Field' && !c.datasetKey && datasets.length > 1) {
237
+ throw new Error(`sheet「${sd.name}」的 Field 格 (${c.x},${c.y})「${c.name}」缺少 datasetKey —— ` +
238
+ `多数据集报表禁止回退到 datasets[0]。本报表声明了 ${datasets.length} 个数据集:` +
239
+ datasets.map((d) => d.key).join(' / '));
240
+ }
241
+ const ds = byKey.get(String(c.datasetKey || 'default')) || (datasets.length === 1 ? datasets[0] : undefined);
242
+ if (!ds) {
243
+ throw new Error(`sheet「${sd.name}」格 (${c.x},${c.y}) 的 datasetKey="${c.datasetKey}" 在 datasets[] 里不存在`);
244
+ }
245
+ fields.push(buildCell(templates[String(c.cellType)], c, {
246
+ dataset: ds,
247
+ firstOfRow,
248
+ prevY,
249
+ sheetIndex: sd.index,
250
+ }));
251
+ prevY = Number(c.y);
252
+ }
253
+ const disc = checkCloneDiscipline(fields, allowedIds);
254
+ if (disc.duplicates.length || disc.metaLeaks.length || disc.staleIds.length) {
255
+ const parts = [];
256
+ if (disc.duplicates.length)
257
+ parts.push(`坐标冲突:${disc.duplicates.slice(0, 8).join('、')}`);
258
+ if (disc.metaLeaks.length)
259
+ parts.push(`META 键残留:${disc.metaLeaks.slice(0, 8).join('、')}`);
260
+ if (disc.staleIds.length)
261
+ parts.push(`白名单外数据集 id:${disc.staleIds.slice(0, 8).join('、')}`);
262
+ throw new Error(`sheet「${sd.name}」克隆纪律自检未通过 —— ${parts.join(';')}(拒绝落库)`);
263
+ }
264
+ sheets.push({ name: sd.name, index: sd.index, fields });
265
+ }
266
+ const fields = sheets.flatMap((s) => s.fields);
267
+ const counts = {};
268
+ for (const f of fields) {
269
+ const t = String(f.cellType || 'Const');
270
+ counts[t] = (counts[t] || 0) + 1;
271
+ }
272
+ return { sheets, fields, datasets, allowedIds, counts, templateKeys };
273
+ }
274
+ /** 回读校验:格数、类型计数、Field 绑定自洽。 */
275
+ export function verifyBlueprintReadback(afterFields, expected) {
276
+ const issues = [];
277
+ const counts = {};
278
+ for (const f of afterFields) {
279
+ const t = String(f.cellType || 'Const');
280
+ counts[t] = (counts[t] || 0) + 1;
281
+ }
282
+ if (afterFields.length !== expected.fields.length) {
283
+ issues.push(`格数 ${afterFields.length} ≠ 期望 ${expected.fields.length}`);
284
+ }
285
+ for (const [k, n] of Object.entries(expected.counts)) {
286
+ if ((counts[k] || 0) !== n)
287
+ issues.push(`${k} 格数 ${counts[k] || 0} ≠ 期望 ${n}`);
288
+ }
289
+ const noText = afterFields.filter((f) => f.cellType === 'Field' && !String(f.text || '')).length;
290
+ const noKey = afterFields.filter((f) => f.cellType === 'Field' && !String(f.fieldKey || '')).length;
291
+ const mismatch = afterFields.filter((f) => f.cellType === 'Field' && String(f.fieldKey || '').split('.')[0] !== String(f.dataSetId)).length;
292
+ if (noText)
293
+ issues.push(`Field 格缺显示名 ${noText} 个`);
294
+ if (noKey)
295
+ issues.push(`Field 格缺 fieldKey ${noKey} 个`);
296
+ if (mismatch)
297
+ issues.push(`fieldKey 首段 ≠ dataSetId ${mismatch} 个`);
298
+ const disc = checkCloneDiscipline(afterFields, expected.allowedIds);
299
+ if (disc.staleIds.length)
300
+ issues.push(`回读仍有白名单外 id:${disc.staleIds.slice(0, 6).join('、')}`);
301
+ return { ok: issues.length === 0, issues, counts };
302
+ }
303
+ /** 数据集白名单校验(落库前)。 */
304
+ export function assertAllowedDatasetIds(fields, allowedIds) {
305
+ const allow = new Set(allowedIds.map(String));
306
+ const bad = [];
307
+ for (const f of fields) {
308
+ for (const r of refsOfField(f))
309
+ if (!allow.has(r.id))
310
+ bad.push(`(${f.x},${f.y}).${r.key}=${r.id}`);
311
+ }
312
+ return bad;
313
+ }
314
+ /**
315
+ * 当前报表已挂的数据集 id(给「蓝图里只写了 sourceId」的场景复用判断用)。
316
+ * 暴露出来便于命令层先展示将要使用哪几条数据集。
317
+ */
318
+ export async function ownDatasetIds(http, reportId, appId) {
319
+ const rows = await listDatasets(http, reportId, appId);
320
+ return rows.map((d) => String(d.id));
321
+ }
322
+ //# sourceMappingURL=blueprint.js.map