weaver-e10-builder 1.5.14 → 1.5.16

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 (156) hide show
  1. package/dist/commands/form-add-detail-table.d.ts.map +1 -1
  2. package/dist/commands/form-add-detail-table.js +37 -17
  3. package/dist/commands/form-add-detail-table.js.map +1 -1
  4. package/dist/commands/form-list-custom.d.ts +5 -0
  5. package/dist/commands/form-list-custom.d.ts.map +1 -0
  6. package/dist/commands/form-list-custom.js +24 -0
  7. package/dist/commands/form-list-custom.js.map +1 -0
  8. package/dist/commands/form-list-search-group.d.ts.map +1 -1
  9. package/dist/commands/form-list-search-group.js +101 -7
  10. package/dist/commands/form-list-search-group.js.map +1 -1
  11. package/dist/commands/form-list.d.ts.map +1 -1
  12. package/dist/commands/form-list.js +45 -1
  13. package/dist/commands/form-list.js.map +1 -1
  14. package/dist/commands/form-permission.d.ts.map +1 -1
  15. package/dist/commands/form-permission.js +10 -8
  16. package/dist/commands/form-permission.js.map +1 -1
  17. package/dist/commands/form.d.ts.map +1 -1
  18. package/dist/commands/form.js +54 -5
  19. package/dist/commands/form.js.map +1 -1
  20. package/dist/commands/menu.d.ts.map +1 -1
  21. package/dist/commands/menu.js +98 -1
  22. package/dist/commands/menu.js.map +1 -1
  23. package/dist/commands/report-cell.d.ts +3 -0
  24. package/dist/commands/report-cell.d.ts.map +1 -0
  25. package/dist/commands/report-cell.js +365 -0
  26. package/dist/commands/report-cell.js.map +1 -0
  27. package/dist/commands/wf-form.d.ts +2 -0
  28. package/dist/commands/wf-form.d.ts.map +1 -1
  29. package/dist/commands/wf-form.js +10 -9
  30. package/dist/commands/wf-form.js.map +1 -1
  31. package/dist/commands/workflow-base-command.d.ts +4 -0
  32. package/dist/commands/workflow-base-command.d.ts.map +1 -0
  33. package/dist/commands/workflow-base-command.js +6 -0
  34. package/dist/commands/workflow-base-command.js.map +1 -0
  35. package/dist/commands/workflow-base-settings.d.ts.map +1 -1
  36. package/dist/commands/workflow-base-settings.js +4 -1
  37. package/dist/commands/workflow-base-settings.js.map +1 -1
  38. package/dist/commands/workflow-basic-info.d.ts +5 -0
  39. package/dist/commands/workflow-basic-info.d.ts.map +1 -0
  40. package/dist/commands/workflow-basic-info.js +47 -0
  41. package/dist/commands/workflow-basic-info.js.map +1 -0
  42. package/dist/commands/workflow-create-workflow.d.ts.map +1 -1
  43. package/dist/commands/workflow-create-workflow.js +49 -83
  44. package/dist/commands/workflow-create-workflow.js.map +1 -1
  45. package/dist/commands/workflow-function-settings.d.ts +3 -0
  46. package/dist/commands/workflow-function-settings.d.ts.map +1 -0
  47. package/dist/commands/workflow-function-settings.js +48 -0
  48. package/dist/commands/workflow-function-settings.js.map +1 -0
  49. package/dist/commands/workflow-setting.d.ts.map +1 -1
  50. package/dist/commands/workflow-setting.js +137 -406
  51. package/dist/commands/workflow-setting.js.map +1 -1
  52. package/dist/commands/workflow.d.ts.map +1 -1
  53. package/dist/commands/workflow.js +19 -37
  54. package/dist/commands/workflow.js.map +1 -1
  55. package/dist/index.js +4 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/services/form-field-build.d.ts +13 -0
  58. package/dist/services/form-field-build.d.ts.map +1 -1
  59. package/dist/services/form-field-build.js +18 -0
  60. package/dist/services/form-field-build.js.map +1 -1
  61. package/dist/services/form-field-dataset.d.ts +101 -0
  62. package/dist/services/form-field-dataset.d.ts.map +1 -0
  63. package/dist/services/form-field-dataset.js +180 -0
  64. package/dist/services/form-field-dataset.js.map +1 -0
  65. package/dist/services/form-field-template.d.ts +15 -10
  66. package/dist/services/form-field-template.d.ts.map +1 -1
  67. package/dist/services/form-field-template.js +30 -15
  68. package/dist/services/form-field-template.js.map +1 -1
  69. package/dist/services/form-layout-insert.d.ts +22 -0
  70. package/dist/services/form-layout-insert.d.ts.map +1 -1
  71. package/dist/services/form-layout-insert.js +88 -8
  72. package/dist/services/form-layout-insert.js.map +1 -1
  73. package/dist/services/form-list-search-custom.d.ts +25 -0
  74. package/dist/services/form-list-search-custom.d.ts.map +1 -0
  75. package/dist/services/form-list-search-custom.js +98 -0
  76. package/dist/services/form-list-search-custom.js.map +1 -0
  77. package/dist/services/form-list-search-group.d.ts +36 -2
  78. package/dist/services/form-list-search-group.d.ts.map +1 -1
  79. package/dist/services/form-list-search-group.js +89 -10
  80. package/dist/services/form-list-search-group.js.map +1 -1
  81. package/dist/services/form-list-search.d.ts +1 -0
  82. package/dist/services/form-list-search.d.ts.map +1 -1
  83. package/dist/services/form-list-search.js +5 -2
  84. package/dist/services/form-list-search.js.map +1 -1
  85. package/dist/services/form-permission-archive.d.ts +15 -2
  86. package/dist/services/form-permission-archive.d.ts.map +1 -1
  87. package/dist/services/form-permission-archive.js +22 -3
  88. package/dist/services/form-permission-archive.js.map +1 -1
  89. package/dist/services/form-physical-table.d.ts +17 -0
  90. package/dist/services/form-physical-table.d.ts.map +1 -1
  91. package/dist/services/form-physical-table.js +19 -0
  92. package/dist/services/form-physical-table.js.map +1 -1
  93. package/dist/services/form-sub-detail.d.ts +11 -0
  94. package/dist/services/form-sub-detail.d.ts.map +1 -1
  95. package/dist/services/form-sub-detail.js +23 -0
  96. package/dist/services/form-sub-detail.js.map +1 -1
  97. package/dist/services/menu-catalog.d.ts +11 -0
  98. package/dist/services/menu-catalog.d.ts.map +1 -1
  99. package/dist/services/menu-catalog.js +32 -0
  100. package/dist/services/menu-catalog.js.map +1 -1
  101. package/dist/services/report/cell-edit.d.ts +53 -0
  102. package/dist/services/report/cell-edit.d.ts.map +1 -0
  103. package/dist/services/report/cell-edit.js +137 -0
  104. package/dist/services/report/cell-edit.js.map +1 -0
  105. package/dist/services/report/cell-event.d.ts +28 -0
  106. package/dist/services/report/cell-event.d.ts.map +1 -0
  107. package/dist/services/report/cell-event.js +71 -0
  108. package/dist/services/report/cell-event.js.map +1 -0
  109. package/dist/services/report/cell-filter.d.ts +46 -0
  110. package/dist/services/report/cell-filter.d.ts.map +1 -0
  111. package/dist/services/report/cell-filter.js +153 -0
  112. package/dist/services/report/cell-filter.js.map +1 -0
  113. package/dist/services/workflow-basic-info.d.ts +27 -0
  114. package/dist/services/workflow-basic-info.d.ts.map +1 -0
  115. package/dist/services/workflow-basic-info.js +170 -0
  116. package/dist/services/workflow-basic-info.js.map +1 -0
  117. package/dist/services/workflow-function-management.d.ts +1 -1
  118. package/dist/services/workflow-function-settings.d.ts +32 -0
  119. package/dist/services/workflow-function-settings.d.ts.map +1 -0
  120. package/dist/services/workflow-function-settings.js +199 -0
  121. package/dist/services/workflow-function-settings.js.map +1 -0
  122. package/dist/services/workflow-sign-file-settings.d.ts +16 -0
  123. package/dist/services/workflow-sign-file-settings.d.ts.map +1 -0
  124. package/dist/services/workflow-sign-file-settings.js +80 -0
  125. package/dist/services/workflow-sign-file-settings.js.map +1 -0
  126. package/dist/services/workflow-submit-confirm.d.ts +14 -0
  127. package/dist/services/workflow-submit-confirm.d.ts.map +1 -0
  128. package/dist/services/workflow-submit-confirm.js +29 -0
  129. package/dist/services/workflow-submit-confirm.js.map +1 -0
  130. package/dist/services/workflow-tab-config.d.ts +3 -3
  131. package/dist/services/workflow-tab-config.d.ts.map +1 -1
  132. package/dist/services/workflow-tab-config.js +14 -12
  133. package/dist/services/workflow-tab-config.js.map +1 -1
  134. package/dist/services/workflow-tabs-editor.d.ts +28 -0
  135. package/dist/services/workflow-tabs-editor.d.ts.map +1 -0
  136. package/dist/services/workflow-tabs-editor.js +130 -0
  137. package/dist/services/workflow-tabs-editor.js.map +1 -0
  138. package/dist/services/workflow-watermark-template.d.ts +8 -0
  139. package/dist/services/workflow-watermark-template.d.ts.map +1 -0
  140. package/dist/services/workflow-watermark-template.js +78 -0
  141. package/dist/services/workflow-watermark-template.js.map +1 -0
  142. package/package.json +1 -1
  143. package/skill-docs/SKILL.md +4 -4
  144. package/skill-docs/_catalog.md +106 -104
  145. package/skill-docs/references/common/ref-cli-commands.md +696 -689
  146. package/skill-docs/references/form/guide-form-archive-permission.md +5 -2
  147. package/skill-docs/references/form/guide-form-layout-incremental.md +6 -4
  148. package/skill-docs/references/form/guide-form-view.md +423 -374
  149. package/skill-docs/references/form/ref-form-fields.md +1 -1
  150. package/skill-docs/references/report/cross-dataset-filter-guide.md +33 -19
  151. package/skill-docs/references/report/event-hreflink-guide.md +30 -0
  152. package/skill-docs/references/report/ref-report-commands.md +14 -0
  153. package/skill-docs/references/report/report-designer-feature-map.md +2 -2
  154. package/skill-docs/references/workflow/guide-base-auth-share-remind.md +126 -126
  155. package/skill-docs/references/workflow/guide-function-settings.md +112 -0
  156. package/skill-docs/references/workflow/guide-workflow.md +87 -8
@@ -0,0 +1,80 @@
1
+ import { BaseSettings, formOf, normalized, wire, verify, keys, P } from './workflow-base-settings.js';
2
+ import { id } from './workflow-function-management.js';
3
+ export const pathSignFields = ['signShowOrder', 'signShowSrcList', 'viewRelateSign', 'viewForwardSign', 'allowSignRelate', 'relateRangeSelect', 'relateMatterRangeBrowser', 'allowSignUpload', 'uploadCatalogBrowser', 'allowSignLocation', 'allowSignEmoticon', 'allowSignAt', 'informHrmRange'];
4
+ export const fileFields = ['createDelete', 'asyncDelete'];
5
+ export class SignFileSettings extends BaseSettings {
6
+ async readSettings(kind, w) {
7
+ const r = await this.get(`${P}/${kind === 'sign' ? 'pathSet/signconfig/getPathSignConfigForm' : 'file/getFileConfigForm'}`, { workflowId: id(w) });
8
+ return formOf(kind === 'sign' ? r.pathSignConfig : r);
9
+ }
10
+ async candidates(w, k) {
11
+ if (!['relateMatterRangeBrowser', 'uploadCatalogBrowser'].includes(k))
12
+ throw Error('无效候选字段');
13
+ const f = await this.readSettings('sign', w), b = f.items[k]?.browserBean;
14
+ if (!b)
15
+ throw Error('当前环境未开放该设置');
16
+ const expected = k === 'uploadCatalogBrowser' ? ['doc', 'folder'] : ['bcw', 'relevanceScopeItemBrowser'];
17
+ if (b.module !== expected[0] || b.type !== expected[1])
18
+ throw Error('不支持的浏览器');
19
+ return this.post(`/api/${b.module}/common/browser/data/${b.type}`, { ...b.commonParams, ...b.dataParams, current: 1, pageNo: 1, pageSize: 100 });
20
+ }
21
+ async selection(form, k, values) {
22
+ if (!Array.isArray(values) || values.some(v => typeof v !== 'string' || !v))
23
+ throw Error(`${k} 需要字符串 ID 数组`);
24
+ const b = form.items[k]?.browserBean;
25
+ const expected = k === 'uploadCatalogBrowser' ? ['doc', 'folder'] : ['bcw', 'relevanceScopeItemBrowser'];
26
+ if (!b || b.module !== expected[0] || b.type !== expected[1])
27
+ throw Error(`${k} 当前环境未返回支持的浏览器`);
28
+ if (k === 'uploadCatalogBrowser' && values.length > 1)
29
+ throw Error('附件上传目录只能选择一个');
30
+ if (new Set(values).size !== values.length)
31
+ throw Error(`${k} 重复 ID`);
32
+ if (!values.length)
33
+ return [];
34
+ const d = k === 'relateMatterRangeBrowser' ? await this.post(`/api/${b.module}/common/browser/data/${b.type}`, { ...b.commonParams, ...b.dataParams, current: 1, pageNo: 1, pageSize: 100 }) : await this.post(`/api/${b.module}/common/browser/destData/${b.type}`, { ...b.commonParams, ...b.destDataParams, selectIds: values.join(','), browserMultiple: !!b.multiple });
35
+ const rows = Array.isArray(d) ? d : Array.isArray(d?.data) ? d.data : d?.id ? [d] : undefined;
36
+ if (k === 'relateMatterRangeBrowser' && d.total !== undefined && Number(d.total) > (rows?.length ?? 0))
37
+ throw Error('事项类型候选不完整,停止写入');
38
+ if (!Array.isArray(rows))
39
+ throw Error(`${k} 无法验证浏览对象,返回字段:${Object.keys(d ?? {}).join(',')}`);
40
+ return values.map(v => { const hits = rows.filter(r => String(r.id) === v && !r.isDelete && !r.disabled && !r.disabledCheck); if (hits.length !== 1)
41
+ throw Error(`${k} 未找到唯一有效 ID:${v}`); return { ...hits[0], id: v, content: hits[0].content ?? hits[0].name }; });
42
+ }
43
+ async updateSettings(kind, w, patch) {
44
+ const allowed = kind === 'sign' ? pathSignFields : fileFields;
45
+ keys(patch, allowed);
46
+ const form = await this.readSettings(kind, w), before = normalized(form), nextPatch = { ...patch };
47
+ const browsers = {};
48
+ for (const k of ['relateMatterRangeBrowser', 'uploadCatalogBrowser'])
49
+ if (k in nextPatch) {
50
+ const item = form.items[k];
51
+ if (!item || item.disabled || item.disable || item.readOnly)
52
+ throw Error(`${k} 当前不可编辑`);
53
+ browsers[k] = await this.selection(form, k, nextPatch[k]);
54
+ delete nextPatch[k];
55
+ }
56
+ const next = { ...await this.patch(form, nextPatch, allowed), ...browsers };
57
+ if (kind === 'sign' && ('relateRangeSelect' in patch || 'relateMatterRangeBrowser' in patch)) {
58
+ if (next.relateRangeSelect === '1' && !next.relateMatterRangeBrowser?.length)
59
+ throw Error('选择关联范围时必须指定非空 --relate-items');
60
+ if (next.relateRangeSelect === '0' && patch.relateMatterRangeBrowser?.length)
61
+ throw Error('指定事项类型须设置 --relate-range 1');
62
+ }
63
+ const payload = { ...wire(form, next), workflowId: id(w) };
64
+ if (kind === 'sign') {
65
+ // Same fixed compatibility field as frontend doSaveEvent; not a PC/mobile display API.
66
+ payload.signOrder = 0;
67
+ if ('uploadCatalogBrowser' in next)
68
+ payload.uploadCatalog = next.uploadCatalogBrowser?.[0]?.id ?? '0';
69
+ }
70
+ const result = await this.post(`${P}/${kind === 'sign' ? 'pathSet/signconfig/savePathSignConfig' : 'file/saveFileConfigForm'}`, payload);
71
+ if (kind === 'file' && result !== true)
72
+ throw Error('附件设置保存业务失败');
73
+ if (kind === 'sign' && (!result || !(Number(result.row) > 0)))
74
+ throw Error('签字设置保存业务失败');
75
+ const after = normalized(await this.readSettings(kind, w));
76
+ verify(next, after, allowed);
77
+ return { workflowId: w, before, after, verified: true };
78
+ }
79
+ }
80
+ //# sourceMappingURL=workflow-sign-file-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-sign-file-settings.js","sourceRoot":"","sources":["../../src/services/workflow-sign-file-settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { BaseSettings } from './workflow-base-settings.js';
2
+ import { type Config } from './workflow-function-management.js';
3
+ export declare const submitFields: string[];
4
+ export declare const showNodeLabels: Record<string, string>;
5
+ export declare class SubmitConfirmSettings extends BaseSettings {
6
+ read(workflowId: string): Promise<import("./workflow-function-management.js").Form>;
7
+ update(workflowId: string, patch: Config): Promise<{
8
+ workflowId: string;
9
+ before: Config;
10
+ after: Config;
11
+ verified: boolean;
12
+ }>;
13
+ }
14
+ //# sourceMappingURL=workflow-submit-confirm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-submit-confirm.d.ts","sourceRoot":"","sources":["../../src/services/workflow-submit-confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA6C,MAAM,6BAA6B,CAAC;AACtG,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAEpE,eAAO,MAAM,YAAY,UAAgF,CAAC;AAC1G,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAyD,CAAC;AAC5G,qBAAa,qBAAsB,SAAQ,YAAY;IAC/C,IAAI,CAAC,UAAU,EAAE,MAAM;IAGvB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;CAiB/C"}
@@ -0,0 +1,29 @@
1
+ import { BaseSettings, P, formOf, normalized, wire, verify, keys } from './workflow-base-settings.js';
2
+ import { id } from './workflow-function-management.js';
3
+ export const submitFields = ['confirm', 'nodeRange', 'nodeRangeBrowser', 'showCcOperator', 'showNodeWay'];
4
+ export const showNodeLabels = { '0': '显示所有节点', '1': '仅显示下一节点', '2': '仅显示会流转到达的节点' };
5
+ export class SubmitConfirmSettings extends BaseSettings {
6
+ async read(workflowId) {
7
+ return formOf(await this.get(`${P}/baseSet/getSubmitSetForm`, { workflowId: id(workflowId) }));
8
+ }
9
+ async update(workflowId, patch) {
10
+ keys(patch, submitFields);
11
+ const form = await this.read(workflowId), before = normalized(form);
12
+ const next = await this.patch(form, patch, submitFields);
13
+ if ('nodeRange' in patch || 'nodeRangeBrowser' in patch) {
14
+ if (String(next.nodeRange) === '0') {
15
+ if (patch.nodeRangeBrowser?.length)
16
+ throw Error('全部节点不能同时指定节点;请选择 --node-range 1 或 2');
17
+ next.nodeRangeBrowser = [];
18
+ }
19
+ else if (!next.nodeRangeBrowser?.length) {
20
+ throw Error('选择/排除节点时节点列表不能为空,请传 --nodes');
21
+ }
22
+ }
23
+ await this.post(`${P}/baseSet/saveSubmitSetForm`, { ...wire(form, next), workflowId: id(workflowId) });
24
+ const after = normalized(await this.read(workflowId));
25
+ verify(next, after, submitFields);
26
+ return { workflowId, before, after, verified: true };
27
+ }
28
+ }
29
+ //# sourceMappingURL=workflow-submit-confirm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-submit-confirm.js","sourceRoot":"","sources":["../../src/services/workflow-submit-confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACtG,OAAO,EAAE,EAAE,EAAe,MAAM,mCAAmC,CAAC;AAEpE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;AAC1G,MAAM,CAAC,MAAM,cAAc,GAA2B,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;AAC5G,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IACrD,KAAK,CAAC,IAAI,CAAC,UAAkB;QAC3B,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,2BAA2B,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,UAAkB,EAAE,KAAa;QAC5C,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QACzD,IAAI,WAAW,IAAI,KAAK,IAAI,kBAAkB,IAAI,KAAK,EAAE,CAAC;YACxD,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;gBACnC,IAAI,KAAK,CAAC,gBAAgB,EAAE,MAAM;oBAAE,MAAM,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACvF,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAC7B,CAAC;iBAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;gBAC1C,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,4BAA4B,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACvG,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAClC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvD,CAAC;CACF"}
@@ -16,6 +16,7 @@ export interface TabConfig {
16
16
  orderId: number;
17
17
  raw: Record<string, any>;
18
18
  }
19
+ export declare function toTab(raw: any): TabConfig;
19
20
  /** 展示名:有自定义名用自定义名 */
20
21
  export declare function tabLabel(t: TabConfig): string;
21
22
  export declare function getTabConfig(client: ApiClient, baseUrl: string, workflowId: string): Promise<TabConfig[]>;
@@ -45,10 +46,9 @@ export declare function applyTabPatch(tabs: TabConfig[], patch: TabPatch): {
45
46
  changed: string[];
46
47
  };
47
48
  /**
48
- * 保存。**必须提交完整列表** —— 只发变化行会把没带上的页签覆盖没。
49
+ * 保存完整列表以保持全局排序;后端会按当前列表位置重设顺序,省略行并不删除。
49
50
  *
50
- * 从包装字段重建报文:GET 回来是布尔、写出去要数字;`orderId` 要 ×10
51
- * (GET 给显示序 1..8,存储用的是 10,20,… 给自定义页签留插空)。
51
+ * 从包装字段重建报文:GET 回来是布尔、写出去要数字;`orderId` 按列表顺序提交,后端按 i+1 重设。
52
52
  */
53
53
  export declare function saveTabConfig(client: ApiClient, baseUrl: string, workflowId: string, tabs: TabConfig[]): Promise<void>;
54
54
  //# sourceMappingURL=workflow-tab-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-tab-config.d.ts","sourceRoot":"","sources":["../../src/services/workflow-tab-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAwBnD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC1B;AAoBD,qBAAqB;AACrB,wBAAgB,QAAQ,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAE7C;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GACrD,OAAO,CAAC,SAAS,EAAE,CAAC,CAUtB;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAO7E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAEpD;AAED,MAAM,WAAW,QAAQ;IACvB,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,+CAA+C;AAC/C,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAqC1G;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GACxE,OAAO,CAAC,IAAI,CAAC,CAqBf"}
1
+ {"version":3,"file":"workflow-tab-config.d.ts","sourceRoot":"","sources":["../../src/services/workflow-tab-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAwBnD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC1B;AAID,wBAAgB,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CAczC;AAED,qBAAqB;AACrB,wBAAgB,QAAQ,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAE7C;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GACrD,OAAO,CAAC,SAAS,EAAE,CAAC,CAUtB;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAQ7E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAEpD;AAED,MAAM,WAAW,QAAQ;IACvB,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,+CAA+C;AAC/C,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAqC1G;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GACxE,OAAO,CAAC,IAAI,CAAC,CAqBf"}
@@ -10,7 +10,7 @@
10
10
  * |---|---|---|
11
11
  * | 集合键 | `tabList` | `list` |
12
12
  * | 各开关 | `true/false` | `1/0` |
13
- * | `orderId` | `1..8`(显示序) | `10,20,30…`(**×10**,给自定义页签留插空) |
13
+ * | `orderId` | `1..8`(显示序) | `1..N`(后端按列表顺序重设) |
14
14
  * | `isGlobal` | 无 | `0` |
15
15
  *
16
16
  * 页签集合**随流程类型变**:EB 流程只有流程表单/流程图/流程状态/共享/主流程/子流程/平行流程/外部流程;
@@ -19,7 +19,7 @@
19
19
  */
20
20
  const BASE = '/api/bs/workflow/pathdef';
21
21
  const asBool = (v) => v === true || v === 1 || v === '1';
22
- function toTab(raw) {
22
+ export function toTab(raw) {
23
23
  return {
24
24
  id: String(raw?.id ?? ''),
25
25
  tabName: String(raw?.tabName ?? ''),
@@ -57,10 +57,13 @@ export async function getTabConfig(client, baseUrl, workflowId) {
57
57
  export function findTab(tabs, ref) {
58
58
  const s = String(ref);
59
59
  const n = Number(s);
60
- return tabs.find((t) => t.id === s)
61
- || (Number.isInteger(n) ? tabs.find((t) => t.flowPageTabId === n) : undefined)
62
- || tabs.find((t) => t.tabName === s)
63
- || tabs.find((t) => t.customName === s);
60
+ const exact = tabs.find(t => t.id === s);
61
+ if (exact)
62
+ return exact;
63
+ const matches = tabs.filter(t => (Number.isInteger(n) && t.flowPageTabId === n) || t.tabName === s || t.customName === s);
64
+ if (matches.length > 1)
65
+ throw Error(`页签引用有歧义:${ref},请使用页签 ID`);
66
+ return matches[0];
64
67
  }
65
68
  export function tabNames(tabs) {
66
69
  return tabs.map((t) => `${tabLabel(t)}(${t.flowPageTabId})`);
@@ -107,13 +110,12 @@ export function applyTabPatch(tabs, patch) {
107
110
  return { next, changed };
108
111
  }
109
112
  /**
110
- * 保存。**必须提交完整列表** —— 只发变化行会把没带上的页签覆盖没。
113
+ * 保存完整列表以保持全局排序;后端会按当前列表位置重设顺序,省略行并不删除。
111
114
  *
112
- * 从包装字段重建报文:GET 回来是布尔、写出去要数字;`orderId` 要 ×10
113
- * (GET 给显示序 1..8,存储用的是 10,20,… 给自定义页签留插空)。
115
+ * 从包装字段重建报文:GET 回来是布尔、写出去要数字;`orderId` 按列表顺序提交,后端按 i+1 重设。
114
116
  */
115
117
  export async function saveTabConfig(client, baseUrl, workflowId, tabs) {
116
- const list = tabs.map((t) => ({
118
+ const list = tabs.map((t, index) => ({
117
119
  ...t.raw,
118
120
  id: t.id,
119
121
  tabName: t.tabName,
@@ -124,13 +126,13 @@ export async function saveTabConfig(client, baseUrl, workflowId, tabs) {
124
126
  showInMobile: t.showInMobile ? 1 : 0,
125
127
  showInMobileMenu: t.showInMobileMenu ? 1 : 0,
126
128
  defOpen: t.defOpen ? 1 : 0,
127
- orderId: Math.round(t.orderId * 10),
129
+ orderId: index + 1,
128
130
  isGlobal: 0,
129
131
  }));
130
132
  const res = await client.post(`${baseUrl}${BASE}/pathSet/tabconfig/saveTabConfigData`, {
131
133
  list, workflowId, global: false,
132
134
  });
133
- if (res?.code !== 200 || res?.status === false) {
135
+ if (res?.code !== 200 || res?.status === false || Number(res?.data) <= 0) {
134
136
  throw new Error(`保存详情页页签失败: ${res?.msg || '未知错误'}`);
135
137
  }
136
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-tab-config.js","sourceRoot":"","sources":["../../src/services/workflow-tab-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-tab-config.js","sourceRoot":"","sources":["../../src/services/workflow-tab-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { ApiClient } from '../core/client.js';
2
+ import { type TabConfig, type TabPatch } from './workflow-tab-config.js';
3
+ export interface TabsEdit extends TabPatch {
4
+ create?: boolean;
5
+ tab?: string;
6
+ name?: string;
7
+ pcUrl?: string;
8
+ mobileUrl?: string;
9
+ order?: string[];
10
+ delete?: string;
11
+ locales?: Record<string, string>;
12
+ }
13
+ export declare function checkDisabled(before: TabConfig[], next: TabConfig[]): void;
14
+ export declare function getTabLocales(client: ApiClient, base: string, tabId: string): Promise<any>;
15
+ export declare function editTabs(client: ApiClient, base: string, w: string, o: TabsEdit): Promise<{
16
+ workflowId: string;
17
+ deleted: string;
18
+ verified: boolean;
19
+ tabs: TabConfig[];
20
+ created?: undefined;
21
+ } | {
22
+ workflowId: string;
23
+ created: string | undefined;
24
+ verified: boolean;
25
+ tabs: TabConfig[];
26
+ deleted?: undefined;
27
+ }>;
28
+ //# sourceMappingURL=workflow-tabs-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-tabs-editor.d.ts","sourceRoot":"","sources":["../../src/services/workflow-tabs-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAA8D,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGrI,MAAM,WAAW,QAAS,SAAQ,QAAQ;IAAG,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAC,MAAM,CAAC,CAAC;CAAE;AAIrM,wBAAgB,aAAa,CAAC,MAAM,EAAC,SAAS,EAAE,EAAC,IAAI,EAAC,SAAS,EAAE,QAAqS;AAMtW,wBAAsB,aAAa,CAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,gBAA+H;AAE5M,wBAAsB,QAAQ,CAAC,MAAM,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,QAAQ;;;;;;;;;;;;GAiC9E"}
@@ -0,0 +1,130 @@
1
+ import { getTabConfig, saveTabConfig, applyTabPatch, findTab, toTab } from './workflow-tab-config.js';
2
+ const P = '/api/bs/workflow/pathdef/pathSet/tabconfig';
3
+ const M = '/api/bs/workflow/pathdef/multilang';
4
+ function data(r) { if (r?.code !== 200 || r.status === false || r.data === false || r.data?.success === false)
5
+ throw Error(r?.msg || '页签接口失败'); return r.data; }
6
+ function target(tabs, ref) { const t = findTab(tabs, ref); if (!t)
7
+ throw Error(`未找到页签 ${ref}`); return t; }
8
+ function url(v, mobile = false) { if (typeof v !== 'string' || (!(mobile && v === '') && !/^(\/[^/]|\/$|https?:\/\/)/.test(v)))
9
+ throw Error('地址必须为 / 开头的内部地址或 http(s) 地址;移动地址可为空'); }
10
+ export function checkDisabled(before, next) { for (const t of next) {
11
+ const old = before.find(x => x.id === t.id);
12
+ if (!old)
13
+ continue;
14
+ for (const [flag, key] of [['pcPutAsh', 'showInPc'], ['mobilePutAsh', 'showInMobile'], ['mobileMenuPutAsh', 'showInMobileMenu']])
15
+ if (old.raw[flag] && old[key] !== t[key])
16
+ throw Error(`页签 ${t.id} 的 ${key} 被平台禁用,不能修改`);
17
+ } }
18
+ function checkReadback(next, after) {
19
+ if (next.map(t => t.id).join(',') !== after.map(t => t.id).join(','))
20
+ throw Error('保存已发出,页签列表或顺序回读不一致');
21
+ for (const t of next) {
22
+ const a = target(after, t.id);
23
+ for (const k of ['customName', 'showInPc', 'showInMobile', 'showInMobileMenu', 'defOpen'])
24
+ if (t[k] !== a[k])
25
+ throw Error(`保存已发出,${t.id}.${k} 回读不一致`);
26
+ if (t.flowPageTabType === '1')
27
+ for (const k of ['pcUrl', 'mobileUrl'])
28
+ if (String(t.raw.customTabConfig?.[k] ?? '') !== String(a.raw.customTabConfig?.[k] ?? ''))
29
+ throw Error(`保存已发出,${t.id}.${k} 回读不一致`);
30
+ }
31
+ }
32
+ export async function getTabLocales(client, base, tabId) { return data(await client.post(base + M + '/getMultilangData', { tablefield: 'wfp_flowpage_tabconfig.custom_name', targetId: tabId })); }
33
+ function localeRows(d) { const rows = d.usernamePerLangs ?? d.tableData ?? d.data; if (!Array.isArray(rows))
34
+ throw Error('多语言返回结构不支持,停止写入'); return rows; }
35
+ export async function editTabs(client, base, w, o) {
36
+ const before = await getTabConfig(client, base, w);
37
+ let next = before.map(t => ({ ...t, raw: structuredClone(t.raw) }));
38
+ if (o.create && o.tab)
39
+ throw Error('--create 与 --tab 不能同时使用');
40
+ if (o.delete) {
41
+ if (Object.keys(o).some(k => k !== 'delete' && o[k] !== undefined))
42
+ throw Error('--delete 须单独使用');
43
+ const t = target(before, o.delete);
44
+ if (t.flowPageTabType !== '1')
45
+ throw Error('只能删除自定义地址页签');
46
+ data(await client.get(base + P + '/deleteCustomTab?tabConfigIds=' + encodeURIComponent(t.id)));
47
+ const after = await getTabConfig(client, base, w);
48
+ checkReadback(before.filter(x => x.id !== t.id), after);
49
+ return { workflowId: w, deleted: t.id, verified: true, tabs: after };
50
+ }
51
+ if (o.pcUrl !== undefined)
52
+ url(o.pcUrl);
53
+ if (o.mobileUrl !== undefined)
54
+ url(o.mobileUrl, true);
55
+ if ((o.name !== undefined || o.pcUrl !== undefined || o.mobileUrl !== undefined || o.locales !== undefined) && !o.create && !o.tab)
56
+ throw Error('修改名称/地址/多语言必须指定 --tab');
57
+ if (o.locales !== undefined && (!o.locales || Array.isArray(o.locales) || typeof o.locales !== 'object' || !Object.keys(o.locales).length || Object.values(o.locales).some(v => typeof v !== 'string')))
58
+ throw Error('--locales 必须是语言 ID/语言代码到字符串的非空 JSON 对象');
59
+ let edited = o.tab ? target(next, o.tab) : undefined;
60
+ if (o.create) {
61
+ if (!o.name?.trim() || !o.pcUrl)
62
+ throw Error('新增自定义页签需要 --name 和 --pc-url');
63
+ const ids = data(await client.get(base + P + '/getCustomTabParam?num=1'))?.customTabIds;
64
+ if (!Array.isArray(ids) || ids.length !== 1 || typeof ids[0] !== 'string' || !/^\d+$/.test(ids[0]))
65
+ throw Error('未返回有效新页签 ID');
66
+ const form = data(await client.get(base + P + '/getTabCustomLinkForm?tabConfigId=' + ids[0]));
67
+ if (!form?.data || !('pcUrl' in form.data) || !('mobileUrl' in form.data))
68
+ throw Error('未返回地址默认值');
69
+ // Frontend addNewTab defaults; ID API provides no switch defaults. See docs/contracts/workflow-tabs-set.md.
70
+ edited = toTab({ id: ids[0], tabName: '自定义', flowPageTabType: '1', defOpen: 0, showInPc: 0, showInMobile: 0, showInMobileMenu: 0, mobileMenuPutAsh: true, pcPutAsh: false, mobilePutAsh: false, customNameOtherParams: { isSetLocale: false }, wfpMultilangCommonParamMap: {}, workflowId: w, customTabConfig: form.data, orderId: next.length + 1 });
71
+ next.push(edited);
72
+ }
73
+ if (edited) {
74
+ if (o.name !== undefined) {
75
+ edited.customName = o.name;
76
+ edited.raw.wfpMultilangCommonParamMap = {};
77
+ }
78
+ if (o.pcUrl !== undefined || o.mobileUrl !== undefined) {
79
+ if (edited.flowPageTabType !== '1')
80
+ throw Error('仅自定义地址页签可修改 URL');
81
+ const form = data(await client.get(base + P + '/getTabCustomLinkForm?tabConfigId=' + edited.id));
82
+ if (!form?.data)
83
+ throw Error('缺少地址配置');
84
+ edited.raw.customTabConfig = { ...form.data, ...edited.raw.customTabConfig, ...(o.pcUrl !== undefined ? { pcUrl: o.pcUrl } : {}), ...(o.mobileUrl !== undefined ? { mobileUrl: o.mobileUrl } : {}) };
85
+ }
86
+ }
87
+ let localeData, mergedLocales;
88
+ if (o.locales && edited) {
89
+ localeData = await getTabLocales(client, base, edited.id);
90
+ mergedLocales = structuredClone(localeRows(localeData));
91
+ for (const [ref, value] of Object.entries(o.locales)) {
92
+ const hits = mergedLocales.filter(r => String(r.langid) === ref || r.langtype === ref);
93
+ if (hits.length !== 1)
94
+ throw Error(`未找到唯一语言 ${ref}`);
95
+ hits[0].value = value;
96
+ }
97
+ }
98
+ next = applyTabPatch(next, o).next;
99
+ if (o.order) {
100
+ const order = o.order.map(ref => target(next, ref));
101
+ if (order.length !== next.length || new Set(order.map(t => t.id)).size !== next.length)
102
+ throw Error('--order 必须包含全部页签,每项恰好一次');
103
+ next = order;
104
+ }
105
+ checkDisabled([...before, ...(o.create && edited ? [edited] : [])], next);
106
+ await saveTabConfig(client, base, w, next);
107
+ let after = await getTabConfig(client, base, w);
108
+ checkReadback(next, after);
109
+ if (mergedLocales && edited) {
110
+ // A normal name save can update the current-language row. Re-read before merging translations.
111
+ localeData = await getTabLocales(client, base, edited.id);
112
+ mergedLocales = structuredClone(localeRows(localeData));
113
+ for (const [ref, value] of Object.entries(o.locales)) {
114
+ const hits = mergedLocales.filter(r => String(r.langid) === ref || r.langtype === ref);
115
+ if (hits.length !== 1)
116
+ throw Error(`保存后语言列表发生变化:${ref}`);
117
+ hits[0].value = value;
118
+ }
119
+ data(await client.post(base + M + '/saveMultilangData', { tablefield: 'wfp_flowpage_tabconfig.custom_name', targetId: edited.id, needRecodInputValue: true, inputValue: o.name ?? localeData.inputValue ?? edited.customName, tableData: mergedLocales }));
120
+ const read = localeRows(await getTabLocales(client, base, edited.id));
121
+ for (const row of mergedLocales) {
122
+ const r = read.find(x => String(x.langid) === String(row.langid));
123
+ if (!r || r.value !== row.value)
124
+ throw Error('多语言保存已发出,回读不一致');
125
+ }
126
+ after = await getTabConfig(client, base, w);
127
+ }
128
+ return { workflowId: w, created: o.create ? edited?.id : undefined, verified: true, tabs: after };
129
+ }
130
+ //# sourceMappingURL=workflow-tabs-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-tabs-editor.js","sourceRoot":"","sources":["../../src/services/workflow-tabs-editor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ type Field = {
2
+ id: string;
3
+ name: string;
4
+ };
5
+ /** Compile only explicitly supplied content; style-only patches retain both stored templates. */
6
+ export declare function compileWatermark(p: Record<string, any>, fields: Field[]): Record<string, any>;
7
+ export {};
8
+ //# sourceMappingURL=workflow-watermark-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-watermark-template.d.ts","sourceRoot":"","sources":["../../src/services/workflow-watermark-template.ts"],"names":[],"mappings":"AACA,KAAK,KAAK,GAAC;IAAC,EAAE,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,MAAM,CAAA;CAAC,CAAC;AAEnC,iGAAiG;AACjG,wBAAgB,gBAAgB,CAAC,CAAC,EAAC,MAAM,CAAC,MAAM,EAAC,GAAG,CAAC,EAAC,MAAM,EAAC,KAAK,EAAE,uBA6CnE"}
@@ -0,0 +1,78 @@
1
+ import { DOMParser } from '@xmldom/xmldom';
2
+ const escape = (s) => s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
3
+ /** Compile only explicitly supplied content; style-only patches retain both stored templates. */
4
+ export function compileWatermark(p, fields) {
5
+ const has = (k) => Object.prototype.hasOwnProperty.call(p, k);
6
+ if (!['textTemplate', 'wmText', 'wmOriginText'].some(has))
7
+ return p;
8
+ const lookup = (key) => { const rows = fields.filter(f => String(f.id) === key || f.name === key); if (rows.length !== 1)
9
+ throw Error(`水印变量未匹配唯一有效字段:${key}`); return rows[0]; };
10
+ const validate = (text) => {
11
+ if (!text.trim())
12
+ throw Error('水印模板不能为空');
13
+ if (/\[-?\d+\]|\{\{|\}\}/.test(text))
14
+ throw Error('水印不能使用邮件占位符或未解析变量;使用 textTemplate 的 {{名称}} 或 wmText 的 $ID');
15
+ for (const m of text.matchAll(/\$(-?\d+)/g))
16
+ lookup(m[1]);
17
+ if (text.replace(/\$-?\d+/g, '').includes('$'))
18
+ throw Error('无效水印变量语法:$ 后必须是有效变量 ID');
19
+ return text;
20
+ };
21
+ let text, html;
22
+ if (has('textTemplate')) {
23
+ if (has('wmText') || has('wmOriginText'))
24
+ throw Error('textTemplate 不可与原始模板同时指定');
25
+ if (typeof p.textTemplate !== 'string')
26
+ throw Error('textTemplate 必须为字符串');
27
+ text = p.textTemplate.replace(/\{\{([^{}]+)\}\}/g, (_m, key) => '$' + lookup(key).id);
28
+ }
29
+ else if (has('wmText')) {
30
+ if (typeof p.wmText !== 'string')
31
+ throw Error('wmText 必须为字符串');
32
+ text = p.wmText;
33
+ }
34
+ else {
35
+ throw Error('不能仅修改 wmOriginText;请提供 textTemplate 或 wmText,并同步校验回显模板');
36
+ }
37
+ validate(text);
38
+ html = '<p>' + text.split(/(\$-?\d+)/g).map(part => {
39
+ if (/^\$-?\d+$/.test(part)) {
40
+ const f = lookup(part.slice(1));
41
+ return `<span pluginname="watermarksetting" contenteditable="false" data-id="${f.id}">${escape(f.name)}</span>`;
42
+ }
43
+ return escape(part).replace(/\n/g, '<br/>');
44
+ }).join('') + '</p>';
45
+ if (has('wmOriginText')) {
46
+ if (typeof p.wmOriginText !== 'string')
47
+ throw Error('wmOriginText 必须为字符串');
48
+ let invalid = false;
49
+ const doc = new DOMParser({ errorHandler: { warning: () => { invalid = true; }, error: () => { invalid = true; }, fatalError: () => { invalid = true; } } }).parseFromString('<root>' + p.wmOriginText + '</root>', 'text/xml');
50
+ const walk = (node) => {
51
+ if (node.nodeType === 3)
52
+ return node.data;
53
+ if (node.nodeType !== 1)
54
+ return '';
55
+ if (['script', 'style'].includes(node.tagName))
56
+ throw Error('回显模板不允许 script/style');
57
+ if (node.hasAttribute('data-id')) {
58
+ const f = lookup(node.getAttribute('data-id'));
59
+ if (node.tagName !== 'span' || node.getAttribute('pluginname') !== 'watermarksetting')
60
+ throw Error('变量必须是 watermarksetting span');
61
+ return '$' + f.id;
62
+ }
63
+ if (node.tagName === 'br')
64
+ return '\n';
65
+ let out = '';
66
+ for (let c = node.firstChild; c; c = c.nextSibling)
67
+ out += walk(c);
68
+ return out + (node.tagName === 'p' ? '\n' : '');
69
+ };
70
+ const actual = walk(doc.documentElement).replace(/\n$/, '');
71
+ if (invalid || actual !== text)
72
+ throw Error('wmText 与 wmOriginText 内容/变量顺序不一致或 HTML 格式无效');
73
+ html = p.wmOriginText;
74
+ }
75
+ const { textTemplate, ...rest } = p;
76
+ return { ...rest, wmText: text, wmOriginText: html };
77
+ }
78
+ //# sourceMappingURL=workflow-watermark-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-watermark-template.js","sourceRoot":"","sources":["../../src/services/workflow-watermark-template.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "weaver-e10-builder",
3
- "version": "1.5.14",
3
+ "version": "1.5.16",
4
4
  "description": "Eteams/Ebuilder CLI — 泛微 OA 命令行工具",
5
5
  "type": "module",
6
6
  "files": [
@@ -2,11 +2,11 @@
2
2
  name: weaver-e10-builder
3
3
  display_name: 泛微E10智能搭建Skill
4
4
  display_name_en: E10 Builder
5
- description: 泛微E10智能搭建skill v2(通用版),辅助编写泛微Ebuilder自定义应用,对应CLI版本1.5.14
6
- description_zh: 泛微Ebuilder低代码应用智能搭建工具 v2(通用版),辅助编写自定义应用(表单/流程/列表/动作流/权限/分组/编号等),与 e10-cli 配套使用,当前对应 CLI 版本 1.5.14。
7
- description_en: E10 Ebuilder low-code app builder skill v2 (general) — helps build Weaver E10 custom apps (forms/workflows/lists/actionflows/permissions/groups/numbering) via e10-cli, currently paired with CLI 1.5.14.
5
+ description: 泛微E10智能搭建skill v2(通用版),辅助编写泛微Ebuilder自定义应用,对应CLI版本1.5.16
6
+ description_zh: 泛微Ebuilder低代码应用智能搭建工具 v2(通用版),辅助编写自定义应用(表单/流程/列表/动作流/权限/分组/编号等),与 e10-cli 配套使用,当前对应 CLI 版本 1.5.16。
7
+ description_en: E10 Ebuilder low-code app builder skill v2 (general) — helps build Weaver E10 custom apps (forms/workflows/lists/actionflows/permissions/groups/numbering) via e10-cli, currently paired with CLI 1.5.16.
8
8
  category: coding
9
- version: 1.5.14
9
+ version: 1.5.16
10
10
  author: 泛微网络科技股份有限公司
11
11
  auto: true
12
12
  ---