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
package/dist/commands/form.js
CHANGED
|
@@ -3,8 +3,9 @@ import { AuthSession } from '../core/auth.js';
|
|
|
3
3
|
import { ApiClient } from '../core/client.js';
|
|
4
4
|
import { parseLayoutJson } from '../services/form-layout-source/json.js';
|
|
5
5
|
import { toColumnName, toTableName, resolveFieldKeys } from '../utils/column-name.js';
|
|
6
|
-
import { createCustomPhysicalForm, applyInitialFieldsToNewForm, placeholderFromFormat, reapplyGroupLayout, queryFormStorageSetting } from '../services/form-create.js';
|
|
6
|
+
import { createCustomPhysicalForm, applyInitialFieldsToNewForm, collectDetailEBuilderFields, defaultSwitchOptions, placeholderFromFormat, reapplyGroupLayout, queryFormStorageSetting } from '../services/form-create.js';
|
|
7
7
|
import { getRichType, richIdUnits, BROWSER_KINDS } from '../services/rich-types.js';
|
|
8
|
+
import { BROWSER_BEAN_SEARCH, browserBeanRows, resolveBrowserByName } from '../services/browser.js';
|
|
8
9
|
import { dropFieldComponents, prepareLayoutForSave } from '../services/form-field-drop.js';
|
|
9
10
|
import { describeEditBaseFailure, resolveEditBase as resolveEditBasePure } from '../services/form-edit-base.js';
|
|
10
11
|
import { applyFieldPatches, platformFieldShape } from '../services/form-field-patch.js';
|
|
@@ -22,6 +23,7 @@ import { resolveFormRecord, resolveFormId, appendThirdPartyForms, resolveObjIdBy
|
|
|
22
23
|
import { FIELD_TYPE_CHOICES, canonComponentKey, assertFieldType, normalizeFieldDef } from '../services/form-field-validate.js';
|
|
23
24
|
import { listFormTables, readFieldRecords, mapFieldsToTables } from '../services/form-physical-table.js';
|
|
24
25
|
import { buildFormulaParameters, defaultReturnType } from '../services/formula-detail.js';
|
|
26
|
+
import { assertViewLinkageFormulaFunctions, loadViewLinkageFunctions } from '../services/form-view-linkage-functions.js';
|
|
25
27
|
import { registerOptionTemplateCommand } from './form-option-template.js';
|
|
26
28
|
import { registerFormObjMetaCommands } from './form-obj-meta.js';
|
|
27
29
|
import { prepareSourceLayoutInputs, restoreSourceLayoutAfterCreate } from '../services/form-layout-source/creation.js';
|
|
@@ -310,6 +312,19 @@ export function registerFormCommands(program) {
|
|
|
310
312
|
}
|
|
311
313
|
}
|
|
312
314
|
});
|
|
315
|
+
form.command('browser-source')
|
|
316
|
+
.description('检索当前环境可用的关联浏览数据源(含自定义浏览框)')
|
|
317
|
+
.option('--keyword <name>', '按名称关键词检索', '')
|
|
318
|
+
.action(async (o) => {
|
|
319
|
+
const auth = await AuthSession.fromOptions(program.opts());
|
|
320
|
+
if (!auth)
|
|
321
|
+
throw new Error('无法加载认证');
|
|
322
|
+
const client = new ApiClient(auth);
|
|
323
|
+
const res = await client.get(`${auth.getBaseUrl()}${BROWSER_BEAN_SEARCH}?searchValue=${encodeURIComponent(o.keyword)}`);
|
|
324
|
+
if (res?.code !== 200 || res?.status === false)
|
|
325
|
+
throw new Error(res?.msg || '浏览数据源检索失败');
|
|
326
|
+
console.log(JSON.stringify(browserBeanRows(res).map((b) => ({ id: b.id, name: b.name, module: b.module, type: b.type })), null, 2));
|
|
327
|
+
});
|
|
313
328
|
form.command('create')
|
|
314
329
|
.description('创建表单')
|
|
315
330
|
.argument('<appId>', '应用 ID')
|
|
@@ -571,6 +586,8 @@ export function registerFormCommands(program) {
|
|
|
571
586
|
let objId = '';
|
|
572
587
|
let formId = '';
|
|
573
588
|
let fieldGroups = [];
|
|
589
|
+
/** 明细表定义 → 建出来的 subFormId(明细 EBuilder 关联绑定要用)。 */
|
|
590
|
+
let detailTables = [];
|
|
574
591
|
try {
|
|
575
592
|
const result = await createCustomPhysicalForm(client, baseUrl, appId, name, requestedTableName, false, layoutType);
|
|
576
593
|
objId = result.objId;
|
|
@@ -586,6 +603,7 @@ export function registerFormCommands(program) {
|
|
|
586
603
|
// services/form-create.ts 的 applyInitialFieldsToNewForm,「专项建表」共用同一条链。
|
|
587
604
|
const fieldResult = await applyInitialFieldsToNewForm(client, baseUrl, appId, objId, formId, fieldDefs, { tenantKey: auth.tenantKey, layoutType, systemOverrides });
|
|
588
605
|
fieldGroups = fieldResult.fieldGroups;
|
|
606
|
+
detailTables = fieldResult.detailTables || [];
|
|
589
607
|
}
|
|
590
608
|
catch (e) {
|
|
591
609
|
console.error(`创建失败: ${e.message}`);
|
|
@@ -637,15 +655,22 @@ export function registerFormCommands(program) {
|
|
|
637
655
|
// Step 2: EBuilder fields need follow-up binding to target forms.
|
|
638
656
|
// 无 sformId 的 EBuilder 会被建成裸关联字段(isAddForRelation=false,无目标表),
|
|
639
657
|
// 这是"关联ebuilder不对"的常见来源,明确警告避免静默。
|
|
640
|
-
|
|
658
|
+
// 明细表里的 EBuilder 子字段也要绑定 —— 它们不在 fieldDefs 顶层,必须从 DetailTable.formFields 里取。
|
|
659
|
+
// 只靠下面的顶层循环,明细 EBuilder 会建成`isAddForRelation=false`、没有 sformId/formName 的裸字段。
|
|
660
|
+
const detailEbDefs = collectDetailEBuilderFields(fieldDefs);
|
|
661
|
+
const ebNoTarget = [
|
|
662
|
+
...fieldDefs.filter(f => f.componentKey === 'EBuilder' && !f.sformId),
|
|
663
|
+
...detailEbDefs.filter((f) => !f.sformId).map((f) => ({ ...f, fieldName: `${f.detailName}.${f.fieldName}` })),
|
|
664
|
+
];
|
|
641
665
|
if (ebNoTarget.length > 0) {
|
|
642
666
|
console.error(` ⚠ ${ebNoTarget.length} 个 EBuilder 字段缺少 sformId,将建成无关联裸字段:`);
|
|
643
667
|
for (const f of ebNoTarget)
|
|
644
668
|
console.error(` - ${f.fieldName}(需在 fields.json 指定 sformId=<目标表单objId> 与 dataTitle=<显示字段>)`);
|
|
645
669
|
}
|
|
646
670
|
const ebFields = fieldDefs.filter(f => f.componentKey === 'EBuilder' && f.sformId);
|
|
647
|
-
|
|
648
|
-
|
|
671
|
+
const detailEbFields = detailEbDefs.filter((f) => f.sformId);
|
|
672
|
+
if (ebFields.length > 0 || detailEbFields.length > 0) {
|
|
673
|
+
console.error(` 绑定 ${ebFields.length + detailEbFields.length} 个 EBuilder 关联字段...`);
|
|
649
674
|
// Resolve target form names and field IDs from sformId
|
|
650
675
|
const formList = await client.get(`${baseUrl}/api/bs/ebuilder/form/obj/getList/${appId}?apid=${appId}`, { ebbusinessid: appId });
|
|
651
676
|
const allForms = formList?.data || [];
|
|
@@ -807,6 +832,81 @@ export function registerFormCommands(program) {
|
|
|
807
832
|
console.error(` 关联失败: ${ef.fieldName} — ${updateRes?.msg || '未知错误'}`);
|
|
808
833
|
}
|
|
809
834
|
}
|
|
835
|
+
// 明细表子字段:创建时不在主表字段记录里,按 subFormId 单独读回再补关联。
|
|
836
|
+
// 用 getFormField 的完整记录做底保存 —— 只发少数字段会把 subFormId / formTableId 等冲掉。
|
|
837
|
+
if (detailEbFields.length > 0) {
|
|
838
|
+
const subFormIdByDetail = new Map(detailTables.map((dt) => [String(dt.definition?.fieldName ?? ''), String(dt.subFormId ?? '')]));
|
|
839
|
+
const childRowsCache = new Map();
|
|
840
|
+
const childRowsOf = async (subFormId) => {
|
|
841
|
+
if (!childRowsCache.has(subFormId)) {
|
|
842
|
+
const r = await client.post(`${baseUrl}/api/ebuilder/form/form/field/manage/getFormFieldPage?apid=${appId}`, {
|
|
843
|
+
pageNo: 1, pageSize: 500, module: 'ebuilderform',
|
|
844
|
+
customParam: { appId, objId },
|
|
845
|
+
formFieldSearchEntity: { isDelete: 0, status: 'enable', formId: resolvedFormId, subFormId },
|
|
846
|
+
}, { ebbusinessid: resolvedFormId });
|
|
847
|
+
childRowsCache.set(subFormId, r?.data?.pageDatas?.result || r?.data?.data?.records || r?.data?.data || []);
|
|
848
|
+
}
|
|
849
|
+
return childRowsCache.get(subFormId);
|
|
850
|
+
};
|
|
851
|
+
for (const ef of detailEbFields) {
|
|
852
|
+
const subFormId = subFormIdByDetail.get(String(ef.detailName)) || '';
|
|
853
|
+
if (!subFormId) {
|
|
854
|
+
console.error(` 警告: 找不到明细表「${ef.detailName}」的 subFormId,跳过 ${ef.fieldName}`);
|
|
855
|
+
continue;
|
|
856
|
+
}
|
|
857
|
+
const rows = await childRowsOf(subFormId);
|
|
858
|
+
const hits = rows.filter((r) => String(r.title ?? r.fieldName ?? '') === String(ef.fieldName));
|
|
859
|
+
if (hits.length !== 1) {
|
|
860
|
+
console.error(` 警告: 明细表「${ef.detailName}」里${hits.length ? '有多个' : '找不到'}「${ef.fieldName}」,无法绑定,跳过`);
|
|
861
|
+
continue;
|
|
862
|
+
}
|
|
863
|
+
const child = hits[0];
|
|
864
|
+
const gf = await client.post(`${baseUrl}/api/ebuilder/form/form/field/manage/getFormField`, { module: 'ebuilderform', formTableField: { formField: { id: child.fieldId, form: { id: resolvedFormId } } } }, { ebbusinessid: resolvedFormId });
|
|
865
|
+
const full = gf?.data || child;
|
|
866
|
+
let targetBizFields = [];
|
|
867
|
+
try {
|
|
868
|
+
const tfd = await client.post(`${baseUrl}/api/ebuilder/form/dataset/v1/getFields`, {
|
|
869
|
+
objId: ef.sformId, userid: auth.userId, tenantKey: auth.tenantKey,
|
|
870
|
+
});
|
|
871
|
+
targetBizFields = (tfd?.data?.mainFields || [])
|
|
872
|
+
.filter((f) => /^\d+$/.test(String(f.fieldId)))
|
|
873
|
+
.map((f) => ({ id: String(f.fieldId), name: String(f.fieldName || f.title || '') }))
|
|
874
|
+
.slice(0, 5);
|
|
875
|
+
}
|
|
876
|
+
catch { /* 目标表查询失败则显示列留空 */ }
|
|
877
|
+
const jsonObj = {
|
|
878
|
+
...full,
|
|
879
|
+
formId: resolvedFormId,
|
|
880
|
+
sformId: ef.sformId,
|
|
881
|
+
formName: ef.formName || formNameById.get(ef.sformId || '') || ef.sformId || '',
|
|
882
|
+
dataTitle: await resolveDataTitle(ef.sformId || '', ef.dataTitle || 'name'),
|
|
883
|
+
appId,
|
|
884
|
+
isAddForRelation: true,
|
|
885
|
+
displayType: 'line',
|
|
886
|
+
viewDataDetail: true,
|
|
887
|
+
quickAddParams: [],
|
|
888
|
+
relateViewData: [],
|
|
889
|
+
relateField: null,
|
|
890
|
+
virtualForm: false,
|
|
891
|
+
virtualTable: false,
|
|
892
|
+
type: 'EBuilder',
|
|
893
|
+
componentKey: 'Ebuilder',
|
|
894
|
+
isSingle: ef.multiple ? false : true,
|
|
895
|
+
ffDisplayColumns: Array.isArray(ef.displayColumns) && ef.displayColumns.length
|
|
896
|
+
? ef.displayColumns
|
|
897
|
+
.map((name) => targetBizFields.find((f) => f.name === name))
|
|
898
|
+
.filter((f) => !!f)
|
|
899
|
+
: targetBizFields,
|
|
900
|
+
};
|
|
901
|
+
const res = await client.post(`${baseUrl}/api/ebuilder/form/form/field/manage/saveFormFieldNew?apid=${appId}`, { formId: resolvedFormId, module: 'ebuilderform', customParam: { appId, objId }, jsonObj: JSON.stringify(jsonObj) }, { ebbusinessid: resolvedFormId });
|
|
902
|
+
if (res?.code === 200 && res?.status) {
|
|
903
|
+
console.error(` 已关联: ${ef.detailName}.${ef.fieldName} → ${ef.sformId}`);
|
|
904
|
+
}
|
|
905
|
+
else {
|
|
906
|
+
console.error(` 关联失败: ${ef.detailName}.${ef.fieldName} — ${res?.msg || '未知错误'}`);
|
|
907
|
+
}
|
|
908
|
+
}
|
|
909
|
+
}
|
|
810
910
|
}
|
|
811
911
|
// Step 2a: Select 绑定选项预设模板(fields.json optionTemplate 属性)。
|
|
812
912
|
// 建表时字段已建成裸 Select(无选项),此处补 templateId/templateName/publicTemplate:false/options:[]。
|
|
@@ -1838,11 +1938,19 @@ export function registerFormCommands(program) {
|
|
|
1838
1938
|
if (config.formulaId) {
|
|
1839
1939
|
if (!config.formulaName)
|
|
1840
1940
|
throw new Error('引用已有公式需同时提供 formulaName');
|
|
1941
|
+
const detail = await client.post(`${baseUrl}/api/excel/formula/detail`, { formulaId: config.formulaId });
|
|
1942
|
+
const existing = detail?.resultJson?.data;
|
|
1943
|
+
if (!detail?.resultJson?.excute || !existing?.expressSql)
|
|
1944
|
+
throw new Error('无法读取已有公式表达式,已停止绑定显示属性联动');
|
|
1945
|
+
if (String(existing.returnType || '').toLowerCase() !== 'boolean')
|
|
1946
|
+
throw new Error('显示属性联动引用的已有公式必须返回 Boolean');
|
|
1947
|
+
assertViewLinkageFormulaFunctions(String(existing.expressSql), await loadViewLinkageFunctions(client, baseUrl));
|
|
1841
1948
|
return { id: String(config.formulaId), name: String(config.formulaName) };
|
|
1842
1949
|
}
|
|
1843
1950
|
if (!config.formula)
|
|
1844
1951
|
return undefined;
|
|
1845
1952
|
const expression = String(config.formula).trim();
|
|
1953
|
+
assertViewLinkageFormulaFunctions(expression, await loadViewLinkageFunctions(client, baseUrl));
|
|
1846
1954
|
const parsed = await buildFormulaParameters(client, baseUrl, objId, appId, formId, expression);
|
|
1847
1955
|
if (parsed.errors.length)
|
|
1848
1956
|
throw new Error(`公式引用无效: ${parsed.errors.join('; ')}`);
|
|
@@ -2359,6 +2467,7 @@ export function registerFormCommands(program) {
|
|
|
2359
2467
|
.option('--data-title <field>', '目标表单的显示字段名(仅 EBuilder;缺省 name=目标表含"名称"的字段,无则第一个业务字段)')
|
|
2360
2468
|
.option('--form-name <name>', '目标表单名称(仅 EBuilder 类型,可选)')
|
|
2361
2469
|
.option('--browser-type <type>', `通用浏览类型:${BROWSER_KINDS.join('、')}`)
|
|
2470
|
+
.option('--browser-name <name>', '按名称精确指定浏览数据源(含自定义浏览框);优先于 --browser-type')
|
|
2362
2471
|
.option('--browser-form-source <source>', '表单浏览数据源:business 或 ebuilder(仅 --browser-type form)')
|
|
2363
2472
|
.option('--format <fmt>', '日期精度格式(Date/DateTime/DateRange),如 yyyy-MM-dd、yyyy-MM-dd HH:mm')
|
|
2364
2473
|
.option('--min-field <field>', 'Date/DateTime 日期限制:最早不得早于该字段(字段名,min.dateField)')
|
|
@@ -2413,6 +2522,12 @@ export function registerFormCommands(program) {
|
|
|
2413
2522
|
const endId = genIds[2] || '';
|
|
2414
2523
|
const labelFieldId = genIds[idCount] || String(Date.now());
|
|
2415
2524
|
const cmdOpts = cmdOptsRaw || {};
|
|
2525
|
+
if (cmdOpts.browserName) {
|
|
2526
|
+
if (fieldType !== 'Browser' && fieldType !== 'RelateBrowser') {
|
|
2527
|
+
throw new Error('--browser-name 仅适用于 Browser/RelateBrowser 字段');
|
|
2528
|
+
}
|
|
2529
|
+
cmdOpts.browserType = await resolveBrowserByName(client, baseUrl, cmdOpts.browserName, { ebbusinessid: formId });
|
|
2530
|
+
}
|
|
2416
2531
|
const sformId = cmdOpts.sformId || '';
|
|
2417
2532
|
const dataTitle = cmdOpts.dataTitle || '';
|
|
2418
2533
|
const formName = cmdOpts.formName || '';
|
|
@@ -2499,7 +2614,7 @@ export function registerFormCommands(program) {
|
|
|
2499
2614
|
console.error(' 本表还没有这个类型,改用平台给的字段模板合成组件...');
|
|
2500
2615
|
placed = await insertFieldIntoLayout(client, baseUrl, formId, { ...insertArgs, fieldTypeTemplate: tpl });
|
|
2501
2616
|
}
|
|
2502
|
-
console.error(` 布局已更新: excel[${placed.row},${placed.col}](增量插入,未重建)`);
|
|
2617
|
+
console.error(` 布局已更新: ${placed.row ? `excel[${placed.row},${placed.col}]` : 'FLOW'}(增量插入,未重建)`);
|
|
2503
2618
|
// 网格补格这类「改成功了但不干净」的情况要让人看见,不能闷掉。
|
|
2504
2619
|
for (const w of placed.warnings)
|
|
2505
2620
|
console.error(` ⚠ ${w}`);
|
|
@@ -2593,6 +2708,29 @@ export function registerFormCommands(program) {
|
|
|
2593
2708
|
console.error(` 布局更新失败: ${e.message}`);
|
|
2594
2709
|
}
|
|
2595
2710
|
}
|
|
2711
|
+
// 开关:布局写入会把字段 options 冲回空(模板 comp 里没有选项),
|
|
2712
|
+
// 必须在布局之后按完整记录补一次 开启=1 / 关闭=0。
|
|
2713
|
+
if (fieldType === 'Switch') {
|
|
2714
|
+
try {
|
|
2715
|
+
const gf = await client.post(`${baseUrl}/api/ebuilder/form/form/field/manage/getFormField`, { module: 'ebuilderform', formTableField: { formField: { id: fieldId, form: { id: formId } } } }, { ebbusinessid: formId });
|
|
2716
|
+
const full = gf?.data || {};
|
|
2717
|
+
if (full.fieldId) {
|
|
2718
|
+
const ogen = await client.post(`${baseUrl}/api/form/local/generatorIds?size=2&apid=${appId}`, {});
|
|
2719
|
+
const optionIds = (ogen?.data?.generatorIds || []).map(String);
|
|
2720
|
+
const ores = await client.post(`${baseUrl}/api/ebuilder/form/form/field/manage/saveFormFieldNew?apid=${appId}`, {
|
|
2721
|
+
formId, module: 'ebuilderform', customParam: { appId, objId },
|
|
2722
|
+
jsonObj: JSON.stringify({ ...full, options: defaultSwitchOptions(fieldId, optionIds) }),
|
|
2723
|
+
}, { ebbusinessid: formId });
|
|
2724
|
+
if (ores?.code === 200 && ores?.status)
|
|
2725
|
+
console.error(' 开关默认选项已配置: 开启=1 / 关闭=0');
|
|
2726
|
+
else
|
|
2727
|
+
console.error(` ⚠ 开关默认选项未确认保存: ${ores?.msg || '未知错误'}`);
|
|
2728
|
+
}
|
|
2729
|
+
}
|
|
2730
|
+
catch (e) {
|
|
2731
|
+
console.error(` ⚠ 开关默认选项配置失败: ${e.message}`);
|
|
2732
|
+
}
|
|
2733
|
+
}
|
|
2596
2734
|
}
|
|
2597
2735
|
else {
|
|
2598
2736
|
console.error(`添加失败: ${data?.msg || JSON.stringify(data) || '未知错误'}`);
|