weaver-e10-builder 1.6.10 → 1.6.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/form-browser-definition.d.ts.map +1 -1
- package/dist/commands/form-browser-definition.js +108 -7
- package/dist/commands/form-browser-definition.js.map +1 -1
- package/dist/commands/form-browser-scope-rules.d.ts +27 -0
- package/dist/commands/form-browser-scope-rules.d.ts.map +1 -0
- package/dist/commands/form-browser-scope-rules.js +141 -0
- package/dist/commands/form-browser-scope-rules.js.map +1 -0
- package/dist/commands/form-browser-scope-tree.d.ts +14 -0
- package/dist/commands/form-browser-scope-tree.d.ts.map +1 -0
- package/dist/commands/form-browser-scope-tree.js +115 -0
- package/dist/commands/form-browser-scope-tree.js.map +1 -0
- package/dist/commands/matrix-maintainer.d.ts +3 -0
- package/dist/commands/matrix-maintainer.d.ts.map +1 -0
- package/dist/commands/matrix-maintainer.js +117 -0
- package/dist/commands/matrix-maintainer.js.map +1 -0
- package/dist/commands/matrix.d.ts.map +1 -1
- package/dist/commands/matrix.js +2 -0
- package/dist/commands/matrix.js.map +1 -1
- package/dist/commands/report-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 +1102 -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/role.d.ts.map +1 -1
- package/dist/commands/role.js +354 -0
- package/dist/commands/role.js.map +1 -1
- package/dist/commands/special.d.ts.map +1 -1
- package/dist/commands/special.js +67 -31
- package/dist/commands/special.js.map +1 -1
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +1 -121
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/commands/workflow-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-layout-components.d.ts +3 -0
- package/dist/commands/workflow-layout-components.d.ts.map +1 -0
- package/dist/commands/workflow-layout-components.js +36 -0
- package/dist/commands/workflow-layout-components.js.map +1 -0
- package/dist/commands/workflow-node-batch.d.ts +3 -0
- package/dist/commands/workflow-node-batch.d.ts.map +1 -0
- package/dist/commands/workflow-node-batch.js +136 -0
- package/dist/commands/workflow-node-batch.js.map +1 -0
- package/dist/commands/workflow-node-opinion.d.ts +3 -0
- package/dist/commands/workflow-node-opinion.d.ts.map +1 -0
- package/dist/commands/workflow-node-opinion.js +51 -0
- package/dist/commands/workflow-node-opinion.js.map +1 -0
- package/dist/commands/workflow-node-reject.js +1 -1
- package/dist/commands/workflow-node-reject.js.map +1 -1
- package/dist/commands/workflow-node.d.ts.map +1 -1
- package/dist/commands/workflow-node.js +4 -3
- package/dist/commands/workflow-node.js.map +1 -1
- package/dist/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/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/components/send_message.d.ts.map +1 -1
- package/dist/services/actionflow/components/send_message.js +8 -3
- package/dist/services/actionflow/components/send_message.js.map +1 -1
- package/dist/services/actionflow/context_preflight.js +1 -1
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +1 -0
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +107 -31
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +4 -1
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/form-layout-describe.d.ts.map +1 -1
- package/dist/services/form-layout-describe.js +3 -2
- package/dist/services/form-layout-describe.js.map +1 -1
- package/dist/services/form-layout-document.d.ts.map +1 -1
- package/dist/services/form-layout-document.js +2 -1
- package/dist/services/form-layout-document.js.map +1 -1
- package/dist/services/matrix-maintainer.d.ts +27 -0
- package/dist/services/matrix-maintainer.d.ts.map +1 -0
- package/dist/services/matrix-maintainer.js +142 -0
- package/dist/services/matrix-maintainer.js.map +1 -0
- package/dist/services/report/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/drill.d.ts +74 -0
- package/dist/services/report/drill.d.ts.map +1 -0
- package/dist/services/report/drill.js +259 -0
- package/dist/services/report/drill.js.map +1 -0
- package/dist/services/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/role-function-permission.d.ts +12 -0
- package/dist/services/role-function-permission.d.ts.map +1 -0
- package/dist/services/role-function-permission.js +46 -0
- package/dist/services/role-function-permission.js.map +1 -0
- package/dist/services/special-layout.d.ts +113 -0
- package/dist/services/special-layout.d.ts.map +1 -0
- package/dist/services/special-layout.js +178 -0
- package/dist/services/special-layout.js.map +1 -0
- package/dist/services/workflow-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/dist/services/workflow-base-settings.d.ts +1 -10
- package/dist/services/workflow-base-settings.d.ts.map +1 -1
- package/dist/services/workflow-field-permission-route.d.ts +15 -41
- package/dist/services/workflow-field-permission-route.d.ts.map +1 -1
- package/dist/services/workflow-field-permission-route.js +23 -8
- package/dist/services/workflow-field-permission-route.js.map +1 -1
- package/dist/services/workflow-layout-components.d.ts +52 -0
- package/dist/services/workflow-layout-components.d.ts.map +1 -0
- package/dist/services/workflow-layout-components.js +66 -0
- package/dist/services/workflow-layout-components.js.map +1 -0
- package/dist/services/workflow-layout-draft.d.ts +49 -0
- package/dist/services/workflow-layout-draft.d.ts.map +1 -0
- package/dist/services/workflow-layout-draft.js +98 -0
- package/dist/services/workflow-layout-draft.js.map +1 -0
- package/dist/services/workflow-node-batch-spec.d.ts +122 -0
- package/dist/services/workflow-node-batch-spec.d.ts.map +1 -0
- package/dist/services/workflow-node-batch-spec.js +496 -0
- package/dist/services/workflow-node-batch-spec.js.map +1 -0
- package/dist/services/workflow-node-batch.d.ts +73 -0
- package/dist/services/workflow-node-batch.d.ts.map +1 -0
- package/dist/services/workflow-node-batch.js +328 -0
- package/dist/services/workflow-node-batch.js.map +1 -0
- package/dist/services/workflow-node-opinion-description.d.ts +12 -0
- package/dist/services/workflow-node-opinion-description.d.ts.map +1 -0
- package/dist/services/workflow-node-opinion-description.js +52 -0
- package/dist/services/workflow-node-opinion-description.js.map +1 -0
- package/dist/services/workflow-node-opinion-layout.d.ts +22 -0
- package/dist/services/workflow-node-opinion-layout.d.ts.map +1 -0
- package/dist/services/workflow-node-opinion-layout.js +113 -0
- package/dist/services/workflow-node-opinion-layout.js.map +1 -0
- package/dist/services/workflow-node-opinion-range.d.ts +21 -0
- package/dist/services/workflow-node-opinion-range.d.ts.map +1 -0
- package/dist/services/workflow-node-opinion-range.js +74 -0
- package/dist/services/workflow-node-opinion-range.js.map +1 -0
- package/dist/services/workflow-node-opinion.d.ts +43 -0
- package/dist/services/workflow-node-opinion.d.ts.map +1 -0
- package/dist/services/workflow-node-opinion.js +198 -0
- package/dist/services/workflow-node-opinion.js.map +1 -0
- package/dist/services/workflow-opinion-settings.d.ts +14 -0
- package/dist/services/workflow-opinion-settings.d.ts.map +1 -1
- package/dist/services/workflow-opinion-settings.js +18 -2
- package/dist/services/workflow-opinion-settings.js.map +1 -1
- package/ecodecmd/src/build.js +36 -12
- package/package.json +1 -1
- package/skill-docs/SKILL.md +164 -162
- package/skill-docs/_catalog.md +13 -3
- package/skill-docs/actionflows/references/components/message/SendMessage.md +32 -30
- package/skill-docs/references/coding/guide-page-code.md +95 -0
- package/skill-docs/references/common/guide-plan-template.md +4 -1
- package/skill-docs/references/common/map.md +28 -4
- package/skill-docs/references/common/ref-cli-commands.md +14 -4
- package/skill-docs/references/components/ref-component-common.md +98 -0
- package/skill-docs/references/form/guide-browser-definition.md +2 -219
- package/skill-docs/references/form/guide-browser-scope.md +285 -0
- package/skill-docs/references/form/guide-create-form.md +1 -1
- package/skill-docs/references/hrm/guide-matrix.md +276 -245
- package/skill-docs/references/hrm/guide-role.md +77 -0
- package/skill-docs/references/report/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 +75 -0
- package/skill-docs/references/report/event-hreflink-guide.md +55 -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 +174 -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-layout-components.md +26 -0
- package/skill-docs/references/workflow/guide-node-opinion.md +58 -0
- package/skill-docs/references/workflow/guide-workflow.md +49 -0
- package/skill-docs/references/form/guide-ebuilder-scope.md +0 -82
|
@@ -1,54 +1,28 @@
|
|
|
1
|
+
import { type WorkflowFormKind } from './workflow-context.js';
|
|
1
2
|
import { type Client } from './workflow-function-management.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
kind: import("./workflow-context.js").WorkflowFormKind;
|
|
3
|
+
export interface FieldPermissionRoute {
|
|
4
|
+
kind: WorkflowFormKind;
|
|
5
5
|
module: string;
|
|
6
6
|
endpoint: string;
|
|
7
|
-
bridge:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export declare function
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
bridge: {
|
|
19
|
-
bridgeService: string;
|
|
20
|
-
} | {
|
|
21
|
-
bridgeService?: undefined;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
7
|
+
bridge: Record<string, unknown>;
|
|
8
|
+
formId: string;
|
|
9
|
+
}
|
|
10
|
+
/** 流程级路由映射:接口路径只取决于流程表单类型,可在一次批量里解析一次复用。 */
|
|
11
|
+
export declare function fieldPermissionRouteOf(kind: WorkflowFormKind, formId: string): FieldPermissionRoute;
|
|
12
|
+
/** Read-only form discovery shared by node and sharing permissions. Never retry a write on another route. */
|
|
13
|
+
export declare function resolveFieldPermissionRoute(client: Client, base: string, workflowId: string, formId?: string): Promise<FieldPermissionRoute>;
|
|
14
|
+
export declare function loadNodeFieldPermission(client: Client, base: string, workflowId: string, nodeId: string,
|
|
15
|
+
/** 已解析的流程级路由(批量场景复用);传入时不再重复请求 getPathFrameInfo,但仍校验节点表单一致。 */
|
|
16
|
+
knownRoute?: FieldPermissionRoute): Promise<{
|
|
17
|
+
route: FieldPermissionRoute;
|
|
24
18
|
formId: any;
|
|
25
19
|
permissionId: any;
|
|
26
20
|
nodeFormRelateId: any;
|
|
27
21
|
layoutId: any;
|
|
28
22
|
relateFormId: any;
|
|
29
23
|
hasNodePermissionSet: boolean;
|
|
24
|
+
allowModify: any;
|
|
30
25
|
customParam: {
|
|
31
|
-
bridgeService: string;
|
|
32
|
-
workflowId: string;
|
|
33
|
-
nodeId: string;
|
|
34
|
-
scene: number;
|
|
35
|
-
nodeFormRelate: {
|
|
36
|
-
id: any;
|
|
37
|
-
workflowId: string;
|
|
38
|
-
layoutId: any;
|
|
39
|
-
nodeId: string;
|
|
40
|
-
permissionId: any;
|
|
41
|
-
relateFormId: any;
|
|
42
|
-
allowModify: number;
|
|
43
|
-
enableNodePermission: number;
|
|
44
|
-
mLayoutId: string;
|
|
45
|
-
mLayoutMode: string;
|
|
46
|
-
};
|
|
47
|
-
allowModify: number;
|
|
48
|
-
isDefault: boolean;
|
|
49
|
-
entrance: string;
|
|
50
|
-
} | {
|
|
51
|
-
bridgeService?: undefined;
|
|
52
26
|
workflowId: string;
|
|
53
27
|
nodeId: string;
|
|
54
28
|
scene: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-field-permission-route.d.ts","sourceRoot":"","sources":["../../src/services/workflow-field-permission-route.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflow-field-permission-route.d.ts","sourceRoot":"","sources":["../../src/services/workflow-field-permission-route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4CAA4C;AAC5C,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,oBAAoB,CASnG;AAED,6GAA6G;AAC7G,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAChE,OAAO,CAAC,oBAAoB,CAAC,CAG/B;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;AAChE,+DAA+D;AAC/D,UAAU,CAAC,EAAE,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiClC;AAED,4EAA4E;AAC5E,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAC5B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,gBAUlF"}
|
|
@@ -1,22 +1,33 @@
|
|
|
1
1
|
import { getWorkflowContext } from './workflow-context.js';
|
|
2
2
|
import { id } from './workflow-function-management.js';
|
|
3
|
-
/**
|
|
4
|
-
export
|
|
5
|
-
const
|
|
6
|
-
const eb = form.kind === 'ebuilder';
|
|
3
|
+
/** 流程级路由映射:接口路径只取决于流程表单类型,可在一次批量里解析一次复用。 */
|
|
4
|
+
export function fieldPermissionRouteOf(kind, formId) {
|
|
5
|
+
const eb = kind === 'ebuilder';
|
|
7
6
|
return {
|
|
8
|
-
kind
|
|
7
|
+
kind,
|
|
9
8
|
module: eb ? 'ebuildercard' : 'workflow',
|
|
10
9
|
endpoint: eb ? '/api/ebuilder/flow/form/view/relate' : '/api/workflow/core/form/view/relate',
|
|
11
10
|
bridge: eb ? { bridgeService: 'ebuilder' } : {},
|
|
11
|
+
formId: String(formId),
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
/** Read-only form discovery shared by node and sharing permissions. Never retry a write on another route. */
|
|
15
|
+
export async function resolveFieldPermissionRoute(client, base, workflowId, formId) {
|
|
16
|
+
const form = await getWorkflowContext(client, base, workflowId, formId);
|
|
17
|
+
return fieldPermissionRouteOf(form.kind, form.formId);
|
|
18
|
+
}
|
|
19
|
+
export async function loadNodeFieldPermission(client, base, workflowId, nodeId,
|
|
20
|
+
/** 已解析的流程级路由(批量场景复用);传入时不再重复请求 getPathFrameInfo,但仍校验节点表单一致。 */
|
|
21
|
+
knownRoute) {
|
|
15
22
|
const dl = await client.get(`${base}/api/bs/workflow/pathdef/nodeLayout/getDisplayLayoutForm?workflowId=${id(workflowId)}&nodeId=${id(nodeId)}`);
|
|
16
23
|
const d = dl?.data;
|
|
17
24
|
if (dl?.code !== 200 || dl.status === false || !d?.formId)
|
|
18
25
|
throw Error('无法读取节点表单关联,停止字段权限操作');
|
|
19
|
-
const
|
|
26
|
+
const nodeFormId = String(d.formId);
|
|
27
|
+
if (knownRoute && knownRoute.formId !== nodeFormId) {
|
|
28
|
+
throw Error(`节点 ${nodeId} 的表单(${nodeFormId})与流程主表单(${knownRoute.formId})不一致,停止字段权限操作`);
|
|
29
|
+
}
|
|
30
|
+
const route = knownRoute ?? await resolveFieldPermissionRoute(client, base, workflowId, nodeFormId);
|
|
20
31
|
const permissionId = d.permissionId ?? '-1', nodeFormRelateId = d.nodeFormRelateId ?? '-1';
|
|
21
32
|
const customParam = {
|
|
22
33
|
workflowId, nodeId, scene: 0,
|
|
@@ -32,10 +43,14 @@ export async function loadNodeFieldPermission(client, base, workflowId, nodeId)
|
|
|
32
43
|
});
|
|
33
44
|
if (gp?.code !== 200 || gp.status === false || !Array.isArray(gp.data?.configs))
|
|
34
45
|
throw Error('未读到完整节点字段权限,停止写入');
|
|
46
|
+
// 「允许修改流程表单内容」在 displayLayoutForm.data 里;顶层没有这个字段。
|
|
47
|
+
const layoutData = d.displayLayoutForm?.data || {};
|
|
35
48
|
return {
|
|
36
49
|
route, formId: d.formId, permissionId, nodeFormRelateId,
|
|
37
50
|
layoutId: d.layoutId || '', relateFormId: d.relateFormId || '',
|
|
38
|
-
hasNodePermissionSet: !!d.hasNodePermissionSet,
|
|
51
|
+
hasNodePermissionSet: !!d.hasNodePermissionSet,
|
|
52
|
+
allowModify: layoutData.allowModify ?? d.allowModify,
|
|
53
|
+
customParam, configs: gp.data.configs,
|
|
39
54
|
};
|
|
40
55
|
}
|
|
41
56
|
/** Persist through the same route that supplied the permission snapshot. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-field-permission-route.js","sourceRoot":"","sources":["../../src/services/workflow-field-permission-route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"workflow-field-permission-route.js","sourceRoot":"","sources":["../../src/services/workflow-field-permission-route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAyB,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,EAAE,EAAe,MAAM,mCAAmC,CAAC;AAUpE,4CAA4C;AAC5C,MAAM,UAAU,sBAAsB,CAAC,IAAsB,EAAE,MAAc;IAC3E,MAAM,EAAE,GAAG,IAAI,KAAK,UAAU,CAAC;IAC/B,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU;QACxC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,qCAAqC;QAC5F,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;QAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;KACvB,CAAC;AACJ,CAAC;AAED,6GAA6G;AAC7G,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAc,EAAE,IAAY,EAAE,UAAkB,EAAE,MAAe;IAEjE,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACxE,OAAO,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAc,EAAE,IAAY,EAAE,UAAkB,EAAE,MAAc;AAChE,+DAA+D;AAC/D,UAAiC;IAEjC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,uEAAuE,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjJ,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC;IACnB,IAAI,EAAE,EAAE,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAC,EAAE,MAAM;QAAE,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC9F,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACnD,MAAM,KAAK,CAAC,MAAM,MAAM,QAAQ,UAAU,WAAW,UAAU,CAAC,MAAM,eAAe,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,IAAI,MAAM,2BAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACpG,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,IAAI,IAAI,EAAE,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,IAAI,IAAI,CAAC;IAC3F,MAAM,WAAW,GAAG;QAClB,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC5B,cAAc,EAAE;YACd,EAAE,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM;YACpE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,EAAE;YAChD,WAAW,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG;SACzE;QACD,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,MAAM;KACtE,CAAC;IACF,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,QAAQ,qBAAqB,EAAE;QAC1E,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW;KACnF,CAAC,CAAC;IACH,IAAI,EAAE,EAAE,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;QAAE,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACjH,mDAAmD;IACnD,MAAM,UAAU,GAAG,CAAC,CAAC,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC;IACnD,OAAO;QACL,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,gBAAgB;QACvD,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,EAAE;QAC9D,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAoB;QAC9C,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW;QACpD,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO;KACtC,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAc,EAAE,IAAY,EAC5B,QAA6D,EAAE,OAAkB;IAEjF,MAAM,WAAW,GAAG;QAClB,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI;QAC3D,cAAc,EAAE,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;KAC/F,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,sBAAsB,EAAE;QAC1E,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY;QAC3F,WAAW,EAAE,OAAO;KACrB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/** Workflow-only components are not physical form fields. */
|
|
2
|
+
export declare const workflowSystemComponents: readonly [readonly ["工作流名称", "FlowPageSysFieldWorkflowName", "WORKFLOW_NAME", false], readonly ["工作流类型", "FlowPageSysFieldWorkflowType", "WORKFLOW_TYPE", false], readonly ["工作流描述", "FlowPageSysFieldWorkflowDesc", "WORKFLOW_DESC", false], readonly ["流程标题", "FlowPageSysFieldReqName", "REQ_REQUEST_NAME", false], readonly ["流程编号", "FlowPageSysFieldMarkReserved", "REQUEST_NO", false], readonly ["紧急程度", "FlowPageSysFieldRequestlevel", "REQUEST_LEVEL", false], readonly ["密级", "FlowPageSysFieldSeclevel", "REQUEST_SECRET_LEVEL", false], readonly ["提交人", "FlowPageSysFieldCreator", "CREATE_USER", true], readonly ["提交人分部", "FlowPageSysFieldCreatorSubCompany", "CREATE_SUB", true], readonly ["提交人部门", "FlowPageSysFieldCreatorDept", "CREATE_DEPT", true], readonly ["提交时间", "FlowPageSysFieldCreateTime", "CREATE_DATETIME", true], readonly ["结束时间", "FlowPageSysFieldFinishTime", "FINISH_DATETIME", true], readonly ["流程状态", "FlowPageFlowStatus", "FLOW_STATUS_COMP", false], readonly ["签字意见", "FlowPageSignInput", "FLOW_SIGN_INPUT", false]];
|
|
3
|
+
export declare const DRAFT_TYPE = "FlowPageDraftOpinion";
|
|
4
|
+
export declare function workflowComponentKind(comp: any): string | undefined;
|
|
5
|
+
export declare function classifyWorkflowDescription(input: {
|
|
6
|
+
title: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
}): {
|
|
9
|
+
title: string;
|
|
10
|
+
description: string;
|
|
11
|
+
kind: string;
|
|
12
|
+
createPhysicalField: boolean;
|
|
13
|
+
reason: string;
|
|
14
|
+
} | {
|
|
15
|
+
kind: string;
|
|
16
|
+
type: string;
|
|
17
|
+
createPhysicalField: boolean;
|
|
18
|
+
patch: Record<string, any>;
|
|
19
|
+
rangeRules: Record<string, any>[];
|
|
20
|
+
requiresConfirmation: boolean;
|
|
21
|
+
unrecognized: string[];
|
|
22
|
+
mode: string;
|
|
23
|
+
title: string;
|
|
24
|
+
description: string;
|
|
25
|
+
fieldId?: undefined;
|
|
26
|
+
} | {
|
|
27
|
+
title: string;
|
|
28
|
+
description: string;
|
|
29
|
+
kind: string;
|
|
30
|
+
type: string;
|
|
31
|
+
createPhysicalField: boolean;
|
|
32
|
+
fieldId?: undefined;
|
|
33
|
+
} | {
|
|
34
|
+
title: string;
|
|
35
|
+
description: string;
|
|
36
|
+
kind: string;
|
|
37
|
+
type: string;
|
|
38
|
+
fieldId: string;
|
|
39
|
+
createPhysicalField: boolean;
|
|
40
|
+
};
|
|
41
|
+
export declare function describeWorkflowComponents(comps: any[]): {
|
|
42
|
+
kind: string | undefined;
|
|
43
|
+
type: any;
|
|
44
|
+
componentId: string;
|
|
45
|
+
title: any;
|
|
46
|
+
widgetId: string | undefined;
|
|
47
|
+
fieldId: any;
|
|
48
|
+
position: any;
|
|
49
|
+
config: any;
|
|
50
|
+
}[];
|
|
51
|
+
export declare function validWorkflowComponentIdentity(comp: any): boolean;
|
|
52
|
+
//# sourceMappingURL=workflow-layout-components.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-layout-components.d.ts","sourceRoot":"","sources":["../../src/services/workflow-layout-components.ts"],"names":[],"mappings":"AACA,6DAA6D;AAC7D,eAAO,MAAM,wBAAwB,wgCAe3B,CAAC;AACX,eAAO,MAAM,UAAU,yBAAuB,CAAC;AAC/C,wBAAgB,qBAAqB,CAAC,IAAI,EAAC,GAAG,GAAE,MAAM,GAAC,SAAS,CAK/D;AACD,wBAAgB,2BAA2B,CAAC,KAAK,EAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,WAAW,CAAC,EAAC,MAAM,CAAA;CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAenF;AACD,wBAAgB,0BAA0B,CAAC,KAAK,EAAC,GAAG,EAAE;;;;;;;;;IAIrD;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAC,GAAG,GAAE,OAAO,CAK/D"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { parseNodeOpinion } from './workflow-node-opinion-description.js';
|
|
2
|
+
/** Workflow-only components are not physical form fields. */
|
|
3
|
+
export const workflowSystemComponents = [
|
|
4
|
+
['工作流名称', 'FlowPageSysFieldWorkflowName', 'WORKFLOW_NAME', false],
|
|
5
|
+
['工作流类型', 'FlowPageSysFieldWorkflowType', 'WORKFLOW_TYPE', false],
|
|
6
|
+
['工作流描述', 'FlowPageSysFieldWorkflowDesc', 'WORKFLOW_DESC', false],
|
|
7
|
+
['流程标题', 'FlowPageSysFieldReqName', 'REQ_REQUEST_NAME', false],
|
|
8
|
+
['流程编号', 'FlowPageSysFieldMarkReserved', 'REQUEST_NO', false],
|
|
9
|
+
['紧急程度', 'FlowPageSysFieldRequestlevel', 'REQUEST_LEVEL', false],
|
|
10
|
+
['密级', 'FlowPageSysFieldSeclevel', 'REQUEST_SECRET_LEVEL', false],
|
|
11
|
+
['提交人', 'FlowPageSysFieldCreator', 'CREATE_USER', true],
|
|
12
|
+
['提交人分部', 'FlowPageSysFieldCreatorSubCompany', 'CREATE_SUB', true],
|
|
13
|
+
['提交人部门', 'FlowPageSysFieldCreatorDept', 'CREATE_DEPT', true],
|
|
14
|
+
['提交时间', 'FlowPageSysFieldCreateTime', 'CREATE_DATETIME', true],
|
|
15
|
+
['结束时间', 'FlowPageSysFieldFinishTime', 'FINISH_DATETIME', true],
|
|
16
|
+
['流程状态', 'FlowPageFlowStatus', 'FLOW_STATUS_COMP', false],
|
|
17
|
+
['签字意见', 'FlowPageSignInput', 'FLOW_SIGN_INPUT', false],
|
|
18
|
+
];
|
|
19
|
+
export const DRAFT_TYPE = 'FlowPageDraftOpinion';
|
|
20
|
+
export function workflowComponentKind(comp) {
|
|
21
|
+
if (comp?.type === 'NodeRequestLog')
|
|
22
|
+
return 'node-opinion';
|
|
23
|
+
if (comp?.type === DRAFT_TYPE)
|
|
24
|
+
return 'draft-opinion';
|
|
25
|
+
if (comp?.type === 'FlowPageSignInput')
|
|
26
|
+
return 'sign-input';
|
|
27
|
+
if (workflowSystemComponents.some(x => x[1] === comp?.type))
|
|
28
|
+
return 'workflow-system';
|
|
29
|
+
}
|
|
30
|
+
export function classifyWorkflowDescription(input) {
|
|
31
|
+
if (!input || typeof input.title !== 'string' || !input.title.trim() || input.description !== undefined && typeof input.description !== 'string')
|
|
32
|
+
throw Error('控件需要非空 title,description 须为字符串');
|
|
33
|
+
const title = input.title.trim(), description = (input.description ?? title).trim();
|
|
34
|
+
const custom = (reason) => ({ title, description, kind: 'custom-field', createPhysicalField: true, reason });
|
|
35
|
+
if (/[((]\s*不使用\s*[))]/.test(description) || /(?:不使用|不作为|不用|不要|非|不识别为)\s*(?:流程系统字段|系统字段|拟签控件|拟签意见|节点意见|流转意见|意见放表单)/.test(description))
|
|
36
|
+
return custom('描述明确排除业务控件');
|
|
37
|
+
const opinion = parseNodeOpinion(description);
|
|
38
|
+
if (opinion)
|
|
39
|
+
return { title, description, ...opinion };
|
|
40
|
+
if (/拟签(?:控件|意见)/.test(description))
|
|
41
|
+
return { title, description, kind: 'draft-opinion', type: DRAFT_TYPE, createPhysicalField: false };
|
|
42
|
+
if (description === '意见输入框')
|
|
43
|
+
return { title, description, kind: 'sign-input', type: 'FlowPageSignInput', fieldId: 'FLOW_SIGN_INPUT', createPhysicalField: false };
|
|
44
|
+
const explicit = description.includes('流程系统字段');
|
|
45
|
+
const clean = description.replace(/[((]\s*流程系统字段\s*[))]/g, '').replace(/流程系统字段[::]?/g, '').trim();
|
|
46
|
+
const entry = workflowSystemComponents.find(x => x[0] === clean || explicit && x[0] === title);
|
|
47
|
+
if (!entry)
|
|
48
|
+
return custom('未匹配系统控件名称');
|
|
49
|
+
if (entry[3] && !explicit)
|
|
50
|
+
return custom('提交人/时间类要求显式声明流程系统字段');
|
|
51
|
+
return { title, description, kind: entry[1] === 'FlowPageSignInput' ? 'sign-input' : 'workflow-system', type: entry[1], fieldId: entry[2], createPhysicalField: false };
|
|
52
|
+
}
|
|
53
|
+
export function describeWorkflowComponents(comps) {
|
|
54
|
+
return comps.filter(c => workflowComponentKind(c)).map(c => ({ kind: workflowComponentKind(c), type: c.type, componentId: String(c.id),
|
|
55
|
+
title: c.config?.title, widgetId: c.type === DRAFT_TYPE ? String(c.config?.widgetId || c.config?.fieldId || '') : undefined,
|
|
56
|
+
fieldId: c.config?.fieldId, position: c.config?.excel || c.config?.flow, config: c.config }));
|
|
57
|
+
}
|
|
58
|
+
export function validWorkflowComponentIdentity(comp) {
|
|
59
|
+
const fieldId = String(comp?.config?.associatedId || comp?.config?.fieldId || '');
|
|
60
|
+
if (comp?.type === 'NodeRequestLog')
|
|
61
|
+
return /^[1-9]\d*$/.test(String(comp.config?.componentKey || '')) && (/^(?:nodeId_)?[1-9]\d*$/.test(fieldId) || fieldId === 'nodeId_-10001' || fieldId === 'nodeId_-99999');
|
|
62
|
+
if (comp?.type === DRAFT_TYPE)
|
|
63
|
+
return /^[1-9]\d*$/.test(fieldId) && (!comp.config.widgetId || String(comp.config.widgetId) === fieldId);
|
|
64
|
+
return workflowSystemComponents.some(entry => entry[1] === comp?.type && entry[2] === fieldId);
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=workflow-layout-components.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-layout-components.js","sourceRoot":"","sources":["../../src/services/workflow-layout-components.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type LayoutClient } from './form-layout-io.js';
|
|
2
|
+
export declare function workflowLayoutContext(client: LayoutClient, base: string, w: string, layoutId: string): Promise<import("./form-layout-source/types.js").LayoutContext>;
|
|
3
|
+
export declare function insertDraftExcel(page: any, config: any, title: string, row: number, col: number): {
|
|
4
|
+
id: string;
|
|
5
|
+
type: string;
|
|
6
|
+
category: string;
|
|
7
|
+
package: string;
|
|
8
|
+
applyStyle: string;
|
|
9
|
+
isCover: number;
|
|
10
|
+
config: any;
|
|
11
|
+
};
|
|
12
|
+
export declare function ensureDraftLayout(client: LayoutClient, base: string, w: string, layoutId: string, input: {
|
|
13
|
+
title: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
row: number;
|
|
16
|
+
col: number;
|
|
17
|
+
terminal?: string;
|
|
18
|
+
}): Promise<{
|
|
19
|
+
created: boolean;
|
|
20
|
+
verified: boolean;
|
|
21
|
+
widgetId: string;
|
|
22
|
+
component: {
|
|
23
|
+
kind: string | undefined;
|
|
24
|
+
type: any;
|
|
25
|
+
componentId: string;
|
|
26
|
+
title: any;
|
|
27
|
+
widgetId: string | undefined;
|
|
28
|
+
fieldId: any;
|
|
29
|
+
position: any;
|
|
30
|
+
config: any;
|
|
31
|
+
};
|
|
32
|
+
physicalFieldsUnchanged?: undefined;
|
|
33
|
+
} | {
|
|
34
|
+
created: boolean;
|
|
35
|
+
verified: boolean;
|
|
36
|
+
widgetId: string;
|
|
37
|
+
component: {
|
|
38
|
+
kind: string | undefined;
|
|
39
|
+
type: any;
|
|
40
|
+
componentId: string;
|
|
41
|
+
title: any;
|
|
42
|
+
widgetId: string | undefined;
|
|
43
|
+
fieldId: any;
|
|
44
|
+
position: any;
|
|
45
|
+
config: any;
|
|
46
|
+
};
|
|
47
|
+
physicalFieldsUnchanged: boolean;
|
|
48
|
+
}>;
|
|
49
|
+
//# sourceMappingURL=workflow-layout-draft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-layout-draft.d.ts","sourceRoot":"","sources":["../../src/services/workflow-layout-draft.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmF,KAAK,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAMxI,wBAAsB,qBAAqB,CAAC,MAAM,EAAC,YAAY,EAAC,IAAI,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,kEAKnG;AACD,wBAAgB,gBAAgB,CAAC,IAAI,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,MAAM;;;;;;;;EAmBtF;AACD,wBAAsB,iBAAiB,CAAC,MAAM,EAAC,YAAY,EAAC,IAAI,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,KAAK,EAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,WAAW,CAAC,EAAC,MAAM,CAAC;IAAA,GAAG,EAAC,MAAM,CAAC;IAAA,GAAG,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,EAAC,MAAM,CAAA;CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuD/K"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
3
|
+
import { getWorkflowContext } from './workflow-context.js';
|
|
4
|
+
import { businessData, readLayoutContext, layoutSaveBody, layoutRoute, snapshotHash, fieldsHash } from './form-layout-io.js';
|
|
5
|
+
import { flattenComponents } from './form-layout-source/binding.js';
|
|
6
|
+
import { DRAFT_TYPE, describeWorkflowComponents, classifyWorkflowDescription } from './workflow-layout-components.js';
|
|
7
|
+
import { OpinionSettings } from './workflow-opinion-settings.js';
|
|
8
|
+
import { assert } from './form-layout-source/schema.js';
|
|
9
|
+
export async function workflowLayoutContext(client, base, w, layoutId) {
|
|
10
|
+
const wf = await getWorkflowContext(client, base, w);
|
|
11
|
+
// Native route verified separately; do not probe EB endpoints or guess the bridge contract.
|
|
12
|
+
assert(wf.kind === 'workflow', '当前拟签布局插入支持原生工作流;EB布局桥接保存契约尚未验证');
|
|
13
|
+
return readLayoutContext(client, base, { module: 'workflow', formId: wf.formId, viewId: layoutId, routeKind: 'default' });
|
|
14
|
+
}
|
|
15
|
+
export function insertDraftExcel(page, config, title, row, col) {
|
|
16
|
+
assert(page.layoutType === 'EXCEL', '拟签新增目前支持EXCEL布局');
|
|
17
|
+
const sheet = page.config?.workbook?.Sheet1;
|
|
18
|
+
assert(sheet && Array.isArray(sheet.cells), '缺少主网格');
|
|
19
|
+
assert(Number.isInteger(row) && Number.isInteger(col) && row >= 0 && col >= 0 && row < Number(sheet.rowCount) && col < Number(sheet.columnCount), '位置须为网格内零起始行列');
|
|
20
|
+
const cell = sheet.cells.find((c) => Number(c.row) === row && Number(c.col) === col);
|
|
21
|
+
assert(!cell?.style?.cellType?.comId && !cell?.value, '目标单元格已有控件或文字,不覆盖');
|
|
22
|
+
assert(!(page.comps || []).some((c) => c.config?.excel?.parent === 'ROOT' && Number(c.config.excel.row) === row && Number(c.config.excel.col) === col), '目标位置已有组件');
|
|
23
|
+
assert(!(sheet.spans || []).some((s) => row >= Number(s.row) && row < Number(s.row) + Number(s.rowCount) && col >= Number(s.col) && col < Number(s.col) + Number(s.colCount) && (row !== Number(s.row) || col !== Number(s.col))), '只能插入合并单元格左上角');
|
|
24
|
+
const componentId = randomUUID().replaceAll('-', '');
|
|
25
|
+
const comp = { id: componentId, type: DRAFT_TYPE, category: '111', package: '@weapp/workflow', applyStyle: '', isCover: 0,
|
|
26
|
+
config: { ...config, title, name: title, type: DRAFT_TYPE, fieldId: String(config.widgetId), valueKey: String(config.widgetId),
|
|
27
|
+
switchFormItem: true, display: true, readOnly: false, required: false, disableEdit: false, singleRow: false,
|
|
28
|
+
layout: { hidden: false, wrapped: false }, excel: { row, col, parent: 'ROOT', nodeId: randomUUID().slice(0, 10), nodes: [], linkedNodes: {} } } };
|
|
29
|
+
page.comps.push(comp);
|
|
30
|
+
const nextCell = cell || { row: String(row), col: String(col) };
|
|
31
|
+
nextCell.style = { ...nextCell.style, cellType: { allowOverflow: false, comId: componentId, type: DRAFT_TYPE } };
|
|
32
|
+
if (!cell)
|
|
33
|
+
sheet.cells.push(nextCell);
|
|
34
|
+
return comp;
|
|
35
|
+
}
|
|
36
|
+
export async function ensureDraftLayout(client, base, w, layoutId, input) {
|
|
37
|
+
const recognition = classifyWorkflowDescription(input);
|
|
38
|
+
assert(recognition.kind === 'draft-opinion', '描述未明确声明拟签控件/拟签意见,拒绝创建拟签');
|
|
39
|
+
const context = await workflowLayoutContext(client, base, w, layoutId), snapshot = context.snapshot;
|
|
40
|
+
const originalHash = snapshotHash(snapshot), originalLayout = structuredClone(snapshot.formLayout);
|
|
41
|
+
assert(snapshot.formLayoutMultiple?.isDefault === false, '拟签控件须使用明确的独立布局,不能隐式复制默认布局');
|
|
42
|
+
const terminal = input.terminal || 'PC';
|
|
43
|
+
const pages = snapshot.formLayout.pageLayouts.filter((p) => p.terminalType === terminal);
|
|
44
|
+
assert(pages.length === 1, '未找到唯一终端页面');
|
|
45
|
+
const page = pages[0], all = flattenComponents(page.comps || []);
|
|
46
|
+
const matches = all.filter(c => c.type === DRAFT_TYPE && c.config?.title === input.title);
|
|
47
|
+
assert(matches.length <= 1, '同名拟签控件不唯一,请先处理歧义');
|
|
48
|
+
const svc = new OpinionSettings(client, base);
|
|
49
|
+
if (matches.length) {
|
|
50
|
+
const widgetId = String(matches[0].config.widgetId || matches[0].config.fieldId);
|
|
51
|
+
await svc.widget(w, widgetId);
|
|
52
|
+
return { created: false, verified: true, widgetId, component: describeWorkflowComponents(matches)[0] };
|
|
53
|
+
}
|
|
54
|
+
// Check coordinates before requesting IDs or any save.
|
|
55
|
+
insertDraftExcel(structuredClone(page), { widgetId: '1' }, input.title, input.row, input.col);
|
|
56
|
+
const widgetId = String(businessData(await client.get(`${base}/api/bs/workflow/pathdef/global/generateId`), '分配拟签ID'));
|
|
57
|
+
assert(/^[1-9]\d*$/.test(widgetId), '分配的拟签ID无效');
|
|
58
|
+
const defaults = await svc.get('/api/bs/workflow/pathdef/pathSet/draftopinion/getDraftOpinionWidgetConfig', { workflowId: w, widgetId, isDesign: true });
|
|
59
|
+
assert(defaults?.weaForm?.data && defaults?.weaForm?.items, '未读取到拟签程序默认配置');
|
|
60
|
+
// Hydrate all existing widgets: advanced settings may have changed since the layout was saved.
|
|
61
|
+
const existing = [];
|
|
62
|
+
for (const p of snapshot.formLayout.pageLayouts)
|
|
63
|
+
for (const c of flattenComponents(p.comps || []))
|
|
64
|
+
if (c.type === DRAFT_TYPE) {
|
|
65
|
+
const wid = String(c.config.widgetId || c.config.fieldId), form = await svc.widget(w, wid);
|
|
66
|
+
existing.push({ widgetId: wid, form });
|
|
67
|
+
c.config = { ...c.config, ...form.data, fieldId: wid, widgetId: wid, valueKey: wid, isDesign: true };
|
|
68
|
+
}
|
|
69
|
+
const comp = insertDraftExcel(page, { ...defaults.weaForm.data, widgetId, workflowid: w, formId: context.target.formId, isDesign: true }, input.title, input.row, input.col);
|
|
70
|
+
const fresh = await workflowLayoutContext(client, base, w, layoutId);
|
|
71
|
+
assert(snapshotHash(fresh.snapshot) === originalHash, '布局已被并发修改');
|
|
72
|
+
const body = layoutSaveBody(context.target, snapshot, false);
|
|
73
|
+
body.customParam = { workflowId: w };
|
|
74
|
+
businessData(await client.post(`${base}${layoutRoute(context.target, 'saveFormAndLayout')}`, body), '保存拟签布局', false);
|
|
75
|
+
const after = await workflowLayoutContext(client, base, w, layoutId);
|
|
76
|
+
assert(fieldsHash(context.fields) === fieldsHash(after.fields), '保存后普通物理字段列表发生变化');
|
|
77
|
+
const saved = after.snapshot.formLayout.pageLayouts.find((p) => p.terminalType === terminal)?.comps.find((c) => c.id === comp.id);
|
|
78
|
+
assert(saved?.type === DRAFT_TYPE && String(saved.config?.widgetId || saved.config?.fieldId) === widgetId, '布局未回读到新增拟签控件');
|
|
79
|
+
assert(Number(saved.config.excel?.row) === input.row && Number(saved.config.excel?.col) === input.col, '拟签位置回读不一致');
|
|
80
|
+
await svc.widget(w, widgetId);
|
|
81
|
+
for (const originalPage of originalLayout.pageLayouts) {
|
|
82
|
+
const back = after.snapshot.formLayout.pageLayouts.find((p) => p.pageId === originalPage.pageId);
|
|
83
|
+
assert(back, '原有页面缺失');
|
|
84
|
+
const backComps = flattenComponents(back.comps || []);
|
|
85
|
+
for (const old of flattenComponents(originalPage.comps || [])) {
|
|
86
|
+
const current = backComps.find(c => c.id === old.id);
|
|
87
|
+
assert(current && current.type === old.type, `原有控件 ${old.id} 缺失或类型变化`);
|
|
88
|
+
if (old.type !== DRAFT_TYPE)
|
|
89
|
+
assert(isDeepStrictEqual(old.config, current.config), `原有控件 ${old.id} 配置发生变化`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
for (const old of existing) {
|
|
93
|
+
const form = await svc.widget(w, old.widgetId);
|
|
94
|
+
assert(isDeepStrictEqual(old.form.data, form.data), `既有拟签 ${old.widgetId} 配置回读变化,请核查`);
|
|
95
|
+
}
|
|
96
|
+
return { created: true, verified: true, widgetId, component: describeWorkflowComponents([saved])[0], physicalFieldsUnchanged: true };
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=workflow-layout-draft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-layout-draft.js","sourceRoot":"","sources":["../../src/services/workflow-layout-draft.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `workflow node batch` 的 spec:解析、校验、节点解析与纯规划。
|
|
3
|
+
*
|
|
4
|
+
* 这一层不发任何请求,所有规则都先在内存里算完;
|
|
5
|
+
* 编排层只负责「读当前 → 用这里的函数算目标 → 写 → 回读」。
|
|
6
|
+
*/
|
|
7
|
+
import { type RejectSetParams } from '../commands/workflow-node-reject.js';
|
|
8
|
+
import type { WorkflowNodeRef } from './workflow-assign-flow.js';
|
|
9
|
+
export type BatchSection = 'field-permission' | 'reject' | 'sign';
|
|
10
|
+
export declare const BATCH_SECTIONS: BatchSection[];
|
|
11
|
+
/** 字段可见性的三态;`required` 是「可编辑 + 必填」的简写。 */
|
|
12
|
+
export type FieldAccess = 'hidden' | 'readonly' | 'editable' | 'required';
|
|
13
|
+
export interface FieldRuleObject {
|
|
14
|
+
access?: 'hidden' | 'readonly' | 'editable';
|
|
15
|
+
required?: boolean;
|
|
16
|
+
disableEdit?: boolean;
|
|
17
|
+
/** 逃生口:与 access 互斥,直接给平台三个布尔。 */
|
|
18
|
+
display?: boolean;
|
|
19
|
+
show?: boolean;
|
|
20
|
+
readOnly?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export type FieldRule = FieldAccess | FieldRuleObject;
|
|
23
|
+
export interface RejectRule {
|
|
24
|
+
rejectType?: string;
|
|
25
|
+
rejectRemind?: string;
|
|
26
|
+
submitType?: string;
|
|
27
|
+
defaultNode?: string;
|
|
28
|
+
remindNodeIds?: string[];
|
|
29
|
+
rangeNodeIds?: string[];
|
|
30
|
+
defaultNodeId?: string;
|
|
31
|
+
toCreateNode?: boolean;
|
|
32
|
+
custom?: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface SignRule {
|
|
35
|
+
allRequired?: boolean;
|
|
36
|
+
noneRequired?: boolean;
|
|
37
|
+
select?: string[];
|
|
38
|
+
/** 与 `node sign --data` 同形,键必须是 signFields 之一。 */
|
|
39
|
+
data?: Record<string, unknown>;
|
|
40
|
+
}
|
|
41
|
+
export interface BatchNodeEntry {
|
|
42
|
+
nodes: string | string[];
|
|
43
|
+
'enable-modify-form'?: boolean;
|
|
44
|
+
'field-permission'?: Record<string, FieldRule>;
|
|
45
|
+
reject?: RejectRule;
|
|
46
|
+
sign?: SignRule;
|
|
47
|
+
}
|
|
48
|
+
export interface BatchSpec {
|
|
49
|
+
version?: number;
|
|
50
|
+
nodes: BatchNodeEntry[];
|
|
51
|
+
}
|
|
52
|
+
export declare function parseBatchSpec(raw: unknown): BatchSpec;
|
|
53
|
+
/** `--only` 解析与 spec 过滤;返回实际请求但整份 spec 里不存在的段(只告警)。 */
|
|
54
|
+
export declare function parseOnly(values: string[] | undefined): BatchSection[];
|
|
55
|
+
export declare function filterSpec(spec: BatchSpec, only: BatchSection[]): {
|
|
56
|
+
spec: BatchSpec;
|
|
57
|
+
absent: BatchSection[];
|
|
58
|
+
};
|
|
59
|
+
export declare function resolveNodeRef(ref: string, nodes: WorkflowNodeRef[]): WorkflowNodeRef;
|
|
60
|
+
export interface ResolvedBatchNode {
|
|
61
|
+
entry: BatchNodeEntry;
|
|
62
|
+
entryIndex: number;
|
|
63
|
+
node: WorkflowNodeRef;
|
|
64
|
+
}
|
|
65
|
+
/** 展开每条 entry 的节点引用;同一节点重复出现是致命错误。 */
|
|
66
|
+
export declare function resolveBatchTargets(entries: BatchNodeEntry[], nodes: WorkflowNodeRef[]): ResolvedBatchNode[];
|
|
67
|
+
export declare function fieldAccessOf(c: any): string;
|
|
68
|
+
export interface FieldRuleResult {
|
|
69
|
+
config: Record<string, any>;
|
|
70
|
+
warnings: string[];
|
|
71
|
+
}
|
|
72
|
+
/** 把一条规则落到配置副本上;只改规则点名的键。 */
|
|
73
|
+
export declare function applyFieldRule(current: Record<string, any>, rule: FieldRule): FieldRuleResult;
|
|
74
|
+
export interface FieldChange {
|
|
75
|
+
field: string;
|
|
76
|
+
fieldId: string;
|
|
77
|
+
from: string;
|
|
78
|
+
to: string;
|
|
79
|
+
keys: Array<{
|
|
80
|
+
key: string;
|
|
81
|
+
from: unknown;
|
|
82
|
+
to: unknown;
|
|
83
|
+
}>;
|
|
84
|
+
}
|
|
85
|
+
export declare function diffFieldConfig(current: Record<string, any>, target: Record<string, any>): FieldChange;
|
|
86
|
+
export interface RejectCurrent {
|
|
87
|
+
enableCustom: boolean;
|
|
88
|
+
rejectType: string;
|
|
89
|
+
rejectSubmitType: string;
|
|
90
|
+
rejectCheckedNode: string;
|
|
91
|
+
rejectRemind: string;
|
|
92
|
+
rejectToCreateNode: number;
|
|
93
|
+
rejectRangeNodes: string[];
|
|
94
|
+
rejectRemindNodeIds: string[];
|
|
95
|
+
rejectCheckNodeId: string;
|
|
96
|
+
}
|
|
97
|
+
export declare function readRejectCurrent(raw: any): RejectCurrent;
|
|
98
|
+
export interface RejectPlan {
|
|
99
|
+
current: RejectCurrent;
|
|
100
|
+
desired: RejectCurrent;
|
|
101
|
+
changes: Array<{
|
|
102
|
+
key: string;
|
|
103
|
+
from: unknown;
|
|
104
|
+
to: unknown;
|
|
105
|
+
}>;
|
|
106
|
+
params: RejectSetParams;
|
|
107
|
+
warnings: string[];
|
|
108
|
+
}
|
|
109
|
+
/** spec 里的键名 → 读回快照里的键名(回读比对用)。 */
|
|
110
|
+
export declare const REJECT_CURRENT_KEY: Record<string, keyof RejectCurrent>;
|
|
111
|
+
export declare function planReject(raw: any, rule: RejectRule, nodes: WorkflowNodeRef[]): RejectPlan;
|
|
112
|
+
/** 快捷项展开成 `node sign --data` 同形的 patch。 */
|
|
113
|
+
export declare function expandSignRule(rule: SignRule): Record<string, any>;
|
|
114
|
+
/** 与 verifySettings 一致的比较口径(对象按 id、布尔转 0/1)。 */
|
|
115
|
+
export declare function comparable(v: any): any;
|
|
116
|
+
export interface SignChange {
|
|
117
|
+
key: string;
|
|
118
|
+
from: unknown;
|
|
119
|
+
to: unknown;
|
|
120
|
+
}
|
|
121
|
+
export declare function diffSign(before: Record<string, any>, next: Record<string, any>, keys: string[]): SignChange[];
|
|
122
|
+
//# sourceMappingURL=workflow-node-batch-spec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-node-batch-spec.d.ts","sourceRoot":"","sources":["../../src/services/workflow-node-batch-spec.ts"],"names":[],"mappings":"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"}
|