weaver-e10-builder 1.2.3 → 1.5.1
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/assets/org-employee-template.xlsx +0 -0
- package/dist/commands/actionflow.d.ts.map +1 -1
- package/dist/commands/actionflow.js +12 -25
- package/dist/commands/actionflow.js.map +1 -1
- package/dist/commands/designer-css.d.ts +15 -0
- package/dist/commands/designer-css.d.ts.map +1 -0
- package/dist/commands/designer-css.js +205 -0
- package/dist/commands/designer-css.js.map +1 -0
- package/dist/commands/form-button.d.ts.map +1 -1
- package/dist/commands/form-button.js +28 -5
- package/dist/commands/form-button.js.map +1 -1
- package/dist/commands/form-field-lang.d.ts.map +1 -1
- package/dist/commands/form-field-lang.js +4 -39
- package/dist/commands/form-field-lang.js.map +1 -1
- package/dist/commands/form-field-linkage.d.ts.map +1 -1
- package/dist/commands/form-field-linkage.js +27 -6
- package/dist/commands/form-field-linkage.js.map +1 -1
- package/dist/commands/form-formula-linkage.d.ts +3 -0
- package/dist/commands/form-formula-linkage.d.ts.map +1 -0
- package/dist/commands/form-formula-linkage.js +434 -0
- package/dist/commands/form-formula-linkage.js.map +1 -0
- package/dist/commands/form-formula.d.ts.map +1 -1
- package/dist/commands/form-formula.js +22 -3
- package/dist/commands/form-formula.js.map +1 -1
- package/dist/commands/form-layout-init.d.ts.map +1 -1
- package/dist/commands/form-layout-init.js +15 -10
- package/dist/commands/form-layout-init.js.map +1 -1
- package/dist/commands/form-layout.js +24 -21
- package/dist/commands/form-layout.js.map +1 -1
- package/dist/commands/form-list-click.d.ts.map +1 -1
- package/dist/commands/form-list-click.js +2 -1
- package/dist/commands/form-list-click.js.map +1 -1
- package/dist/commands/form-native.d.ts.map +1 -1
- package/dist/commands/form-native.js +192 -3
- package/dist/commands/form-native.js.map +1 -1
- package/dist/commands/form-validate.d.ts.map +1 -1
- package/dist/commands/form-validate.js +11 -3
- package/dist/commands/form-validate.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +323 -192
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/matrix.d.ts.map +1 -1
- package/dist/commands/matrix.js +175 -36
- package/dist/commands/matrix.js.map +1 -1
- package/dist/commands/menu.d.ts.map +1 -1
- package/dist/commands/menu.js +170 -23
- package/dist/commands/menu.js.map +1 -1
- package/dist/commands/org.d.ts +10 -0
- package/dist/commands/org.d.ts.map +1 -0
- package/dist/commands/org.js +278 -0
- package/dist/commands/org.js.map +1 -0
- package/dist/commands/role.d.ts.map +1 -1
- package/dist/commands/role.js +106 -62
- package/dist/commands/role.js.map +1 -1
- package/dist/commands/wf-form.d.ts +1 -0
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +545 -39
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/commands/workflow-auth-resp.d.ts.map +1 -1
- package/dist/commands/workflow-auth-resp.js +53 -5
- package/dist/commands/workflow-auth-resp.js.map +1 -1
- package/dist/commands/workflow-create-auth-resp.d.ts.map +1 -1
- package/dist/commands/workflow-create-auth-resp.js +5 -1
- package/dist/commands/workflow-create-auth-resp.js.map +1 -1
- package/dist/commands/workflow-node-assign-flow.d.ts.map +1 -1
- package/dist/commands/workflow-node-assign-flow.js +1 -2
- package/dist/commands/workflow-node-assign-flow.js.map +1 -1
- package/dist/commands/workflow-node.d.ts.map +1 -1
- package/dist/commands/workflow-node.js +147 -2
- package/dist/commands/workflow-node.js.map +1 -1
- package/dist/commands/workflow-odoc.d.ts.map +1 -1
- package/dist/commands/workflow-odoc.js +56 -56
- package/dist/commands/workflow-odoc.js.map +1 -1
- package/dist/commands/workflow-setting.d.ts.map +1 -1
- package/dist/commands/workflow-setting.js +77 -1
- package/dist/commands/workflow-setting.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +114 -89
- package/dist/commands/workflow.js.map +1 -1
- package/dist/core/client.d.ts +14 -0
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +28 -12
- package/dist/core/client.js.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/services/action-detail.d.ts.map +1 -1
- package/dist/services/action-detail.js +5 -4
- package/dist/services/action-detail.js.map +1 -1
- package/dist/services/actionflow/command_output.d.ts +7 -0
- package/dist/services/actionflow/command_output.d.ts.map +1 -1
- package/dist/services/actionflow/command_output.js +46 -0
- package/dist/services/actionflow/command_output.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.js +14 -4
- package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_add_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_add_compiler.js +29 -0
- package/dist/services/actionflow/components/action_eb_add_compiler.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update.js +23 -8
- package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.js +261 -13
- package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
- package/dist/services/actionflow/components/approve_create.d.ts.map +1 -1
- package/dist/services/actionflow/components/approve_create.js +6 -3
- package/dist/services/actionflow/components/approve_create.js.map +1 -1
- package/dist/services/actionflow/components/custom_set_form.d.ts +10 -0
- package/dist/services/actionflow/components/custom_set_form.d.ts.map +1 -0
- package/dist/services/actionflow/components/custom_set_form.js +99 -0
- package/dist/services/actionflow/components/custom_set_form.js.map +1 -0
- package/dist/services/actionflow/components/custom_trigger.d.ts +2 -2
- package/dist/services/actionflow/components/custom_trigger.d.ts.map +1 -1
- package/dist/services/actionflow/components/custom_trigger.js +11 -11
- package/dist/services/actionflow/components/custom_trigger.js.map +1 -1
- package/dist/services/actionflow/components/dml_execute.d.ts.map +1 -1
- package/dist/services/actionflow/components/dml_execute.js +7 -3
- package/dist/services/actionflow/components/dml_execute.js.map +1 -1
- package/dist/services/actionflow/components/document_actions.d.ts.map +1 -1
- package/dist/services/actionflow/components/document_actions.js +7 -3
- 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/hrm_actions.d.ts.map +1 -1
- package/dist/services/actionflow/components/hrm_actions.js +7 -3
- package/dist/services/actionflow/components/hrm_actions.js.map +1 -1
- package/dist/services/actionflow/components/multiple_execution.d.ts.map +1 -1
- package/dist/services/actionflow/components/multiple_execution.js +14 -5
- package/dist/services/actionflow/components/multiple_execution.js.map +1 -1
- package/dist/services/actionflow/components/output.d.ts.map +1 -1
- package/dist/services/actionflow/components/output.js +6 -1
- package/dist/services/actionflow/components/output.js.map +1 -1
- package/dist/services/actionflow/components/send_message.js +2 -2
- package/dist/services/actionflow/components/send_message.js.map +1 -1
- package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
- package/dist/services/actionflow/components/workflow_actions.js +7 -3
- 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 +25 -8
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/context_provider.d.ts.map +1 -1
- package/dist/services/actionflow/context_provider.js +24 -4
- package/dist/services/actionflow/context_provider.js.map +1 -1
- package/dist/services/actionflow/custom_trigger_context.d.ts +10 -0
- package/dist/services/actionflow/custom_trigger_context.d.ts.map +1 -0
- package/dist/services/actionflow/custom_trigger_context.js +46 -0
- package/dist/services/actionflow/custom_trigger_context.js.map +1 -0
- package/dist/services/actionflow/dynamic_resources.d.ts.map +1 -1
- package/dist/services/actionflow/dynamic_resources.js +1 -1
- package/dist/services/actionflow/dynamic_resources.js.map +1 -1
- package/dist/services/actionflow/ebuilder_source.d.ts +19 -0
- package/dist/services/actionflow/ebuilder_source.d.ts.map +1 -0
- package/dist/services/actionflow/ebuilder_source.js +78 -0
- package/dist/services/actionflow/ebuilder_source.js.map +1 -0
- package/dist/services/actionflow/filter_rules.js +2 -2
- package/dist/services/actionflow/filter_rules.js.map +1 -1
- package/dist/services/actionflow/form_source.d.ts +51 -10
- package/dist/services/actionflow/form_source.d.ts.map +1 -1
- package/dist/services/actionflow/form_source.js +173 -29
- package/dist/services/actionflow/form_source.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +13 -2
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +104 -42
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/id_generator.d.ts +2 -0
- package/dist/services/actionflow/id_generator.d.ts.map +1 -1
- package/dist/services/actionflow/id_generator.js +13 -0
- package/dist/services/actionflow/id_generator.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts +6 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +217 -4
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +172 -50
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/auth-resp-condition.d.ts +35 -0
- package/dist/services/auth-resp-condition.d.ts.map +1 -0
- package/dist/services/auth-resp-condition.js +111 -0
- package/dist/services/auth-resp-condition.js.map +1 -0
- package/dist/services/condition-rules.d.ts.map +1 -1
- package/dist/services/condition-rules.js +4 -1
- package/dist/services/condition-rules.js.map +1 -1
- package/dist/services/designer-css.d.ts +89 -0
- package/dist/services/designer-css.d.ts.map +1 -0
- package/dist/services/designer-css.js +163 -0
- package/dist/services/designer-css.js.map +1 -0
- package/dist/services/dom-structure.d.ts +42 -0
- package/dist/services/dom-structure.d.ts.map +1 -0
- package/dist/services/dom-structure.js +251 -0
- package/dist/services/dom-structure.js.map +1 -0
- package/dist/services/esb-interface/document-parser.d.ts.map +1 -1
- package/dist/services/esb-interface/document-parser.js +62 -5
- package/dist/services/esb-interface/document-parser.js.map +1 -1
- package/dist/services/form-association.d.ts +19 -0
- package/dist/services/form-association.d.ts.map +1 -1
- package/dist/services/form-association.js +64 -0
- package/dist/services/form-association.js.map +1 -1
- package/dist/services/form-button-action.d.ts +7 -0
- package/dist/services/form-button-action.d.ts.map +1 -1
- package/dist/services/form-button-action.js +11 -1
- package/dist/services/form-button-action.js.map +1 -1
- package/dist/services/form-create.d.ts +4 -0
- package/dist/services/form-create.d.ts.map +1 -1
- package/dist/services/form-create.js +18 -12
- package/dist/services/form-create.js.map +1 -1
- package/dist/services/form-field-patch.d.ts +25 -1
- package/dist/services/form-field-patch.d.ts.map +1 -1
- package/dist/services/form-field-patch.js +52 -9
- package/dist/services/form-field-patch.js.map +1 -1
- package/dist/services/form-formula-linkage.d.ts +349 -0
- package/dist/services/form-formula-linkage.d.ts.map +1 -0
- package/dist/services/form-formula-linkage.js +546 -0
- package/dist/services/form-formula-linkage.js.map +1 -0
- package/dist/services/form-i18n-label.d.ts +48 -0
- package/dist/services/form-i18n-label.d.ts.map +1 -0
- package/dist/services/form-i18n-label.js +91 -0
- package/dist/services/form-i18n-label.js.map +1 -0
- package/dist/services/form-layout-insert.d.ts +84 -0
- package/dist/services/form-layout-insert.d.ts.map +1 -0
- package/dist/services/form-layout-insert.js +244 -0
- package/dist/services/form-layout-insert.js.map +1 -0
- package/dist/services/form-linkage-condition.d.ts +159 -0
- package/dist/services/form-linkage-condition.d.ts.map +1 -0
- package/dist/services/form-linkage-condition.js +307 -0
- package/dist/services/form-linkage-condition.js.map +1 -0
- package/dist/services/form-style-template.d.ts +6 -2
- package/dist/services/form-style-template.d.ts.map +1 -1
- package/dist/services/form-style-template.js +8 -4
- package/dist/services/form-style-template.js.map +1 -1
- package/dist/services/formula-detail.d.ts +98 -6
- package/dist/services/formula-detail.d.ts.map +1 -1
- package/dist/services/formula-detail.js +208 -26
- package/dist/services/formula-detail.js.map +1 -1
- package/dist/services/matrix-rows.d.ts +43 -0
- package/dist/services/matrix-rows.d.ts.map +1 -0
- package/dist/services/matrix-rows.js +104 -0
- package/dist/services/matrix-rows.js.map +1 -0
- package/dist/services/menu-catalog.d.ts +84 -0
- package/dist/services/menu-catalog.d.ts.map +1 -0
- package/dist/services/menu-catalog.js +183 -0
- package/dist/services/menu-catalog.js.map +1 -0
- package/dist/services/org-department.d.ts +114 -0
- package/dist/services/org-department.d.ts.map +1 -0
- package/dist/services/org-department.js +209 -0
- package/dist/services/org-department.js.map +1 -0
- package/dist/services/org-employee.d.ts +87 -0
- package/dist/services/org-employee.d.ts.map +1 -0
- package/dist/services/org-employee.js +219 -0
- package/dist/services/org-employee.js.map +1 -0
- package/dist/services/role-member.d.ts +99 -0
- package/dist/services/role-member.d.ts.map +1 -0
- package/dist/services/role-member.js +206 -0
- package/dist/services/role-member.js.map +1 -0
- package/dist/services/workflow-add-step.d.ts +45 -0
- package/dist/services/workflow-add-step.d.ts.map +1 -0
- package/dist/services/workflow-add-step.js +122 -0
- package/dist/services/workflow-add-step.js.map +1 -0
- package/dist/services/workflow-assign-flow.d.ts +1 -6
- package/dist/services/workflow-assign-flow.d.ts.map +1 -1
- package/dist/services/workflow-assign-flow.js +3 -8
- package/dist/services/workflow-assign-flow.js.map +1 -1
- package/dist/services/workflow-drawback.d.ts +19 -0
- package/dist/services/workflow-drawback.d.ts.map +1 -0
- package/dist/services/workflow-drawback.js +59 -0
- package/dist/services/workflow-drawback.js.map +1 -0
- package/dist/services/workflow-info.d.ts +83 -0
- package/dist/services/workflow-info.d.ts.map +1 -0
- package/dist/services/workflow-info.js +97 -0
- package/dist/services/workflow-info.js.map +1 -0
- package/dist/services/workflow-links.d.ts +51 -0
- package/dist/services/workflow-links.d.ts.map +1 -0
- package/dist/services/workflow-links.js +162 -0
- package/dist/services/workflow-links.js.map +1 -0
- package/dist/services/workflow-node-layout.d.ts +45 -4
- package/dist/services/workflow-node-layout.d.ts.map +1 -1
- package/dist/services/workflow-node-layout.js +142 -41
- package/dist/services/workflow-node-layout.js.map +1 -1
- package/dist/services/workflow-odoc-setting.d.ts +43 -0
- package/dist/services/workflow-odoc-setting.d.ts.map +1 -0
- package/dist/services/workflow-odoc-setting.js +109 -0
- package/dist/services/workflow-odoc-setting.js.map +1 -0
- package/dist/services/workflow-tab-config.d.ts +54 -0
- package/dist/services/workflow-tab-config.d.ts.map +1 -0
- package/dist/services/workflow-tab-config.js +137 -0
- package/dist/services/workflow-tab-config.js.map +1 -0
- package/dist/types.d.ts +5 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/column-name.d.ts +24 -0
- package/dist/utils/column-name.d.ts.map +1 -1
- package/dist/utils/column-name.js +16 -0
- package/dist/utils/column-name.js.map +1 -1
- package/ecodecmd/package.json +1 -2
- package/ecodecmd/src/loaddep.js +19 -9
- package/package.json +48 -48
- package/skill-docs/SKILL.md +15 -11
- package/skill-docs/_catalog.md +85 -79
- package/skill-docs/actionflows/SKILL.md +173 -168
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +38 -1
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +42 -0
- package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +1 -1
- package/skill-docs/actionflows/references/components/logic/Output.md +2 -0
- package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +48 -11
- package/skill-docs/actionflows/references/components/workflow/ApproveCreate.md +1 -1
- package/skill-docs/assets/dom-structure/Bar.json +341 -0
- package/skill-docs/assets/dom-structure/BarStack.json +341 -0
- package/skill-docs/assets/dom-structure/Bubble.json +323 -0
- package/skill-docs/assets/dom-structure/Calendar.json +515 -0
- package/skill-docs/assets/dom-structure/Circular.json +337 -0
- package/skill-docs/assets/dom-structure/CollapsePanel.json +289 -0
- package/skill-docs/assets/dom-structure/Comment.json +617 -0
- package/skill-docs/assets/dom-structure/CountDown.json +755 -0
- package/skill-docs/assets/dom-structure/DigitalPanel.json +191 -0
- package/skill-docs/assets/dom-structure/EbButton.json +387 -0
- package/skill-docs/assets/dom-structure/FastCreate.json +242 -0
- package/skill-docs/assets/dom-structure/Gauge.json +282 -0
- package/skill-docs/assets/dom-structure/HBar.json +336 -0
- package/skill-docs/assets/dom-structure/HBarStack.json +337 -0
- package/skill-docs/assets/dom-structure/Line.json +341 -0
- package/skill-docs/assets/dom-structure/NList.json +712 -0
- package/skill-docs/assets/dom-structure/NavBar.json +274 -0
- package/skill-docs/assets/dom-structure/NavPanel.json +390 -0
- package/skill-docs/assets/dom-structure/NewTab.json +606 -0
- package/skill-docs/assets/dom-structure/Nightingale.json +336 -0
- package/skill-docs/assets/dom-structure/PageHeader.json +205 -0
- package/skill-docs/assets/dom-structure/Picture.json +209 -0
- package/skill-docs/assets/dom-structure/Pie.json +338 -0
- package/skill-docs/assets/dom-structure/ProgressChart.json +299 -0
- package/skill-docs/assets/dom-structure/SearchGlobal.json +628 -0
- package/skill-docs/assets/dom-structure/Slide.json +489 -0
- package/skill-docs/assets/dom-structure/Treemap.json +324 -0
- package/skill-docs/references/common/guide-plan-template.md +10 -4
- package/skill-docs/references/common/ref-cli-commands.md +67 -34
- package/skill-docs/references/ebuilder-designer/guide-designer-components.md +12 -1
- package/skill-docs/references/ebuilder-designer/guide-designer-css.md +127 -0
- package/skill-docs/references/ebuilder-designer/guide-designer.md +6 -5
- package/skill-docs/references/esb-interface/guide-import.md +4 -1
- package/skill-docs/references/form/guide-create-form.md +14 -1
- package/skill-docs/references/form/guide-field-linkage.md +2 -0
- package/skill-docs/references/form/guide-form-formula-functions.md +36 -0
- package/skill-docs/references/form/guide-form-layout-incremental.md +75 -0
- package/skill-docs/references/form/guide-form-layout-planning.md +1 -1
- package/skill-docs/references/form/guide-form-linkage.md +89 -5
- package/skill-docs/references/form/guide-formula-linkage.md +250 -0
- package/skill-docs/references/form/ref-form-fields.md +6 -0
- package/skill-docs/references/hrm/guide-matrix.md +79 -16
- package/skill-docs/references/hrm/guide-org-employee.md +56 -0
- package/skill-docs/references/menu/system-menus.md +12 -0
- package/skill-docs/references/workflow/guide-workflow-auth-resp.md +48 -22
- package/skill-docs/references/workflow/guide-workflow-odoc-setting.md +248 -0
- package/skill-docs/references/workflow/guide-workflow-odoc.md +25 -33
- package/skill-docs/references/workflow/guide-workflow.md +18 -3
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
| 命令 | 说明 |
|
|
10
10
|
|------|------|
|
|
11
11
|
| `e10-cli docx read <文件>` | 解析 Word 文档为 markdown + 提取图片到 `_images/`。**禁止自己写 python-docx 脚本** |
|
|
12
|
-
| `e10-cli interface import <文件> [--system-pool-name <名称>] [--apply] [--out <文件>]` | 解析 `.docx/.pdf/.md/.txt` 为 Postman Collection
|
|
12
|
+
| `e10-cli interface import <文件> [--system-pool-name <名称>] [--apply] [--out <文件>]` | 解析 `.docx/.pdf/.md/.txt/.xlsx/.xls` 为 Postman Collection(Excel 有解析限额,超限报错不截断);默认预览,`--apply` 才调用 ESB 创建系统接口。未传系统池名称时从文档文件名推导;完整规则见 `references/esb-interface/guide-import.md` |
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
@@ -45,25 +45,25 @@
|
|
|
45
45
|
| `e10-cli form read <objId> [--app-id <appId>] [--out <file>]` | 读取表单字段。`--app-id` 含明细表字段+Select/RadioBox/CheckBox 选项;`--out fields.json` 写 UTF-8 JSON(推荐,机器可读)。旧版 `[dir]` 参数写 memo.md,已过时 |
|
|
46
46
|
| `e10-cli form read <objId> --app-id <appId> --out fields.json` | 读取字段含选项(Select/RadioBox/CheckBox 自动带 options)。**含明细表字段**,配动作流/联动拿明细 fieldId 用这个 |
|
|
47
47
|
| `e10-cli form list <appId>` | 列出应用下的所有表单 |
|
|
48
|
-
| `e10-cli form create <appId> <name> <dir> --fields @<json文件>` | 创建表单。`--fields` **必填**。支持 DetailTable(嵌套formFields)、EBuilder(sformId+dataTitle)、relateFrom(联动)。fields.json 字段可带 `"required":true`/`"readOnly":true` 直标(写进布局 comps)。**字段名与平台系统字段重名(标题/创建者/创建时间/数据ID/最后更新人/数据状态)→ 不新建物理字段、复用系统字段**,并把该字段在**布局置为可见**(platform 系统字段默认隐藏;可写 `"singleRow":true` 独占一行、`"hidden":true` 保持隐藏)。`--json` 返回 `skippedSys`。**默认不加菜单**,要入口传 `--menu`(台账菜单 VIEWPORT);漏加 `e10-cli menu add-table <appId> <objId>`
|
|
48
|
+
| `e10-cli form create <appId> <name> <dir> --fields @<json文件>` | 创建表单。`--fields` **必填**。支持 DetailTable(嵌套formFields)、EBuilder(sformId+dataTitle)、relateFrom(联动)。fields.json 字段可带 `"required":true`/`"readOnly":true` 直标(写进布局 comps)。**字段名与平台系统字段重名(标题/创建者/创建时间/数据ID/最后更新人/数据状态)→ 不新建物理字段、复用系统字段**,并把该字段在**布局置为可见**(platform 系统字段默认隐藏;可写 `"singleRow":true` 独占一行、`"hidden":true` 保持隐藏)。`--json` 返回 `skippedSys`。**默认不加菜单**,要入口传 `--menu`(台账菜单 VIEWPORT);漏加 `e10-cli menu add-table <appId> <objId>` 补。**`--table-name <名>` 自定义数据库表名**(平台前缀如 `uf_` 由 CLI 自动补,传 `cs_khxx` 与 `uf_cs_khxx` 等价;字母开头、只含字母数字下划线;自定义部分受平台长度上限约束——`uf_` + 总长 30 时最多 27 位,越界直接报错不建半张表;建成后回读校验实际表名;仅物理表应用适用) |
|
|
49
49
|
| `e10-cli form virtual source-groups` / `sources <groupId>` | 查询 EB 表单和系统业务数据源分组、数据源列表 |
|
|
50
50
|
| `e10-cli form virtual dataset-groups` / `datasets <groupId>` / `dataset-info <id>` | 查询数据加工分组、数据集和数据集定义 |
|
|
51
51
|
| `e10-cli form virtual fields <appId> --source-id ... --source-group ...` | 校验数据源 ID 字段并读取可映射字段 |
|
|
52
52
|
| `e10-cli form virtual create <appId> <name> --source-id ... --source-group ... --fields @json` | 创建虚拟表;`--source-type LOGIC|ETEAMS`,支持 `--layout FLOW|EXCEL`。字段默认沿用来源类型,只允许兼容的同族展示类型 |
|
|
53
53
|
| `e10-cli form virtual read <objId> <appId>` | 读取虚拟表来源、字段映射和默认视图信息 |
|
|
54
54
|
| `e10-cli form virtual add-fields <objId> <appId> <formId> --source-id ... --source-group ... --fields @json` | 从原数据源向虚拟表增加字段 |
|
|
55
|
-
| `e10-cli form add-field <objId> <appId> <name> <type> [title]` | 添加字段。`<type>`=componentKey(Text/Select/Employee/Money/DetailTable 等同 form create);`[title]` 字段显示名,不传同 name。Select 类型需单独 `field-options`
|
|
55
|
+
| `e10-cli form add-field <objId> <appId> <name> <type> [title]` | 添加字段。`<type>`=componentKey(Text/Select/Employee/Money/DetailTable 等同 form create);`[title]` 字段显示名,不传同 name。Select 类型需单独 `field-options` 配选项。**默认「增量插入」——只往布局里加这一个字段,不动其它组件、不动样式模板、不动位置**(读快照 → 加一对组件 → 保存)。**`--reinit` 改成整表重建**(initLayout:换样式模板 + 重排所有已有位置 + 标签组件全部换新 id)——**只在是自己建的表上用**;不是自己建的表(尤其字段多、手工调过版式的)绝不能用。**布局里没有同类型字段可参照时命令会中止**并说明,这是设计如此(新组件的键集只能从同类型的现成组件抄,按类型名拼会静默渲染异常);此时要么先在设计器里手工加一个同类型字段,要么显式 `--reinit`。**`--required` 设为必填**(写布局组件)。**`--sub-form-id <明细表subFormId>` 在明细表里加字段**(同样走增量)。**自动为字段标题建立多语言标签**并写进字段记录。Number 类型:**`--percent` 百分比显示**(numberType=percentage,缺省 1 位小数)、**`--default <值>` 默认值**(如 `--default 1000` 工时单价默认 1000)、`--precision <n>` 精度。**EBuilder/Flow 类型**:`--sform-id <目标表单objId>`(EBuilder 表关联 / Flow 浏览-流程字段,数据来源=浏览流程)。EBuilder 字段**自动配关联浏览弹窗显示列**(=目标表全部业务字段,去系统字段)。**`--multiple` 多选**(人员/部门/EBuilder/Browser 默认单选;**下拉 Select --multiple → SelectMultiple 类型**)。**`--max-len <n>` 文本最大长度**(Text 缺省 100、TextArea 缺省 4000)。**`--single-row` 独占一行显示**。**`--option-template <模板ID或名>` Select 绑定选项预设模板**(选项来自模板,与 `field-options` 二选一)。**`--data-key` / `--column-name` 分别指定字段编码与数据库列名**(两者是两个独立的东西,可分别指定;只给 `--data-key` 时列名跟随,都不给则同为字段名拼音首字母) |
|
|
56
56
|
| `e10-cli form detail-table list/read <objId> <appId> [...]` | 列出明细表,或读取指定明细表的二级明细开关与配置 |
|
|
57
57
|
| `e10-cli form detail-table sub-detail candidates <objId> <appId> <父明细表>` | 查询当前父明细可选择的子明细;列表排除自身、直属父级和祖先。反转父子方向时,先 `remove` 原关系,再查询新父级候选并 `add` 反向关系 |
|
|
58
58
|
| `e10-cli form detail-table sub-detail add <objId> <appId> <父明细表> --target <子明细表> --target-field <子级文本标识> [--parent-field <父级标识>] [--default-expand]` | 保留已有关系并增加或更新一条二级明细关系。父级标识缺省 `rowId`,也支持 Text/RadioBox/Select;子级标识必须是 Text。表和字段可写名称或 ID,保存后自动回读 |
|
|
59
59
|
| `e10-cli form detail-table sub-detail set <objId> <appId> <父明细表> --target <子明细表> --target-field <子级文本标识> [--parent-field <父级标识>] [--default-expand]` | 完整替换父明细的子明细配置。另有 `remove --target <子明细表>` 删除指定关系,`enable`、`disable`(保留配置)、`clear`(清空配置);完整规则见 `references/form/guide-form-sub-detail.md` |
|
|
60
|
-
| `e10-cli form edit-field <objId> <appId> <fieldId> [选项]` | 编辑字段属性。`--title` 显示名、**`--type <类型>` 改字段类型**(取值同 `add-field`,如 `Text`/`Number`/`Date`/`Select`/`Department`;走读-改-写,**不用删字段重建**,显示名/列名/位置都保留;改成 `EBuilder`/`Flow` 必须同时给 `--sform-id`)、`--required`/`--no-required`、`--sform-id`(改EBuilder关联)、`--relate-from`(值带出)、**`--multiple`/`--no-multiple`**(人员/部门/EBuilder/Browser 多选切换)、**`--data-title`**(关联字段的标题栏,写 `dataTitle
|
|
60
|
+
| `e10-cli form edit-field <objId> <appId> <fieldId> [选项]` | 编辑字段属性。`--title` 显示名、**`--type <类型>` 改字段类型**(取值同 `add-field`,如 `Text`/`Number`/`Date`/`Select`/`Department`;走读-改-写,**不用删字段重建**,显示名/列名/位置都保留;改成 `EBuilder`/`Flow` 必须同时给 `--sform-id`)、`--required`/`--no-required`、`--sform-id`(改EBuilder关联)、`--relate-from`(值带出)、**`--multiple`/`--no-multiple`**(人员/部门/EBuilder/Browser 多选切换)、**`--data-title`**(关联字段的标题栏,写 `dataTitle`)。**`--required`/`--no-required` 写的是布局组件**(必填只存在于布局里,字段定义没有这个键),命令会顺带把布局一并保存。改成 `EBuilder` 或换关联表时,**浏览显示列按新目标表自动补齐**(只在没配过、或旧列不属于新目标表时才写,不冲掉手工配的)。**`--data-key` / `--column-name` 分别改字段编码与数据库列名**(两者独立;只给 `--data-key` 时列名跟随)。**⚠ 字段已有数据时平台拒绝改动结构**(显示名例外)——报「此列已存在数据不可修改数据库字段名称」,该文案与实际情况不符,它拦的不止字段名 |
|
|
61
61
|
| `e10-cli form field-lang get <objId> <appId> <fieldId>` | 查看字段名称的中英文多语言配置;未配置时返回当前中文名称和 `configured:false` |
|
|
62
62
|
| `e10-cli form field-lang set <objId> <appId> <fieldId> --zh <中文> --en <English>` | 设置字段名称多语言。先保存多语言标签,再读取完整字段并回写 `labelObj.title`,不会覆盖字段其他属性 |
|
|
63
63
|
| `e10-cli form serial-mark set <objId> <appId> <fieldId> --segments @<json>` | **表单编号**(纯建模表):用 JSON 数组组合任意编号规则,数组顺序即拼接顺序。段类型 `fixed`/`year`/`serial`/`field`/`system`/`date`;field 段可 inline `shortName` 代字映射。子命令组:`set`(配置,--segments) / `add-segment`(增量追加段) / `short-name`(代字 list/set) / `read`(查看) / `fields`(查可绑定字段) / `enable`(启用) / `disable`(停用,可加 `--field <fieldId>` 只停某一个字段的编号) / `clear`(解除绑定)。**`disable` 停用 ≠ `clear` 解除**:停用只关开关(`isUse=0`),绑定记录与组成段原样保留、可 `enable` 恢复;解除走删除接口,绑定不可逆。要「暂时不生成编号」一律用 `disable`。被编码字段平台自动只读。**⚠ 仅对未绑流程的纯建模表有效——eb表单绑流程后表单编号字段在流程提交时不生效,编号改走流程编号(`workflow numbering`,落到 REQUEST_NO 系统字段)** |
|
|
64
64
|
| `e10-cli form field-options <objId> <appId> <fieldId> --options @<json> [--default <key>]` | 设选项/默认值。options.json: `[{"name":"选项名","valueKey":"可选"}]`;`--default` 用平台生成的长 valueKey(`form read --app-id` 获取),不是 name |
|
|
65
65
|
| `e10-cli form option-template <list\|read\|create\|copy\|delete>` | **Select 选项预设模板管理**(下拉选项复用:多个表单共享一套选项,模板改了各表单跟着变)。`list [--system]` 列模板(默认自定义模板,--system 看系统内置);`read <模板ID> [--flat]` 看选项树;`create <名称> --options @<json> [--level 1] [--describe 文本]` 建模板(options.json: `[{"name":"低","valueKey":"10","children":[]}]`,**valueKey 必须数字**,children 嵌套=多级);`copy <模板ID>` 复制(系统 default 模板不可复制);`delete <模板ID>` 删模板(被引用时平台拒绝)。**字段引用模板**:`form add-field --option-template <模板ID或名>` 或 fields.json 写 `"optionTemplate":"模板名"`(Select 专有,选项不内联) |
|
|
66
|
-
| `e10-cli form linkage add <appId> <objId> <name> --config @<json>` |
|
|
66
|
+
| `e10-cli form linkage add <appId> <objId> <name> --config @<json>` | 添加字段显隐联动规则(`conditions[]` 用 fieldId + operator + value/options;`actions[]` 用 prop + fields[])。**「为空 / 不为空」的 operator 写 `NULL` / `NOT_NULL`**(写 `EMPTY` 会被归一,但写别的平台不认的码会报一句与条件无关的写库异常)。目标字段 `dataKey` 留空即可(平台按 fieldId 定位)。多条件关系用 `detailType`(`OR`=任一 / `AND`=全部,界面就叫「任一」「全部」,不写则由平台取默认);生效维度用 `effect`(不写=当前表单,`"formLayout"`=表单布局,或给 `{effectType,effectName,effectValue}` 对象;**布局维度要的是 multipleLayoutId,命令自己查**)。**本命令只有 add / list,没有 delete** —— 建错要去设计器里删。详见 `form/guide-form-linkage.md` |
|
|
67
67
|
| `e10-cli form relate <appId> <objId> <目标字段> --from <源字段>` | **HRM 值带出联动**:源字段为表内 Employee(人员)或 Department(部门)类型,换源自动填目标字段(换申请人→填邮箱/工号/部门;换所属部门→填部门编号/上级部门)。`--key` 从平台清单校验(默认 Employee=department、Department=name),`--title` 指定显示名(默认属性中文名)。详见 `form/guide-form-linkage.md` |
|
|
68
68
|
| `e10-cli form delete-field <objId> <appId> <fieldId...>` | **删除字段**(可一次多个,批量)。**仍被布局引用的字段平台不允许删除**(报「当前字段已被布局引用,不允许删除」);加 `--force` 时 CLI 先从布局移除再重试——会**连字段的标题组件一起摘**(一个字段在布局里是「字段本体 + 标题标签」两个组件),否则表单上会留下孤儿标签。字段**有数据**时同样删不掉 |
|
|
69
69
|
| `e10-cli form delete <objId> <appId>` | 删除**整个表单**(不是字段;删字段用上面的 delete-field) |
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
| `e10-cli form list-click <objId> <appId> <listId> <fieldId> [--target <formObjId>] [--open-mode <模式>] [--win-size <尺寸>] [--clear] [--pc-only]` | 设置台账列**点击跳转**。`--open-mode` 支持当前页面/新窗口/弹出窗口/右侧滑出/右侧推出;`--win-size` 仅用于滑出/推出,具体数值按需求填写:百分比使用 `%`(0~100),像素使用 `px`,两种单位不可混用。缺省 `800px` |
|
|
78
78
|
| `e10-cli form ebuilder-columns <objId> <appId> <fieldId> [字段名/ID...] [--clear]` | 设置 EBuilder 关联字段的**浏览显示列**(存在字段配置 `ffDisplayColumns:{id,name}[]`)。**缺省查看**:列出当前显示列 + 目标表单全部**业务字段候选**(系统字段已自动过滤,不设显示列时浏览走平台默认列会带系统字段);**传目标表业务字段名/ID 设置**,系统字段会被拦截提示"系统字段不能设为显示列";`--clear` 清空。关联浏览显示哪些字段(只留业务字段) |
|
|
79
79
|
| `e10-cli form ebuilder-scope <get\|set\|clear> <objId> <appId> <fieldId>` | **浏览数据定义 → 数据范围设置**(关联浏览字段,限定被关联数据须满足条件才可选,如关联客户只选"客户状态=启用"的)。走 `browserDataScope` 接口(独立于字段布局)。`set --rules '[{"field":"客户状态","operator":"eq","value":"启用"}]'`(选项类 value 用选项名,CLI 自动解析 valueKey);`--logic and/or` 多规则关系;`--fill-null` 关联字段为空时填充;`get` 读已设条件;`clear` 清空。**这是关联浏览筛选的正解**,旧 `ebuilder-filter` 走 layout/save 不被设计器识别 |
|
|
80
|
-
| `e10-cli form validate list <objId> <appId>` | 查看表单**查重规则**(字段重复校验,多字段 AND)。`add <objId> <appId> <字段名...> [--help 提示] [--remind]` 新增(缺省禁止提交 NOSUBMISSION,`--remind`
|
|
80
|
+
| `e10-cli form validate list <objId> <appId>` | 查看表单**查重规则**(字段重复校验,多字段 AND)。`add <objId> <appId> <字段名...> [--help 提示] [--remind]` 新增(缺省禁止提交 NOSUBMISSION,`--remind` 仅提醒)。**`--help` 会建成多语言标签、存的是标签 id**(平台只收 id,传文本会被拒「提示内容格式不正确」;`list` 会解回文本显示,缓存原因刚建完约 10 秒内可能仍显示 id);`delete <objId> <appId> <ruleId>` 删除。项目名称重名/工时日期重复不允许 |
|
|
81
81
|
| `e10-cli form add-detail-table <objId> <appId> <明细表名> [首字段名] [--init]` | 给**已存在的主表**加明细子表(saveSubForm 建子表 + 加首字段使其可见)。`--data-key <物理表名>`、`--first-field-type <类型>`(默认 Text)。⚠ **空子表平台会过滤掉、布局里看不见**,首字段名强烈建议传;`--init` 建完把 DetailTable 组件放进布局。后续往明细里加字段用 `form add-field --sub-form-id <subFormId>`:建表时一次性带明细用 `form create` 的 fields.json `DetailTable`+`formFields` |
|
|
82
82
|
| `e10-cli form delete-detail-table <objId> <appId> <subFormId\|明细表名>` | **删除明细表**(连带表里的字段)。平台不允许删**仍被布局引用**的明细表(报「当前【X】明细表已被布局引用,不允许删除」)—— 明细表只要在表单上就必然被引用,所以多数情况要加 `--force`:先把这张表的组件(本体 + 每列的「字段本体 + 标题标签」)从布局摘掉、清掉 workbook 里的残留,再删。删除是**软删**,记录仍在但不再算数 |
|
|
83
83
|
| `e10-cli form list-search <objId> <appId> <listId> [--add <fieldId...>] [--quick <fieldId...>] [--remove <fieldId>] [--pc-only]` | 查看/配置台账**搜索条件**。`--add` 进搜索面板、`--quick` 加顶部快捷筛选(均支持多字段)、`--remove` 移除。主表字段直取 ds/fields;明细子字段自动 fallback `getFormField` 单取元数据。**自动保留移动端配置** |
|
|
@@ -95,8 +95,9 @@
|
|
|
95
95
|
| `e10-cli form view rename <objId> <appId> <viewId> <新名称>` | 修改已有默认台账(nListView)的名称,保留原视图 ID 和配置,并在保存后回读确认。需求名称与默认名称不一致时统一用此命令,不新建重复视图 |
|
|
96
96
|
| `e10-cli form view create <objId> <appId> <视图名> [--type formView\|kanbanView\|calendarView\|mindMapView\|multiView] [--terminal PC\|MOBILE] [--layout-type FLOW\|EXCEL] [--detail <明细名>] [--sub-form-id <明细subFormId>]` | 给**已有表单**添加视图。`formView` 创建后是空布局,需续跑 `form view populate` 填字段;`kanbanView`/`calendarView`/`mindMapView`/`multiView` 建视图实体。**multiView 数据维度**:缺省主表;明细表维度用 `--detail <明细名>`(按名解析)或 `--sub-form-id <明细subFormId>`(直传),传值即明细维度(`subFormMain:true`)。**台账(NList)视图**用 `form table-view create`,不在此命令 |
|
|
97
97
|
| `e10-cli form view populate <objId> <appId> <viewId>` | 把已有字段按布局类型填入新增的 formView(视图为空时用这个填充) |
|
|
98
|
-
| `e10-cli form
|
|
99
|
-
| `e10-cli form layout
|
|
98
|
+
| `e10-cli form native <子命令>` | **原生表单引擎**(formdatareport/biaoge,非 Ebuilder;只有 formId、无 objId、无 appId)的命令组:`create <名称>` 建表、`read <formId>` 读字段、`add-field` / `add-detail-table` / `init` / `field-group`,以及 `list [--keyword]`(存活表单,名称模糊搜)、`trash`(回收站)、`delete <formId...>`(停用→检查→删除,进回收站,删后回读确认)。**注意与 EB 表单不通用**:URL 前缀 `/api/formdatareport/...`、body module `biaoge` 或 `formdatareport` 视接口而定 |
|
|
99
|
+
| `e10-cli form layout read <objId> [--view-id <id>]` | 读表单布局结构(comps 坐标/只读)。不传 `--view-id` 读默认布局,传则读指定视图 |
|
|
100
|
+
| `e10-cli form layout init <objId> [--style-template <名\|id>] [--view-id <id>] [--read-only] [--required] [--disable-edit] [--single-row]` | 初始化/重建表单布局(initLayout):**换样式模板** + 覆盖字段 readOnly/required/disableEdit/singleRow(不传这些开关则**保留字段已有设置**)。**⚠ 样式模板流式与表格式是两套**,同名不同 id,按表单实际布局类型实时查(传错套会直接报错并列出可用项;**平台对跨套 id 不报错、只会静默忽略,表现为"命令成功但样式没变"**)。缺省:流式=标准版、表格式=表格版。完整模板表见 `form/style-templates.md`。**建表时不能指定样式,只能建完再用本命令换** |
|
|
100
101
|
| `e10-cli form group <objId> <appId> --groups '{"基本信息":["字段名/fieldId",...]}'` | 给**已建好的 eb 表**加字段分组(折叠容器)。建组 saveFieldGroup → 分配 updateFormFieldGroup → initLayout generateCollapse 渲染。`--groups` 可 `@文件`;`--required` 同时设分组内字段必填;同名分组复用不重复建(去重)。建表时一次性带分组用 `form create` 的 fields.json `group` 属性 |
|
|
101
102
|
| `e10-cli form data add <objId> <appId> <json>` | 写入表单数据(`@` 开头为 JSON 文件路径)。JSON key 可用 fieldId 或字段名;Select/RadioBox 值填选项名(自动解析 valueKey)或 valueKey、CheckBox/SelectMultiple 用数组、TextArea 直接值、Employee/Department 用 ID。详见 `form/guide-form-data.md` |
|
|
102
103
|
| `e10-cli form data list <objId> [--page <n>] [--size <n>]` | 查询表单数据。`--page` 页码(缺省1)、`--size` 每页条数(缺省1000;不传 pageInfo 平台默认卡 10) |
|
|
@@ -107,7 +108,7 @@
|
|
|
107
108
|
| 命令 | 说明 |
|
|
108
109
|
|------|------|
|
|
109
110
|
| `e10-cli form button list <objId> <appId>` | 列出所有按钮 |
|
|
110
|
-
| `e10-cli form button add <objId> <appId> <name> [--url <url>\|--open-view <视图>\|--open-layout <表单>\|--start-workflow <流程>] [--layout-type 新建\|编辑\|显示] [--map "目标字段:来源字段"...] [--target-app <appId>] --view <来源视图> --position <位置...>` | 添加通用打开页面按钮。支持固定 URL
|
|
111
|
+
| `e10-cli form button add <objId> <appId> <name> [--url <url>\|--open-view <视图>\|--open-layout <表单>\|--start-workflow <流程>] [--layout-type 新建\|编辑\|显示] [--map "目标字段:来源字段"...] [--target-app <appId>] --view <来源视图> --position <位置...>` | 添加通用打开页面按钮。支持固定 URL、平台视图、表单布局及流程快捷入口。`--map` 把当前行的来源字段传出去,可多项,但**两种动作的写法不同**:视图/布局/流程动作写 `"目标字段:来源字段"`,**URL 动作写 `"参数名:来源字段"`**(参数名会成为目标 URL 的查询键)。⚠ **URL 动作的页面类型缺省 `LINK`**(平台设计器对 URL 路径用的就是这个;`CUSTOMPAGE` 是「自定义页面」,`pageId` 要页面 id,装 URL 路径点不开)。⚠ **平台不认 URL 里的 `{字段}` 占位符**,传参只能用 `--map`。当前行映射只允许行上/行末下拉;右上按钮无单行上下文。目标名称不唯一时使用 ID,保存后回读动作和映射 |
|
|
111
112
|
| `e10-cli form button action-set <objId> <appId> <buttonId> [--open-view ...\|--open-layout ...\|--start-workflow ...] [--map ...]` | 更新已有自定义按钮的单一 `openpage` 动作,保留按钮位置和权限;适合修正目标页面或动态字段映射,避免重复创建同名按钮 |
|
|
112
113
|
| `e10-cli form button toggle <objId> <appId> <buttonId>` | 启用/禁用按钮 |
|
|
113
114
|
| `e10-cli form button position <objId> <appId> <buttonId> [--view <视图...> --position <位置...>] [--show-position <json或@文件>] [--replace]` | 设置已有按钮位置并回读验证。默认合并、保留未指定页面;`--replace` 全量替换。视图支持 ID/唯一名称/新建/编辑/显示;多台账不能省略具体视图。系统按钮适用,保留动作权限及返回的日志/提示配置。详见 `references/form/guide-form-button.md` |
|
|
@@ -132,6 +133,14 @@
|
|
|
132
133
|
| `e10-cli form field-linkage fields <appId> <formId>` | 查源表可带出字段 |
|
|
133
134
|
| `e10-cli form field-linkage delete <appId> <objId> <ids...>` | 删除(批量) |
|
|
134
135
|
| `e10-cli form field-linkage add <appId> <objId> --trigger <字段名> --target <字段名> --hops "<objId:字段名,...>"` | 新增。`--hops` 多跳链式(单跳用 `--source-form/--query-field`)。**Text 字段必须多跳取名称**。详见 `form/guide-field-linkage.md` |
|
|
136
|
+
| `e10-cli form formula-linkage list <appId> <objId>` | 函数联动(**本表**字段间公式赋值,`linkageType=excel`):列出 |
|
|
137
|
+
| `e10-cli form formula-linkage read <appId> <objId> <id>` | 回读单条(含公式表达式与参数) |
|
|
138
|
+
| `e10-cli form formula-linkage events <appId> <objId>` | 列出可用的触发事件(值改变时 / 载入时 / 创建数据时 …) |
|
|
139
|
+
| `e10-cli form formula-linkage columns <appId> <objId>` | 列出可引用/可触发的字段(业务字段 / 系统模块字段分两桶) |
|
|
140
|
+
| `e10-cli form formula-linkage add <appId> <objId> --target <字段> --expression <函数体>` | 新增函数联动。`--event`(默认 `changeField`)、`--trigger <字段...>`(字段级事件必填)、`--effect form\|formLayout`(生效维度,默认当前表单)、`--name`。表达式**只给右侧**,左侧 `{主表.目标}=` 自动拼。**目标只能是业务字段**,模块字段可作来源/触发。详见 `form/guide-formula-linkage.md` |
|
|
141
|
+
| `e10-cli form formula-linkage update <appId> <objId> <id> [--event] [--trigger] [--effect] [--name] [--state on\|off]` | 改触发条件/生效维度/名称/启停。不传则沿用现有 |
|
|
142
|
+
| `e10-cli form formula-linkage delete <appId> <objId> <ids...>` | 删除(批量)。`form field-linkage delete` 删不掉这类,会报错指路 |
|
|
143
|
+
| `e10-cli form formula set <objId> <appId> --target <fieldId> --expression "<公式>"` | 给 eb 表字段**绑定**计算公式。`{主表.字段}` / `{明细表名.字段}`(平台存储格式)与设计器的 `[字段]` 两种写法都收,保存前归一化成花括号再下发。`--name`、`--return-type`(不传按目标字段类型推断)。**`--formula-id <id>` 原地更新已有公式**(平台认这个字段:不新建、返回 id 不变、字段绑定不受影响),不传才是新建;更新时不传 `--name` 会沿用原公式名,不会被改成「公式_<时间戳>」。另:`formula get <id>` / `list <objId> <appId>` / `functions`。**⚠ 公式语法四条**:函数名必须大写(自定义 JS 脚本函数除外)、逻辑比较用 `==`、给字段赋值用 `=`、跨表粘贴要换掉非本表字段变量 —— 写错**不报错**只是算不对,见 `references/form/guide-form-formula-functions.md` |
|
|
135
144
|
|
|
136
145
|
> **创建表单流程**:
|
|
137
146
|
> 1. 读取 `references/form/guide-create-form.md` 了解标准创建流程;确定字段类型和参数时读取 `references/form/ref-form-fields.md`
|
|
@@ -149,7 +158,13 @@
|
|
|
149
158
|
| `e10-cli role list` | 列出所有角色(树形结构,含层级关系) |
|
|
150
159
|
| `e10-cli role create <name>` | 创建角色,`--parent <id>` 指定父角色,`--code` 编码,`--remark` 备注 |
|
|
151
160
|
| `e10-cli role delete <ids...>` | 删除角色(可多个) |
|
|
152
|
-
| `e10-cli role add-member <roleId>
|
|
161
|
+
| `e10-cli role add-member <roleId> <名字...> [--type <类型>]` | 添加角色成员,**可一次给多个名字**(各自独立搜索)。`--type` 取 `resource`(人员,缺省) / `department`(部门) / `subcompany`(分部) / `position`(岗位) / `channel`(渠道) —— 这几项正是平台 `objectTypeFilter` 白名单里**可以逐个选**的对象,白名单另三项 `all`/`external`/`allExternal` 不是逐个选的对象,本命令不支持。五类走**同一个保存端点**,靠 `objType` 选各自数组(`obj_resource` / `obj_department` / `obj_subcompany` / `obj_position` / `obj_channel`)。搜索**精确同名优先**;同名多条、或多条命中却没有同名项,一律**报错不取首条**(取首条会静默加错人)。`--sec-min/--sec-max`、`--is-seclevel` 覆盖安全级别(**这两个值随租户配置变**,缺省 `0`/`100` + false);`--department-attribute subordinate,partTimeStaff` 给部门/分部指定是否含下级 / 含兼职。**增量追加**,不会冲掉已有成员 |
|
|
162
|
+
| `e10-cli role member-list <roleId>` | 列出角色成员(人员 / 部门 / 分部 / 岗位 / 渠道,含成员级别与分权范围) |
|
|
163
|
+
| `e10-cli org department create <name> [--code <编号>] [--parent <父部门id>] [--subcompany <机构id>]` | 新建部门。**四步链**:`organization/getForm` 取保存模板(含平台**现生成**的 targetId)→ `form/core/getFormLayout` 取布局 id → `form/core/saveFormData` 落数据并回吐 recordId → `organization/saveForm` 落组织树。`--parent` 不传即顶层部门,挂在当前用户机构下(机构自动解析,可用 `--subcompany` 覆盖)。⚠ 模板里 `parent` 是数组、`subcompany` 是对象数组,命令内部转成平台要的字符串形状 —— **别拿模板直接发** |
|
|
164
|
+
| `e10-cli org department edit <id> [--name] [--code] [--parent] [--disporder]` | 编辑部门:改名 / 改编号 / **移动父级** / 改排序。是「**读现状 → 改 → 写回**」:`organization/getForm?id=` 读回这个部门的**完整当前状态**(含 tenantKey / creator / datarank / createTime 等,全部原样回传,别自己造),改完再 `organization/saveForm`。⚠ 编辑报文与新建**形状不同**(认 `id`,没有 `targetId`/`formdata`/`recordId`,`advanceForm:false`),不能共用构造函数。命令会自动**回读确认**改名生效,静默失败会报错 |
|
|
165
|
+
| `e10-cli org department delete <id> [--parent <父部门id>] [--subcompany <机构id>]` | 删除部门。`--parent` 是该部门的**父**(顶层部门的父就是机构 id),不传按当前机构的上下文解析。⚠ 删除是**软删**(`isDelete: true`),删完用 `getForm?id=` 仍能读出来 —— 判存在与否要看 `isDelete` 字段,别看接口有没有返回 |
|
|
166
|
+
| `e10-cli org employee template [--out <路径>]` | 导出人员导入模板(xlsx)。**模板是随包发的资源**(含富文本表头和「注意事项」工作表),直接复制,不用代码重建 |
|
|
167
|
+
| `e10-cli org employee import <file> [--dry-run] [--mode add\|update] [--find-by <字段>] [--review <n>]` | 从 Excel 批量导入人员。**先 `--dry-run` 预览再真导** —— 干跑到「预览」为止不落库,能看出平台解析出的列/行跟你原表对不对。⚠ 模板自带示例行,导入前删掉。细节见 `references/hrm/guide-org-employee.md` |
|
|
153
168
|
|
|
154
169
|
## 流程
|
|
155
170
|
|
|
@@ -157,35 +172,42 @@
|
|
|
157
172
|
|------|------|
|
|
158
173
|
| `e10-cli workflow create <appId> <formObjId> <name> [desc]` | 创建 EB 流程,当前命令按固定模式创建并自动设置所有人可发起。**默认不加菜单**,要入口传 `--menu`(发起菜单 LAYOUT,指向表单新建页 `/sp/ebdfpage/card/1/<formObjId>/0`,点开即触发流程);漏加 `e10-cli menu add-start <appId> <formObjId>` 补 |
|
|
159
174
|
| `e10-cli workflow create-workflow <name>` | **非默认路径**。仅当用户明确强调「用流程表单 / 工作流程 / 流程中心建流程、不在应用下」时才用;默认走上一条 `workflow create`(eb 应用内)。关联流程表单:不传 `--form-id` 自建(`relateForm=0`,服务端建表回吐 `data.formId`)/ `--form-id <已有>` 绑定(`relateForm=1`)。`--odoc` 创建公文流程(两种表单方式均支持,增加 `bridgeService=odoc`);`--workflow-type`(默认 -1=其它)、`--sub-company <机构>`、`--belong-type <0个人/1团队>`(默认 1)、`--table-name`、`--desc`、`--is-free`、`--layout <FLOW流式(默认)/EXCEL表格式>`(自建模式下 EXCEL 走 formmanage/saveForm 建表后绑定;建表后不可切换)。不带 source/messageParams |
|
|
160
|
-
| `e10-cli workflow auth-resp <list\|create\|update\|read\|configure\|save-design>` | 独立权责表管理。`configure <id> --config @json`
|
|
161
|
-
| `e10-cli workflow auth-resp
|
|
175
|
+
| `e10-cli workflow auth-resp <list\|create\|update\|read\|configure\|save-design>` | 独立权责表管理。`configure <id> --config @json` 从零创建变量、开始/结束节点、中间节点及操作者、分支条件和路径并保存回读;条件支持统一的 `system` / `form` 业务来源与原始 `childrens`;`save-design` 用于完整设计结构的保留式保存 |
|
|
176
|
+
| `e10-cli workflow auth-resp condition-fields <id> --source-id <分支ID> --workflow-id <流程ID\|-99999999>` | 查询权责表条件来源。流程内返回系统字段与实际表单字段;独立权责表返回系统字段与变量,变量在复用流程时映射为实际表单字段 |
|
|
177
|
+
| `e10-cli workflow auth-resp variable <list\|add>` | 独立管理权责表变量,变量先创建后供权责表条件引用。支持字符串、数值、选项、浏览和关联浏览变量;`add ... --detail` 创建明细变量,条件用 `detail:any/all` 表示任一行或所有行 |
|
|
162
178
|
| `e10-cli workflow auth-resp reference <list\|add\|remove>` | 管理权责表路径中的嵌套权责表。`list <宿主baseId>` 仅返回首尾为中间节点且不会形成循环引用的权责表;`add` 按分支与顺序写入 `addMethod=2` 的引用;`remove` 删除引用列及对应路径。 |
|
|
163
|
-
| `e10-cli workflow auth-resp-flow create <name> --base @json (--new-table <name>\|--reuse-table <id>)` |
|
|
164
|
-
| `e10-cli workflow auth-resp-flow <bind\|design-read\|design-apply\|mapping-read\|mapping-save>` |
|
|
179
|
+
| `e10-cli workflow auth-resp-flow create <name> --base @json (--new-table <name>\|--reuse-table <id>)` | 按权责表方式创建流程。一般需求默认用 `--new-table`,直接使用当前流程表单字段;仅多重嵌套或明确需要跨流程复用权责规则时使用 `--reuse-table`,并用 `--mappings @json` 保存权责表变量到当前表单字段的映射 |
|
|
180
|
+
| `e10-cli workflow auth-resp-flow <bind\|design-read\|design-apply\|mapping-read\|mapping-save>` | 对已有权责表流程维护绑定关系、权责表流转设计及变量映射。明细变量映射到实际表单的同类型明细字段;节点、分支条件和路径通过权责表设计维护。详细顺序见 `workflow/guide-workflow-auth-resp.md` |
|
|
165
181
|
| `e10-cli workflow odoc <list\|read>` | 查询公文流程列表,或读取单个公文流程及公文设置摘要。`list` 支持 `--name`、`--sub-company`、`--belong-type`、分页参数 |
|
|
166
|
-
| `e10-cli workflow odoc setting <get\|set> <workflowId>` | 读取或修改公文设置。`set --config @json`
|
|
182
|
+
| `e10-cli workflow odoc setting <get\|set> <workflowId>` | 读取或修改公文设置。`get` 返回平台设置分组、当前值与候选项;`set --config @json` 读取当前配置后合并保存并回读。常用参数及十九组公文配置见 `workflow/guide-workflow-odoc-setting.md` |
|
|
167
183
|
| `e10-cli wf-form read <formId>` | **流程表单管理(非默认路径)**。读流程表单字段(getConfig)。`<formId>` 由 `workflow create-workflow` 回吐。与 eb 表 `form read` 对齐,走 `/api/workflow/core/form/...`(module=workflow、customParam={}、无 apid) |
|
|
168
|
-
| `e10-cli wf-form add-field <formId> <字段名> <类型> [标题]` | 给流程表单加字段。类型:Text/TextArea/Number/Money/Date/DateTime/Select/Employee/Department/Browser(浏览按钮),**以及全部富组件类型**(Time/Score/Signature/Project/Location/Order/Contract 等,走与 eb 表同一张映射表)。`--sub-form-id <明细subFormId>` 明细字段;`--multiple` 多选;`--precision`/`--percent`/`--default`(Number/Money);`--format`(日期精度)。formTableId 省略 |
|
|
184
|
+
| `e10-cli wf-form add-field <formId> <字段名> <类型> [标题]` | 给流程表单加字段。类型:Text/TextArea/Number/Money/Date/DateTime/Select/Employee/Department/SubCompany(分部选择)/Browser(浏览按钮),**以及全部富组件类型**(Time/Score/Signature/Project/Location/Order/Contract 等,走与 eb 表同一张映射表)。`--sub-form-id <明细subFormId>` 明细字段;`--multiple` 多选;`--precision`/`--percent`/`--default`(Number/Money);`--format`(日期精度)。formTableId 省略 |
|
|
169
185
|
| `e10-cli wf-form add-field <formId> <名> Browser <标题> --browser-type <源>` | **浏览按钮必须指定浏览数据源**,否则平台报「程序异常」。源可选 `workflow`(缺省=工作流) / `hrcontract` / `role` / `archive` / `form`;用 `form` 时再配 `--browser-form-source business\|ebuilder`。落到平台是 `type=RelateBrowser` + `browserType:{module,name,id,type}` |
|
|
170
186
|
| `e10-cli wf-form add-field <formId> <名> Browser <标题> --browser-name "CLM-合同类型"` | **按名字指定浏览数据源**,含自定义浏览框(`customBrowser_xxx`,没有固定 id 必须现查)。名字**精确匹配**,查不到会停下并列候选,不用近似项顶替。优先于 `--browser-type`。批量 `add-fields` 直接在 JSON 里写 `browserType:{...}` 对象 |
|
|
171
187
|
| `e10-cli wf-form add-fields <formId> @fields.json [--no-init]` | **批量加字段**:JSON 数组每项 `{name,type,title?,subFormId?,multiple?,precision?,percent?,default?,format?,singleRow?,defaultCurrent?}`;加完**自动跑一次 layout init 重新布局**(`--no-init` 跳过)。字段多时比逐条 `add-field` 省事 |
|
|
172
188
|
| `e10-cli wf-form ebuilder-scope <formId> <ebuilder字段Id> --rule "目标表字段:操作:值" [--sform-id <objId>] [--workflow-id <wfId>]` | 给流程表单的**关联浏览字段**设数据范围(如关联客户只选「客户状态=启用」的)。操作用 `eq`/`neq`/`like`/`isnull`/`notnull`;Select 值填**选项名**。对应 eb 表的 `form ebuilder-scope` |
|
|
173
|
-
| `e10-cli wf-form edit-field <formId> <fieldId> [--title <标题>] [--multiple|--single]` | 编辑已有字段(read-modify-write)。`--multiple`/`--single`:Employee/Department/Browser 切 isSingle,Select↔SelectMultiple。必填为布局级用 `wf-form layout init --required` |
|
|
189
|
+
| `e10-cli wf-form edit-field <formId> <fieldId> [--title <标题>] [--multiple|--single]` | 编辑已有字段(read-modify-write)。`--multiple`/`--single`:Employee/Department/SubCompany/Browser 切 isSingle,Select↔SelectMultiple。必填为布局级用 `wf-form layout init --required` |
|
|
174
190
|
| `e10-cli wf-form delete-field <formId> <fieldId...> [--force]` | 删除流程表单字段(可批量)。**仍被布局引用的字段平台拒删**;`--force` 让 CLI 先从布局摘掉这些字段的组件(含它的标题标签)再删。eb 表侧对应 `form delete-field` |
|
|
175
|
-
| `e10-cli wf-form formula set <formId> --expression "DAYS({主表.开始时间},{主表.结束时间})" --target <fieldId>` | 给流程表单字段绑定计算公式。`{主表.字段}`/`{明细表名.字段}` 引用(getConfig 解析)→ `/api/excel/formula/save`(module=workflow) → ffExpress 绑字段 + saveSourceForm。`--name`/`--return-type
|
|
176
|
-
| `e10-cli wf-form linkage <formId>
|
|
191
|
+
| `e10-cli wf-form formula set <formId> --expression "DAYS({主表.开始时间},{主表.结束时间})" --target <fieldId>` | 给流程表单字段绑定计算公式。`{主表.字段}`/`{明细表名.字段}` 引用(getConfig 解析)→ `/api/excel/formula/save`(module=workflow) → ffExpress 绑字段 + saveSourceForm。`--name`/`--return-type`/**`--formula-id <id>`(原地更新已有公式,不新建)**。另:`formula get <id>` / `list <formId>` / `functions`。**⚠ 公式语法四条**:函数名必须大写(自定义 JS 脚本函数除外)、逻辑比较用 `==`、给字段赋值用 `=`、跨表粘贴要换掉非本表字段变量 —— 写错不报错只是算不对,见 `references/form/guide-form-formula-functions.md` |
|
|
192
|
+
| `e10-cli wf-form formula-linkage list <formId> --workflow-id <id>` | 流程表单的**函数联动**(`linkageType=excel`,走 `/api/ebuilder/flow/form/linkage`,module=`ebuildercard`)。`read` / `delete <ids...>` 同形 |
|
|
193
|
+
| `e10-cli wf-form formula-linkage events <formId> --workflow-id <id>` | 列出触发事件(**17 个**:字段组 5 + 表单组 5 + 流程组 7) |
|
|
194
|
+
| `e10-cli wf-form formula-linkage columns <formId> --workflow-id <id>` | 列出可引用/可触发的字段,按「可作 / 不可作赋值目标」分桶。字段清单取自 `findFormDrivingColumns`,**不依赖 getFormLayout**(后者在部分流程表单上会 500) |
|
|
195
|
+
| `e10-cli wf-form formula-linkage add <formId> --workflow-id <id> --target <字段> --expression <函数体>` | 新增。`--event`(默认 `changeField`)、`--trigger <字段...>`、`--effect form\|formLayout\|workFlow\|includeNode`(后两者需 `--workflow-id`,`includeNode` 另需 `--node`)、`--name`。表达式只给右侧,左侧自动拼。详见 `form/guide-formula-linkage.md` |
|
|
196
|
+
| `e10-cli wf-form formula-linkage update <formId> --workflow-id <id> <linkageId> [--event] [--trigger] [--effect] [--node] [--name] [--state on\|off]` | 改触发条件/生效维度/名称/启停。不传的项沿用现有 |
|
|
197
|
+
| `e10-cli wf-form linkage <formId> <联动名> --config '{"conditions":[{"field":"请假天数","operator":"EQUAL","value":"3"}],"actions":[{"prop":"hide","fields":["请假事由"]}]}'` | 显隐联动。`--config` 写字段名(自动解析 fieldId/dataKey);**为空写 `NULL`(或 `EMPTY`,会归一)、不为空写 `NOT_NULL`**(写错平台报的是一句与条件无关的写库异常)。prop: hide/show/edit/readonly/required/hideLine;operator 另有 EQUAL/NOT_EQUAL/CONTAIN/GREATER/LESS 等。顶层可选 `"detailType":"AND\|OR"`(界面「所有/任一」)。**`"effect"` 指定生效维度**(这条路由有四种):不写=当前表单、`"formLayout"`=**表单布局**、`"workFlow"`=**当前工作流**、`"includeNode"`+`"nodeId"`=**选择节点**(后两者需配 `--workflow-id`) |
|
|
177
198
|
| `e10-cli wf-form validate add <formId> <字段名...> [--remind] [--help <提示>]` | 字段查重规则(多字段 AND,重复禁止提交/提醒)。`list`/`delete <ruleId>`。字段名自动 getConfig 解析 |
|
|
178
199
|
| `e10-cli wf-form relate <formId> <目标字段> --from <Employee/Department源字段> [--key email/department/code/name] [--title <名>]` | 值带出:换表内 Employee/Department 字段自动填目标字段(HRM 属性带出)。`--key` 默认 Employee=department/Department=name。机制同 eb 表(ffRelateField,Employee 源 module=hrm) |
|
|
179
200
|
| `e10-cli wf-form permission get <formId>` | 查看流程表单字段权限(display/readOnly/required/disableEdit)。**写字段权限用 `workflow node field-permission`**(节点级,流程表单表单级写平台多返 500) |
|
|
180
201
|
| `e10-cli wf-form add-detail-table <formId> <明细表名> [首字段名] [--init]` | 给流程表单加明细子表(saveSubForm+首字段+可选 init 放入布局)。机制同 eb 表 `form add-detail-table` |
|
|
181
202
|
| `e10-cli wf-form field-options <formId> <fieldId> --options '[{"name":"事假"},...]' [--default <序号>]` | 给流程表单 Select/SelectMultiple 配选项(read-modify-write:getFormField 读全字段→改 options→saveFormFieldNew 重存)。`--options` 支持 `@文件`;`--default` 默认选项 valueKey |
|
|
182
|
-
| `e10-cli wf-form layout init <formId
|
|
203
|
+
| `e10-cli wf-form layout init <formId> [--layout-id <布局ID>]` | 初始化/重建流程表单布局(initLayout,按 layoutType 选模板,默认 FLOW)。**`--layout-id` 指定要重建哪一套**(节点独立布局的 layoutId),不传则重建默认布局;字段属性用 `--read-only`/`--required`/`--single-row` 覆盖 |
|
|
183
204
|
| `e10-cli wf-form layout add <formId> --name <布局名>` | 新增一套流程表单布局。`--layout-type FLOW|EXCEL`(默认 FLOW)、`--terminal-type PC|MOBILE`(默认 PC)、`--describe`、`--workflow-id`;返回 `layoutId`,多套布局并存且不覆盖原布局 |
|
|
184
205
|
| `e10-cli wf-form layout delete <formId> <layoutId>` | 删除指定流程表单布局。`layoutId` 取自 `layout add` 返回值;可传 `--workflow-id`、`--terminal PC|MOBILE`(默认 PC)。该操作从布局列表移除目标布局 |
|
|
185
206
|
| `e10-cli wf-form field-prop <formId>` | 设置运行时布局字段属性:`--required <字段...>`、`--no-required <字段...>`、`--readonly <字段...>`、`--editable <字段...>`、`--single-row <字段...>`。字段可传名称或 ID;内部 getConfig 读取并由 initLayout 保存,同时保留已有分组和独占一行设置 |
|
|
186
207
|
| `e10-cli wf-form group <formId> --groups '{"基本信息":["字段名/ID",...]}'` | 给**已建好的流程表单**加字段分组(折叠容器,对齐 eb 表 `form group`)。建组 saveFieldGroup → 分配 updateFormFieldGroup → initLayout generateCollapse 渲染。`--groups` 可 `@文件`;同名分组复用不重复建(去重) |
|
|
187
208
|
| `e10-cli workflow list <appId>` | 列出应用下的所有流程 |
|
|
188
|
-
| `e10-cli workflow search` | 通用搜索流程(不依赖 appId)。`--name`/`--id`/`--type`/`--belong
|
|
209
|
+
| `e10-cli workflow search` | 通用搜索流程(不依赖 appId)。`--name`/`--id`/`--type`/`--belong`。⚠ 列表只回 id/名称/类型名/描述这一层,**不含「绑了哪张表」** |
|
|
210
|
+
| `e10-cli workflow info <workflowId>` | 单个流程的基础信息 + **它关联的表单**(流程 → 表单反查)。给出 `formId`、表单名、启用状态、是 eb 表还是流程表单。⚠ **formId 不是 objId**,表单类命令要 objId,而平台没有直通的 formId → objId 接口 —— 得先确认表单在哪个应用下再按 formId 匹配 |
|
|
189
211
|
| `e10-cli workflow nodes <workflowId>` | 查看流程节点详情(名称、类型、操作者、连线含 linkId) |
|
|
190
212
|
| `e10-cli workflow nodes <wf> --mode list` | 列表视图:展示全节点含 nodeAttr、合流方式(比 chart XML 更全) |
|
|
191
213
|
| `e10-cli workflow set-operator <wf> <node> [keyword]` | 设置节点操作者。`--type user`(指定人) / `role`(指定角色) / `dept`(指定部门) / `position`(指定岗位) / `all`(所有人) / `free`(自由选择) / `superior`(发起人上级) / `initiator`(流程发起人本人) / `prev-node`(上一节点) / `form`(表单相关人员) / `matrix`(矩阵对应,需 `--matrix-id` `--value-config-id` `--matrix-rule`)。`--sign-order` 会签/非会签/竞签/依次处理/抄送/抄送需批注(概念见 guide-workflow);**`--type form` 另支持「或签」**,等价于竞签(表单字段里多人任一人签,语义一致),已登记的签署顺序里没有单独一档。**依次处理倒序**用 `--execute-order 2-2`(默认)/`2-1`正序/`1-1,2-2`安全级别正序+倒序。**`--dept-scope 本部门`**=单个部门内会签/`本及下级`默认。**一个节点多人用逗号分隔 keyword**(如 `"区域经理,部门领导"`,user/dept 都支持);默认每次全量重建操作者组(先清空再新建),重复设置不堆积。**多操作者组叠加(如「部门领导矩阵 + 门店经理矩阵」双组会签):先用 set-operator 配第一组,再用 `--append` 配第二组**,`--append` 不清空已有组,两组合起来就是双矩阵会签 |
|
|
@@ -193,7 +215,7 @@
|
|
|
193
215
|
| `e10-cli workflow add-node <wf> <type> <name>` | 添加节点(列表 API)。`<type>`: 0=发起 1=审批 2=确认 3=归档 5=投递 7=自动处理 8=等待 / forkstart/forkend/forkmiddle。**结束节点=归档节点(type=3)**。`--node-attr` 节点属性;合流点支持 `--merge-type`(0=全部/1=指定/2=数量/3=比例)、`--merge-num`、`--branch-nodes` |
|
|
194
216
|
| `e10-cli workflow rename-node <wf> <nodeId> <name>` | 重命名节点(saveNodeSetForm API) |
|
|
195
217
|
| `e10-cli workflow add-link <wf> <from> <to> <label>` | 一键添加连线(列表 API)。`--reject` 退回 / `--default` 默认出口 |
|
|
196
|
-
| `e10-cli workflow add-links <wf> @links.json` | 批量添加连线(列表 API,一次保存)。格式:`[{"from":"节点ID","to":"节点ID","label":"标签","reject":true,"default":true}]` |
|
|
218
|
+
| `e10-cli workflow add-links <wf> @links.json` | 批量添加连线(列表 API,一次保存)。格式:`[{"from":"节点ID","to":"节点ID","label":"标签","reject":true,"default":true}]`。`reject`/`default` 逐条给;设为默认出口时同源节点原有默认出口自动让位 |
|
|
197
219
|
| `e10-cli workflow link-list <wf>` | 查看出口列表(含默认/退回/条件标志)。`--node-id` 过滤单节点 |
|
|
198
220
|
| `e10-cli workflow link-save <wf> @datas.json` | 修改/删除出口(列表方式)。`--delete-rows`/`--changed-link-ids`/`--update-row-ids` |
|
|
199
221
|
| `e10-cli workflow link-rename <wf> <linkId> <名称>` | 重命名出口(连线名称)。linkId 用 link-list 查看。实现:读出口列表 → 改 linkName → saveNodeLinkEditTable(updateRowIds) |
|
|
@@ -208,19 +230,22 @@
|
|
|
208
230
|
| `e10-cli workflow node layout get <wf> <nodeId>` | 查看某节点挂的是哪套布局(空 = 跟随表单默认) |
|
|
209
231
|
| `e10-cli workflow node layout bind <wf> <nodeId> --layout-id <id>` | 把节点挂到某套布局。**自动从原来那套摘掉**(一个节点同时只属于一套布局);幂等 |
|
|
210
232
|
| `e10-cli workflow node layout unbind <wf> <nodeId>` | 摘下独立布局,回落表单默认布局;幂等 |
|
|
211
|
-
| `e10-cli workflow node layout create <wf> --name [--layout-type FLOW\|EXCEL] [--nodes <id...>] [--from <布局ID>\|--empty]` | 新建布局。**默认复制表单默认布局**(`--from` 换来源);`--empty`
|
|
212
|
-
| `e10-cli workflow node layout init <wf> <布局ID> [--fields <名...>] [--list-fields] [--style-template] [--required\|--readonly\|--single-row]` | 重建某套布局的排版(**只动这一套**)。`--fields` = 只摆这些字段(不传=全摆,没摆的字段在表单上仍在);`--list-fields` 看可摆清单。`create --init [--fields …]`
|
|
233
|
+
| `e10-cli workflow node layout create <wf> --name [--layout-type FLOW\|EXCEL] [--nodes <id...>] [--from <布局ID>\|--empty]` | 新建布局。**默认复制表单默认布局**(`--from` 换来源);`--empty` 才是空白布局。类型不写则跟随来源,**建后不可切换**。⚠ **复制会锁类型**:从流式来源复制却要求表格式,平台仍会建成流式,命令会**直接拒绝** —— 要建另一种类型请改用 `--empty`。要复制 PC 默认布局去建移动端布局是常见场景,来源按**两个终端的并集**找,不受目标终端限制。删布局用 `wf-form layout delete` |
|
|
234
|
+
| `e10-cli workflow node layout init <wf> <布局ID> [--fields <名...>] [--list-fields] [--style-template] [--required\|--readonly\|--single-row]` | 重建某套布局的排版(**只动这一套**)。`--fields` = 只摆这些字段(不传=全摆,没摆的字段在表单上仍在);`--list-fields` 看可摆清单。`create --init [--fields …]` 可建完直接排。**原生流程表单(不挂应用)与 eb 表关联流程的表单走两套不同路由,命令自动识别**,不需要额外参数 |
|
|
235
|
+
| `e10-cli workflow setting tabs <wf> [选项]` | 查看/配置**流程详情页页签**(显示哪些页签、默认打开哪个、移动端)。`--only <页签名...>` **PC 端只显示这些、其余全部不显示**(需求里「显示页签:A/B/C,其余不显示」就用它)、`--show`/`--hide` 单独开关、`--mobile <页签名...>` 移动端只显示这些、`--mobile-menu <...>` 移动端菜单、`--default-open <页签名>`(单选)。页签名可用**名称或类型码**(1 流程表单 / 2 流程图 / 3 流程状态 / 4 共享 / 6 主流程 / 7 子流程 / 8 平行流程 / 12 外部流程);同流程类型页签集合不同(「正文」只在公文流程上有)。保存后自动回读比对 |
|
|
213
236
|
| `e10-cli workflow node-reject get <wf> <nodeId>` | 查看节点退回设置(退回提醒 / 退回方式 / 默认选中 / 退回后提交) |
|
|
214
237
|
| `e10-cli workflow node-reject set <wf> <nodeId> [选项]` | 设置节点退回规则。`--reject-type free\|step\|range\|byLink\|preApprover`(自由/逐级/指定范围/按出口/上一审批人)、`--submit-type step\|direct\|fork\|operator`、`--reject-remind none\|all\|nodes\|user`、`--default-node prev\|start\|custom`、`--remind-node-ids`(提醒节点)、`--range-node-ids`(退回范围节点)、`--default-node-id`、`--to-create-node`(出口未配时退发起节点);`--custom` / `--no-custom` 显式指定是否启用自定义退回设置,**缺省保留节点当前值**。⚠ `--no-custom` 时平台会忽略全部节点级退回值,读回看到的是全局默认回显——不是没保存 |
|
|
215
238
|
| `e10-cli workflow node-overtime list <wf> <nodeId>` | 查看节点超时规则(含启用状态与规则描述)。新规则平台默认「未启用」,需跑一遍 `set` 才会启用 |
|
|
216
239
|
| `e10-cli workflow node-overtime set <wf> <nodeId> [选项]` | 设置节点超时规则,**建好后自动启用并回读核对**(回读不符即报错)。`--duration <天:时:分>`(如 `0:2:0`)、`--flow-type next\|reject\|submit\|intervene\|operator`(下一操作者/退回节点/提交节点/干预对象/指定操作者)、`--flow-delay <天:时:分>`、`--flow-node <节点ID>`(reject\|submit 的目标节点)、`--intervene-ids <用户ID>`(intervene 的干预对象)、`--operator-group <操作组ID>`(operator 的操作组)、`--disabled`(关闭超时处理且不启用)、`--skip-required`(有必填项也继续自动处理) |
|
|
217
240
|
| `e10-cli workflow node-overtime remind <wf> <nodeId> [选项]` | 设置超时提醒。`--name <提醒名>`、`--type 0\|1`(超时前/超时后)、`--offset <天:时:分>`、`--mode 0\|1`(仅提醒本人/逐级提醒)、`--remind-group-id`、`--msg`/`--no-msg`、`--mail`/`--no-mail`、`--sms`/`--no-sms`。`--overtime-id` **可省略**:该节点只有一条超时规则时自动使用,多条时列出候选要求显式指定 |
|
|
241
|
+
| `e10-cli workflow node drawback <wf> <nodeId> [--after\|--no-after]` | 查看/配置**节点强制收回设置**(操作菜单「强制收回」按钮的内部设置)。⚠ 建模成**一个开关**而不是两个复选框:「查看前收回」是**平台强制基线,关不掉** —— 发「只要查看后收回」平台会给你**两个都开**(接口回读与页面勾选已双向对齐验证),所以命令只暴露 `--after`(是否额外允许查看后收回)。幂等:本来就是目标状态时不发请求 |
|
|
242
|
+
| `e10-cli workflow node addstep <wf> <nodeId> [选项]` | 查看/配置**节点加签设置**(操作菜单「加签」按钮的内部设置)。`--select-mode simple\|list\|chart`(简易/列表/流程图)、`--node-type approve\|confirm\|view`(审批/确认/查阅环节)、`--sign-attr countersign\|non\|order`(会签/非会签/依次逐个处理)、`--flow-type next\|back`(流转结束后自动流转下一节点/回到本节点)、`--back-flow operator\|next\|addstep`(回到本节点后:操作者选择/流转至下一节点/流转至加签环节)、`--field-auth all\|same`(加签人字段权限:所有字段权限/与当前节点保持一致)、`--modify-form`、`--limit-range`。取值可直接写数字码。⚠ 字段权限是 **0 所有字段权限 / 1 与当前节点保持一致**(接口库文档写的 1/2 是错的)。保存后自动回读比对 |
|
|
218
243
|
| `e10-cli workflow node menu <wf> <nodeId> [选项]` | 查看/配置节点操作菜单。菜单分**快捷菜单**(批准/保存/退回/强制收回/加签…)与**更多菜单**(转办/转发/传阅/意见征询/催办/打印…)两组。`--quick <names...>` 快捷菜单**只启用这些**(其余快捷菜单关闭,不在该组的会移进来)、`--more` 同理、`--enable`/`--disable` 单独开关(不动分组)、`--rename 批准=发送` 改显示名(可重复,值留空恢复默认名)、`--sign 批准=同意` 设默认签字意见、`--toggle <菜单>` 切换单个。菜单可用**名称 / 类型码(AGREE) / ID** 指定;名字拼错会直接报错并列出候选 |
|
|
219
244
|
| `e10-cli workflow node-assign-flow get <wf> <nodeId>` | 查看节点指定流转(工作流界面上的「开一窗流转」)设置:启用、目标节点选择范围、自动流转、操作者/抄送 |
|
|
220
245
|
| `e10-cli workflow node-assign-flow set <wf> [nodeId] [选项] [--all-nodes]` | 设置节点指定流转。只改显式给出的项,其余沿用当前值。`--enable`/`--disable`、`--range out\|free\|nodes`(按出口/自由/指定节点范围)、`--nodes <节点ID...>`(`--range nodes` 时必填)、`--node-range all\|condition`(按出口时的可选出口)、`--auto-flow none\|must\|first`、`--must-nodes <节点ID...>`(`--auto-flow must` 时必填)、`--auto-first-node`/`--no-auto-first-node`、`--open-dialog`/`--no-open-dialog`、`--forbid-modify-node`、`--node-alone`(目标节点单选)、`--common-destination`(允许使用常用去向)、`--single-operator`、`--comments`、`--sign-relation user\|countersign\|non\|order\|node\|parallel`、`--cc`/`--no-cc`、`--cc-type user\|off\|submit\|auto`、`--cc-required 0\|1`。**`--all-nodes` 对全流程所有可配置节点统一执行**(跳过结束节点与分流/合流点),用于「全流程统一、节点上不单独配」的场景 |
|
|
221
246
|
| `e10-cli workflow node-assign-flow targets <wf> <nodeId>` | 列出该节点已单独设置的目标节点(含稳定独立设置 ID 与接收范围键) |
|
|
222
247
|
| `e10-cli workflow node-assign-flow add-target <wf> <nodeId> <目标节点ID...>` | 新增指定流转目标节点。已存在的自动跳过,不重复新增 |
|
|
223
|
-
| `e10-cli workflow node-assign-flow range <wf> <nodeId> [--open\|--no-open] [--mode normal\|advanced] [--limit-operator]` |
|
|
248
|
+
| `e10-cli workflow node-assign-flow range <wf> <nodeId> [--open\|--no-open] [--mode normal\|advanced] [--limit-operator]` | 查看/设置指定流转的**接收人可选范围**(总开关 / 普通·高级模式 / 仅限目标节点操作者范围)。`<nodeId>` 传**配指定流转的那个节点**。保存后自动回读比对(场景号传错时平台会照样回 `data=true`,回读比对是唯一的判据)|
|
|
224
249
|
| `e10-cli workflow node vote <wf> <nodeId> --type count\|rate --num <n>` | 配置投票节点规则(**自动把节点置为投票类型** nodeType=5)。`--type count` 通过人数 / `rate` 通过率(`--num 100` = 100%);`--min-num` 最少通过人数、`--show-results` 投票后显示结果、`--veto` 一票否决 |
|
|
225
250
|
| `e10-cli workflow node-robot get <wf> <nodeId>` | 查看机器人节点(等待节点 type 8)配置:等待时长 / 处理间隔 / 操作 / 异常干预 / 动作 |
|
|
226
251
|
| `e10-cli workflow node-robot set <wf> <nodeId> [选项]` | 更新机器人节点配置(读-改-写,**未传的字段保留原值**)。`--wait-value <分钟>`、`--processing-interval`、`--operator-name`、`--operate-type-name`、`--remark`、`--intervene-type`、`--enable-remark-custom` |
|
|
@@ -246,7 +271,7 @@
|
|
|
246
271
|
| `e10-cli workflow plan-range add <planId> --obj-type department\|employee --target-id <id> [--target-name <名>]` | 添加定时触发人员范围(多个目标 ID 用逗号分隔) |
|
|
247
272
|
| `e10-cli workflow plan-range delete <planId> --id <记录ID[,记录ID]>` | 删除定时触发人员范围(**多条逗号分隔**) |
|
|
248
273
|
| `e10-cli workflow advanced schedule-range <wf>` | ⚠ **已弃用**,请改用 `workflow plan-range`。旧命令列表恒显示 0 条、删除恒报「入参不全」 |
|
|
249
|
-
| `e10-cli workflow delete <workflowId>` | 删除流程。`--with-form`
|
|
274
|
+
| `e10-cli workflow delete <workflowId>` | 删除流程。`--with-form` 同时删除关联表单。⚠⚠ **只接受流程 ID,不解析名称**:平台对**不存在的 workflowId 也回「删除成功!」**(顶层与 data 层全说成功),所以传名称进去会「报成功但什么都没删」。命令现在**删之前先确认该 id 存在**,查不到就中止并提示用 `workflow search --name <名称>` 拿真实 id;删完还会回读确认 |
|
|
250
275
|
| `e10-cli workflow delete-link <wf> <linkIds...>` | 删除连线(列表 API,可多个)。自动清理关联节点 |
|
|
251
276
|
| `e10-cli workflow delete-node <wf> <nodeId>` | 删除节点(自动清理关联出口)。`--bridge` 桥接上下游 |
|
|
252
277
|
| `e10-cli workflow save-layout <wf> @xmlfile` | 保存完整流程图 XML(浏览器 mxGraph 格式:数字 cell id + nodeId/linkId)。服务器只认浏览器格式,勿转 node_X。新增节点/连线会自动注入 flag="add" |
|
|
@@ -303,10 +328,11 @@
|
|
|
303
328
|
|
|
304
329
|
| 命令 | 说明 |
|
|
305
330
|
|------|------|
|
|
306
|
-
| `e10-cli menu list <appId>` | 列出当前Ebuilder
|
|
307
|
-
| `e10-cli menu
|
|
308
|
-
| `e10-cli menu add
|
|
309
|
-
| `e10-cli menu add-
|
|
331
|
+
| `e10-cli menu list <appId>` | 列出当前Ebuilder应用下的菜单。**递归展开嵌套菜单**(如「设置 → 个人设置 → 个人菜单设置」),列表即全量 —— 在这里没找到就是真没有,不必再怀疑被折叠 |
|
|
332
|
+
| `e10-cli menu rename <appId> <菜单ID或名称> <新名>` | 重命名已有菜单(含嵌套菜单)。名称在应用内重复时必须改用 ID,命令会列出候选让你选。平台系统菜单(回收站/设置等)不能改 |
|
|
333
|
+
| `e10-cli menu add <name> <path> <appId>` | 将页面加入左侧导航(LINK 类型,URL path)。ecode 页面 path 如 `/sp/custom/ecode/project-list`。**表单台账/流程发起菜单用下面两条专用命令**(VIEWPORT/LAYOUT 类型,非 URL)。**建完会回读确认**并报出菜单 ID;回读不到就报错退出,不谎报成功 |
|
|
334
|
+
| `e10-cli menu add-table <appId> <objId> [name]` | 给表单加**台账菜单**(VIEWPORT,指向数据列表页)。`form create --menu` 才自动加(默认不加),此处用于事后补加。**建完回读确认** |
|
|
335
|
+
| `e10-cli menu add-start <appId> <formObjId> [name]` | 给流程绑定的表单加**发起菜单**(LAYOUT,指向表单新建页,点开触发流程)。`workflow create --menu` 才自动加(默认不加)。**建完回读确认** |
|
|
310
336
|
| `e10-cli menu permission list <appId> <menuId>` | 列菜单可见范围授权(**默认所有人**;无输出=全可见) |
|
|
311
337
|
| `e10-cli menu permission add <appId> <menuId> <目标> --type role\|dept\|user\|all` | 给菜单授权。默认语义:**加角色/人/部门后自动撤「所有人」→ 只有授权对象可见**;`--keep-all` 保留所有人;`--type all` 恢复"所有人可见" |
|
|
312
338
|
| `e10-cli menu permission remove <appId> <menuId> <目标> --type role\|dept\|user\|all` | 撤销菜单授权(撤销所有人用 `--type all`) |
|
|
@@ -339,6 +365,9 @@
|
|
|
339
365
|
| `e10-cli designer calendar dataset-bind\|field-map\|title` | 日历绑数据源(`--start --end --title-field`,内置全视图渲染)/调映射(`--end clear` 全天单日)/设标题 |
|
|
340
366
|
| `e10-cli designer slide pic-add\|title` | 幻灯片加轮播图(**平台资源路径**,已防 Git Bash 路径转换)/设标题 |
|
|
341
367
|
| `e10-cli designer nav-panel menu-add\|menu-source-type\|title` | 导航面板加跳页菜单(NewPage 双层 eventGroup 自动构造)/切菜单来源 DEFAULT\|CUSTOM/设标题 |
|
|
368
|
+
| `e10-cli designer css read <pageId> <compId> [--terminal pc\|mobile\|both]` | 读组件**自定义 CSS**(`comp.config.styles[].customStyle.base.codeSource`;compId 给任一端都行) |
|
|
369
|
+
| `e10-cli designer css write <pageId> <compId> (--css <文本>\|--css-file <路径>) [--append\|--clear] [--terminal] [--yes]` | 写自定义 CSS:默认**双端同写**、默认整段替换;`--append` 非幂等;`--clear` 清空但留记录;两端已分叉时须 `--yes`。写后回读比对,对不上报错 |
|
|
370
|
+
| `e10-cli designer dom-list` / `designer dom <type> [--keys] [--section <path>] [--refs]` | 查写 CSS 要用的**组件 DOM 结构索引**(27 个组件,随包分发)。**先 `--keys` 看骨架再 `--section` 取子树**(文档中位数 20 多 KB) |
|
|
342
371
|
|
|
343
372
|
> **setter 通用**:`--field-id` 传字段名或 fieldId;绑定条目由 CLI 从 ds/fields 取平台原样字段对象自动构造(不用手填 physicalField/browserParams);其余 12 类非图表组件无 setter,走「导出 layout → 脚本改 config → save」(见 `ebuilder-designer/guide-designer-factory.md` 深度配置节)。
|
|
344
373
|
| `e10-cli designer auto-height <pageId>` | **单列纵堆模式**:按组件内容自动定高 + 重排 y(配完字段后跑一次)。**多列栅格勿用**(会覆盖 w/x),手调 position |
|
|
@@ -428,12 +457,12 @@ e10-cli report py preagg --report-id <id> [--app-id <id>]
|
|
|
428
457
|
|------|------|
|
|
429
458
|
| `e10-cli matrix list [--name <关键词>] [--enable-status 0\|1] [--org-id <id>]` | 查询矩阵列表(**含停用矩阵**,带状态;`--out` 写 JSON 文件) |
|
|
430
459
|
| `e10-cli matrix create <name> [选项]` | 新建矩阵(**新建即为启用**,要停用再跑 `matrix disable`)。所属机构的字段名由**分权状态**决定,CLI 自动判断并在缺省时用当前机构兜底,分权租户无需手写机构 |
|
|
431
|
-
| `e10-cli matrix config <id>` / `config-edit <id>` | 查看 / 编辑矩阵配置(条件字段 +
|
|
460
|
+
| `e10-cli matrix config <id>` / `config-edit <id>` | 查看 / 编辑矩阵配置(条件字段 + 值字段)。**`config-edit` 的 `--condition` 可省略**,省略则沿用现有条件列(部门/分部矩阵的条件列是平台建矩阵时自动给的,不该手写;已有列要带 `id`,不带会被当成新列去取号);保存后按列 id 回读比对 |
|
|
432
461
|
| `e10-cli matrix enable <id>` / `disable <id>` | 启用 / 停用(停用后数据只读) |
|
|
433
462
|
| `e10-cli matrix update <id>` / `delete <ids...>` | 更新基本信息(名称/描述/同步方式)/ 删除(级联删配置、数据、维护者) |
|
|
434
|
-
| `e10-cli matrix data` |
|
|
463
|
+
| `e10-cli matrix data` | 矩阵数据维护(映射行)。`data save` 简写为 `[{rowId?, "<列configId>": ["<实体ID>"]}]`:**带 `rowId` 改那一行、不带为新增**(行 id 用 `data list` 拿;同步型矩阵的行 id 就是部门 id)。改行只给要改的列即可,CLI 自动补全其余列并回读比对 |
|
|
435
464
|
|
|
436
|
-
>
|
|
465
|
+
> 行从哪来(`syncType`)、字段能不能改(`permList` 里有没有 `FIELD`)、以及「条件列 → 人员列 → 数据映射 → 运行时读回」的完整步骤见 `references/hrm/guide-matrix.md`。
|
|
437
466
|
|
|
438
467
|
---
|
|
439
468
|
|
|
@@ -491,7 +520,11 @@ e10-cli form read <objId> --app-id <appId> --out fields.json # 写入 fields.js
|
|
|
491
520
|
|
|
492
521
|
# 5. 角色管理
|
|
493
522
|
e10-cli role create 财务主管 --code CW01 --remark "审批角色"
|
|
494
|
-
e10-cli role add-member <roleId> 张三
|
|
523
|
+
e10-cli role add-member <roleId> 张三 李四 # 人员,可一次多个
|
|
524
|
+
e10-cli role add-member <roleId> 营销三组 --type department # 部门
|
|
525
|
+
e10-cli role add-member <roleId> 总经理 --type position # 岗位
|
|
526
|
+
e10-cli role add-member <roleId> 华东分部 --type subcompany # 分部
|
|
527
|
+
e10-cli role member-list <roleId> # 读回成员
|
|
495
528
|
|
|
496
529
|
# 6. 创建流程
|
|
497
530
|
e10-cli workflow create <appId> <formObjId> 会议室审批
|
|
@@ -26,6 +26,16 @@ e10-cli designer save <pageId> --layouts @layouts.json
|
|
|
26
26
|
>
|
|
27
27
|
> **PC/MOBILE 同名组件**经 `refCompId` 互连——改一端 config 时注意另一端是否需同步。
|
|
28
28
|
|
|
29
|
+
### 自定义 CSS
|
|
30
|
+
|
|
31
|
+
组件的外观有两层:`comp.config.styles[N].customStyle` 下的**图形化样式块**(`title`/`content`/`footer`/`container` 的字号、背景、边框等),以及其中的 **`base.codeSource` 自由文本 CSS**。后者就是需求里说的「自定义 CSS」。
|
|
32
|
+
|
|
33
|
+
- 干净组件的 `styles` 是**空数组**;Picture/CountDown 之类自带**主题绑定记录**(`useComStyle:true`),与自由 CSS 记录是两回事,**不要碰**。
|
|
34
|
+
- 不要绕开命令直接改布局 JSON,也不要去动 `sourceCode.cssCache`(平台的编译产物)。
|
|
35
|
+
- 用 `e10-cli designer css read/write` 读写,用 `e10-cli designer dom <type>` 查该组件的 DOM 结构来写选择器。
|
|
36
|
+
|
|
37
|
+
完整契约、选择器作用域速查、27 个组件的 DOM 文档对照表与各条坑 → `guide-designer-css.md`。
|
|
38
|
+
|
|
29
39
|
---
|
|
30
40
|
|
|
31
41
|
## 接口给出的组件字段(Slide 一例)
|
|
@@ -104,7 +114,8 @@ e10-cli designer save <pageId> --layouts @layouts.json
|
|
|
104
114
|
|
|
105
115
|
## 相关指南
|
|
106
116
|
|
|
107
|
-
- 布局层(info/layout/save/lock/
|
|
117
|
+
- 布局层(info/layout/save/lock/position)→ `guide-designer.md`
|
|
118
|
+
- 自定义 CSS 与组件 DOM 结构索引(`designer css` / `designer dom`)→ `guide-designer-css.md`
|
|
108
119
|
- 工厂模板(comp-add 复制机制)→ `guide-designer-factory.md`
|
|
109
120
|
- 版本层(list/revert)→ `guide-designer-version.md`
|
|
110
121
|
- 命令速查 → `../common/ref-cli-commands.md`「designer」节
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# 页面组件自定义 CSS
|
|
2
|
+
|
|
3
|
+
需求里出现「给这个组件调样式」「自定义 CSS」「改选择器」「样式不生效」「DOM 结构」时读本篇。组件 config 字段见 `guide-designer-components.md`,布局读写机制见 `guide-designer.md`。
|
|
4
|
+
|
|
5
|
+
## 定位与职责边界
|
|
6
|
+
|
|
7
|
+
自定义 CSS 写在**组件**上,形如:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
comp.config.styles[N].customStyle.base.codeSource ← 自由文本 CSS
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
- **页面级没有自由 CSS 槽位**。`layout.config.style` 里只有结构化的 `page.margin/padding/background`。想整页统一风格,只能往组件上写。
|
|
14
|
+
- **CLI 只负责写**:写对、写稳、写后回读比对。样式在页面上如何渲染、样式缓存如何编译,是平台的事,命令不做判断也不承诺。
|
|
15
|
+
- **一个页面有 PC/MOBILE 两套布局,每个终端各有一份组件**,靠互指 `refCompId` 配对。设计器本身就是双端同写,所以 `css write` 默认也双端。
|
|
16
|
+
|
|
17
|
+
## `styles` 记录契约
|
|
18
|
+
|
|
19
|
+
`comp.config.styles` 是数组,里面有**两种互不相干的记录**,标志位正好相反:
|
|
20
|
+
|
|
21
|
+
| | 自由 CSS 记录 | 主题绑定记录 |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| 形态 | `{category, useCustom:true, useComStyle:false, styleVersion, customStyle:{…}}` | `{id, category, customType, useCustom:false, themeId, useComStyle:true}` |
|
|
24
|
+
| 来源 | 用户/CLI 写的自定义样式 | 组件自带的外观主题(Picture、CountDown 的模板就带) |
|
|
25
|
+
| CLI 行为 | 读它、写它 | **绝不碰**(写 CSS 时追加一条新记录,不动它) |
|
|
26
|
+
|
|
27
|
+
干净组件的 `styles` 是**空数组 `[]`**。三种输入状态及对应行为:
|
|
28
|
+
|
|
29
|
+
1. `styles` 为空 → 新建一条记录(只需 `category`/`useCustom`/`useComStyle`/`styleVersion` + `customStyle.base.codeSource` 四个键)。
|
|
30
|
+
2. 已有自由记录 → **外科式**只换 `customStyle.base.codeSource`,`customStyle` 下的 `title`/`content`/`footer`/`container` 等图形化样式块与记录的其它字段原样保留。
|
|
31
|
+
3. 只有主题绑定记录 → **追加**一条自由记录,第 0 条一字不动。
|
|
32
|
+
|
|
33
|
+
## 命令
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 读(默认双端;compId 给 PC 或 MOBILE 任一端的都可以)
|
|
37
|
+
e10-cli designer css read <pageId> <compId> [--terminal pc|mobile|both] [--json]
|
|
38
|
+
|
|
39
|
+
# 写(默认双端、默认整段替换)
|
|
40
|
+
e10-cli designer css write <pageId> <compId> --css "<CSS>"
|
|
41
|
+
e10-cli designer css write <pageId> <compId> --css-file <路径>
|
|
42
|
+
e10-cli designer css write <pageId> <compId> --css "<CSS>" --append
|
|
43
|
+
e10-cli designer css write <pageId> <compId> --clear
|
|
44
|
+
e10-cli designer css write <pageId> <compId> --css "<CSS>" --terminal pc
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
- **`--css` 与 `--css-file` 是两个选项,没有 `@file` 约定。** `@media` 开头的 CSS 是合法写法,用 `@文件` 会被当成路径。
|
|
48
|
+
- `--append` **非幂等**:重复跑会重复追加。想改内容用整段替换。
|
|
49
|
+
- `--clear` 清空内容但**保留记录**(不动 `customStyle` 其它块)。
|
|
50
|
+
- 两端现有 CSS **都非空且不一致**时,双端写会覆盖其中一端 —— 命令会拦下并点名两端字节数,确认覆盖加 `--yes`,只想改一端用 `--terminal`。
|
|
51
|
+
- 写完会**回读比对**;对不上直接报错(服务端可能没落库或改写了形状),用 `css read` 看实际值。
|
|
52
|
+
|
|
53
|
+
## 写选择器:**不要写组件 id**
|
|
54
|
+
|
|
55
|
+
**`customStyle.base.codeSource` 是组件级的** —— 每段 CSS 本来就只属于它所在的那个组件,平台在编译时会自己套上 `#<comId>` 限域。所以源码里**再写一遍 id 是错的**:
|
|
56
|
+
|
|
57
|
+
```css
|
|
58
|
+
/* ✅ 对:直接写类名 */
|
|
59
|
+
.ebcoms-navPanel-wrapper-square { border-radius: 12px; }
|
|
60
|
+
.content { background: #070d1a; }
|
|
61
|
+
|
|
62
|
+
/* ❌ 错:多写了组件 id */
|
|
63
|
+
#f3708b2387bd757a336ab0e176243801 .ebcoms-navPanel-wrapper-square { … }
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
写进去会怎样:轻则多余,重则**不生效** —— 一个页面 PC 与 MOBILE 是两份布局、两个不同的实例 id,同一段 CSS 双端同时写时(设计器自己就是双端同写、两端 `codeSource` 一模一样),写死哪一端的 id,另一端就必不匹配。
|
|
67
|
+
|
|
68
|
+
> 组件 DOM 文档里说的「官方样式生成器一律以 `#<comId>` 限域」,讲的是**编译产物**(`sourceCode.cssCache`)长什么样,**不是叫你写在源码里**。
|
|
69
|
+
|
|
70
|
+
组件 DOM 由三层拼出来,**类名前缀区分来源**:
|
|
71
|
+
|
|
72
|
+
| 前缀 | 来源 |
|
|
73
|
+
|---|---|
|
|
74
|
+
| `ebcom-` | 引擎/框架层(源码里搜不到,由引擎外壳生成) |
|
|
75
|
+
| `ebcoms-` | 组件自己写的 |
|
|
76
|
+
| `ui-` | `@weapp/ui` 第三方组件追加的 |
|
|
77
|
+
|
|
78
|
+
- 引擎外壳的 `id` 与挂在组件根上的 `data-id` 都是组件实例 id —— **它们是给平台编译用的,不要写进你的选择器**。
|
|
79
|
+
- 页面层外壳是 `#ebpage_<pageId>`,同样**别拿它定位组件**。
|
|
80
|
+
- 各组件的 `ebcom-*` 外壳类名不统一(如 NList → `ebcom-nlist`、CountDown → `ebcom-countdown`、CollapsePanel → `ebcom-collapsepanel`),以 DOM 结构文档为准,不要凭类型名拼。
|
|
81
|
+
|
|
82
|
+
写样式时:**只写类名,不写 id**;**不要杜撰类名**(拼错就是静默不生效);尽量不用 `!important` 去压默认样式。
|
|
83
|
+
|
|
84
|
+
## 查 DOM 结构:`designer dom`
|
|
85
|
+
|
|
86
|
+
内置 **27 个组件**的 DOM 结构索引,随 skill 资产分发,用来把「用户说的部位」翻成选择器。
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
e10-cli designer dom-list # 全表:类型 / 体量 / 组件名
|
|
90
|
+
e10-cli designer dom NList --keys # 先看骨架:usage / pickTree / legend / 各区块体量
|
|
91
|
+
e10-cli designer dom NList --section shared.title # 只取需要的子树
|
|
92
|
+
e10-cli designer dom NList --section shared.title --refs # 就地展开 {"ref":"shared.x"}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**先 `--keys` 再 `--section`**:文档中位数 20 多 KB,整份打出来很占上下文,而 `usage`/`pickTree`/`legend` 三段散文才是找对树的关键。
|
|
96
|
+
|
|
97
|
+
文档里的记号(各文件自己的 `legend` 也有解释):
|
|
98
|
+
|
|
99
|
+
| 记号 | 含义 |
|
|
100
|
+
|---|---|
|
|
101
|
+
| `[cls]` | 条件类名,满足业务条件才挂 |
|
|
102
|
+
| `{a\|b}` | 同一个位置按配置二选一 |
|
|
103
|
+
| `a > b` | 父子层级压缩写法 |
|
|
104
|
+
| `<comId>` | 组件实例 id。**只出现在文档对编译产物的描述里**,写源码选择器时不要用(见上) |
|
|
105
|
+
| `ref:shared.x` / `{"ref":"shared.x"}` | 引用同文件的复用片段,用 `--refs` 展开 |
|
|
106
|
+
| `uncontrolled` | 第三方(`@weapp/ui` 等)渲染,只给挂载点 |
|
|
107
|
+
|
|
108
|
+
覆盖的 27 个组件(命令按**平台组件 type** 取,也认下面的常见写法):
|
|
109
|
+
|
|
110
|
+
| 平台 type | 也认 | 平台 type | 也认 |
|
|
111
|
+
|---|---|---|---|
|
|
112
|
+
| `NavPanel` | nav-panel | `NList` | nlist、n-list |
|
|
113
|
+
| `NavBar` | nav-bar | `DigitalPanel` | digitalpanel、digital-panel |
|
|
114
|
+
| `ProgressChart` | progress-bar、progressbar | `PageHeader` | pageheader、page-header |
|
|
115
|
+
| `EbButton` | eb-button | `CountDown` | count-down |
|
|
116
|
+
| `FastCreate` | fast-create | `SearchGlobal` | search-global |
|
|
117
|
+
| `CollapsePanel` | collapse-panel | `NewTab` | new-tab |
|
|
118
|
+
| `Comment` / `Picture` / `Slide` / `Calendar` | — | `Bar`/`BarStack`/`Line`/`HBar`/`HBarStack`/`Pie`/`Circular`/`Nightingale`/`Gauge`/`Treemap`/`Bubble` | — |
|
|
119
|
+
|
|
120
|
+
`NavMenu`、`InternalContainer` **暂无**文档,命令会直接说明并列出已覆盖清单。
|
|
121
|
+
|
|
122
|
+
## 坑
|
|
123
|
+
|
|
124
|
+
- **注释不会被编译进去**,但 CLI 写进去时**原样保存**,回读比对会按去掉注释后比 —— 所以带注释的原文是安全的。
|
|
125
|
+
- **MOBILE 端的布局不返回样式缓存**,双端写完之后想确认效果,看 PC 端更省事。
|
|
126
|
+
- **别手写 `sourceCode.cssCache`** —— 那是平台的编译产物,手写会和下次编译打架。
|
|
127
|
+
- 改完布局记得收尾 `designer unlock`(多人协作防并发;`/layout/save` 本身不校验锁)。
|
|
@@ -17,15 +17,16 @@
|
|
|
17
17
|
| `e10-cli designer layout <pageId> --json` | 导出布局 JSON 文件,供 save/comp-add 复用(`--json` 是全局选项,非 layout 专属隐藏) | GET `/layout/list`(落地为文件) |
|
|
18
18
|
| `e10-cli designer save <pageId> --layouts <json\|@file> [--page-name] [--sync-outdate]` | 保存布局(CLI 内部 LZ 压缩后 POST)。`--layouts` 必填(**不是位置参数**) | POST `/layout/save` |
|
|
19
19
|
| `e10-cli designer lock <pageId>` / `designer unlock <pageId>` | 锁定/解锁页面 | POST `/layout/lock` |
|
|
20
|
-
| `e10-cli designer
|
|
21
|
-
| `e10-cli designer
|
|
20
|
+
| `e10-cli designer css read <pageId> <compId> [--terminal <pc\|mobile\|both>]` | 读组件自定义 CSS(默认双端;`<compId>` 给任一端都行) | GET `/layout/list` |
|
|
21
|
+
| `e10-cli designer css write <pageId> <compId> (--css <文本> \| --css-file <路径>) [--append\|--clear] [--terminal] [--yes]` | 写组件自定义 CSS(默认**双端同写**、默认整段替换)。写后回读比对,对不上报错 | POST `/layout/save` |
|
|
22
|
+
| `e10-cli designer dom-list` / `designer dom <type> [--keys] [--section <path>] [--refs]` | 查写 CSS 要用的**组件 DOM 结构索引**(27 个组件;先 `--keys` 看骨架,再 `--section` 取子树) | 读随包资产 |
|
|
22
23
|
| `e10-cli designer position <pageId> <compId> --x --y --w --h` | 调组件栅格位置(PC,封装 `/layout/save`:改 `config.layout.x/y/w/h` 后 save) | POST `/layout/save` |
|
|
23
24
|
| `e10-cli designer comp-add <pageId> --type <Type> [--template @<file>] [--from <srcPage> --comp <id>] [--x --y --w --h]` | 加组件(封装 `/layout/save`)。**`--type` 是选项不是位置参数**。两种取源:`--type --template @<file>`(factory 模板,见 `guide-designer-factory.md`)/ `--from <srcPage> --comp <id>`(从活页克隆)。`--h` 按该指南「组件高度判断」自行算 | POST `/layout/save` |
|
|
24
25
|
| `e10-cli designer comp-remove <pageId> <compId>` | 移除组件(含 PC/MOBILE refCompId 两端) | POST `/layout/save` |
|
|
25
|
-
| `e10-cli designer comp-library <pageId> [--custom] [--json]` | 查页面可用组件库(只读目录,不含 config 模板;加组件仍走 `comp-add --template`) | 契约外 `/api/ebuilder/coms/component/list` |
|
|
26
|
-
| `e10-cli designer style <pageId> <compId>` / `designer style-set <pageId> <compId> --var <name> --value <val>` | 查/改组件视觉样式(CSS 变量;style-set best-effort、非持久) | 改 `sourceCode.cssCache.ebd_style_lib` + `/layout/save` |
|
|
27
26
|
|
|
28
|
-
>
|
|
27
|
+
> **页面主题(`/layout/refTheme`)、页面可用组件库(`/api/ebuilder/coms/component/list`)这两类接口目前没有 CLI 命令封装**,故不列在此表 —— 上表只列**实际可执行**的命令。
|
|
28
|
+
|
|
29
|
+
> 组件 config 字段名与配置机制见 `guide-designer-components.md`;自定义 CSS 与 DOM 结构索引见 `guide-designer-css.md`;版本 list/revert 见 `guide-designer-version.md`。
|
|
29
30
|
|
|
30
31
|
---
|
|
31
32
|
|
|
@@ -7,7 +7,9 @@ e10-cli interface import "<文档路径>" --out collection.json
|
|
|
7
7
|
e10-cli interface import "<文档路径>" --system-pool-name "<连接器/系统池名称>" --apply --out collection.json
|
|
8
8
|
```
|
|
9
9
|
|
|
10
|
-
支持 `.docx`、`.pdf`、`.md`、`.txt`。默认只解析预览;只有用户明确要求创建时才加 `--apply`。PDF 解析依赖当前机器可用的 `pdftotext`(Poppler)。
|
|
10
|
+
支持 `.docx`、`.pdf`、`.md`、`.txt`、`.xlsx`、`.xls`。默认只解析预览;只有用户明确要求创建时才加 `--apply`。PDF 解析依赖当前机器可用的 `pdftotext`(Poppler)。
|
|
11
|
+
|
|
12
|
+
`.xlsx` 是表格版接口文档(按「接口目录」+ 每接口一个工作表组织);`.xls` 是旧版二进制格式,客户/厂商的老文档里常见 —— **别把它当不支持、让用户先转格式**。
|
|
11
13
|
|
|
12
14
|
## 处理规则
|
|
13
15
|
|
|
@@ -18,6 +20,7 @@ e10-cli interface import "<文档路径>" --system-pool-name "<连接器/系统
|
|
|
18
20
|
5. 文档中的密码、token、Authorization、secret、apiKey 等敏感示例值在本地生成 Collection 时脱敏;不要把 Eteamsid 写进文件。
|
|
19
21
|
6. 创建成功必须同时满足外层 `code=200` 和 `data.res=true`,并报告 `systemPk`、接口名称和接口 ID;不能只看 HTTP 200。
|
|
20
22
|
7. 创建接口是新增语义,不提供更新/去重;格式校验先在本地完成,避免重复调用在线接口留下重复系统。
|
|
23
|
+
8. Excel 文档按**不可信输入**对待,解析限额:单文件 ≤ 20 MB、工作表 ≤ 50 个、单表 ≤ 5000 行、单元格总数 ≤ 50 万。超限**直接报错中止**,**不会截断后继续解析** —— 截断会算出一份看不出错的接口清单,比直接失败坏得多。真遇到超限,先跟用户确认是不是拿错了文件(接口文档通常几行到几十行),再谈拆分。
|
|
21
24
|
|
|
22
25
|
## 文档提取重点
|
|
23
26
|
|
|
@@ -23,6 +23,19 @@ e10-cli form read <objId> --app-id <appId> --out fields-created.json
|
|
|
23
23
|
|
|
24
24
|
需要同时生成台账菜单入口时,在创建命令中增加 `--menu`;建成后也可使用 `menu add-table <appId> <objId>` 添加。默认台账视图与应用菜单入口是两个资源。
|
|
25
25
|
|
|
26
|
+
### 自定义数据库表名
|
|
27
|
+
|
|
28
|
+
不指定时表名按表单名拼音首字母加随机数生成(如 `uf_xsddb_4683`)。需要固定或对齐既有命名时用 `--table-name`:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
e10-cli form create <appId> "客户信息表" --fields @fields.json --table-name cs_khxx
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- **平台前缀由 CLI 自动补**:传 `cs_khxx` 与传 `uf_cs_khxx` 结果相同(`uf_cs_khxx`)。
|
|
35
|
+
- **格式约束**:字母开头,只含字母、数字、下划线。前缀之外的部分受平台长度上限约束 —— 前缀 `uf_`、总长上限 30 时,自定义部分最多 27 位。越界会直接报错,不会建成一半。
|
|
36
|
+
- **建成后回读校验**:实际表名与预期不一致会报错,不静默通过。
|
|
37
|
+
- 仅对**物理表**应用有效;应用未启用物理表时该选项不适用(CLI 会先查存储设置并拒绝)。
|
|
38
|
+
|
|
26
39
|
## 各阶段配置范围
|
|
27
40
|
|
|
28
41
|
| 阶段 | 配置内容 |
|
|
@@ -219,7 +232,7 @@ e10-cli form field-lang set <objId> <appId> <fieldId> --zh "项目" --en "projec
|
|
|
219
232
|
```bash
|
|
220
233
|
e10-cli form read <objId> --app-id <appId> --out fields-created.json
|
|
221
234
|
e10-cli form list-view <objId> <appId>
|
|
222
|
-
e10-cli form layout read <objId>
|
|
235
|
+
e10-cli form layout read <objId>
|
|
223
236
|
```
|
|
224
237
|
|
|
225
238
|
重点确认字段数量与类型、明细结构、分组和显示属性、布局类型、默认台账名称与 `listId`。需要菜单时再确认菜单入口。
|