weaver-e10-builder 1.5.13 → 1.5.15
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/actionflow.d.ts.map +1 -1
- package/dist/commands/actionflow.js +1 -0
- package/dist/commands/actionflow.js.map +1 -1
- package/dist/commands/designer-setters.d.ts.map +1 -1
- package/dist/commands/designer-setters.js +148 -47
- package/dist/commands/designer-setters.js.map +1 -1
- package/dist/commands/form-add-detail-table.d.ts.map +1 -1
- package/dist/commands/form-add-detail-table.js +53 -7
- package/dist/commands/form-add-detail-table.js.map +1 -1
- package/dist/commands/form-browser-definition.d.ts +14 -0
- package/dist/commands/form-browser-definition.d.ts.map +1 -0
- package/dist/commands/form-browser-definition.js +493 -0
- package/dist/commands/form-browser-definition.js.map +1 -0
- package/dist/commands/form-code.d.ts +5 -0
- package/dist/commands/form-code.d.ts.map +1 -0
- package/dist/commands/form-code.js +276 -0
- package/dist/commands/form-code.js.map +1 -0
- package/dist/commands/form-engine-linkage.d.ts +3 -0
- package/dist/commands/form-engine-linkage.d.ts.map +1 -0
- package/dist/commands/form-engine-linkage.js +199 -0
- package/dist/commands/form-engine-linkage.js.map +1 -0
- package/dist/commands/form-formula.d.ts.map +1 -1
- package/dist/commands/form-formula.js +7 -19
- package/dist/commands/form-formula.js.map +1 -1
- package/dist/commands/form-layout-template-advanced.d.ts +3 -0
- package/dist/commands/form-layout-template-advanced.d.ts.map +1 -0
- package/dist/commands/form-layout-template-advanced.js +115 -0
- package/dist/commands/form-layout-template-advanced.js.map +1 -0
- package/dist/commands/form-layout-template-easy.d.ts +3 -0
- package/dist/commands/form-layout-template-easy.d.ts.map +1 -0
- package/dist/commands/form-layout-template-easy.js +59 -0
- package/dist/commands/form-layout-template-easy.js.map +1 -0
- package/dist/commands/form-layout.d.ts.map +1 -1
- package/dist/commands/form-layout.js +77 -0
- package/dist/commands/form-layout.js.map +1 -1
- package/dist/commands/form-list-filter.js +1 -1
- package/dist/commands/form-list-filter.js.map +1 -1
- package/dist/commands/form-list-utils.d.ts +5 -0
- package/dist/commands/form-list-utils.d.ts.map +1 -1
- package/dist/commands/form-list-utils.js +23 -3
- package/dist/commands/form-list-utils.js.map +1 -1
- package/dist/commands/form-permission.d.ts.map +1 -1
- package/dist/commands/form-permission.js +55 -19
- package/dist/commands/form-permission.js.map +1 -1
- package/dist/commands/form-physical-table.d.ts.map +1 -1
- package/dist/commands/form-physical-table.js +8 -2
- package/dist/commands/form-physical-table.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +143 -5
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/menu.d.ts +68 -2
- package/dist/commands/menu.d.ts.map +1 -1
- package/dist/commands/menu.js +186 -41
- package/dist/commands/menu.js.map +1 -1
- package/dist/commands/page.d.ts.map +1 -1
- package/dist/commands/page.js +29 -6
- package/dist/commands/page.js.map +1 -1
- package/dist/commands/special.d.ts.map +1 -1
- package/dist/commands/special.js +3 -2
- package/dist/commands/special.js.map +1 -1
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +76 -31
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/commands/workflow-auth-resp.js +2 -2
- package/dist/commands/workflow-auth-resp.js.map +1 -1
- package/dist/commands/workflow-base-command.d.ts +4 -0
- package/dist/commands/workflow-base-command.d.ts.map +1 -0
- package/dist/commands/workflow-base-command.js +6 -0
- package/dist/commands/workflow-base-command.js.map +1 -0
- package/dist/commands/workflow-base-settings.d.ts +3 -0
- package/dist/commands/workflow-base-settings.d.ts.map +1 -0
- package/dist/commands/workflow-base-settings.js +76 -0
- package/dist/commands/workflow-base-settings.js.map +1 -0
- package/dist/commands/workflow-condition.d.ts.map +1 -1
- package/dist/commands/workflow-condition.js +59 -450
- package/dist/commands/workflow-condition.js.map +1 -1
- package/dist/commands/workflow-export.d.ts +9 -0
- package/dist/commands/workflow-export.d.ts.map +1 -0
- package/dist/commands/workflow-export.js +121 -0
- package/dist/commands/workflow-export.js.map +1 -0
- package/dist/commands/workflow-function-settings.d.ts +3 -0
- package/dist/commands/workflow-function-settings.d.ts.map +1 -0
- package/dist/commands/workflow-function-settings.js +47 -0
- package/dist/commands/workflow-function-settings.js.map +1 -0
- package/dist/commands/workflow-node.d.ts.map +1 -1
- package/dist/commands/workflow-node.js +28 -53
- package/dist/commands/workflow-node.js.map +1 -1
- package/dist/commands/workflow-operator-batch.d.ts +3 -0
- package/dist/commands/workflow-operator-batch.d.ts.map +1 -0
- package/dist/commands/workflow-operator-batch.js +35 -0
- package/dist/commands/workflow-operator-batch.js.map +1 -0
- package/dist/commands/workflow-setting.d.ts.map +1 -1
- package/dist/commands/workflow-setting.js +137 -406
- package/dist/commands/workflow-setting.js.map +1 -1
- package/dist/commands/workflow-subprocess.d.ts.map +1 -1
- package/dist/commands/workflow-subprocess.js +21 -33
- package/dist/commands/workflow-subprocess.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +18 -33
- package/dist/commands/workflow.js.map +1 -1
- package/dist/index.js +18 -1
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/browser_source.d.ts +9 -0
- package/dist/services/actionflow/browser_source.d.ts.map +1 -0
- package/dist/services/actionflow/browser_source.js +12 -0
- package/dist/services/actionflow/browser_source.js.map +1 -0
- package/dist/services/actionflow/components/date_trigger.js +1 -1
- package/dist/services/actionflow/components/date_trigger.js.map +1 -1
- package/dist/services/actionflow/components/document_actions.d.ts.map +1 -1
- package/dist/services/actionflow/components/document_actions.js +178 -25
- package/dist/services/actionflow/components/document_actions.js.map +1 -1
- package/dist/services/actionflow/components/enquiry_form.js +1 -1
- package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
- package/dist/services/actionflow/components/logic_flow_set.d.ts.map +1 -1
- package/dist/services/actionflow/components/logic_flow_set.js +80 -8
- package/dist/services/actionflow/components/logic_flow_set.js.map +1 -1
- package/dist/services/actionflow/components/meeting_create.d.ts.map +1 -1
- package/dist/services/actionflow/components/meeting_create.js +1 -0
- package/dist/services/actionflow/components/meeting_create.js.map +1 -1
- package/dist/services/actionflow/components/schedule_create.d.ts.map +1 -1
- package/dist/services/actionflow/components/schedule_create.js +2 -0
- package/dist/services/actionflow/components/schedule_create.js.map +1 -1
- package/dist/services/actionflow/components/time_batch_trigger.js +1 -1
- package/dist/services/actionflow/components/time_batch_trigger.js.map +1 -1
- package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
- package/dist/services/actionflow/components/workflow_actions.js +6 -2
- package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
- package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
- package/dist/services/actionflow/context_preflight.js +103 -6
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/form_source.d.ts +2 -0
- package/dist/services/actionflow/form_source.d.ts.map +1 -1
- package/dist/services/actionflow/form_source.js +8 -0
- package/dist/services/actionflow/form_source.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +35 -19
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/logicflow_source.d.ts +5 -0
- package/dist/services/actionflow/logicflow_source.d.ts.map +1 -0
- package/dist/services/actionflow/logicflow_source.js +15 -0
- package/dist/services/actionflow/logicflow_source.js.map +1 -0
- package/dist/services/actionflow/preflight_service.d.ts +15 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +558 -26
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/runtime_metadata.d.ts +8 -0
- package/dist/services/actionflow/runtime_metadata.d.ts.map +1 -1
- package/dist/services/actionflow/runtime_metadata.js +25 -0
- package/dist/services/actionflow/runtime_metadata.js.map +1 -1
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +50 -10
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/actionflow/workflow_source.d.ts +2 -0
- package/dist/services/actionflow/workflow_source.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_source.js +7 -0
- package/dist/services/actionflow/workflow_source.js.map +1 -1
- package/dist/services/auth-resp-condition.d.ts +7 -3
- package/dist/services/auth-resp-condition.d.ts.map +1 -1
- package/dist/services/auth-resp-condition.js +58 -63
- package/dist/services/auth-resp-condition.js.map +1 -1
- package/dist/services/browser.d.ts +5 -0
- package/dist/services/browser.d.ts.map +1 -1
- package/dist/services/browser.js +16 -4
- package/dist/services/browser.js.map +1 -1
- package/dist/services/condition-rules.d.ts +2 -30
- package/dist/services/condition-rules.d.ts.map +1 -1
- package/dist/services/condition-rules.js +3 -219
- package/dist/services/condition-rules.js.map +1 -1
- package/dist/services/designer-dataset.d.ts +45 -0
- package/dist/services/designer-dataset.d.ts.map +1 -0
- package/dist/services/designer-dataset.js +156 -0
- package/dist/services/designer-dataset.js.map +1 -0
- package/dist/services/form-association.d.ts +7 -0
- package/dist/services/form-association.d.ts.map +1 -1
- package/dist/services/form-association.js +22 -1
- package/dist/services/form-association.js.map +1 -1
- package/dist/services/form-code.d.ts +53 -0
- package/dist/services/form-code.d.ts.map +1 -0
- package/dist/services/form-code.js +370 -0
- package/dist/services/form-code.js.map +1 -0
- package/dist/services/form-create.d.ts +20 -0
- package/dist/services/form-create.d.ts.map +1 -1
- package/dist/services/form-create.js +73 -1
- package/dist/services/form-create.js.map +1 -1
- package/dist/services/form-field-build.d.ts +1 -1
- package/dist/services/form-field-build.d.ts.map +1 -1
- package/dist/services/form-field-build.js +20 -1
- package/dist/services/form-field-build.js.map +1 -1
- package/dist/services/form-field-drop.d.ts +2 -0
- package/dist/services/form-field-drop.d.ts.map +1 -1
- package/dist/services/form-field-drop.js +2 -0
- package/dist/services/form-field-drop.js.map +1 -1
- package/dist/services/form-layout-detail-insert.d.ts +58 -0
- package/dist/services/form-layout-detail-insert.d.ts.map +1 -0
- package/dist/services/form-layout-detail-insert.js +293 -0
- package/dist/services/form-layout-detail-insert.js.map +1 -0
- package/dist/services/form-layout-insert.d.ts.map +1 -1
- package/dist/services/form-layout-insert.js +34 -2
- package/dist/services/form-layout-insert.js.map +1 -1
- package/dist/services/form-layout-source/compile.d.ts.map +1 -1
- package/dist/services/form-layout-source/compile.js +11 -4
- package/dist/services/form-layout-source/compile.js.map +1 -1
- package/dist/services/form-layout-template-advanced.d.ts +330 -0
- package/dist/services/form-layout-template-advanced.d.ts.map +1 -0
- package/dist/services/form-layout-template-advanced.js +1437 -0
- package/dist/services/form-layout-template-advanced.js.map +1 -0
- package/dist/services/form-layout-template-easy.d.ts +34 -0
- package/dist/services/form-layout-template-easy.d.ts.map +1 -0
- package/dist/services/form-layout-template-easy.js +159 -0
- package/dist/services/form-layout-template-easy.js.map +1 -0
- package/dist/services/form-layout-template-flow.d.ts +23 -0
- package/dist/services/form-layout-template-flow.d.ts.map +1 -0
- package/dist/services/form-layout-template-flow.js +99 -0
- package/dist/services/form-layout-template-flow.js.map +1 -0
- package/dist/services/form-permission-archive.d.ts +23 -1
- package/dist/services/form-permission-archive.d.ts.map +1 -1
- package/dist/services/form-permission-archive.js +54 -2
- package/dist/services/form-permission-archive.js.map +1 -1
- package/dist/services/form-physical-table.d.ts +10 -0
- package/dist/services/form-physical-table.d.ts.map +1 -1
- package/dist/services/form-physical-table.js +20 -0
- package/dist/services/form-physical-table.js.map +1 -1
- package/dist/services/form-view-linkage-functions.d.ts +19 -0
- package/dist/services/form-view-linkage-functions.d.ts.map +1 -0
- package/dist/services/form-view-linkage-functions.js +90 -0
- package/dist/services/form-view-linkage-functions.js.map +1 -0
- package/dist/services/matrix-condition.d.ts +32 -1
- package/dist/services/matrix-condition.d.ts.map +1 -1
- package/dist/services/matrix-condition.js +169 -6
- package/dist/services/matrix-condition.js.map +1 -1
- package/dist/services/menu-catalog.d.ts +24 -1
- package/dist/services/menu-catalog.d.ts.map +1 -1
- package/dist/services/menu-catalog.js +49 -2
- package/dist/services/menu-catalog.js.map +1 -1
- package/dist/services/workflow-base-settings.d.ts +117 -0
- package/dist/services/workflow-base-settings.d.ts.map +1 -0
- package/dist/services/workflow-base-settings.js +504 -0
- package/dist/services/workflow-base-settings.js.map +1 -0
- package/dist/services/workflow-condition-core.d.ts +48 -0
- package/dist/services/workflow-condition-core.d.ts.map +1 -0
- package/dist/services/workflow-condition-core.js +316 -0
- package/dist/services/workflow-condition-core.js.map +1 -0
- package/dist/services/workflow-context.d.ts +10 -0
- package/dist/services/workflow-context.d.ts.map +1 -0
- package/dist/services/workflow-context.js +15 -0
- package/dist/services/workflow-context.js.map +1 -0
- package/dist/services/workflow-export.d.ts +80 -0
- package/dist/services/workflow-export.d.ts.map +1 -0
- package/dist/services/workflow-export.js +150 -0
- package/dist/services/workflow-export.js.map +1 -0
- package/dist/services/workflow-field-permission-route.d.ts +75 -0
- package/dist/services/workflow-field-permission-route.d.ts.map +1 -0
- package/dist/services/workflow-field-permission-route.js +52 -0
- package/dist/services/workflow-field-permission-route.js.map +1 -0
- package/dist/services/workflow-field-permission.d.ts +18 -0
- package/dist/services/workflow-field-permission.d.ts.map +1 -0
- package/dist/services/workflow-field-permission.js +40 -0
- package/dist/services/workflow-field-permission.js.map +1 -0
- package/dist/services/workflow-function-settings.d.ts +31 -0
- package/dist/services/workflow-function-settings.d.ts.map +1 -0
- package/dist/services/workflow-function-settings.js +191 -0
- package/dist/services/workflow-function-settings.js.map +1 -0
- package/dist/services/workflow-node-layout.d.ts +11 -10
- package/dist/services/workflow-node-layout.d.ts.map +1 -1
- package/dist/services/workflow-node-layout.js +24 -62
- package/dist/services/workflow-node-layout.js.map +1 -1
- package/dist/services/workflow-operator-batch-condition.d.ts +23 -0
- package/dist/services/workflow-operator-batch-condition.d.ts.map +1 -0
- package/dist/services/workflow-operator-batch-condition.js +56 -0
- package/dist/services/workflow-operator-batch-condition.js.map +1 -0
- package/dist/services/workflow-sign-file-settings.d.ts +16 -0
- package/dist/services/workflow-sign-file-settings.d.ts.map +1 -0
- package/dist/services/workflow-sign-file-settings.js +80 -0
- package/dist/services/workflow-sign-file-settings.js.map +1 -0
- package/dist/services/workflow-submit-confirm.d.ts +14 -0
- package/dist/services/workflow-submit-confirm.d.ts.map +1 -0
- package/dist/services/workflow-submit-confirm.js +29 -0
- package/dist/services/workflow-submit-confirm.js.map +1 -0
- package/dist/services/workflow-tab-config.d.ts +3 -3
- package/dist/services/workflow-tab-config.d.ts.map +1 -1
- package/dist/services/workflow-tab-config.js +14 -12
- package/dist/services/workflow-tab-config.js.map +1 -1
- package/dist/services/workflow-tabs-editor.d.ts +28 -0
- package/dist/services/workflow-tabs-editor.d.ts.map +1 -0
- package/dist/services/workflow-tabs-editor.js +130 -0
- package/dist/services/workflow-tabs-editor.js.map +1 -0
- package/package.json +1 -1
- package/skill-docs/SKILL.md +155 -154
- package/skill-docs/_catalog.md +106 -97
- package/skill-docs/actionflows/references/components/document/GetDocumentInfo.md +17 -17
- package/skill-docs/actionflows/references/components/logic/LogicFlowSet.md +23 -17
- package/skill-docs/assets/form-template/style-templates-advanced-base-example.json +1420 -0
- package/skill-docs/assets/form-template/style-templates-advanced-base.css +33 -0
- package/skill-docs/assets/form-template/style-templates-advanced-blue-crystal-example.json +1094 -0
- package/skill-docs/assets/form-template/style-templates-advanced-document-example.json +1251 -0
- package/skill-docs/assets/form-template/style-templates-advanced-grid-example.json +39 -0
- package/skill-docs/assets/form-template/style-templates-advanced-page-example.json +38 -0
- package/skill-docs/assets/form-template/style-templates-advanced-placements-example.json +30 -0
- package/skill-docs/assets/form-template/style-templates-advanced-standard-example.json +53 -0
- package/skill-docs/assets/form-template/style-templates-advanced-structure-example.json +25 -0
- package/skill-docs/assets/form-template/style-templates-advanced-table-example.json +1420 -0
- package/skill-docs/references/code-block/guide-code-block.md +141 -0
- package/skill-docs/references/code-block/guide-layout-css.md +107 -0
- package/skill-docs/references/code-block/ref-controls.md +60 -0
- package/skill-docs/references/code-block/ref-coverage.md +32 -0
- package/skill-docs/references/code-block/ref-details.md +57 -0
- package/skill-docs/references/code-block/ref-events-validation.md +42 -0
- package/skill-docs/references/code-block/ref-foundations-fields.md +56 -0
- package/skill-docs/references/code-block/ref-recipes.md +164 -0
- package/skill-docs/references/code-block/ref-troubleshooting.md +49 -0
- package/skill-docs/references/code-block/ref-ui-global.md +47 -0
- package/skill-docs/references/common/guide-plan-template.md +168 -167
- package/skill-docs/references/common/map.md +2 -1
- package/skill-docs/references/common/ref-cli-commands.md +67 -22
- package/skill-docs/references/ebuilder-designer/guide-designer-factory.md +8 -4
- package/skill-docs/references/form/form-template/style-templates-advanced-css-guide.md +167 -0
- package/skill-docs/references/form/form-template/style-templates-advanced.md +315 -0
- package/skill-docs/references/form/form-template/style-templates-easy.md +55 -0
- package/skill-docs/references/form/form-template/style-templates-flow.md +27 -0
- package/skill-docs/references/form/form-template/style-templates.md +29 -0
- package/skill-docs/references/form/guide-browser-definition.md +148 -0
- package/skill-docs/references/form/guide-create-form.md +258 -250
- package/skill-docs/references/form/guide-form-archive-permission.md +29 -6
- package/skill-docs/references/form/guide-form-formula-functions.md +354 -354
- package/skill-docs/references/form/guide-form-layout-incremental.md +28 -0
- package/skill-docs/references/form/guide-form-layout-planning.md +11 -0
- package/skill-docs/references/form/guide-form-layout-source.md +4 -0
- package/skill-docs/references/form/guide-form-linkage.md +295 -259
- package/skill-docs/references/form/guide-form-physical-table.md +2 -0
- package/skill-docs/references/form/guide-form-view.md +3 -0
- package/skill-docs/references/form/ref-form-fields.md +301 -293
- package/skill-docs/references/form/ref-list-filter-date-params.md +83 -0
- package/skill-docs/references/menu/system-menus.md +12 -0
- package/skill-docs/references/workflow/condition-core-contract.md +63 -0
- package/skill-docs/references/workflow/guide-base-auth-share-remind.md +126 -0
- package/skill-docs/references/workflow/guide-function-settings.md +55 -0
- package/skill-docs/references/workflow/guide-workflow-condition.md +476 -447
- package/skill-docs/references/workflow/guide-workflow-node-layout.md +6 -0
- package/skill-docs/references/workflow/guide-workflow.md +630 -527
- package/skill-docs/references/form/style-templates.md +0 -97
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
import { registerWorkflowFunctionSettings } from './workflow-function-settings.js';
|
|
2
|
+
import { SignFileSettings } from '../services/workflow-sign-file-settings.js';
|
|
3
|
+
import { editTabs, getTabLocales } from '../services/workflow-tabs-editor.js';
|
|
4
|
+
import { readPatch } from './workflow-function-management.js';
|
|
5
|
+
import { findTab } from '../services/workflow-tab-config.js';
|
|
6
|
+
import { SubmitConfirmSettings, showNodeLabels } from '../services/workflow-submit-confirm.js';
|
|
7
|
+
import { normalized } from '../services/workflow-base-settings.js';
|
|
8
|
+
import { workflowBaseCommand } from './workflow-base-command.js';
|
|
1
9
|
import { AuthSession } from '../core/auth.js';
|
|
2
10
|
import { ApiClient } from '../core/client.js';
|
|
3
|
-
import {
|
|
11
|
+
import { getTabConfig, tabLabel, } from '../services/workflow-tab-config.js';
|
|
4
12
|
/**
|
|
5
13
|
* Merge only known keys from source into target, converting boolean to 0/1.
|
|
6
14
|
* This prevents leaking UI-internal fields (layout, items, etc.) to save APIs.
|
|
@@ -16,58 +24,55 @@ function mergeKnown(target, source) {
|
|
|
16
24
|
return result;
|
|
17
25
|
}
|
|
18
26
|
export function registerWorkflowSettingCommands(wf, program) {
|
|
19
|
-
const
|
|
27
|
+
const base = workflowBaseCommand(wf);
|
|
28
|
+
registerWorkflowFunctionSettings(wf, program);
|
|
20
29
|
// ======== submit ========
|
|
21
|
-
|
|
22
|
-
.description('
|
|
30
|
+
base.command('submit-confirm')
|
|
31
|
+
.description('查看/修改流程提交确认设置;先读后合并,保存后回读验证')
|
|
23
32
|
.argument('<workflowId>', '流程 ID')
|
|
24
|
-
.option('--confirm <0|1>', '
|
|
25
|
-
.option('--node-range <n>', '节点范围: 0=全部, 1=选择, 2
|
|
26
|
-
.option('--
|
|
33
|
+
.option('--confirm <0|1>', '提交流程需要确认')
|
|
34
|
+
.option('--node-range <n>', '节点范围: 0=全部, 1=选择, 2=排除;切换全部会清空节点列表')
|
|
35
|
+
.option('--nodes <nodes...>', '替换选择/排除的节点列表;支持节点 ID 或唯一名称,名称含空格请加引号')
|
|
36
|
+
.option('--show-cc <0|1>', '提交确认时显示抄送人')
|
|
37
|
+
.option('--show-way <n>', '发起节点显示方式: 0=所有节点, 1=下一节点, 2=会流转到达的节点')
|
|
27
38
|
.action(async (workflowId, cmdOpts) => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
try {
|
|
40
|
+
const opts = program.opts();
|
|
41
|
+
const auth = await AuthSession.fromOptions(opts);
|
|
42
|
+
if (!auth)
|
|
43
|
+
throw Error('无法加载认证');
|
|
44
|
+
const service = new SubmitConfirmSettings(new ApiClient(auth), auth.getBaseUrl());
|
|
45
|
+
const patch = {};
|
|
46
|
+
for (const [option, field] of [['confirm', 'confirm'], ['nodeRange', 'nodeRange'], ['nodes', 'nodeRangeBrowser'], ['showCc', 'showCcOperator'], ['showWay', 'showNodeWay']]) {
|
|
47
|
+
if (cmdOpts[option] !== undefined)
|
|
48
|
+
patch[field] = cmdOpts[option];
|
|
49
|
+
}
|
|
50
|
+
if (Object.keys(patch).length) {
|
|
51
|
+
const result = await service.update(workflowId, patch);
|
|
52
|
+
console.log(opts.json ? JSON.stringify(result, null, 2) : '提交确认设置已保存并回读验证');
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const form = normalized(await service.read(workflowId));
|
|
41
56
|
if (opts.json) {
|
|
42
57
|
console.log(JSON.stringify(form, null, 2));
|
|
58
|
+
return;
|
|
43
59
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
return;
|
|
60
|
+
const rangeLabels = { '0': '全部节点', '1': '选择节点', '2': '排除节点' };
|
|
61
|
+
console.log(`提交确认: ${form.confirm ? '开启' : '关闭'}`);
|
|
62
|
+
console.log(`节点范围: ${rangeLabels[form.nodeRange] ?? form.nodeRange}`);
|
|
63
|
+
console.log(`指定节点: ${(form.nodeRangeBrowser ?? []).map((n) => `${n.content ?? n.name ?? n.id}(${n.id})`).join('、') || '无'}`);
|
|
64
|
+
console.log(`显示抄送人: ${form.showCcOperator ? '开启' : '关闭'}`);
|
|
65
|
+
console.log(`显示方式: ${showNodeLabels[String(form.showNodeWay)] ?? form.showNodeWay}`);
|
|
51
66
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
form.nodeRange = cmdOpts.nodeRange;
|
|
56
|
-
if (cmdOpts.showWay)
|
|
57
|
-
form.showNodeWay = cmdOpts.showWay;
|
|
58
|
-
const saveRes = await client.post(`${baseUrl}/api/bs/workflow/pathdef/baseSet/saveSubmitSetForm`, { workflowId, ...form });
|
|
59
|
-
if (saveRes?.code === 200 && saveRes?.status) {
|
|
60
|
-
console.log(opts.json ? JSON.stringify({ success: true, workflowId }) : '提交确认设置已保存');
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
console.error(`保存失败: ${saveRes?.msg || '未知错误'}`);
|
|
64
|
-
process.exit(1);
|
|
67
|
+
catch (error) {
|
|
68
|
+
console.error(`操作失败: ${error.message}`);
|
|
69
|
+
process.exitCode = 1;
|
|
65
70
|
}
|
|
66
71
|
});
|
|
67
72
|
// ======== tabs(详情页页签) ========
|
|
68
|
-
// 读接口必须带 global=false,否则 500
|
|
69
|
-
|
|
70
|
-
.description('
|
|
73
|
+
// 读接口必须带 global=false,否则 500;保存提交完整列表以保持排序,删除使用专用接口。
|
|
74
|
+
base.command('tabs-set')
|
|
75
|
+
.description('查看/修改详情页页签:显示、名称、多语言、顺序、自定义地址页签增删改')
|
|
71
76
|
.argument('<workflowId>', '流程 ID')
|
|
72
77
|
.option('--only <names...>', 'PC 端只显示这些页签,其余全部不显示')
|
|
73
78
|
.option('--show <names...>', 'PC 端显示(不动其它)')
|
|
@@ -75,6 +80,15 @@ export function registerWorkflowSettingCommands(wf, program) {
|
|
|
75
80
|
.option('--mobile <names...>', '移动端只显示这些,其余全部不显示(移动端页签与 PC 端独立)')
|
|
76
81
|
.option('--mobile-menu <names...>', '移动端菜单只显示这些,其余全部不显示')
|
|
77
82
|
.option('--default-open <name>', '默认打开哪个页签(单选,其余取消)')
|
|
83
|
+
.option('--tab <id-or-name>', '待修改页签 ID 或唯一名称')
|
|
84
|
+
.option('--name <name>', '自定义名称;空字符串恢复系统名称')
|
|
85
|
+
.option('--order <tabs...>', '完整排序名单,每个页签恰好一次;推荐使用 ID')
|
|
86
|
+
.option('--create', '新增自定义地址页签,需 --name 和 --pc-url')
|
|
87
|
+
.option('--pc-url <url>', 'PC 地址,支持内部路径、http(s) 及字段占位符')
|
|
88
|
+
.option('--mobile-url <url>', '移动地址;空字符串使用 PC 地址')
|
|
89
|
+
.option('--delete <id-or-name>', '删除一个自定义页签;须单独使用')
|
|
90
|
+
.option('--locales <json>', '多语言名称补丁:语言 ID/代码到字符串的 JSON 对象或 @文件;保留其他语言')
|
|
91
|
+
.option('--get-locales', '读取 --tab 页签的多语言名称及可用语言')
|
|
78
92
|
.action(async (workflowId, o) => {
|
|
79
93
|
const opts = program.opts();
|
|
80
94
|
const auth = await AuthSession.fromOptions(opts);
|
|
@@ -83,171 +97,101 @@ export function registerWorkflowSettingCommands(wf, program) {
|
|
|
83
97
|
const client = new ApiClient(auth);
|
|
84
98
|
const baseUrl = auth.getBaseUrl();
|
|
85
99
|
try {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
console.log(`流程 ${workflowId} 详情页页签: ${tabs.length} 个\n`);
|
|
94
|
-
console.log(' 页签 类型码 PC端 移动端 移动菜单 默认打开');
|
|
95
|
-
for (const t of tabs) {
|
|
96
|
-
console.log(` ${tabLabel(t).padEnd(14)} ${String(t.flowPageTabId).padEnd(6)} ` +
|
|
97
|
-
`${(t.showInPc ? '✅' : '⛔').padEnd(5)} ${(t.showInMobile ? '✅' : '⛔').padEnd(7)} ` +
|
|
98
|
-
`${(t.showInMobileMenu ? '✅' : '⛔').padEnd(9)} ${t.defOpen ? '✅' : ''}`);
|
|
99
|
-
}
|
|
100
|
+
if (o.getLocales) {
|
|
101
|
+
if (!o.tab || Object.keys(o).some(k => !['tab', 'getLocales'].includes(k)))
|
|
102
|
+
throw Error('--get-locales 仅与 --tab 一起使用');
|
|
103
|
+
const tabs = await getTabConfig(client, baseUrl, workflowId), t = findTab(tabs, o.tab);
|
|
104
|
+
if (!t)
|
|
105
|
+
throw Error('未找到页签');
|
|
106
|
+
console.log(JSON.stringify(await getTabLocales(client, baseUrl, t.id), null, 2));
|
|
100
107
|
return;
|
|
101
108
|
}
|
|
102
|
-
const {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
if (!changed.length) {
|
|
107
|
-
console.log('页签本来就是目标状态,没有改动');
|
|
109
|
+
const patch = { ...o, ...(o.locales !== undefined ? { locales: readPatch(o.locales) } : {}) };
|
|
110
|
+
if (Object.keys(patch).some(k => k !== 'tab')) {
|
|
111
|
+
const result = await editTabs(client, baseUrl, workflowId, patch);
|
|
112
|
+
console.log(JSON.stringify(result, null, 2));
|
|
108
113
|
return;
|
|
109
114
|
}
|
|
110
|
-
await
|
|
111
|
-
const after = await getTabConfig(client, baseUrl, workflowId);
|
|
112
|
-
const byId = new Map(after.map((t) => [t.id, t]));
|
|
113
|
-
const mismatches = [];
|
|
114
|
-
for (const t of next) {
|
|
115
|
-
const a = byId.get(t.id);
|
|
116
|
-
if (!a) {
|
|
117
|
-
mismatches.push(`${tabLabel(t)} 回读时不见了`);
|
|
118
|
-
continue;
|
|
119
|
-
}
|
|
120
|
-
if (a.showInPc !== t.showInPc || a.defOpen !== t.defOpen
|
|
121
|
-
|| a.showInMobile !== t.showInMobile || a.showInMobileMenu !== t.showInMobileMenu) {
|
|
122
|
-
mismatches.push(`${tabLabel(t)}: 期望 PC=${t.showInPc} 移动=${t.showInMobile} 菜单=${t.showInMobileMenu} 默认打开=${t.defOpen},`
|
|
123
|
-
+ `回读 PC=${a.showInPc} 移动=${a.showInMobile} 菜单=${a.showInMobileMenu} 默认打开=${a.defOpen}`);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
115
|
+
const tabs = await getTabConfig(client, baseUrl, workflowId);
|
|
126
116
|
if (opts.json) {
|
|
127
|
-
console.log(JSON.stringify({
|
|
128
|
-
|
|
129
|
-
else {
|
|
130
|
-
console.log(`页签已保存: ${changed.length} 项更新 → 流程 ${workflowId}`);
|
|
131
|
-
for (const m of mismatches)
|
|
132
|
-
console.error(` ⚠ 回读不一致: ${m}`);
|
|
117
|
+
console.log(JSON.stringify({ workflowId, tabs }, null, 2));
|
|
118
|
+
return;
|
|
133
119
|
}
|
|
134
|
-
|
|
135
|
-
|
|
120
|
+
for (const t of tabs)
|
|
121
|
+
console.log(`${t.id} ${tabLabel(t)} 顺序=${t.orderId} 类型=${t.flowPageTabType} PC=${t.showInPc} 移动=${t.showInMobile} 菜单=${t.showInMobileMenu} 默认=${t.defOpen}`);
|
|
136
122
|
}
|
|
137
123
|
catch (e) {
|
|
138
124
|
console.error(`操作失败: ${e.message}`);
|
|
139
125
|
process.exitCode = 1;
|
|
140
126
|
}
|
|
141
127
|
});
|
|
142
|
-
//
|
|
143
|
-
|
|
144
|
-
.
|
|
145
|
-
.
|
|
146
|
-
.option('--show-
|
|
147
|
-
.option('--
|
|
148
|
-
.option('--view-
|
|
149
|
-
.option('--
|
|
150
|
-
.option('--
|
|
151
|
-
.option('--
|
|
152
|
-
.option('--
|
|
153
|
-
.option('--
|
|
154
|
-
.option('--allow-
|
|
155
|
-
.option('--
|
|
156
|
-
.
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
allowSignEmoticon: 1,
|
|
202
|
-
allowSignAt: 1,
|
|
203
|
-
informHrmRange: '0',
|
|
204
|
-
signOrder: 0,
|
|
205
|
-
signShowSrcList: [],
|
|
206
|
-
uploadCatalog: '',
|
|
207
|
-
uploadCatalogBrowser: [],
|
|
208
|
-
}, form);
|
|
209
|
-
if (cmdOpts.showOrder)
|
|
210
|
-
payload.signShowOrder = cmdOpts.showOrder;
|
|
211
|
-
if (cmdOpts.showSrc) {
|
|
212
|
-
// Convert to array: "3"→["1","2"], "1,2"→["1","2"], "0"→[], "1"→["1"], "2"→["2"]
|
|
213
|
-
if (cmdOpts.showSrc === '0') {
|
|
214
|
-
payload.signShowSrcList = [];
|
|
215
|
-
}
|
|
216
|
-
else if (cmdOpts.showSrc === '3') {
|
|
217
|
-
payload.signShowSrcList = ['1', '2'];
|
|
128
|
+
// Workflow-level signing and attachment switches; PC/mobile style APIs are excluded.
|
|
129
|
+
const sign = base.command('sign-set').description('签字意见设置(不含 PC/移动显示样式)').argument('<workflowId>', '流程 ID')
|
|
130
|
+
.option('--schema', '显示服务端表单、可选值及默认值')
|
|
131
|
+
.option('--show-order <0|1>', '意见及评论顺序:0倒序/1正序')
|
|
132
|
+
.option('--show-src <n>', '保留原来源参数:0无/1PC/2非PC/3两者')
|
|
133
|
+
.option('--view-relate <0|1>', '允许查看关联流程意见及评论')
|
|
134
|
+
.option('--view-forward <0|1>', '事项分享默认允许查看意见及评论')
|
|
135
|
+
.option('--allow-relate <0|1>', '允许签字意见关联事项')
|
|
136
|
+
.option('--relate-range <0|1>', '关联范围:0全部/1选择范围')
|
|
137
|
+
.option('--candidates <relate|catalog>', '查询关联事项类型或目录候选(首100项/树形根节点)')
|
|
138
|
+
.option('--relate-items <ids...>', '关联事项类型 ID 列表(不是具体流程或实例 ID)')
|
|
139
|
+
.option('--clear-relate-items', '清空已选事项类型,需关联范围为全部')
|
|
140
|
+
.option('--allow-upload <0|1>', '允许签字意见上传附件')
|
|
141
|
+
.option('--upload-catalog <id>', '附件上传目录 ID;0 清空;需环境支持知识管理')
|
|
142
|
+
.option('--allow-location <0|1>', '允许意见及评论插入位置')
|
|
143
|
+
.option('--allow-emoticon <0|1>', '允许意见及评论插入表情')
|
|
144
|
+
.option('--allow-at <0|1>', '允许意见及评论 @ 人员')
|
|
145
|
+
.option('--inform-range <0|1>', '@范围:0所有人/1流程参与人(不含共享人)');
|
|
146
|
+
const file = base.command('file-set').description('附件设置:仅两个删除开关').argument('<workflowId>', '流程 ID')
|
|
147
|
+
.option('--schema', '显示服务端表单及默认值')
|
|
148
|
+
.option('--create-delete <0|1>', '仅发起节点才能删除附件')
|
|
149
|
+
.option('--async-delete <0|1>', '删除流程的同时删除附件');
|
|
150
|
+
for (const [cmd, kind, mapping] of [
|
|
151
|
+
[sign, 'sign', { showOrder: 'signShowOrder', viewRelate: 'viewRelateSign', viewForward: 'viewForwardSign', allowRelate: 'allowSignRelate', relateRange: 'relateRangeSelect', relateItems: 'relateMatterRangeBrowser', allowUpload: 'allowSignUpload', allowLocation: 'allowSignLocation', allowEmoticon: 'allowSignEmoticon', allowAt: 'allowSignAt', informRange: 'informHrmRange' }],
|
|
152
|
+
[file, 'file', { createDelete: 'createDelete', asyncDelete: 'asyncDelete' }]
|
|
153
|
+
])
|
|
154
|
+
cmd.action(async (w, o) => {
|
|
155
|
+
try {
|
|
156
|
+
const auth = await AuthSession.fromOptions(program.opts());
|
|
157
|
+
if (!auth)
|
|
158
|
+
throw Error('无法加载认证');
|
|
159
|
+
const service = new SignFileSettings(new ApiClient(auth), auth.getBaseUrl()), patch = {};
|
|
160
|
+
for (const [flag, key] of Object.entries(mapping))
|
|
161
|
+
if (o[flag] !== undefined)
|
|
162
|
+
patch[key] = o[flag];
|
|
163
|
+
if (o.candidates !== undefined) {
|
|
164
|
+
if (!['relate', 'catalog'].includes(o.candidates) || Object.keys(o).some(k => k !== 'candidates'))
|
|
165
|
+
throw Error('--candidates 须单独使用 relate 或 catalog');
|
|
166
|
+
console.log(JSON.stringify(await service.candidates(w, o.candidates === 'relate' ? 'relateMatterRangeBrowser' : 'uploadCatalogBrowser'), null, 2));
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
if (o.showSrc !== undefined) {
|
|
170
|
+
if (!['0', '1', '2', '3', '1,2'].includes(o.showSrc))
|
|
171
|
+
throw Error('无效 --show-src');
|
|
172
|
+
patch.signShowSrcList = o.showSrc === '0' ? [] : ['3', '1,2'].includes(o.showSrc) ? ['1', '2'] : [o.showSrc];
|
|
173
|
+
}
|
|
174
|
+
if (o.clearRelateItems) {
|
|
175
|
+
if (o.relateItems)
|
|
176
|
+
throw Error('--clear-relate-items 与 --relate-items 互斥');
|
|
177
|
+
patch.relateMatterRangeBrowser = [];
|
|
178
|
+
}
|
|
179
|
+
if (o.uploadCatalog !== undefined)
|
|
180
|
+
patch.uploadCatalogBrowser = o.uploadCatalog === '0' ? [] : [o.uploadCatalog];
|
|
181
|
+
if (Object.keys(patch).length)
|
|
182
|
+
console.log(JSON.stringify(await service.updateSettings(kind, w, patch), null, 2));
|
|
183
|
+
else {
|
|
184
|
+
const form = await service.readSettings(kind, w);
|
|
185
|
+
console.log(JSON.stringify(o.schema ? { settings: normalized(form), form } : normalized(form), null, 2));
|
|
186
|
+
}
|
|
218
187
|
}
|
|
219
|
-
|
|
220
|
-
|
|
188
|
+
catch (e) {
|
|
189
|
+
console.error(`操作失败: ${e.message}`);
|
|
190
|
+
process.exitCode = 1;
|
|
221
191
|
}
|
|
222
|
-
|
|
223
|
-
}
|
|
224
|
-
if (cmdOpts.viewRelate)
|
|
225
|
-
payload.viewRelateSign = parseInt(cmdOpts.viewRelate, 10);
|
|
226
|
-
if (cmdOpts.viewForward)
|
|
227
|
-
payload.viewForwardSign = parseInt(cmdOpts.viewForward, 10);
|
|
228
|
-
if (cmdOpts.allowRelate)
|
|
229
|
-
payload.allowSignRelate = parseInt(cmdOpts.allowRelate, 10);
|
|
230
|
-
if (cmdOpts.allowUpload)
|
|
231
|
-
payload.allowSignUpload = parseInt(cmdOpts.allowUpload, 10);
|
|
232
|
-
if (cmdOpts.allowLocation)
|
|
233
|
-
payload.allowSignLocation = parseInt(cmdOpts.allowLocation, 10);
|
|
234
|
-
if (cmdOpts.allowEmoticon)
|
|
235
|
-
payload.allowSignEmoticon = parseInt(cmdOpts.allowEmoticon, 10);
|
|
236
|
-
if (cmdOpts.allowAt)
|
|
237
|
-
payload.allowSignAt = parseInt(cmdOpts.allowAt, 10);
|
|
238
|
-
if (cmdOpts.informRange)
|
|
239
|
-
payload.informHrmRange = cmdOpts.informRange;
|
|
240
|
-
const saveRes = await client.post(`${baseUrl}/api/bs/workflow/pathdef/pathSet/signconfig/savePathSignConfig`, payload);
|
|
241
|
-
if (saveRes?.code === 200 && saveRes?.status) {
|
|
242
|
-
console.log(opts.json ? JSON.stringify({ success: true, workflowId }) : '签字意见设置已保存');
|
|
243
|
-
}
|
|
244
|
-
else {
|
|
245
|
-
console.error(`保存失败: ${saveRes?.msg || '未知错误'}`);
|
|
246
|
-
process.exit(1);
|
|
247
|
-
}
|
|
248
|
-
});
|
|
192
|
+
});
|
|
249
193
|
// ======== comment ========
|
|
250
|
-
|
|
194
|
+
base.command('comment-set')
|
|
251
195
|
.description('查看/配置评论设置')
|
|
252
196
|
.argument('<workflowId>', '流程 ID')
|
|
253
197
|
.option('--enable <0|1>', '评论功能开关')
|
|
@@ -299,218 +243,5 @@ export function registerWorkflowSettingCommands(wf, program) {
|
|
|
299
243
|
process.exit(1);
|
|
300
244
|
}
|
|
301
245
|
});
|
|
302
|
-
// ======== batch ========
|
|
303
|
-
sc.command('batch')
|
|
304
|
-
.description('查看/配置批量操作设置')
|
|
305
|
-
.argument('<workflowId>', '流程 ID')
|
|
306
|
-
.option('--enable-batch <0|1>', '批量提交开关')
|
|
307
|
-
.option('--enable-turn-todo <0|1>', '批量转办开关')
|
|
308
|
-
.option('--enable-consult <0|1>', '批量征询开关')
|
|
309
|
-
.option('--enable-reject <0|1>', '批量退回开关')
|
|
310
|
-
.option('--range <n>', '节点范围: 0=全部, 1=选择, 2=排除')
|
|
311
|
-
.action(async (workflowId, cmdOpts) => {
|
|
312
|
-
const opts = program.opts();
|
|
313
|
-
const auth = await AuthSession.fromOptions(opts);
|
|
314
|
-
if (!auth)
|
|
315
|
-
process.exit(1);
|
|
316
|
-
const client = new ApiClient(auth);
|
|
317
|
-
const baseUrl = auth.getBaseUrl();
|
|
318
|
-
const getRes = await client.get(`${baseUrl}/api/bs/workflow/pathdef/batchSubmitSet/getConfigForm?workflowId=${workflowId}`);
|
|
319
|
-
if (getRes?.code !== 200 || !getRes?.status) {
|
|
320
|
-
console.error(`查询失败: ${getRes?.msg}`);
|
|
321
|
-
process.exit(1);
|
|
322
|
-
}
|
|
323
|
-
const form = getRes?.data?.data || getRes?.data || {};
|
|
324
|
-
const hasOpts = cmdOpts.enableBatch || cmdOpts.enableTurnTodo || cmdOpts.enableConsult || cmdOpts.enableReject || cmdOpts.range;
|
|
325
|
-
if (!hasOpts) {
|
|
326
|
-
if (opts.json) {
|
|
327
|
-
console.log(JSON.stringify(form, null, 2));
|
|
328
|
-
}
|
|
329
|
-
else {
|
|
330
|
-
const on = (v) => v === '1' || v === 1 || v === true ? '✅' : '⛔';
|
|
331
|
-
console.log(`批量提交: ${on(form.enabledBatch)} 转办: ${on(form.allowTurnTodo)} 征询: ${on(form.allowConsult)} 退回: ${on(form.allowReject)}`);
|
|
332
|
-
}
|
|
333
|
-
return;
|
|
334
|
-
}
|
|
335
|
-
// Normalize GET values (booleans→int, arrays→scalar) for save API
|
|
336
|
-
const norm = (v) => typeof v === 'boolean' ? (v ? 1 : 0) : (Array.isArray(v) && v.length === 1 ? v[0] : v);
|
|
337
|
-
const payload = mergeKnown({
|
|
338
|
-
workflowId,
|
|
339
|
-
enabledBatch: 0,
|
|
340
|
-
allowTurnTodo: 0,
|
|
341
|
-
allowConsult: 0,
|
|
342
|
-
allowReject: 0,
|
|
343
|
-
rejectOption: '0',
|
|
344
|
-
rejectNodeBrowser: [],
|
|
345
|
-
turnTodoNodeBrowser: [],
|
|
346
|
-
consultNodeBrowser: [],
|
|
347
|
-
submitType: [],
|
|
348
|
-
selectOptions: '0',
|
|
349
|
-
turnTodoOption: '0',
|
|
350
|
-
selectNodes: [],
|
|
351
|
-
submitTypeOption: '0',
|
|
352
|
-
consultOption: '0',
|
|
353
|
-
rejectToStart: [],
|
|
354
|
-
}, form);
|
|
355
|
-
const normPayload = {};
|
|
356
|
-
for (const [k, v] of Object.entries(payload)) {
|
|
357
|
-
normPayload[k] = norm(v);
|
|
358
|
-
}
|
|
359
|
-
if (cmdOpts.enableBatch)
|
|
360
|
-
normPayload.enabledBatch = parseInt(cmdOpts.enableBatch, 10);
|
|
361
|
-
if (cmdOpts.enableTurnTodo)
|
|
362
|
-
normPayload.allowTurnTodo = parseInt(cmdOpts.enableTurnTodo, 10);
|
|
363
|
-
if (cmdOpts.enableConsult)
|
|
364
|
-
normPayload.allowConsult = parseInt(cmdOpts.enableConsult, 10);
|
|
365
|
-
if (cmdOpts.enableReject)
|
|
366
|
-
normPayload.allowReject = parseInt(cmdOpts.enableReject, 10);
|
|
367
|
-
if (cmdOpts.range) {
|
|
368
|
-
normPayload.rangeType = cmdOpts.range;
|
|
369
|
-
normPayload.nodeRangeType = cmdOpts.range;
|
|
370
|
-
}
|
|
371
|
-
const saveRes = await client.post(`${baseUrl}/api/bs/workflow/pathdef/batchSubmitSet/saveConfig`, normPayload);
|
|
372
|
-
if (saveRes?.code === 200 && saveRes?.status) {
|
|
373
|
-
console.log(opts.json ? JSON.stringify({ success: true, workflowId }) : '批量操作设置已保存');
|
|
374
|
-
}
|
|
375
|
-
else {
|
|
376
|
-
console.error(`保存失败: ${saveRes?.msg || '未知错误'}`);
|
|
377
|
-
process.exit(1);
|
|
378
|
-
}
|
|
379
|
-
});
|
|
380
|
-
// ======== auto ========
|
|
381
|
-
sc.command('auto')
|
|
382
|
-
.description('查看/配置自动处理设置')
|
|
383
|
-
.argument('<workflowId>', '流程 ID')
|
|
384
|
-
.option('--enable <0|1>', '自动处理开关')
|
|
385
|
-
.option('--way <n>', '处理方式: 0=前置, 1=后置')
|
|
386
|
-
.option('--follow-type <types>', '跟进类型(逗号分隔): 0=不启用, 1=发起过, 2=批准过, 3=确认过')
|
|
387
|
-
.action(async (workflowId, cmdOpts) => {
|
|
388
|
-
const opts = program.opts();
|
|
389
|
-
const auth = await AuthSession.fromOptions(opts);
|
|
390
|
-
if (!auth)
|
|
391
|
-
process.exit(1);
|
|
392
|
-
const client = new ApiClient(auth);
|
|
393
|
-
const baseUrl = auth.getBaseUrl();
|
|
394
|
-
const getRes = await client.get(`${baseUrl}/api/bs/workflow/pathdef/autoApprove/getAutoInfoForm?src=&workflowId=${workflowId}`);
|
|
395
|
-
if (getRes?.code !== 200 || !getRes?.status) {
|
|
396
|
-
console.error(`查询失败: ${getRes?.msg || getRes?.data?.msg}`);
|
|
397
|
-
process.exit(1);
|
|
398
|
-
}
|
|
399
|
-
const form = getRes?.data?.data || getRes?.data || {};
|
|
400
|
-
if (!cmdOpts.enable && !cmdOpts.way && !cmdOpts.followType) {
|
|
401
|
-
if (opts.json) {
|
|
402
|
-
console.log(JSON.stringify(form, null, 2));
|
|
403
|
-
}
|
|
404
|
-
else {
|
|
405
|
-
const on = form.autoHandle === '1' || form.autoHandle === 1 || form.autoHandle === true;
|
|
406
|
-
console.log(`自动处理: ${on ? '✅ 开启' : '⛔ 关闭'}`);
|
|
407
|
-
console.log(`处理方式: ${form.handWay === '1' ? '后置' : '前置'}`);
|
|
408
|
-
console.log(`跟进类型: ${form.followUpType || '[]'}`);
|
|
409
|
-
}
|
|
410
|
-
return;
|
|
411
|
-
}
|
|
412
|
-
const payload = mergeKnown({
|
|
413
|
-
workflowId,
|
|
414
|
-
autoHandle: 0,
|
|
415
|
-
handWay: '0',
|
|
416
|
-
adjacentCheck: ['0'],
|
|
417
|
-
adjacentOptions: '0',
|
|
418
|
-
adjacentNodes: [],
|
|
419
|
-
followUpType: ['0'],
|
|
420
|
-
followUpCommit: 'false',
|
|
421
|
-
followUpCheck: [],
|
|
422
|
-
followUpOptions: '0',
|
|
423
|
-
followUpNodes: [],
|
|
424
|
-
selectUsers: [],
|
|
425
|
-
backHandle: [],
|
|
426
|
-
mustHandNodeBrowser: [],
|
|
427
|
-
allowHandleUserBrowser: [],
|
|
428
|
-
backHandleForecastNodeBrowser: [],
|
|
429
|
-
compensateTip: 1,
|
|
430
|
-
signMark: 0,
|
|
431
|
-
signContent: '',
|
|
432
|
-
}, form);
|
|
433
|
-
// Normalize: GET returns arrays for these but save API expects scalar strings
|
|
434
|
-
if (Array.isArray(payload.adjacentOptions))
|
|
435
|
-
payload.adjacentOptions = payload.adjacentOptions[0] || '0';
|
|
436
|
-
if (Array.isArray(payload.followUpOptions))
|
|
437
|
-
payload.followUpOptions = payload.followUpOptions[0] || '0';
|
|
438
|
-
if (cmdOpts.enable)
|
|
439
|
-
payload.autoHandle = parseInt(cmdOpts.enable, 10);
|
|
440
|
-
if (cmdOpts.way)
|
|
441
|
-
payload.handWay = cmdOpts.way;
|
|
442
|
-
if (cmdOpts.followType)
|
|
443
|
-
payload.followUpType = cmdOpts.followType.split(',');
|
|
444
|
-
const saveRes = await client.post(`${baseUrl}/api/bs/workflow/pathdef/autoApprove/saveConfig`, payload);
|
|
445
|
-
if (saveRes?.code === 200 && saveRes?.status) {
|
|
446
|
-
console.log(opts.json ? JSON.stringify({ success: true, workflowId }) : '自动处理设置已保存');
|
|
447
|
-
}
|
|
448
|
-
else {
|
|
449
|
-
console.error(`保存失败: ${saveRes?.msg || '未知错误'}`);
|
|
450
|
-
process.exit(1);
|
|
451
|
-
}
|
|
452
|
-
});
|
|
453
|
-
// ======== other ========
|
|
454
|
-
sc.command('other')
|
|
455
|
-
.description('查看/配置其他设置')
|
|
456
|
-
.argument('<workflowId>', '流程 ID')
|
|
457
|
-
.option('--message-op <0|1>', '消息操作开关')
|
|
458
|
-
.option('--auto-save <0|1>', '自动保存草稿开关')
|
|
459
|
-
.option('--switch-identity <0|1>', '允许切换身份查看开关')
|
|
460
|
-
.action(async (workflowId, cmdOpts) => {
|
|
461
|
-
const opts = program.opts();
|
|
462
|
-
const auth = await AuthSession.fromOptions(opts);
|
|
463
|
-
if (!auth)
|
|
464
|
-
process.exit(1);
|
|
465
|
-
const client = new ApiClient(auth);
|
|
466
|
-
const baseUrl = auth.getBaseUrl();
|
|
467
|
-
const getRes = await client.get(`${baseUrl}/api/bs/workflow/pathdef/baseExtSet/getConfigForm?workflowId=${workflowId}`);
|
|
468
|
-
if (getRes?.code !== 200 || !getRes?.status) {
|
|
469
|
-
console.error(`查询失败: ${getRes?.msg || getRes?.data?.msg}`);
|
|
470
|
-
process.exit(1);
|
|
471
|
-
}
|
|
472
|
-
const form = getRes?.data?.data || getRes?.data || {};
|
|
473
|
-
if (!cmdOpts.messageOp && !cmdOpts.autoSave && !cmdOpts.switchIdentity) {
|
|
474
|
-
if (opts.json) {
|
|
475
|
-
console.log(JSON.stringify(form, null, 2));
|
|
476
|
-
}
|
|
477
|
-
else {
|
|
478
|
-
const on = (v) => v === '1' || v === 1 || v === true ? '✅' : '⛔';
|
|
479
|
-
console.log(`消息操作: ${on(form.messageOperation)} 自动保存: ${on(form.enableAutoSave)} 切换身份: ${on(form.followNodeviewRight)}`);
|
|
480
|
-
}
|
|
481
|
-
return;
|
|
482
|
-
}
|
|
483
|
-
const payload = mergeKnown({
|
|
484
|
-
workflowId,
|
|
485
|
-
followNodeviewRight: 0,
|
|
486
|
-
allowViewFormLog: 0,
|
|
487
|
-
allowUseInDoor: 1,
|
|
488
|
-
messageOperation: 0,
|
|
489
|
-
nodeRangeOptions: '0',
|
|
490
|
-
nodeRangeNodes: [],
|
|
491
|
-
autoMaxDisplay: 1,
|
|
492
|
-
enableOdocText: 0,
|
|
493
|
-
enableAutoSave: 0,
|
|
494
|
-
autoSaveRangeType: '0',
|
|
495
|
-
autoSaveRangeMultiBrowser: [],
|
|
496
|
-
markChangedFieldScene: '',
|
|
497
|
-
markFieldRange: '0',
|
|
498
|
-
markFieldKeyBrowserValue: [],
|
|
499
|
-
}, form);
|
|
500
|
-
if (cmdOpts.messageOp)
|
|
501
|
-
payload.messageOperation = parseInt(cmdOpts.messageOp, 10);
|
|
502
|
-
if (cmdOpts.autoSave)
|
|
503
|
-
payload.enableAutoSave = parseInt(cmdOpts.autoSave, 10);
|
|
504
|
-
if (cmdOpts.switchIdentity)
|
|
505
|
-
payload.followNodeviewRight = parseInt(cmdOpts.switchIdentity, 10);
|
|
506
|
-
const saveRes = await client.post(`${baseUrl}/api/bs/workflow/pathdef/baseExtSet/saveConfig`, payload);
|
|
507
|
-
if (saveRes?.code === 200 && saveRes?.status) {
|
|
508
|
-
console.log(opts.json ? JSON.stringify({ success: true, workflowId }) : '其他设置已保存');
|
|
509
|
-
}
|
|
510
|
-
else {
|
|
511
|
-
console.error(`保存失败: ${saveRes?.msg || '未知错误'}`);
|
|
512
|
-
process.exit(1);
|
|
513
|
-
}
|
|
514
|
-
});
|
|
515
246
|
}
|
|
516
247
|
//# sourceMappingURL=workflow-setting.js.map
|