weaver-e10-builder 1.0.11-beta → 1.1.0
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 +17 -3
- package/dist/commands/actionflow.js.map +1 -1
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +16 -0
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/form-association-manage.d.ts +3 -0
- package/dist/commands/form-association-manage.d.ts.map +1 -0
- package/dist/commands/form-association-manage.js +76 -0
- package/dist/commands/form-association-manage.js.map +1 -0
- package/dist/commands/form-association.d.ts.map +1 -1
- package/dist/commands/form-association.js +29 -25
- package/dist/commands/form-association.js.map +1 -1
- package/dist/commands/form-button.d.ts.map +1 -1
- package/dist/commands/form-button.js +71 -159
- package/dist/commands/form-button.js.map +1 -1
- package/dist/commands/form-field-linkage.d.ts +3 -0
- package/dist/commands/form-field-linkage.d.ts.map +1 -0
- package/dist/commands/form-field-linkage.js +300 -0
- package/dist/commands/form-field-linkage.js.map +1 -0
- package/dist/commands/form-list-columns.d.ts +3 -0
- package/dist/commands/form-list-columns.d.ts.map +1 -0
- package/dist/commands/form-list-columns.js +50 -0
- package/dist/commands/form-list-columns.js.map +1 -0
- package/dist/commands/form-list-permission.d.ts.map +1 -1
- package/dist/commands/form-list-permission.js +130 -15
- package/dist/commands/form-list-permission.js.map +1 -1
- package/dist/commands/form-list-stats.d.ts +0 -8
- package/dist/commands/form-list-stats.d.ts.map +1 -1
- package/dist/commands/form-list-stats.js +41 -133
- package/dist/commands/form-list-stats.js.map +1 -1
- package/dist/commands/form-list.d.ts.map +1 -1
- package/dist/commands/form-list.js +2 -126
- package/dist/commands/form-list.js.map +1 -1
- package/dist/commands/form-nlist.d.ts +22 -0
- package/dist/commands/form-nlist.d.ts.map +1 -0
- package/dist/commands/form-nlist.js +179 -0
- package/dist/commands/form-nlist.js.map +1 -0
- package/dist/commands/form-serial-mark.d.ts +0 -15
- package/dist/commands/form-serial-mark.d.ts.map +1 -1
- package/dist/commands/form-serial-mark.js +604 -137
- package/dist/commands/form-serial-mark.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +207 -2
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/interface.d.ts +3 -0
- package/dist/commands/interface.d.ts.map +1 -0
- package/dist/commands/interface.js +51 -0
- package/dist/commands/interface.js.map +1 -0
- package/dist/commands/menu-permission.d.ts.map +1 -1
- package/dist/commands/menu-permission.js +133 -82
- package/dist/commands/menu-permission.js.map +1 -1
- package/dist/commands/skill.d.ts +3 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +112 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/update.d.ts +13 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +101 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/workflow-condition.d.ts.map +1 -1
- package/dist/commands/workflow-condition.js +3 -1
- package/dist/commands/workflow-condition.js.map +1 -1
- package/dist/commands/workflow-node-empty-handle.d.ts +13 -0
- package/dist/commands/workflow-node-empty-handle.d.ts.map +1 -0
- package/dist/commands/workflow-node-empty-handle.js +137 -0
- package/dist/commands/workflow-node-empty-handle.js.map +1 -0
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +101 -25
- package/dist/commands/workflow.js.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/postinstall.d.ts +2 -0
- package/dist/postinstall.d.ts.map +1 -0
- package/dist/postinstall.js +17 -0
- package/dist/postinstall.js.map +1 -0
- package/dist/services/actionflow/command_output.d.ts +4 -0
- package/dist/services/actionflow/command_output.d.ts.map +1 -1
- package/dist/services/actionflow/command_output.js +44 -0
- package/dist/services/actionflow/command_output.js.map +1 -1
- package/dist/services/actionflow/component_registry.d.ts.map +1 -1
- package/dist/services/actionflow/component_registry.js +5 -1
- package/dist/services/actionflow/component_registry.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.js +1 -1
- package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
- package/dist/services/actionflow/components/approve_trigger.d.ts +5 -0
- package/dist/services/actionflow/components/approve_trigger.d.ts.map +1 -1
- package/dist/services/actionflow/components/approve_trigger.js +22 -1
- package/dist/services/actionflow/components/approve_trigger.js.map +1 -1
- package/dist/services/actionflow/components/approve_trigger_compiler.js +2 -2
- package/dist/services/actionflow/components/approve_trigger_compiler.js.map +1 -1
- package/dist/services/actionflow/components/custom_trigger.d.ts +9 -0
- package/dist/services/actionflow/components/custom_trigger.d.ts.map +1 -0
- package/dist/services/actionflow/components/custom_trigger.js +47 -0
- package/dist/services/actionflow/components/custom_trigger.js.map +1 -0
- package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -1
- package/dist/services/actionflow/components/enquiry_form.js +29 -3
- package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
- package/dist/services/actionflow/components/event_button.d.ts +3 -0
- package/dist/services/actionflow/components/event_button.d.ts.map +1 -0
- package/dist/services/actionflow/components/event_button.js +32 -0
- package/dist/services/actionflow/components/event_button.js.map +1 -0
- package/dist/services/actionflow/components/index.d.ts.map +1 -1
- package/dist/services/actionflow/components/index.js +10 -0
- package/dist/services/actionflow/components/index.js.map +1 -1
- package/dist/services/actionflow/components/inner_mq_listener.d.ts +3 -0
- package/dist/services/actionflow/components/inner_mq_listener.d.ts.map +1 -0
- package/dist/services/actionflow/components/inner_mq_listener.js +40 -0
- package/dist/services/actionflow/components/inner_mq_listener.js.map +1 -0
- package/dist/services/actionflow/components/inner_mq_send.d.ts +5 -0
- package/dist/services/actionflow/components/inner_mq_send.d.ts.map +1 -0
- package/dist/services/actionflow/components/inner_mq_send.js +72 -0
- package/dist/services/actionflow/components/inner_mq_send.js.map +1 -0
- package/dist/services/actionflow/components/send_message.d.ts.map +1 -1
- package/dist/services/actionflow/components/send_message.js +7 -4
- package/dist/services/actionflow/components/send_message.js.map +1 -1
- package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
- package/dist/services/actionflow/context_preflight.js +7 -1
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/design_client.d.ts +13 -2
- package/dist/services/actionflow/design_client.d.ts.map +1 -1
- package/dist/services/actionflow/design_client.js +56 -8
- package/dist/services/actionflow/design_client.js.map +1 -1
- package/dist/services/actionflow/enrich_approve_trigger.d.ts.map +1 -1
- package/dist/services/actionflow/enrich_approve_trigger.js +31 -0
- package/dist/services/actionflow/enrich_approve_trigger.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 +5 -0
- package/dist/services/actionflow/form_source.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +1 -1
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +118 -12
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/functions_catalog.d.ts +2 -1
- package/dist/services/actionflow/functions_catalog.d.ts.map +1 -1
- package/dist/services/actionflow/functions_catalog.js +2392 -180
- package/dist/services/actionflow/functions_catalog.js.map +1 -1
- package/dist/services/actionflow/functions_source.d.ts.map +1 -1
- package/dist/services/actionflow/functions_source.js +3 -0
- package/dist/services/actionflow/functions_source.js.map +1 -1
- package/dist/services/actionflow/generation_service.d.ts +11 -0
- package/dist/services/actionflow/generation_service.d.ts.map +1 -1
- package/dist/services/actionflow/generation_service.js +66 -23
- package/dist/services/actionflow/generation_service.js.map +1 -1
- package/dist/services/actionflow/plan_constraints.d.ts +5 -0
- package/dist/services/actionflow/plan_constraints.d.ts.map +1 -0
- package/dist/services/actionflow/plan_constraints.js +54 -0
- package/dist/services/actionflow/plan_constraints.js.map +1 -0
- package/dist/services/actionflow/preflight_service.d.ts +3 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +152 -8
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/readback_verifier.d.ts.map +1 -1
- package/dist/services/actionflow/readback_verifier.js +63 -2
- package/dist/services/actionflow/readback_verifier.js.map +1 -1
- package/dist/services/actionflow/save_workflow_draft.d.ts.map +1 -1
- package/dist/services/actionflow/save_workflow_draft.js +43 -2
- package/dist/services/actionflow/save_workflow_draft.js.map +1 -1
- package/dist/services/actionflow/update_service.d.ts +41 -0
- package/dist/services/actionflow/update_service.d.ts.map +1 -0
- package/dist/services/actionflow/update_service.js +767 -0
- package/dist/services/actionflow/update_service.js.map +1 -0
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +120 -12
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/condition-rules.d.ts.map +1 -1
- package/dist/services/condition-rules.js +3 -1
- package/dist/services/condition-rules.js.map +1 -1
- package/dist/services/esb-interface/document-parser.d.ts +6 -0
- package/dist/services/esb-interface/document-parser.d.ts.map +1 -0
- package/dist/services/esb-interface/document-parser.js +247 -0
- package/dist/services/esb-interface/document-parser.js.map +1 -0
- package/dist/services/esb-interface/importer.d.ts +9 -0
- package/dist/services/esb-interface/importer.d.ts.map +1 -0
- package/dist/services/esb-interface/importer.js +44 -0
- package/dist/services/esb-interface/importer.js.map +1 -0
- package/dist/services/esb-interface/postman-collection.d.ts +9 -0
- package/dist/services/esb-interface/postman-collection.d.ts.map +1 -0
- package/dist/services/esb-interface/postman-collection.js +125 -0
- package/dist/services/esb-interface/postman-collection.js.map +1 -0
- package/dist/services/esb-interface/types.d.ts +91 -0
- package/dist/services/esb-interface/types.d.ts.map +1 -0
- package/dist/services/esb-interface/types.js +2 -0
- package/dist/services/esb-interface/types.js.map +1 -0
- package/dist/services/form-association.d.ts +49 -0
- package/dist/services/form-association.d.ts.map +1 -0
- package/dist/services/form-association.js +279 -0
- package/dist/services/form-association.js.map +1 -0
- package/dist/services/form-button-position.d.ts +35 -0
- package/dist/services/form-button-position.d.ts.map +1 -0
- package/dist/services/form-button-position.js +109 -0
- package/dist/services/form-button-position.js.map +1 -0
- package/dist/services/form-create.d.ts.map +1 -1
- package/dist/services/form-create.js +4 -1
- package/dist/services/form-create.js.map +1 -1
- package/dist/services/form-list-columns.d.ts +54 -0
- package/dist/services/form-list-columns.d.ts.map +1 -0
- package/dist/services/form-list-columns.js +236 -0
- package/dist/services/form-list-columns.js.map +1 -0
- package/dist/services/form-list-stats.d.ts +44 -0
- package/dist/services/form-list-stats.d.ts.map +1 -0
- package/dist/services/form-list-stats.js +302 -0
- package/dist/services/form-list-stats.js.map +1 -0
- package/dist/services/form-nlist.d.ts +42 -0
- package/dist/services/form-nlist.d.ts.map +1 -0
- package/dist/services/form-nlist.js +332 -0
- package/dist/services/form-nlist.js.map +1 -0
- package/dist/services/skill-provision.d.ts +23 -0
- package/dist/services/skill-provision.d.ts.map +1 -0
- package/dist/services/skill-provision.js +96 -0
- package/dist/services/skill-provision.js.map +1 -0
- package/dist/services/update-check.d.ts +24 -0
- package/dist/services/update-check.d.ts.map +1 -0
- package/dist/services/update-check.js +108 -0
- package/dist/services/update-check.js.map +1 -0
- package/dist/services/workflow-initiator.js +3 -3
- package/dist/services/workflow-initiator.js.map +1 -1
- package/package.json +5 -2
- package/skill-docs/SKILL.md +263 -0
- package/skill-docs/actionflows/references/components/calendar/MeetingCreate.md +17 -0
- package/skill-docs/actionflows/references/components/calendar/ScheduleCreate.md +17 -0
- package/skill-docs/actionflows/references/components/document/AttachmentCopy.md +17 -0
- package/skill-docs/actionflows/references/components/document/AttachmentMove.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentCopy.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentDelete.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentEdit.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentMove.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentPermissionChange.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentRenewal.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentRevert.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentSave.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentSubscription.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentSubscriptionApprove.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentSubscriptionSendBack.md +17 -0
- package/skill-docs/actionflows/references/components/document/DocumentSubscriptionWithdraw.md +17 -0
- package/skill-docs/actionflows/references/components/document/FileFolderSave.md +17 -0
- package/skill-docs/actionflows/references/components/document/GetAttachmentInfo.md +17 -0
- package/skill-docs/actionflows/references/components/document/GetDocumentInfo.md +17 -0
- package/skill-docs/actionflows/references/components/document/ModifyDocumentStatus.md +17 -0
- package/skill-docs/actionflows/references/components/document/ReplaceAttachment.md +17 -0
- package/skill-docs/actionflows/references/components/document/UpdatePrintNum.md +17 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +61 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbDelete.md +23 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbRecover.md +17 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbSaveVersion.md +17 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +23 -0
- package/skill-docs/actionflows/references/components/ebuilder/DateTrigger.md +17 -0
- package/skill-docs/actionflows/references/components/ebuilder/EbGetDataById.md +17 -0
- package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +101 -0
- package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +33 -0
- package/skill-docs/actionflows/references/components/ebuilder/EventFormData.md +17 -0
- package/skill-docs/actionflows/references/components/ebuilder/TimeBatchTrigger.md +17 -0
- package/skill-docs/actionflows/references/components/logic/Condition.md +23 -0
- package/skill-docs/actionflows/references/components/logic/LogicFlowSet.md +17 -0
- package/skill-docs/actionflows/references/components/logic/MultipleExecution.md +38 -0
- package/skill-docs/actionflows/references/components/logic/Output.md +17 -0
- package/skill-docs/actionflows/references/components/message/InnerMQSend.md +40 -0
- package/skill-docs/actionflows/references/components/message/SendMessage.md +17 -0
- package/skill-docs/actionflows/references/components/personnel/AlterPersonStatus.md +30 -0
- package/skill-docs/actionflows/references/components/personnel/HrmEmployeeUpdate.md +32 -0
- package/skill-docs/actionflows/references/components/personnel/PersonnelOnboarding.md +34 -0
- package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +45 -0
- package/skill-docs/actionflows/references/components/trigger/InnerMQListener.md +40 -0
- package/skill-docs/actionflows/references/components/trigger/SimpleScheduler.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveAddSign.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveAgreeRejectApply.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveCommit.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveCompletelyDelete.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveConsulTurnTodo.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveCreate.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveDelete.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveDoCirculate.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveDoForward.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveDoTurnTodo.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveEntrust.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveIntervention.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveMandatoryArchiving.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveManualCC.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveRefuseRejectApply.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveRejectApply.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveSave.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveSendBack.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveShareEntry.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveTrigger.md +84 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveWithdraw.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/WorkFlowDocEmpowerment.md +17 -0
- package/skill-docs/actionflows/references/components/workflow/WorkflowToDoc.md +17 -0
- package/skill-docs/actionflows/references/condition_rules.md +99 -0
- package/skill-docs/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1043 -0
- package/skill-docs/actionflows/references/function_rules.md +13 -0
- package/skill-docs/actionflows/references/trigger_runtime_notes.md +53 -0
- package/skill-docs/assets/sample/.claude/settings.local.json +8 -0
- package/skill-docs/assets/sample/api/formApi.js +510 -0
- package/skill-docs/assets/sample/config/config.js +0 -0
- package/skill-docs/assets/sample/config/configLoad.js +0 -0
- package/skill-docs/assets/sample/config/configLoad_default.js +0 -0
- package/skill-docs/assets/sample/config/config_default.js +0 -0
- package/skill-docs/assets/sample/entry.js +22 -0
- package/skill-docs/assets/sample/eslint.config.cjs +48 -0
- package/skill-docs/assets/sample/memo.md +0 -0
- package/skill-docs/assets/sample/readme.js +8 -0
- package/skill-docs/references/auth/guide-auth.md +88 -0
- package/skill-docs/references/coding/guide-edit-backfill.md +189 -0
- package/skill-docs/references/coding/guide-form-crud.md +262 -0
- package/skill-docs/references/coding/guide-page-code.md +224 -0
- package/skill-docs/references/coding/guide-page-export.md +119 -0
- package/skill-docs/references/coding/ref-compile-rules.md +106 -0
- package/skill-docs/references/common/guide-plan-template.md +201 -0
- package/skill-docs/references/common/ref-cli-commands.md +320 -0
- package/skill-docs/references/components/@weapp-Button.md +104 -0
- package/skill-docs/references/components/base-Badge.md +100 -0
- package/skill-docs/references/components/base-Dialog.md +358 -0
- package/skill-docs/references/components/base-Empty.md +58 -0
- package/skill-docs/references/components/base-Tag.md +112 -0
- package/skill-docs/references/components/display-Alert.md +64 -0
- package/skill-docs/references/components/display-Avatar.md +150 -0
- package/skill-docs/references/components/display-Calendar.md +263 -0
- package/skill-docs/references/components/display-Carousel.md +115 -0
- package/skill-docs/references/components/display-Collapse.md +299 -0
- package/skill-docs/references/components/display-FilePreview.md +49 -0
- package/skill-docs/references/components/display-Icon.md +66 -0
- package/skill-docs/references/components/display-List.md +320 -0
- package/skill-docs/references/components/display-Pagination.md +41 -0
- package/skill-docs/references/components/display-Spin.md +34 -0
- package/skill-docs/references/components/display-Steps.md +89 -0
- package/skill-docs/references/components/display-Table.md +160 -0
- package/skill-docs/references/components/display-Title.md +117 -0
- package/skill-docs/references/components/form-Checkbox.md +161 -0
- package/skill-docs/references/components/form-DepartmentBrowser-api.md +52 -0
- package/skill-docs/references/components/form-EmployeeBrowser-api.md +51 -0
- package/skill-docs/references/components/form-EmployeeBrowser.md +51 -0
- package/skill-docs/references/components/form-Input.md +123 -0
- package/skill-docs/references/components/form-Radio.md +145 -0
- package/skill-docs/references/components/form-Select.md +191 -0
- package/skill-docs/references/components/form-Switch.md +46 -0
- package/skill-docs/references/components/form-Upload.md +53 -0
- package/skill-docs/references/components/generic-Echarts.md +102 -0
- package/skill-docs/references/form/guide-create-form.md +409 -0
- package/skill-docs/references/form/guide-ebuilder-filter.md +73 -0
- package/skill-docs/references/form/guide-ebuilder-scope.md +82 -0
- package/skill-docs/references/form/guide-field-linkage.md +121 -0
- package/skill-docs/references/form/guide-form-association.md +108 -0
- package/skill-docs/references/form/guide-form-button.md +54 -0
- package/skill-docs/references/form/guide-form-data.md +48 -0
- package/skill-docs/references/form/guide-form-formula-functions.md +297 -0
- package/skill-docs/references/form/guide-form-linkage.md +185 -0
- package/skill-docs/references/form/guide-form-view-permission.md +38 -0
- package/skill-docs/references/form/guide-form-view.md +284 -0
- package/skill-docs/references/form/guide-list-columns.md +52 -0
- package/skill-docs/references/form/guide-list-stats.md +83 -0
- package/skill-docs/references/form/style-templates.md +44 -0
- package/skill-docs/references/hrm/guide-matrix.md +103 -0
- package/skill-docs/references/menu/system-menus.md +63 -0
- package/skill-docs/references/workflow/guide-workflow-action.md +172 -0
- package/skill-docs/references/workflow/guide-workflow-condition.md +405 -0
- package/skill-docs/references/workflow/guide-workflow.md +402 -0
- package/skill-docs/references/workflow/operator-matrix.md +74 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# 页面编码指南
|
|
2
|
+
|
|
3
|
+
> 本文件为 SKILL.md 的子模块,在需要写页面代码时加载。
|
|
4
|
+
> 页面是搭建流程的最后一步,写代码前确保应用、表单、流程都已建好。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 项目结构(从sample拷贝过来)
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
├── entry.js ← 路由注册入口
|
|
12
|
+
├── pages/ ← 页面组件
|
|
13
|
+
├── api/
|
|
14
|
+
│ └── formApi.js ← 表单数据 API
|
|
15
|
+
└── config/ ← 配置文件(不用管)
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
- entry.js 只完成入口注册,不要写入业务逻辑。
|
|
19
|
+
- formApi.js 默认自带。
|
|
20
|
+
- 该项目只能在泛微云运行,其他环境缺少依赖都会报错。
|
|
21
|
+
- 只能支持 js 编码,**不支持 jsx 或 ts**。
|
|
22
|
+
- 尽量使用原生 React 编码。
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## entry.js 路由注册模板(严格照抄)
|
|
27
|
+
|
|
28
|
+
```js
|
|
29
|
+
import React from 'react';
|
|
30
|
+
import { Route } from 'react-router-dom';
|
|
31
|
+
import { regOvProps, appInfo, regReactChildren } from '@weapp/utils';
|
|
32
|
+
import { asyncImport } from '@weapp/ecodesdk';
|
|
33
|
+
|
|
34
|
+
var { publicUrl } = appInfo('@weapp/ecodesdk');
|
|
35
|
+
|
|
36
|
+
// 1. 异步引入页面组件 — asyncImport 第一个参数固定为 '${appId}',不允许留空
|
|
37
|
+
var MyPage = React.lazy(function () {
|
|
38
|
+
return asyncImport('${appId}', 'pages/MyPage');
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
// 2. 路由 path 写死字符串,
|
|
42
|
+
var ROUTE_PATH = '/sp/custom/ecode/my-page';
|
|
43
|
+
|
|
44
|
+
var extract = (
|
|
45
|
+
<Route path={publicUrl + ROUTE_PATH}>
|
|
46
|
+
<React.Suspense fallback={<div>Loading...</div>}>
|
|
47
|
+
<MyPage />
|
|
48
|
+
</React.Suspense>
|
|
49
|
+
</Route>
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
regOvProps('weappEcodesdk', 'Switch', function (props) {
|
|
53
|
+
regReactChildren(props, extract);
|
|
54
|
+
return props;
|
|
55
|
+
}, 0);
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**铁律**:
|
|
59
|
+
- `asyncImport('${appId}', 'pages/xxx')` — 第一个参数**固定**是 `'${appId}'`,不能写空字符串、不能写别的值
|
|
60
|
+
- `React.Suspense` **只包裹一层**,不要双层嵌套
|
|
61
|
+
- 路由 path 写死字符串(如 `/sp/custom/ecode/my-page`),**不拼接 `${appId}` 变量**
|
|
62
|
+
|
|
63
|
+
**一个项目可以包含多个页面**,在 entry.js 中按同样模式注册:
|
|
64
|
+
|
|
65
|
+
```js
|
|
66
|
+
var MeetingList = React.lazy(function () {
|
|
67
|
+
return asyncImport('${appId}', 'pages/MeetingList');
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
var MeetingForm = React.lazy(function () {
|
|
71
|
+
return asyncImport('${appId}', 'pages/MeetingForm');
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
var extract = (
|
|
75
|
+
<>
|
|
76
|
+
<Route path={publicUrl + '/sp/custom/ecode/meeting-list'}>
|
|
77
|
+
<React.Suspense fallback={<div>Loading...</div>}>
|
|
78
|
+
<MeetingList />
|
|
79
|
+
</React.Suspense>
|
|
80
|
+
</Route>
|
|
81
|
+
<Route path={publicUrl + '/sp/custom/ecode/meeting-form'}>
|
|
82
|
+
<React.Suspense fallback={<div>Loading...</div>}>
|
|
83
|
+
<MeetingForm />
|
|
84
|
+
</React.Suspense>
|
|
85
|
+
</Route>
|
|
86
|
+
</>
|
|
87
|
+
);
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
> 新页面导出和路由注册详见 `references/coding/guide-page-export.md`
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 引用规则
|
|
95
|
+
|
|
96
|
+
- **前置加载文件(entry.js)**可以直接 import:`import { getSimpleData } from './api/formApi.js'`
|
|
97
|
+
- **非前置加载文件(pages/ 下的所有文件)**只能通过 `React.lazy(() => asyncImport('${appId}', 'pages/xxx'))` 引用
|
|
98
|
+
- entry.js 中只能使用 `React`、`ReactDOM`、`@weapp/utils`、`@weapp/ecodesdk`、`axios`,**不能使用 `@weapp/ui` 组件**
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## @weapp/ui 可用组件清单
|
|
103
|
+
|
|
104
|
+
**只能使用以下明确列出的组件**,不要从 `@weapp/ui` 里编造任何不在此列表中的组件名。
|
|
105
|
+
|
|
106
|
+
| 组件 | import 方式 | 参考文档 |
|
|
107
|
+
|------|-----------|---------|
|
|
108
|
+
| Table | `import { Table } from '@weapp/ui'` | `references/components/display-Table.md` |
|
|
109
|
+
| Avatar | `import { Avatar } from '@weapp/ui'` | `references/components/display-Avatar.md` |
|
|
110
|
+
| List | `import { List } from '@weapp/ui'` | `references/components/display-List.md` |
|
|
111
|
+
| Pagination | `import { Pagination } from '@weapp/ui'` | `references/components/display-Pagination.md` |
|
|
112
|
+
| Icon | `import { Icon } from '@weapp/ui'` | `references/components/display-Icon.md` |
|
|
113
|
+
| Button | `import { Button } from '@weapp/ui'` | `references/components/@weapp-Button.md` |
|
|
114
|
+
| EChart | `import { EChart } from '@weapp/ui'` | `references/components/generic-Echarts.md` |
|
|
115
|
+
| CorsComponent | `import { CorsComponent } from '@weapp/ui'` | `references/components/display-FilePreview.md` |
|
|
116
|
+
| Browser(人员) | `import { Browser } from '@weapp/ui'`<br>`type="resource"` | `references/components/form-EmployeeBrowser-api.md` |
|
|
117
|
+
| Browser(部门) | `import { Browser } from '@weapp/ui'`<br>`type="department"` | `references/components/form-DepartmentBrowser-api.md` |
|
|
118
|
+
| Upload | `import { Upload } from '@weapp/ui'` | `references/components/form-Upload.md` |
|
|
119
|
+
| Badge | `import { Badge } from '@weapp/ui'` | `references/components/base-Badge.md` |
|
|
120
|
+
| Tag | `import { Tag } from '@weapp/ui'` | `references/components/base-Tag.md` |
|
|
121
|
+
|
|
122
|
+
表单输入控件(文本框、下拉框、日期选择等)用原生 HTML:
|
|
123
|
+
```js
|
|
124
|
+
<input type="text" value={form[F.name]} onChange={...} />
|
|
125
|
+
<input type="date" value={form[F.date]} onChange={...} />
|
|
126
|
+
<select value={form[F.status]} onChange={...}>
|
|
127
|
+
{options.map(function (opt) {
|
|
128
|
+
return <option key={opt.valueKey} value={opt.valueKey}>{opt.name}</option>;
|
|
129
|
+
})}
|
|
130
|
+
</select>
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 表单数据操作(核心模式)
|
|
136
|
+
|
|
137
|
+
**四个 API 各有分工,不要混用:**
|
|
138
|
+
|
|
139
|
+
| API | 用途 | 返回内容 |
|
|
140
|
+
|-----|------|---------|
|
|
141
|
+
| `getSimpleData(objId, userId)` | 读 ID、写回 formToSave | 所有特殊字段统一返回 `fieldOptionId`(纯数字串) |
|
|
142
|
+
| `getAllData(objId, userId)` | 提取名称、编辑回显 | 含 `fieldOptionName`,mainTable key 是随机哈希 |
|
|
143
|
+
| `withDisplayNames(rows, map)` | 表格展示:ID → 名称 | 把 Select 的 `valueKey` 映射为中文名 |
|
|
144
|
+
| `getFieldOptions(fieldId, objId)` | 拿下拉选项 | `[{valueKey, name}]` |
|
|
145
|
+
|
|
146
|
+
**不同字段类型,名称来源不同(写在墙上):**
|
|
147
|
+
|
|
148
|
+
| 字段类型 | getSimpleData 返回 | 展示时名称来源 |
|
|
149
|
+
|---------|-------------------|--------------|
|
|
150
|
+
| Text / Number / Date | `"值"` / `123` / `"2026-01-01"` | 直接展示 |
|
|
151
|
+
| Select / RadioBox / CheckBox | `"1283421826353889337"`(选项 ID) | `getFieldOptions` → `withDisplayNames` 映射 |
|
|
152
|
+
| **Employee** | `"2765550234448235905"`(用户 ID) | `getAllData` 的 `fieldOptionName`,**不是** getFieldOptions |
|
|
153
|
+
| **Department** | `"2765550234448235905"`(部门 ID) | 同上 |
|
|
154
|
+
| FileComponent | `"fileid1,fileid2"`(文件 ID 串) | 上传组件的 `name` |
|
|
155
|
+
|
|
156
|
+
**表格页面标准加载模式:**
|
|
157
|
+
|
|
158
|
+
```js
|
|
159
|
+
var [data, setData] = useState([]);
|
|
160
|
+
|
|
161
|
+
useEffect(function () {
|
|
162
|
+
Promise.all([
|
|
163
|
+
getSimpleData(OBJ_ID, USER_ID),
|
|
164
|
+
getFieldOptions(F.status, OBJ_ID), // Select 字段拿选项
|
|
165
|
+
]).then(function ([rows, statusOpts]) {
|
|
166
|
+
// 加载时为每个需要展示名称的 Select/Employee 字段做映射
|
|
167
|
+
// Employee/Department 的名称要另外从 getAllData 提取!
|
|
168
|
+
var displayRows = withDisplayNames(rows, {
|
|
169
|
+
[F.status]: statusOpts,
|
|
170
|
+
});
|
|
171
|
+
// Employee 字段需要额外用 getAllData 构建 ID→名称 map
|
|
172
|
+
setData(displayRows);
|
|
173
|
+
});
|
|
174
|
+
}, []);
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**写入 / 更新:**
|
|
178
|
+
|
|
179
|
+
```js
|
|
180
|
+
// form 中所有值已经是 ID,直接拼入 formToSave
|
|
181
|
+
var formToSave = {};
|
|
182
|
+
Object.keys(form).forEach(function (key) {
|
|
183
|
+
if (form[key] !== '' && form[key] !== null && form[key] !== undefined) {
|
|
184
|
+
formToSave[key] = form[key];
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
// 选择器新值覆盖
|
|
188
|
+
if (selectedPerson.length > 0) formToSave[F.person] = selectedPerson[0].id;
|
|
189
|
+
|
|
190
|
+
if (editingId) {
|
|
191
|
+
updateFormData(OBJ_ID, formToSave, editingId, USER_ID);
|
|
192
|
+
} else {
|
|
193
|
+
saveFormData(OBJ_ID, formToSave, USER_ID);
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
> 完整的数据读写指南见 `references/coding/guide-form-crud.md`,编辑回显见 `references/coding/guide-edit-backfill.md`(前端代码)。
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## 编译规则(简要)
|
|
202
|
+
|
|
203
|
+
- `ecodecmd build {project-dir} --target=e10` 打包(cd 到项目前一级)
|
|
204
|
+
- 所有变量用 `var` 声明
|
|
205
|
+
- 不支持的语法:`catch{}` 无参数 catch、`??`、`import()` 动态导入、`BigInt`
|
|
206
|
+
- 详见 `references/coding/ref-compile-rules.md`(编译配置)、`references/coding/guide-page-export.md`(引用规范)
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## 代码质量检查清单
|
|
211
|
+
|
|
212
|
+
生成代码后逐项检查:
|
|
213
|
+
|
|
214
|
+
1. [ ] 变量用 `var` 声明,非 `const`/`let`
|
|
215
|
+
2. [ ] 非前置加载文件引用使用 `React.lazy(() => asyncImport(...))`
|
|
216
|
+
3. [ ] **表格中没有任何裸 ID 展示**:Employee/Department 用 `fieldOptionName`,Select 用 `withDisplayNames`,用户看到的必须是中文名称
|
|
217
|
+
4. [ ] `getSimpleData` 返回值直接 `item[字段ID]`,没有 `_raw` 层
|
|
218
|
+
5. [ ] Select 字段读写统一用选项 ID(`valueKey`),不是显示名称
|
|
219
|
+
6. [ ] React state 不直接修改,创建新对象 `var newForm = {}; Object.keys(form).forEach(...)`
|
|
220
|
+
7. [ ] entry.js 不引入 `@weapp/ui` 组件
|
|
221
|
+
8. [ ] 没有 `forEach/map/filter(fn, this)` 传 context 的写法,用 `var self = this;` 替代
|
|
222
|
+
9. [ ] 表单数据 key 用字段 ID(纯数字字符串),对照 `form read --out fields.json`
|
|
223
|
+
10. [ ] Employee/Department 字段写入前已转为 ID
|
|
224
|
+
11. [ ] 写完代码后运行 `e10-cli check <项目目录>` 逐条自检
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# 页面导出与路由注册指南
|
|
2
|
+
|
|
3
|
+
## 引用规范
|
|
4
|
+
|
|
5
|
+
### 前置加载文件(entry.js)
|
|
6
|
+
|
|
7
|
+
只有前置加载的文件才可以直接 import:
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { getSimpleData } from './api/formApi.js'; // entry.js 中可以直接引用
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
- entry.js 中只能使用 `React`、`ReactDOM`、`@weapp/utils`、`@weapp/ecodesdk`、`axios`
|
|
14
|
+
- **不能使用 `@weapp/ui` 组件**
|
|
15
|
+
- entry 只完成入口的注册,不要写入业务逻辑
|
|
16
|
+
|
|
17
|
+
### 非前置加载文件(pages/ 目录)
|
|
18
|
+
|
|
19
|
+
**非常关键!!!** 非前置加载的文件(新增的所有文件),只能通过以下方式引用:
|
|
20
|
+
|
|
21
|
+
```js
|
|
22
|
+
import { asyncImport } from '@weapp/ecodesdk';
|
|
23
|
+
const AgentSxxx = React.lazy(() => asyncImport('${appId}', 'pages/AgentSxxx'));
|
|
24
|
+
// '${appId}' 是固定写法,是内置的ecode应用ID,不用管
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
引用路径要根据文件相对位置判断:
|
|
28
|
+
- entry.js 中引用 `api/formApi.js`:`'./api/formApi.js'`
|
|
29
|
+
- pages/ 目录下引用 `api/formApi.js`:`'../api/formApi.js'`
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 页面导出(路由注册)
|
|
34
|
+
|
|
35
|
+
在 `entry.js` 中通过 `regOvProps` + `regReactChildren` 注册路由:
|
|
36
|
+
|
|
37
|
+
```js
|
|
38
|
+
import { regOvProps, appInfo, regReactChildren } from '@weapp/utils';
|
|
39
|
+
const { publicUrl } = appInfo('@weapp/ecodesdk');
|
|
40
|
+
const extract = (
|
|
41
|
+
<Route path={`${publicUrl}/sp/custom/abc123123/abc123`}> // 导出页面的具体路径
|
|
42
|
+
<React.Suspense fallback={<div>Loading...</div>}>
|
|
43
|
+
<Test /> // 导出页面的组件
|
|
44
|
+
</React.Suspense>
|
|
45
|
+
</Route>
|
|
46
|
+
);
|
|
47
|
+
regOvProps('weappEcodesdk', 'Switch', (props) => {
|
|
48
|
+
regReactChildren(props, extract);
|
|
49
|
+
return props;
|
|
50
|
+
}, 0);
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 路由规范
|
|
56
|
+
|
|
57
|
+
> **核心规则:entry.js 中的路由 path 不要拼接变量,直接写死字符串。**
|
|
58
|
+
|
|
59
|
+
| 端 | 路由前缀 |
|
|
60
|
+
|----|---------|
|
|
61
|
+
| PC 端 | `/sp/custom/...` |
|
|
62
|
+
| 移动端 | `/mobile/custom/...` |
|
|
63
|
+
|
|
64
|
+
- path 写固定字符串,如 `/sp/custom/ecode/onboarding`,不拼接 `${appId}`
|
|
65
|
+
- 使用 `appInfo('@weapp/ecodesdk').publicUrl` 处理二级路径兼容(`publicUrl` 本身已包含二级路径前缀)
|
|
66
|
+
- 页面跳转使用 `Link` 或 `withRouter` 的 `history.push`,需拼接 `publicUrl`
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## ecodInfo.json
|
|
71
|
+
|
|
72
|
+
项目根目录下的 `ecodInfo.json` 记录项目元信息:
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"ecodeProjId": "",
|
|
77
|
+
"ecodeAppId": "",
|
|
78
|
+
"ebuilderAppId": "",
|
|
79
|
+
"mainUrl": ""
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
- 如果文件不存在或内容为空,说明项目还未上传到 Ecode 平台
|
|
84
|
+
- **导入 Ecode 成功后,必须将主页面路径写入 `mainUrl` 字段**,格式如 `/sp/custom/......`,和 entry.js 里必须完全相同
|
|
85
|
+
- **如果当前 Ecode 项目关联了 Ebuilder 应用,必须将 Ebuilder 应用 ID 写入 `ebuilderAppId`**。注意:`ebuilderAppId` 是 Ebuilder 应用的 ID,与 `ecodeAppId`(Ecode 应用文件夹 ID)不同
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## entry.js 完整模板
|
|
90
|
+
|
|
91
|
+
```js
|
|
92
|
+
import React from 'react';
|
|
93
|
+
import { regOvProps, appInfo, regReactChildren } from '@weapp/utils';
|
|
94
|
+
import { asyncImport } from '@weapp/ecodesdk';
|
|
95
|
+
|
|
96
|
+
const { publicUrl } = appInfo('@weapp/ecodesdk');
|
|
97
|
+
const appId = '${appId}';
|
|
98
|
+
|
|
99
|
+
// 异步引入页面组件
|
|
100
|
+
const MyPage = React.lazy(() => asyncImport('${appId}', 'pages/MyPage'));
|
|
101
|
+
|
|
102
|
+
// 注册路由 — path 写死固定字符串,和
|
|
103
|
+
var ROUTE_PATH = '/sp/custom/ecode/my-page';
|
|
104
|
+
const myRoute = (
|
|
105
|
+
<Route path={`${publicUrl}${ROUTE_PATH}`}>
|
|
106
|
+
<React.Suspense fallback={<div>Loading...</div>}>
|
|
107
|
+
<MyPage />
|
|
108
|
+
</React.Suspense>
|
|
109
|
+
</Route>
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
regOvProps('weappEcodesdk', 'Switch', (props) => {
|
|
113
|
+
regReactChildren(props, myRoute);
|
|
114
|
+
return props;
|
|
115
|
+
}, 0);
|
|
116
|
+
```
|
|
117
|
+
> `ROUTE_PATH` 不要在这里拼接 `appId` 变量,`publicUrl` 已包含二级路径前缀。
|
|
118
|
+
|
|
119
|
+
> 完成后记得告诉用户哪些页面对应哪些 URL。
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# 编译规则参考
|
|
2
|
+
|
|
3
|
+
## 编译命令
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
ecodecmd build {project-dir} --target=e10
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
- 其中 `{project-dir}` 为代码项目的目录
|
|
10
|
+
- 打包会在项目产生一个 `.target` 文件夹,包含一个 `.zip` 文件
|
|
11
|
+
- **打包得 cd 到项目的前一级**,要不然传的目录里面没有名称
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 编译配置
|
|
16
|
+
|
|
17
|
+
ecodecmd 内部使用 `@babel/standalone` v7.5.5 编译代码,E10 模式下调用 `compileJsE10`。
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
presets: ['es2015', 'react', ['stage-2', {decoratorsLegacy: true, loose: true}]]
|
|
21
|
+
plugins: ['proposal-object-rest-spread', 'proposal-optional-chaining']
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 支持的语法
|
|
27
|
+
|
|
28
|
+
| 语法 | 示例 |
|
|
29
|
+
|------|------|
|
|
30
|
+
| JSX | `<div className="app">{content}</div>` |
|
|
31
|
+
| 箭头函数 | `(x) => x + 1` |
|
|
32
|
+
| async/await | `const data = await getSimpleData(...)` |
|
|
33
|
+
| 模板字符串 | `` `Hello ${name}` `` |
|
|
34
|
+
| 对象展开 `...` | `{ ...oldObj, newKey: val }` |
|
|
35
|
+
| 可选链 `?.` | `obj?.nested?.value` |
|
|
36
|
+
| Class 组件 | `class MyPage extends React.Component {}` |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Babel 编译陷阱(语法合法但编译后行为异常)
|
|
41
|
+
|
|
42
|
+
| 陷阱 | 说明 | 解决方案 |
|
|
43
|
+
|------|------|---------|
|
|
44
|
+
| `forEach(fn, this)` 传 context | `this` 在 Babel 编译后丢失,回调内的 `this` 变成 `undefined` | 提前 `var self = this;`,回调内用 `self` |
|
|
45
|
+
| `map/filter/find` 同样受影响 | 所有数组方法只要传了第二个参数 `this`,编译后都失效 | 一律用 `var self = this;` 模式 |
|
|
46
|
+
| 漏写 `var` 直接赋值 | `x = {}` 未经声明直接赋值,Babel 编译后严格模式报 `ReferenceError: x is not defined` | **所有变量必须先 `var x = ...` 再使用** |
|
|
47
|
+
|
|
48
|
+
```js
|
|
49
|
+
// ❌ Babel 编译后 this 丢失,setState 报错
|
|
50
|
+
data.forEach(function (item) {
|
|
51
|
+
this.setState({ ... });
|
|
52
|
+
}, this);
|
|
53
|
+
|
|
54
|
+
// ✅ 提前捕获 this
|
|
55
|
+
var self = this;
|
|
56
|
+
|
|
57
|
+
// ❌ 漏写 var,Babel 编译后报 ReferenceError
|
|
58
|
+
priorityColorCache = {};
|
|
59
|
+
priorityOpts.forEach(function(opt) { ... });
|
|
60
|
+
|
|
61
|
+
// ✅ 先声明再赋值
|
|
62
|
+
var priorityColorCache = {};
|
|
63
|
+
priorityOpts.forEach(function(opt) { ... });
|
|
64
|
+
data.forEach(function (item) {
|
|
65
|
+
self.setState({ ... });
|
|
66
|
+
});
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 不支持的语法(会编译报错)
|
|
72
|
+
|
|
73
|
+
| 语法 | 解决方案 |
|
|
74
|
+
|------|---------|
|
|
75
|
+
| `catch { }` 无参数 catch | 必须写成 `catch(e) {}` |
|
|
76
|
+
| `??` 空值合并运算符 | 用 `||` 或三元表达式替代 |
|
|
77
|
+
| `import()` 动态导入 | 必须用 `asyncImport` |
|
|
78
|
+
| `private class fields #` | 不用 class fields,用普通方法 |
|
|
79
|
+
| `globalThis` | 用 `window` |
|
|
80
|
+
| `BigInt` | 不用 |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 打包 & 上传流程
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# 1. 编译检查
|
|
88
|
+
e10-cli check <项目目录>
|
|
89
|
+
|
|
90
|
+
# 2. 打包(cd 到项目前一级)
|
|
91
|
+
cd /path/to/parent && ecodecmd build project-dir --target=e10
|
|
92
|
+
|
|
93
|
+
# 3. 上传(先删旧应用)
|
|
94
|
+
e10-cli project tree <projectId> # 找旧应用 folderId
|
|
95
|
+
e10-cli project delete-folder <folderId>
|
|
96
|
+
e10-cli project import <projectId> .target/xxx.zip --main-url /sp/custom/...
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 关键注意事项
|
|
102
|
+
|
|
103
|
+
1. **所有变量用 var 声明**,非前置加载文件引用确保使用 `React.lazy(() => asyncImport...)`
|
|
104
|
+
2. `${appId}` 是占位符,运行时由 ecode SDK 替换
|
|
105
|
+
3. 写完代码后运行 `e10-cli check <项目目录>` 逐条自检,全部确认通过后再 build
|
|
106
|
+
4. 本地修改后一定要及时 `ecodecmd build` + `import` 上传,否则用户无法验证(用户看不到本地代码)
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# 搭建计划模板(plan.md 强制格式)
|
|
2
|
+
|
|
3
|
+
> 这是 `plan.md` 的**强制模板**。写 plan.md 必须照此格式逐项梳理资源与规则,**禁止自创格式、禁止预勾 `[x]`**。
|
|
4
|
+
> `[ ]` = 待办;执行阶段做完一项、验证通过,才改 `[x]` 并填实际 ID。全部 `[x]` 才算完工。
|
|
5
|
+
|
|
6
|
+
## 使用方法
|
|
7
|
+
|
|
8
|
+
1. 复制下方「plan.md 骨架」到工作区 `plan.md`
|
|
9
|
+
2. 按需求逐项填实(应用/表单/流程/出口条件清单/菜单/页面/必做项)
|
|
10
|
+
3. 规划阶段全部留 `[ ]`,拿给用户确认(此阶段不调 e10-cli 写命令,可 list/read 查现状)
|
|
11
|
+
4. 用户确认后逐项执行,每做完一项、验证通过,改 `[x]` 并填 ID——完成一条打勾一条
|
|
12
|
+
5. **执行每项前,先按 SKILL.md 决策树读对应 `references` 指南**——命令的完整参数/边界/坑/示例都在指南里,认真阅读再动手,不要凭印象直接调命令
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## plan.md 骨架
|
|
17
|
+
|
|
18
|
+
```md
|
|
19
|
+
## 搭建计划
|
|
20
|
+
|
|
21
|
+
> ⚠️ `[ ]` 是待办,不是"已规划"。规划阶段全部留 `[ ]`;执行阶段做完一项、验证通过,才改 `[x]` 并填 ID。**完成一条打勾一条**,全部 `[x]` 才算完工。**禁止预勾 `[x]`**(=谎报完成)。勿依赖平台默认值——平台默认值≠方案要求。
|
|
22
|
+
> **来源标注**:每张表/每个流程/每个节点用分组头声明(名称+ID 占位),其下 `[ ]` 项的来源即该分组;跨表的项内联标「来源: <表单/流程>」。
|
|
23
|
+
|
|
24
|
+
### 0. 环境
|
|
25
|
+
- [ ] 鉴权 `e10-cli auth status`(profile 切换 `auth profile use` / 新环境 `auth set --eteamsid --base-url`)
|
|
26
|
+
|
|
27
|
+
### 1. 应用
|
|
28
|
+
- [ ] <应用名> | `app create` | ID: 待创建
|
|
29
|
+
> 一份需求只建这一个应用,所有表单/流程/菜单都在它下面。不要按功能点拆应用;确需多应用(分属不同业务系统)先跟用户确认。
|
|
30
|
+
|
|
31
|
+
### 2. 角色(来源: 全应用)
|
|
32
|
+
- [ ] <角色名> | `role create` + `role add-member <roleId> <keyword>` | 方案要求的每个角色都要建,不会自动有
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### 3. 表单(每张表一组,逐张复制此分组)
|
|
37
|
+
|
|
38
|
+
#### ▼ 表单:<表单名A> | objId: 待创建
|
|
39
|
+
|
|
40
|
+
##### 3.1 字段定义(建表时一次性,`form create --fields` --layout FLOW|EXCEL)
|
|
41
|
+
- [ ] <表单名> | ID: 待创建
|
|
42
|
+
布局: FLOW(流式)/ EXCEL(表格,缺省)
|
|
43
|
+
字段:
|
|
44
|
+
1. 名称(Text, 必填)
|
|
45
|
+
2. 金额(Money, precision=2, 只读)
|
|
46
|
+
3. 备注(TextArea, 独占一行)
|
|
47
|
+
4. 客户名称(Text, group=基本信息, 必填)
|
|
48
|
+
5. 联系电话(Phone, group=基本信息)
|
|
49
|
+
6. 明细表(DetailTable, formFields:[...])
|
|
50
|
+
7. 关联客户(EBuilder, sformId+dataTitle)
|
|
51
|
+
8. 关联流程(Flow, sformId=<流程绑定的表单objId>) ← sformId 指向哪个流程表单,浏览时就只选该表单绑定的流程数据,创建时自动绑定
|
|
52
|
+
- 选项/编号/默认值/精度/百分比/maxLen 建表时写全;单位无独立属性,**写进字段名**如 `工时单价(元)`
|
|
53
|
+
- **布局与显示属性**:方案文档明确要求的必填(`required`)、只读(`readOnly`)、隐藏(`hidden`)、独占一行(`singleRow`)、分组(`group`)、字段顺序——全部标在字段清单里,建表时 fields.json 一并带上,勿留建后补。方案未提到的用默认(EXCEL 两列、不分组、不必填)
|
|
54
|
+
- 公式/值带出可 inline:`formula` / `relateFrom`
|
|
55
|
+
- **Flow 字段**:`sformId` 是流程表单 objId(不是 workflowId),建表时写进 fields.json 即自动绑定——关联到哪个流程表单就只能选该范围的流程数据,无需单独配数据范围
|
|
56
|
+
> 不要先建空表再 add-field——add-field/edit-field 只是**罕见补救手段**
|
|
57
|
+
|
|
58
|
+
##### 3.2 表单级配置(来源: 本表单 <表单名A>;建表后逐项配齐,缺一项这张表不算完成)
|
|
59
|
+
- [ ] 复杂编号 | `form serial-mark set <objId> <appId> <fieldId> --segments @json`(纯建模表:fixed/year/serial/field/system/date+代字;⚠ 绑流程表无效→走 `workflow numbering`)
|
|
60
|
+
- [ ] 值带出(关联表) | `form relate <appId> <objId> <目标字段> --from <Employee/Department源字段>`(换申请人→填邮箱/工号/部门;HRM属性带出,简单单源)
|
|
61
|
+
- [ ] 值带出(跨表/多跳) | `form field-linkage add <appId> <objId> --trigger <触发字段> --target <目标字段> --hops "<源表objId:带出字段,源表objId:带出字段,...>"`(跨表查询带出,支持多跳链式中转;Text 字段必须多跳到名称表取名称不能直接赋 ID)
|
|
62
|
+
- [ ] 关联显示列 | `form ebuilder-columns <objId> <appId> <fieldId> [字段名...]`(先不带参数看业务字段候选清单,去系统字段)
|
|
63
|
+
- [ ] 关联数据范围 | `form ebuilder-scope set <objId> <appId> <fieldId> --rules '[...]'`(如客户状态=启用才可选)
|
|
64
|
+
- [ ] 字段公式 | `form formula set --expression "DAYS({主表.开始},{主表.结束})" --target <fieldId>`(或 fields.json inline)
|
|
65
|
+
- [ ] 查重校验 | `form validate add <objId> <appId> <字段名...>`(项目名称重名/工时日期重复)
|
|
66
|
+
- [ ] 显隐联动 | `form linkage add <appId> <objId> <名> --config @json`(prop: hide/show/edit/readonly/required/hideLine)
|
|
67
|
+
- [ ] 字段分组 | `form group <objId> <appId> --groups '{"基本信息":[...]}'`(建表时已用 group 则跳过)
|
|
68
|
+
- [ ] 表单权限 | `form permission add <objId> <appId> --org-type <all/role/dept/...> --right-type <0/1/2/3>`(勿默认所有人)
|
|
69
|
+
- [ ] 表单按钮 | `form button add <objId> <appId> <名> --url <url> --open-type <1/2/3>`
|
|
70
|
+
|
|
71
|
+
##### 3.3 台账/视图配置(来源: 本表单 <表单名A> 的台账;无需求标「— 无」)
|
|
72
|
+
- [ ] 显示列批量设置 | `form list-columns <objId> <appId> <listId> --set @columns.json`([指南](../form/guide-list-columns.md))
|
|
73
|
+
- [ ] 列单位 | `form list-unit <objId> <appId> <listId> <fieldId> "(元)"`
|
|
74
|
+
- [ ] 列格式 | `form list-format <objId> <appId> <listId> <fieldId> [--thousandths] [--decimal <n>]`
|
|
75
|
+
- [ ] 字段事件(列点击跳转) | `form list-click <objId> <appId> <listId> <fieldId> [--target <objId>]`
|
|
76
|
+
- [ ] 搜索条件 | `form list-search <objId> <appId> <listId> [--add <f>] [--quick <f>]`
|
|
77
|
+
- [ ] 排序 | `form list-sort <objId> <appId> <listId> [--field <f>] [--order ASC|DESC]`
|
|
78
|
+
- [ ] 顶部统计(主表/明细) | `form list-stats <objId> <appId> <listId> --add @json`([指南](../form/guide-list-stats.md))
|
|
79
|
+
- [ ] 视图数据条件 | `form list-filter <objId> <appId> <listId> --add '{"conditions":[...]}'`
|
|
80
|
+
- [ ] 关联页签及目标视图 | `form association create <objId> <appId> <名> --view <viewId> --permissions @json`([指南](../form/guide-form-association.md))
|
|
81
|
+
- [ ] 关联页签布局与终端 | `form association update <objId> <appId> <associationId> --layouts 显示 --terminals PC MOBILE`([指南](../form/guide-form-association.md))
|
|
82
|
+
- [ ] 关联页签数据筛选 | `form association set-filter <objId> <appId> <associationId> --mappings @json`([指南](../form/guide-form-association.md))
|
|
83
|
+
- [ ] 视图按钮显示位置 | `form button position <objId> <appId> <buttonId> --view <listId> --position 行上`([指南](../form/guide-form-button.md))
|
|
84
|
+
- [ ] 行事件(整行点击) | `form list-event <objId> <appId> <listId> --add-page '{...}'`
|
|
85
|
+
- [ ] 视图启用分组 | `form list-group <objId> <appId> <listId> --enable --group-field <fieldId>`([指南](../form/guide-form-view.md))
|
|
86
|
+
- [ ] 主表合并行 | `form list-merge <objId> <appId> <listId>`
|
|
87
|
+
- [ ] 台账视图权限 | `form list-permission <objId> <appId> <listId> [--add-all|--add-user <id> --name <n>]`
|
|
88
|
+
- [ ] 分类搜索 | `form list-search-group <objId> <appId> <listId> [--add <选项fieldId>]`
|
|
89
|
+
- [ ] 自定义视图 | `form view create <objId> <appId> <名> --type kanbanView|calendarView|mindMapView|multiView` + `form view populate`
|
|
90
|
+
- [ ] 表格视图 | 默认复用台账,记录实际名称/listId;额外新建才用 `form table-view create <objId> <appId> <名>`([指南](../form/guide-form-view.md))
|
|
91
|
+
> 表单自带台账(搜索/筛选/导出/批量)。本节只列有需求的项;无需求标「— 无」
|
|
92
|
+
|
|
93
|
+
#### ▼ 表单:<表单名B> | objId: 待创建
|
|
94
|
+
(同上 3.1/3.2/3.3 复制)
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### 4. 流程(每个流程一组,逐个复制此分组)
|
|
99
|
+
|
|
100
|
+
#### ▼ 流程:<流程名A> | workflowId: 待创建
|
|
101
|
+
|
|
102
|
+
##### 4.1 创建
|
|
103
|
+
- [ ] 创建 | `workflow create <appId> <formObjId> <名>`(默认不加菜单;确认需要发起入口时 `--menu` 加)
|
|
104
|
+
> ⚠️ **流程级必做**:① 流程编号(`workflow numbering`);② 出口名称(`workflow link-rename`,改业务人话);③ 出口条件清单(见 4.3,先列全表再逐条创建,勿凭印象跳步)
|
|
105
|
+
|
|
106
|
+
##### 4.2 节点与连线(来源: 本流程 <流程名A>;每节点一行)
|
|
107
|
+
> ⚠️ 操作者按需求语义用对应 `--type`(role/dept/position/superior/initiator/form/matrix/free/all),**禁止兜底成具体人员顶替**;名称解析不到先停下确认。
|
|
108
|
+
- [ ] 节点1 | 操作者: 创建人
|
|
109
|
+
- [ ] 节点2 | 操作者: 区域经理+部门领导(竞签) ← 「A或B审批」=一节点多人+竞签/非会签,不拆节点
|
|
110
|
+
- [ ] 节点3 | 条件: <字段>=<值> 才走到,否则跳过/直达<节点>
|
|
111
|
+
- [ ] 节点4 | 操作者: 角色X | 动作流: → <目标表>(add/update/delete, 映射: 源→目标)
|
|
112
|
+
- [ ] 连线 | `workflow add-link/add-links <wf> <from> <to> <label>` [--reject 退回] [--default 默认]
|
|
113
|
+
|
|
114
|
+
##### 4.3 出口条件清单(来源: 本流程 <流程名A>;必填,动手前逐条列出,防遗漏)
|
|
115
|
+
段② 执行到条件时,先按此表列出所有连线的完整条件,逐条确认后再 `workflow condition add`:
|
|
116
|
+
|
|
117
|
+
| 来源节点 | 目标节点 | 连线名 | 条件 | 来源 | 操作 | 值/右字段 | 明细量词 | 备注 |
|
|
118
|
+
|---|---|---|---|---|---|---|---|---|
|
|
119
|
+
| 发起 | 初审 | 部门初审 | 所属部门=财务部 | form:所属部门 | 等于 | 财务部 | — | |
|
|
120
|
+
| 发起 | 初审 | 部门初审 | 报销金额5k~10k | form:报销金额 | 范围 | 5000:10000 | — | 数值范围 |
|
|
121
|
+
| 发起 | 初审 | 部门初审 | 发起时间≥报销日期 | system:发起时间 | 大于等于 | field:报销日期 | — | 变量模式 |
|
|
122
|
+
| 发起 | 初审 | 部门初审 | 报销类型∈{差旅,住宿} | form:报销类型 | 属于 | 差旅费,住宿费 | 任一 | 与下行OR |
|
|
123
|
+
| 发起 | 初审 | 部门初审 | 同上OR组 | form:发票编号 | 包含 | FP | 任一 | 接上行OR |
|
|
124
|
+
|
|
125
|
+
要点:每行一条原子条件,OR 组拆多行备注"与下行OR";操作列 等于/大于/小于/范围/属于/包含/为空/不为空/field(变量模式);值列字面值直接写、`field:`前缀引用另一字段;明细量词 任一(任一行)/所有(所有行)/—(主表);创建完 `workflow condition list <wf>` 回读核对总数一致
|
|
126
|
+
|
|
127
|
+
- [ ] 出口名 | `workflow link-rename <wf> <linkId> <业务人话>`(分支连线尤其要改)
|
|
128
|
+
|
|
129
|
+
##### 4.4 节点级配置(每个审批节点一组,逐个复制)
|
|
130
|
+
###### ▶ 节点:<节点名> | nodeId: 待创建
|
|
131
|
+
- [ ] 操作者 | `workflow set-operator <wf> <node> [keyword] --type <user/role/dept/position/all/free/superior/initiator/prev-node/form/matrix> --sign-order <会签/竞签/依次/抄送>`(`--append` 多组叠加)
|
|
132
|
+
- [ ] 提交校验 | `workflow node validate <wf> <node> --rule "字段 操作 值"`(跨表用"明细表名.字段",如 `行程明细.开始时间 等于 出差开始日期`)
|
|
133
|
+
- [ ] 签字意见必填 | `workflow node sign <wf> <node> --select "退回"`(退回等操作类型必填意见)
|
|
134
|
+
- [ ] 节点菜单 | `workflow node menu <wf> <node> --toggle <menuId>`
|
|
135
|
+
- [ ] 退回设置 | `workflow node reject <wf> <node>`
|
|
136
|
+
- [ ] 超时处理 | `workflow node timeout <wf> <node>`
|
|
137
|
+
- [ ] 字段权限 | `workflow node field-permission set <wf> <node> --hide <字段...>`
|
|
138
|
+
|
|
139
|
+
##### 4.5 流程级设置(来源: 本流程 <流程名A>)
|
|
140
|
+
- [ ] 流程编号 | `workflow numbering set <wf> --prefix LC --serial 4 --no-year`(REQUEST_NO,绑流程表必走)
|
|
141
|
+
- [ ] 流程标题 | `workflow setting title <wf> --rule "发起人|提交日期|客户名称"`(标题=流程名+系统字段则跳过)
|
|
142
|
+
- [ ] 提交确认 | `workflow setting submit <wf>`
|
|
143
|
+
- [ ] 签字意见 | `workflow setting sign <wf>`
|
|
144
|
+
- [ ] 评论 | `workflow setting comment <wf> --enable`
|
|
145
|
+
- [ ] 批量操作 | `workflow setting batch <wf>`
|
|
146
|
+
- [ ] 自动处理 | `workflow setting auto <wf>`
|
|
147
|
+
- [ ] 其他 | `workflow setting other <wf>`
|
|
148
|
+
- [ ] 存档 | `workflow advanced doc <wf>`
|
|
149
|
+
- [ ] 定时触发 | `workflow advanced schedule <wf>` + `schedule-range <wf>`(人员范围)
|
|
150
|
+
- [ ] 消息提醒 | `workflow message create`(IM 提醒动作流)
|
|
151
|
+
|
|
152
|
+
##### 4.6 动作流(跨表写入/自动化)
|
|
153
|
+
- [ ] 动作流生成 | `actionflow generate '{"planFile":"@plan.json",...}'`(来源: 本流程触发 → 目标: <目标表单>)
|
|
154
|
+
- [ ] 节点字段赋值 | `workflow save-action @action.json`(来源: 本流程 <节点名>)
|
|
155
|
+
- [ ] 数据来源落点 | 目标台账建 Flow 字段 `form add-field <目标台账objId> <app> "数据来源" Flow --sform-id <本流程表单objId>`(来源: 本流程 → 落点: <目标台账表单名>),add 时 `--sysvar` 写 requestId,**update/delete 也靠它定位**
|
|
156
|
+
|
|
157
|
+
#### ▼ 流程:<流程名B> | workflowId: 待创建
|
|
158
|
+
(同上 4.1-4.6 复制)
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
### 5. 菜单(来源: 应用)
|
|
163
|
+
- [ ] 台账菜单 | `menu add-table <appId> <objId>`(来源: <表单名>;form create 已自动加,补加用此)
|
|
164
|
+
- [ ] 发起菜单 | `menu add-start <appId> <formObjId>`(来源: <流程名>绑定的表单;workflow create 已自动加)
|
|
165
|
+
- [ ] 自定义菜单 | `menu add <名> <path> <appId>`(LINK,ecode 页面)
|
|
166
|
+
- [ ] 菜单权限 | `menu permission`(岗位/角色/部门/人员可见)
|
|
167
|
+
|
|
168
|
+
### 6. 页面(定制)
|
|
169
|
+
- [ ] 无定制 | 标「### 页面(无需,表单自带台账)」
|
|
170
|
+
- [ ] 定制页面 | Ecode `project create/import` + 页面编码(图表/跨表聚合/特殊交互)
|
|
171
|
+
|
|
172
|
+
### 7. 矩阵(HRM,按需)
|
|
173
|
+
- [ ] <矩阵名> | `matrix create` + `config-edit` + `enable` + `data`(来源: 被 <流程名> 的 `set-operator --type matrix` 引用)
|
|
174
|
+
|
|
175
|
+
## 执行分段(最多三段,每段完成停下来让用户确认,确认后才进下一段)
|
|
176
|
+
- 段① 应用+角色+全部表单(建表 + 3.2 表内项配齐,**缺一项这张表不算完成**)→ 确认字段设计 → 段② 流程(先列出口条件清单→逐条 `condition add`→`condition list` 回读核对)→ 确认流程 → 段③ 菜单+页面
|
|
177
|
+
- 简单单步需求(改字段、查数据)不分段,直接执行
|
|
178
|
+
> **表单是流程的地基**:流程绑定表单、条件/动作流/操作者都引用字段,字段设计错了流程全返工——表单段必须确认后再进流程
|
|
179
|
+
|
|
180
|
+
## 规则备忘
|
|
181
|
+
- **执行前读指南**:每个命令的完整参数/边界/示例在对应 `references` 文档(SKILL.md 决策树按关键词路由),动手前先读,勿凭印象调命令出错
|
|
182
|
+
- Plan 阶段不调 e10-cli 写命令(可 list/read 查现状);必须写 plan.md 落地,不要只在对话里列方案
|
|
183
|
+
- 应用数量:默认全需求只建 1 个应用,不按功能点拆;确需多应用先跟用户确认
|
|
184
|
+
- 流程按节点逐行,操作者含签署方式/条件/动作流挂节点;**「A 或 B 审批」= 一节点多人 + 竞签/非会签,不拆节点**
|
|
185
|
+
- 台账页面不用写,表单自带台账(搜索/筛选/导出/批量)
|
|
186
|
+
- 表单字段一次性建好(`form create --fields`),singleRow/group 建表时定,勿留建后补
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## 来源标注方式
|
|
192
|
+
|
|
193
|
+
| 配置项类型 | 来源标注方式 |
|
|
194
|
+
|----------|------------|
|
|
195
|
+
| 表单级配置(3.2/3.3) | 分组头 `▼ 表单:<表单名A> | objId: 待创建`,其下项来源=该表单 |
|
|
196
|
+
| 流程级配置(4.2/4.3/4.5) | 分组头 `▼ 流程:<流程名A> | workflowId: 待创建`,其下项来源=该流程 |
|
|
197
|
+
| 节点级配置(4.4) | 子分组头 `▶ 节点:<节点名> | nodeId: 待创建`,其下项来源=该节点 |
|
|
198
|
+
| 跨表项(动作流落点) | 内联标 `来源: 本流程 → 落点: <目标台账表单名>` |
|
|
199
|
+
| 菜单/矩阵 | 内联标 `来源: <表单名>` / `被 <流程名> 引用` |
|
|
200
|
+
|
|
201
|
+
多张表/多个流程时,复制对应 `▼` 分组(每张表/每个流程一组),来源即分组头声明。每个 `[ ]` 都能看清属于哪个表单/流程/节点,不会把 A 表的配置错配到 B 表。
|