weaver-work-cli 0.1.23 → 0.1.25
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/README.md +33 -3
- package/dist/core/output.js +53 -1
- package/dist/internal/e10/auth/commands.js +210 -17
- package/dist/internal/e10/auth/crypto.js +52 -12
- package/dist/internal/e10/auth/xiaoe.js +117 -35
- package/dist/internal/e10/context.js +3 -3
- package/dist/internal/e10/request-runtime.js +46 -4
- package/dist/shortcuts/caizhilian/file-upload/metadata.js +124 -0
- package/dist/shortcuts/caizhilian/file-upload/multipart.js +47 -0
- package/dist/shortcuts/caizhilian/file-upload/protocol.js +116 -0
- package/dist/shortcuts/caizhilian/file-upload/receipt.js +37 -0
- package/dist/shortcuts/caizhilian/host.js +13 -5
- package/dist/shortcuts/caizhilian/operations/handlers/file-upload.js +72 -179
- package/dist/shortcuts/caizhilian/operations/handlers/fileops.js +67 -1
- package/dist/shortcuts/caizhilian/operations/handlers/folder.js +701 -4
- package/dist/shortcuts/caizhilian/operations/handlers/setting-attach.js +198 -0
- package/dist/shortcuts/caizhilian/operations/registry.js +5 -1
- package/dist/shortcuts/caizhilian/operations/shared.js +32 -0
- package/dist/shortcuts/caizhilian/operations/specs.js +67 -0
- package/dist/shortcuts/workflow/continuation.js +14 -9
- package/dist/shortcuts/workflow/endpoints.js +11 -1
- package/dist/shortcuts/workflow/index.js +55 -1
- package/dist/shortcuts/workflow/operations/flow-status.js +63 -0
- package/dist/shortcuts/workflow/operations/form.js +1822 -547
- package/dist/shortcuts/workflow/operations/read.js +414 -13
- package/dist/shortcuts/workflow/operations/shared.js +28 -0
- package/dist/shortcuts/workflow/operations/write.js +5 -5
- package/dist/shortcuts/workflow/operations.js +8 -6
- package/dist/shortcuts/workflow/stdout-compact.js +33 -0
- package/docs/caizhilian.md +12 -5
- package/docs/e10-auth.md +25 -3
- package/node_modules/@napi-rs/keyring/LICENSE +21 -0
- package/node_modules/@napi-rs/keyring/README.md +19 -0
- package/node_modules/@napi-rs/keyring/index.d.ts +166 -0
- package/node_modules/@napi-rs/keyring/index.js +514 -0
- package/node_modules/@napi-rs/keyring/keytar.d.ts +53 -0
- package/node_modules/@napi-rs/keyring/keytar.js +26 -0
- package/node_modules/@napi-rs/keyring/package.json +125 -0
- package/node_modules/@napi-rs/keyring-darwin-arm64/README.md +3 -0
- package/node_modules/@napi-rs/keyring-darwin-arm64/keyring.darwin-arm64.node +0 -0
- package/node_modules/@napi-rs/keyring-darwin-arm64/package.json +32 -0
- package/node_modules/commander/LICENSE +22 -0
- package/node_modules/commander/Readme.md +1149 -0
- package/node_modules/commander/esm.mjs +16 -0
- package/node_modules/commander/index.js +24 -0
- package/node_modules/commander/lib/argument.js +149 -0
- package/node_modules/commander/lib/command.js +2662 -0
- package/node_modules/commander/lib/error.js +39 -0
- package/node_modules/commander/lib/help.js +709 -0
- package/node_modules/commander/lib/option.js +367 -0
- package/node_modules/commander/lib/suggestSimilar.js +101 -0
- package/node_modules/commander/package-support.json +16 -0
- package/node_modules/commander/package.json +82 -0
- package/node_modules/commander/typings/esm.d.mts +3 -0
- package/node_modules/commander/typings/index.d.ts +1045 -0
- package/package.json +5 -1
- package/skills/weaver-e10-builder/SKILL.md +281 -0
- package/skills/weaver-e10-builder/_catalog.md +94 -0
- package/skills/weaver-e10-builder/actionflows/CONTEXT.md +71 -0
- package/skills/weaver-e10-builder/actionflows/SKILL.md +176 -0
- package/skills/weaver-e10-builder/actionflows/docs/adr/0001-generated-actionflow-cleanup-identity.md +5 -0
- package/skills/weaver-e10-builder/actionflows/docs/adr/0002-preserve-existing-actionflow-on-update.md +36 -0
- package/skills/weaver-e10-builder/actionflows/references/components/calendar/MeetingCreate.md +19 -0
- package/skills/weaver-e10-builder/actionflows/references/components/calendar/ScheduleCreate.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/database/DMLExecute.md +38 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentCopy.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentMove.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentCopy.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentDelete.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentEdit.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentMove.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentPermissionChange.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRenewal.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRevert.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSave.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscription.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionApprove.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionSendBack.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionWithdraw.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/FileFolderSave.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/GetAttachmentInfo.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/GetDocumentInfo.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/ModifyDocumentStatus.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/ReplaceAttachment.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/document/UpdatePrintNum.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbAdd.md +100 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbDelete.md +23 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbRecover.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbSaveVersion.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbUpdate.md +67 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/DateTrigger.md +32 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EbGetDataById.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EnquiryForm.md +107 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventButton.md +33 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventFormData.md +19 -0
- package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/TimeBatchTrigger.md +19 -0
- package/skills/weaver-e10-builder/actionflows/references/components/http/Http.md +77 -0
- package/skills/weaver-e10-builder/actionflows/references/components/logic/Condition.md +23 -0
- package/skills/weaver-e10-builder/actionflows/references/components/logic/LogicFlowSet.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/logic/MultipleExecution.md +38 -0
- package/skills/weaver-e10-builder/actionflows/references/components/logic/Output.md +37 -0
- package/skills/weaver-e10-builder/actionflows/references/components/message/InnerMQSend.md +50 -0
- package/skills/weaver-e10-builder/actionflows/references/components/message/SendMessage.md +30 -0
- package/skills/weaver-e10-builder/actionflows/references/components/personnel/AlterPersonStatus.md +30 -0
- package/skills/weaver-e10-builder/actionflows/references/components/personnel/HrmEmployeeUpdate.md +34 -0
- package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelAlterType.md +38 -0
- package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelOnboarding.md +36 -0
- package/skills/weaver-e10-builder/actionflows/references/components/serverless/ServerlessAction.md +42 -0
- package/skills/weaver-e10-builder/actionflows/references/components/trigger/CustomTrigger.md +82 -0
- package/skills/weaver-e10-builder/actionflows/references/components/trigger/InnerMQListener.md +41 -0
- package/skills/weaver-e10-builder/actionflows/references/components/trigger/SimpleScheduler.md +19 -0
- package/skills/weaver-e10-builder/actionflows/references/components/trigger/WebHookTrigger.md +91 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAddSign.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAgreeRejectApply.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCommit.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveConsulTurnTodo.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCreate.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDelete.md +19 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoCirculate.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoForward.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoTurnTodo.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveEntrust.md +19 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveIntervention.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveMandatoryArchiving.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveManualCC.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRefuseRejectApply.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRejectApply.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSave.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSendBack.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveShareEntry.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveTrigger.md +99 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveWithdraw.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkFlowDocEmpowerment.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkflowToDoc.md +17 -0
- package/skills/weaver-e10-builder/actionflows/references/condition_rules.md +100 -0
- package/skills/weaver-e10-builder/actionflows/references/dynamic_capability_matrix.md +39 -0
- package/skills/weaver-e10-builder/actionflows/references/dynamic_resources.md +41 -0
- package/skills/weaver-e10-builder/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1043 -0
- package/skills/weaver-e10-builder/actionflows/references/function_rules.md +15 -0
- package/skills/weaver-e10-builder/actionflows/references/trigger_runtime_notes.md +53 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Bar.json +341 -0
- package/skills/weaver-e10-builder/assets/dom-structure/BarStack.json +341 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Bubble.json +323 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Calendar.json +515 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Circular.json +337 -0
- package/skills/weaver-e10-builder/assets/dom-structure/CollapsePanel.json +289 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Comment.json +617 -0
- package/skills/weaver-e10-builder/assets/dom-structure/CountDown.json +755 -0
- package/skills/weaver-e10-builder/assets/dom-structure/DigitalPanel.json +191 -0
- package/skills/weaver-e10-builder/assets/dom-structure/EbButton.json +387 -0
- package/skills/weaver-e10-builder/assets/dom-structure/FastCreate.json +242 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Gauge.json +282 -0
- package/skills/weaver-e10-builder/assets/dom-structure/HBar.json +336 -0
- package/skills/weaver-e10-builder/assets/dom-structure/HBarStack.json +337 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Line.json +341 -0
- package/skills/weaver-e10-builder/assets/dom-structure/NList.json +712 -0
- package/skills/weaver-e10-builder/assets/dom-structure/NavBar.json +274 -0
- package/skills/weaver-e10-builder/assets/dom-structure/NavPanel.json +390 -0
- package/skills/weaver-e10-builder/assets/dom-structure/NewTab.json +606 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Nightingale.json +336 -0
- package/skills/weaver-e10-builder/assets/dom-structure/PageHeader.json +205 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Picture.json +209 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Pie.json +338 -0
- package/skills/weaver-e10-builder/assets/dom-structure/ProgressChart.json +299 -0
- package/skills/weaver-e10-builder/assets/dom-structure/SearchGlobal.json +628 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Slide.json +489 -0
- package/skills/weaver-e10-builder/assets/dom-structure/Treemap.json +324 -0
- package/skills/weaver-e10-builder/assets/factory/chart-dimensions.json +536 -0
- package/skills/weaver-e10-builder/assets/factory/example-btn-progress-collapse-configured.json +2515 -0
- package/skills/weaver-e10-builder/assets/factory/example-configured-2.json +13805 -0
- package/skills/weaver-e10-builder/assets/factory/example-configured.json +6735 -0
- package/skills/weaver-e10-builder/assets/factory/factory-bar-stack.json +326 -0
- package/skills/weaver-e10-builder/assets/factory/factory-bar.json +222 -0
- package/skills/weaver-e10-builder/assets/factory/factory-bubble.json +322 -0
- package/skills/weaver-e10-builder/assets/factory/factory-calendar.json +325 -0
- package/skills/weaver-e10-builder/assets/factory/factory-circular.json +320 -0
- package/skills/weaver-e10-builder/assets/factory/factory-collapse-panel.json +132 -0
- package/skills/weaver-e10-builder/assets/factory/factory-comment.json +388 -0
- package/skills/weaver-e10-builder/assets/factory/factory-count-down.json +198 -0
- package/skills/weaver-e10-builder/assets/factory/factory-digital-panel.json +108 -0
- package/skills/weaver-e10-builder/assets/factory/factory-eb-button.json +150 -0
- package/skills/weaver-e10-builder/assets/factory/factory-fast-create.json +62 -0
- package/skills/weaver-e10-builder/assets/factory/factory-gauge.json +312 -0
- package/skills/weaver-e10-builder/assets/factory/factory-h-bar-stack.json +328 -0
- package/skills/weaver-e10-builder/assets/factory/factory-h-bar.json +326 -0
- package/skills/weaver-e10-builder/assets/factory/factory-line.json +212 -0
- package/skills/weaver-e10-builder/assets/factory/factory-nav-bar.json +167 -0
- package/skills/weaver-e10-builder/assets/factory/factory-nav-menu.json +144 -0
- package/skills/weaver-e10-builder/assets/factory/factory-nav-panel.json +338 -0
- package/skills/weaver-e10-builder/assets/factory/factory-new-tab.json +163 -0
- package/skills/weaver-e10-builder/assets/factory/factory-nightingale.json +312 -0
- package/skills/weaver-e10-builder/assets/factory/factory-nlist.json +112 -0
- package/skills/weaver-e10-builder/assets/factory/factory-page-header.json +171 -0
- package/skills/weaver-e10-builder/assets/factory/factory-picture.json +169 -0
- package/skills/weaver-e10-builder/assets/factory/factory-pie.json +212 -0
- package/skills/weaver-e10-builder/assets/factory/factory-progress-chart.json +162 -0
- package/skills/weaver-e10-builder/assets/factory/factory-search-global.json +104 -0
- package/skills/weaver-e10-builder/assets/factory/factory-slide.json +164 -0
- package/skills/weaver-e10-builder/assets/factory/factory-treemap.json +322 -0
- package/skills/weaver-e10-builder/assets/icons.db +0 -0
- package/skills/weaver-e10-builder/assets/sample/.claude/settings.local.json +8 -0
- package/skills/weaver-e10-builder/assets/sample/api/formApi.js +510 -0
- package/skills/weaver-e10-builder/assets/sample/config/config.js +0 -0
- package/skills/weaver-e10-builder/assets/sample/config/configLoad.js +0 -0
- package/skills/weaver-e10-builder/assets/sample/config/configLoad_default.js +0 -0
- package/skills/weaver-e10-builder/assets/sample/config/config_default.js +0 -0
- package/skills/weaver-e10-builder/assets/sample/entry.js +22 -0
- package/skills/weaver-e10-builder/assets/sample/eslint.config.cjs +48 -0
- package/skills/weaver-e10-builder/assets/sample/memo.md +0 -0
- package/skills/weaver-e10-builder/assets/sample/readme.js +8 -0
- package/skills/weaver-e10-builder/references/app/guide-app-publish.md +92 -0
- package/skills/weaver-e10-builder/references/auth/guide-auth.md +88 -0
- package/skills/weaver-e10-builder/references/coding/guide-edit-backfill.md +189 -0
- package/skills/weaver-e10-builder/references/coding/guide-form-crud.md +262 -0
- package/skills/weaver-e10-builder/references/coding/guide-page-code.md +244 -0
- package/skills/weaver-e10-builder/references/coding/guide-page-export.md +119 -0
- package/skills/weaver-e10-builder/references/coding/ref-compile-rules.md +130 -0
- package/skills/weaver-e10-builder/references/common/guide-plan-template.md +164 -0
- package/skills/weaver-e10-builder/references/common/map.md +153 -0
- package/skills/weaver-e10-builder/references/common/ref-cli-commands.md +635 -0
- package/skills/weaver-e10-builder/references/components/@weapp-Button.md +104 -0
- package/skills/weaver-e10-builder/references/components/base-Badge.md +100 -0
- package/skills/weaver-e10-builder/references/components/base-Dialog.md +358 -0
- package/skills/weaver-e10-builder/references/components/base-Empty.md +58 -0
- package/skills/weaver-e10-builder/references/components/base-Tag.md +112 -0
- package/skills/weaver-e10-builder/references/components/display-Alert.md +64 -0
- package/skills/weaver-e10-builder/references/components/display-Avatar.md +150 -0
- package/skills/weaver-e10-builder/references/components/display-Calendar.md +263 -0
- package/skills/weaver-e10-builder/references/components/display-Carousel.md +115 -0
- package/skills/weaver-e10-builder/references/components/display-Collapse.md +299 -0
- package/skills/weaver-e10-builder/references/components/display-FilePreview.md +49 -0
- package/skills/weaver-e10-builder/references/components/display-Icon.md +66 -0
- package/skills/weaver-e10-builder/references/components/display-List.md +320 -0
- package/skills/weaver-e10-builder/references/components/display-Pagination.md +41 -0
- package/skills/weaver-e10-builder/references/components/display-Spin.md +34 -0
- package/skills/weaver-e10-builder/references/components/display-Steps.md +89 -0
- package/skills/weaver-e10-builder/references/components/display-Table.md +160 -0
- package/skills/weaver-e10-builder/references/components/display-Title.md +117 -0
- package/skills/weaver-e10-builder/references/components/form-Checkbox.md +161 -0
- package/skills/weaver-e10-builder/references/components/form-DepartmentBrowser-api.md +52 -0
- package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser-api.md +51 -0
- package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser.md +51 -0
- package/skills/weaver-e10-builder/references/components/form-Input.md +123 -0
- package/skills/weaver-e10-builder/references/components/form-Radio.md +145 -0
- package/skills/weaver-e10-builder/references/components/form-Select.md +191 -0
- package/skills/weaver-e10-builder/references/components/form-Switch.md +46 -0
- package/skills/weaver-e10-builder/references/components/form-Upload.md +53 -0
- package/skills/weaver-e10-builder/references/components/generic-Echarts.md +102 -0
- package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-components.md +130 -0
- package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-css.md +127 -0
- package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-factory.md +460 -0
- package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-version.md +111 -0
- package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer.md +288 -0
- package/skills/weaver-e10-builder/references/esb-interface/guide-import.md +34 -0
- package/skills/weaver-e10-builder/references/form/guide-create-form.md +248 -0
- package/skills/weaver-e10-builder/references/form/guide-ebuilder-filter.md +73 -0
- package/skills/weaver-e10-builder/references/form/guide-ebuilder-scope.md +82 -0
- package/skills/weaver-e10-builder/references/form/guide-field-linkage.md +123 -0
- package/skills/weaver-e10-builder/references/form/guide-form-archive-permission.md +175 -0
- package/skills/weaver-e10-builder/references/form/guide-form-association.md +124 -0
- package/skills/weaver-e10-builder/references/form/guide-form-button.md +169 -0
- package/skills/weaver-e10-builder/references/form/guide-form-data.md +78 -0
- package/skills/weaver-e10-builder/references/form/guide-form-formula-functions.md +343 -0
- package/skills/weaver-e10-builder/references/form/guide-form-layout-incremental.md +90 -0
- package/skills/weaver-e10-builder/references/form/guide-form-layout-planning.md +68 -0
- package/skills/weaver-e10-builder/references/form/guide-form-linkage.md +269 -0
- package/skills/weaver-e10-builder/references/form/guide-form-message.md +74 -0
- package/skills/weaver-e10-builder/references/form/guide-form-physical-table.md +146 -0
- package/skills/weaver-e10-builder/references/form/guide-form-serial-mark.md +47 -0
- package/skills/weaver-e10-builder/references/form/guide-form-sub-detail.md +82 -0
- package/skills/weaver-e10-builder/references/form/guide-form-view-permission.md +38 -0
- package/skills/weaver-e10-builder/references/form/guide-form-view.md +371 -0
- package/skills/weaver-e10-builder/references/form/guide-formula-linkage.md +281 -0
- package/skills/weaver-e10-builder/references/form/guide-list-columns.md +52 -0
- package/skills/weaver-e10-builder/references/form/guide-list-custom-text.md +52 -0
- package/skills/weaver-e10-builder/references/form/guide-list-stats.md +136 -0
- package/skills/weaver-e10-builder/references/form/guide-virtual-form.md +156 -0
- package/skills/weaver-e10-builder/references/form/ref-form-fields.md +293 -0
- package/skills/weaver-e10-builder/references/form/style-templates.md +97 -0
- package/skills/weaver-e10-builder/references/hrm/guide-matrix.md +245 -0
- package/skills/weaver-e10-builder/references/hrm/guide-org-employee.md +155 -0
- package/skills/weaver-e10-builder/references/menu/system-menus.md +75 -0
- package/skills/weaver-e10-builder/references/report/add-dataset-registration-guide.md +139 -0
- package/skills/weaver-e10-builder/references/report/ai-report-workflow.md +412 -0
- package/skills/weaver-e10-builder/references/report/api-report-build-fast-path.md +275 -0
- package/skills/weaver-e10-builder/references/report/app-datasource-lookup-guide.md +230 -0
- package/skills/weaver-e10-builder/references/report/cell-config-echo-guide.md +163 -0
- package/skills/weaver-e10-builder/references/report/cell-transform-guide.md +147 -0
- package/skills/weaver-e10-builder/references/report/condition-format-guide.md +140 -0
- package/skills/weaver-e10-builder/references/report/cross-dataset-filter-guide.md +304 -0
- package/skills/weaver-e10-builder/references/report/dataset-query-filter-guide.md +235 -0
- package/skills/weaver-e10-builder/references/report/dataset-sidebar-ops-guide.md +280 -0
- package/skills/weaver-e10-builder/references/report/dataset-table-field-contract-guide.md +339 -0
- package/skills/weaver-e10-builder/references/report/datasource-metadata-guide.md +365 -0
- package/skills/weaver-e10-builder/references/report/datasource-selection-and-parent-filter-guide.md +148 -0
- package/skills/weaver-e10-builder/references/report/date-range-query-reference.md +102 -0
- package/skills/weaver-e10-builder/references/report/default-header-style-guide.md +70 -0
- package/skills/weaver-e10-builder/references/report/designer-blank-prevention-guide.md +111 -0
- package/skills/weaver-e10-builder/references/report/event-hreflink-guide.md +184 -0
- package/skills/weaver-e10-builder/references/report/field-bind-exact-match-guide.md +208 -0
- package/skills/weaver-e10-builder/references/report/formula-cell-api-guide.md +258 -0
- package/skills/weaver-e10-builder/references/report/guide-report-build.md +131 -0
- package/skills/weaver-e10-builder/references/report/guide-report-modify.md +100 -0
- package/skills/weaver-e10-builder/references/report/guide-report-multisource.md +143 -0
- package/skills/weaver-e10-builder/references/report/guide-report-query.md +98 -0
- package/skills/weaver-e10-builder/references/report/hidden-row-and-header-merge-guide.md +100 -0
- package/skills/weaver-e10-builder/references/report/layout-showlocation-freeze-guide.md +167 -0
- package/skills/weaver-e10-builder/references/report/preaggregate-auto-disable-guide.md +107 -0
- package/skills/weaver-e10-builder/references/report/query-condition-api-guide.md +890 -0
- package/skills/weaver-e10-builder/references/report/ref-report-commands.md +122 -0
- package/skills/weaver-e10-builder/references/report/ref-report-pitfalls.md +226 -0
- package/skills/weaver-e10-builder/references/report/report-baseinfo-defaults-guide.md +117 -0
- package/skills/weaver-e10-builder/references/report/report-building-guide.md +511 -0
- package/skills/weaver-e10-builder/references/report/report-config-schema.md +445 -0
- package/skills/weaver-e10-builder/references/report/report-create-modes-guide.md +182 -0
- package/skills/weaver-e10-builder/references/report/report-data-model.md +447 -0
- package/skills/weaver-e10-builder/references/report/report-delivery-contract.md +101 -0
- package/skills/weaver-e10-builder/references/report/report-designer-feature-map.md +500 -0
- package/skills/weaver-e10-builder/references/report/report-internal-error-guide.md +78 -0
- package/skills/weaver-e10-builder/references/report/report-knowledge-base.md +389 -0
- package/skills/weaver-e10-builder/references/report/report-lifecycle-api-guide.md +392 -0
- package/skills/weaver-e10-builder/references/report/report-list-page-ops-guide.md +191 -0
- package/skills/weaver-e10-builder/references/report/report-permission-guide.md +365 -0
- package/skills/weaver-e10-builder/references/report/report-requirement-analysis-template.md +202 -0
- package/skills/weaver-e10-builder/references/report/report-self-check-guide.md +164 -0
- package/skills/weaver-e10-builder/references/report/safe-partial-save-guide.md +151 -0
- package/skills/weaver-e10-builder/references/report/snowflake-id-precision-guide.md +84 -0
- package/skills/weaver-e10-builder/references/report/spec-build-schema.md +294 -0
- package/skills/weaver-e10-builder/references/report/targeted-fix-guide.md +97 -0
- package/skills/weaver-e10-builder/references/report/user-request-scope-only-guide.md +82 -0
- package/skills/weaver-e10-builder/references/workflow/guide-function-management.md +154 -0
- package/skills/weaver-e10-builder/references/workflow/guide-opinion-settings.md +126 -0
- package/skills/weaver-e10-builder/references/workflow/guide-workflow-action.md +174 -0
- package/skills/weaver-e10-builder/references/workflow/guide-workflow-auth-resp.md +224 -0
- package/skills/weaver-e10-builder/references/workflow/guide-workflow-condition.md +447 -0
- package/skills/weaver-e10-builder/references/workflow/guide-workflow-node-layout.md +181 -0
- package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc-setting.md +248 -0
- package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc.md +68 -0
- package/skills/weaver-e10-builder/references/workflow/guide-workflow.md +527 -0
- package/skills/weaver-e10-builder/references/workflow/operator-matrix.md +76 -0
- package/skills/weaver-e10-caizhilian/SKILL.md +14 -4
- package/skills/weaver-e10-caizhilian/references/file-upload.md +100 -295
- package/skills/weaver-e10-caizhilian/references/files.md +15 -0
- package/skills/weaver-e10-caizhilian/references/folder.md +31 -3
- package/skills/weaver-e10-caizhilian/references/setting-attach.md +48 -3
- package/skills/weaver-e10-caizhilian/references/source-manifest.json +634 -25
- package/skills/weaver-e10-jiuchuanhui/SKILL.md +9 -1
- package/skills/weaver-e10-shared/SKILL.md +19 -5
- package/skills/weaver-e10-shared/references/e10-auth-and-session.md +25 -5
- package/skills/weaver-e10-workflow/SKILL.md +28 -47
- package/skills/weaver-e10-workflow/references/source-manifest.json +46 -36
- package/skills/weaver-e10-workflow/references/workflow-batch.md +2 -4
- package/skills/weaver-e10-workflow/references/workflow-create.md +261 -86
- package/skills/weaver-e10-workflow/references/workflow-edit.md +2 -1
- package/skills/weaver-e10-workflow/references/workflow-memory.md +3 -6
- package/skills/weaver-e10-workflow/references/workflow-operate.md +2 -1
- package/skills/weaver-e10-workflow/references/workflow-query.md +11 -9
- package/skills/weaver-e10-workflow/references/workflow-share.md +2 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# 给已有表单改布局
|
|
2
|
+
|
|
3
|
+
给已经建好的表单加字段、改字段的显示属性时读这篇。**不是自己建的表尤其要读**:改错了别人的版式,对方要一个个调回来。
|
|
4
|
+
|
|
5
|
+
## 布局是两套数据
|
|
6
|
+
|
|
7
|
+
| | 存在哪 | 一条是什么 |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| **字段定义** | 字段管理接口 | 一个字段一条(`fieldId` / `type` / `componentKey` / `title` / `dataKey` / `columnName` …) |
|
|
10
|
+
| **布局组件** | 表单布局接口的 `pageLayouts[].comps` | **平铺一维数组**,每个字段占**两个**:一个标签组件、一个值组件 |
|
|
11
|
+
|
|
12
|
+
**判断「这个组件属于哪个字段」只能看 `config.associatedId`。**
|
|
13
|
+
标签组件的 `config.fieldId` 是布局自己另生成的一个 id,与字段定义没有对应关系 —— 拿它去找字段会找不到。
|
|
14
|
+
|
|
15
|
+
明细字段也在同一个平铺数组里,靠 `config.subFormId` 归属;它的 `excel.parent` 指向明细表容器的 `nodeId`,普通字段的 `excel.parent` 是 `ROOT`。
|
|
16
|
+
|
|
17
|
+
**EXCEL 布局还有第三份:网格。** `pageLayouts[].config.workbook.Sheet1.cells` 里每个组件占**一格**,靠 `style.cellType.comId` 认到自己的组件,位置也以格子自己的 `row` / `col` 为准 —— **设计器按网格渲染**。所以 EXCEL 表里「组件的 `config.excel.row` / `col`」和「格子的 `row` / `col`」是同一件事的两份副本,**改一份必须改两份**:只改组件层的话接口会回成功,但设计器里画不出来。
|
|
18
|
+
|
|
19
|
+
FLOW 布局**没有** `config.workbook`(它靠 `config.flow.parent` / `nodes` 排布),这条对它不适用。
|
|
20
|
+
|
|
21
|
+
> 这份同步由 CLI 负责,不用手工做。但**手工在页面上改过布局的老表**如果在 EXCEL 上有字段显示不出来,在设计器里保存一次即可 —— 设计器会按组件重算网格。
|
|
22
|
+
|
|
23
|
+
## 字段属性分两类
|
|
24
|
+
|
|
25
|
+
有些属性**只存在于布局组件里,字段定义没有这个键** —— 只写字段定义等于什么都没做:接口回成功、命令也报成功,表单上一点变化都没有。
|
|
26
|
+
|
|
27
|
+
| 只存在于布局组件 | 字段定义里也有 |
|
|
28
|
+
|---|---|
|
|
29
|
+
| `required`(必填)、`readOnly`、`singleRow`(独占一行)、`display`、`isHideTitle`、`excel`(位置)、`layout` | `title`、`dataKey`、`columnName`、`maxLen`、`componentKey`、`type`、`format` … |
|
|
30
|
+
|
|
31
|
+
必填是个典型:一张真实表 53 条字段记录里,**没有一条**带 `required`。设必填就是改布局组件。
|
|
32
|
+
|
|
33
|
+
## 加字段:默认增量,别动不动重建
|
|
34
|
+
|
|
35
|
+
`e10-cli form add-field` 默认**只往布局里加这一个字段**,不动其它组件、不动样式模板、不动位置。
|
|
36
|
+
|
|
37
|
+
`--reinit` 才是整表重建,它会:
|
|
38
|
+
|
|
39
|
+
- 把样式模板换成工具默认的那一个;
|
|
40
|
+
- 按字段顺序**重算所有位置**(手工调过的行列全没了);
|
|
41
|
+
- 把标签组件**全部换成新 id**;
|
|
42
|
+
- 布局层的自定义(合并格、列宽、配色)一并丢失。
|
|
43
|
+
|
|
44
|
+
**不是自己建的表不要用 `--reinit`。** 字段越多越经不起 —— 真实的一张订单主表有 131 个组件。
|
|
45
|
+
|
|
46
|
+
### 表里还没有这个类型时:用平台给的字段模板
|
|
47
|
+
|
|
48
|
+
新组件的键集(`format`、`earlyDate`、`pointSize`、`switchType` …)各类型都不一样,**按类型名拼一个出来只会猜错,而猜错不报错、只是渲染异常**。所以增量插入一向是**照同类型的现成组件整套抄**。
|
|
49
|
+
|
|
50
|
+
表里没有同类型字段时,模板改从平台取:命令会调 `getFormFieldExist`,拿**平台按这个字段生成的组件模板**(`configPC`)—— 顶层样式键(按类型)与类型专有键平台都给全了,结构尾键从同作用域的现成组件借,位置和身份键由命令自己写。**全程不重建布局。**
|
|
51
|
+
|
|
52
|
+
两点要知道:
|
|
53
|
+
|
|
54
|
+
- 明细表字段拿不到这个接口的模板(它只返回主表与系统字段),但模板是**按类型而不是按作用域**的,此时借主表同类型的那一份。
|
|
55
|
+
- 拿模板只在**真的缺**时才多打一次接口;表里已有同类型字段时,路径与从前一字不差。
|
|
56
|
+
|
|
57
|
+
### 明细表的字段是横着排的
|
|
58
|
+
|
|
59
|
+
同一个「加字段」,**主表和明细表落的轴不一样**:主表是一行一个字段(新字段**往下加行**),明细表是一个字段占一列(新字段**往右加列**)。明细表还有自己的一张网格(`workbook` 的键就是 `DetailTable` 组件的 id),明细字段的格子在那张里,不在 `Sheet1`。
|
|
60
|
+
|
|
61
|
+
遇到中止时,两个选择:
|
|
62
|
+
|
|
63
|
+
1. 先在设计器里手工加一个同类型字段(它就成了可参照的样板),再重跑命令;
|
|
64
|
+
2. 确认这张表是自己建的、不在乎版式被重排 → 显式加 `--reinit`。
|
|
65
|
+
|
|
66
|
+
## 哪些 id 可以自己生成,哪些必须由平台发号
|
|
67
|
+
|
|
68
|
+
这一条最容易踩:**编一个 id 不会报错**,而是在之后某个看不出来的环节静默失效。
|
|
69
|
+
|
|
70
|
+
| 位置 | 能否自己生成 | 说明 |
|
|
71
|
+
|---|---|---|
|
|
72
|
+
| 布局组件的 `id` | ✅ | 布局内唯一即可,形如 32 位十六进制串 |
|
|
73
|
+
| 布局组件的 `excel.nodeId` | ✅ | 布局内唯一即可,短随机串 |
|
|
74
|
+
| 标签组件的 `config.fieldId` | ✅ | 只在布局内有意义,与字段定义无关 |
|
|
75
|
+
| **`labelObj.title` / `titleLabelId`** | ❌ **必须平台发号** | 见下 |
|
|
76
|
+
|
|
77
|
+
### 为什么标题的 id 必须平台发号
|
|
78
|
+
|
|
79
|
+
平台把**字段标题存的是标签 id,不是文本本身**。这个 id 要调多语言标签接口(`i18n/multilangLabel/saveLabel`)由平台分配。
|
|
80
|
+
|
|
81
|
+
自己拼一个(比如拿时间戳凑)的后果:接口**照样回成功**,之后任何要显示这个标题的地方都取不到文字 —— 字段名变成空的,看着就像这个字段不存在。
|
|
82
|
+
|
|
83
|
+
判断一个标签 id 是否有效:用 `-1` 去查标签,拿到的是一行空值(模板行)。**查一个不存在的标签,返回的结果与查 `-1` 完全一致** —— 所以「查得回来」不等于「标签存在」,要看有没有值。
|
|
84
|
+
|
|
85
|
+
现成命令:`e10-cli form field-lang set <objId> <appId> <fieldId> --zh <中文> --en <英文>` 会建标签并回写字段,写完还能回读校验。`form add-field` 建字段时也会自动建标签。
|
|
86
|
+
|
|
87
|
+
## 相关
|
|
88
|
+
|
|
89
|
+
- 建表时的布局规划见 [EB 表单布局规划](guide-form-layout-planning.md)。
|
|
90
|
+
- 字段类型与属性码表见 [表单字段定义参考](ref-form-fields.md)。
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# EB 表单布局规划
|
|
2
|
+
|
|
3
|
+
本指南用于从需求文档识别 FLOW/EXCEL 布局,并将布局要求完整写入 plan 和 `fields.json`。表单创建顺序见 [新建 EBuilder 表单](guide-create-form.md)。
|
|
4
|
+
|
|
5
|
+
## 确认布局类型
|
|
6
|
+
|
|
7
|
+
- `FLOW`:流式布局。
|
|
8
|
+
- `EXCEL`:表格式布局。
|
|
9
|
+
- 使用 `form create --layout FLOW|EXCEL` 在创建时指定。
|
|
10
|
+
- 需求未明确且选择会改变最终布局时,建表前向用户确认。
|
|
11
|
+
|
|
12
|
+
## 识别布局样表
|
|
13
|
+
|
|
14
|
+
识别发生在读取需求文档之后、编写 `plan.md` 之前。先整理字段定义,再扫描布局章节和表格。
|
|
15
|
+
|
|
16
|
+
出现以下特征时,将表格作为布局样表:
|
|
17
|
+
|
|
18
|
+
- 上下文说明“表格式布局”“Excel 样式”或“按照如下布局”;
|
|
19
|
+
- 单元格包含 `[字段名]`,或呈现标签与字段控件交替结构;
|
|
20
|
+
- 存在表单标题、分组标题、合并单元格、有意义的空白位置;
|
|
21
|
+
- 表格表达字段摆放位置,而不是重复列出字段名称、类型和说明。
|
|
22
|
+
|
|
23
|
+
逐行识别表单标题、分组标题、字段标签、字段控件、空白占位、同排字段、合并和跨列关系,以及必填、只读、独占一行等显示属性。优先使用 `e10-cli docx read` 生成的 Markdown 表格;合并区域不清晰时查看原 DOCX 中对应表格结构。
|
|
24
|
+
|
|
25
|
+
## 写入 Plan
|
|
26
|
+
|
|
27
|
+
识别结果分别写入同一表单的两个部分:
|
|
28
|
+
|
|
29
|
+
1. “字段定义”:保存字段类型和可以直接创建的属性。
|
|
30
|
+
2. “表单布局蓝图”:逐行保存标题、分组、字段同排关系、顺序、空白占位、跨列信息和原文说明。
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
##### 表单布局蓝图
|
|
34
|
+
|
|
35
|
+
| 行 | 区域/分组 | 左侧 | 右侧 | 布局说明 |
|
|
36
|
+
|---|---|---|---|---|
|
|
37
|
+
| 1 | 标题 | 项目信息表 | — | 合并整行 |
|
|
38
|
+
| 2 | 基本信息 | 项目名称 | 项目编号 | 同排两列 |
|
|
39
|
+
| 3 | 基本信息 | 项目简介 | — | 独占整行 |
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
轻量核对原样表中的每个字段,确保同时出现在字段定义和布局蓝图中,并保留同排关系和分组顺序。
|
|
43
|
+
|
|
44
|
+
## 转换为 fields.json
|
|
45
|
+
|
|
46
|
+
- 数组顺序表示字段展示顺序。
|
|
47
|
+
- `group` 表示需求明确的分组。
|
|
48
|
+
- `singleRow:true` 表示独占一行。
|
|
49
|
+
- `required:true`、`readOnly:true`、`hidden:true` 表示显示属性。
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
[
|
|
53
|
+
{"componentKey":"Text","fieldName":"项目名称","group":"基本信息","required":true},
|
|
54
|
+
{"componentKey":"Text","fieldName":"项目编号","group":"基本信息","readOnly":true},
|
|
55
|
+
{"componentKey":"TextArea","fieldName":"项目简介","group":"基本信息","singleRow":true}
|
|
56
|
+
]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
只有需求明确要求分组时才设置 `group`;需求未要求时保持不分组。
|
|
60
|
+
|
|
61
|
+
## 创建与局部调整
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
e10-cli form create <appId> "<表单名>" --fields @fields.json --layout EXCEL
|
|
65
|
+
e10-cli form layout read <objId>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
创建后需要调整局部位置或显示属性时,使用 `form layout` 下的移动、只读和必填设置命令;具体参数通过 `form layout --help` 查询。
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
# 表单字段显隐联动指南
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
字段显隐联动:当某些字段的值满足条件时,自动改变其他字段的显示属性(隐藏/显示/编辑/只读/必填)。
|
|
6
|
+
|
|
7
|
+
## CLI 命令
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
e10-cli form linkage add <appId> <objId> <name> --config @<json文件>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 配置 JSON 格式
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"conditions": [
|
|
18
|
+
{
|
|
19
|
+
"fieldId": "触发字段ID",
|
|
20
|
+
"operator": "EQUAL",
|
|
21
|
+
"options": [{"optionId": "选项ID", "content": "选项名"}]
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"actions": [
|
|
25
|
+
{
|
|
26
|
+
"prop": "hide",
|
|
27
|
+
"fields": [
|
|
28
|
+
{
|
|
29
|
+
"fieldId": "目标字段ID",
|
|
30
|
+
"name": "字段名称",
|
|
31
|
+
"dataKey": "字段编码",
|
|
32
|
+
"fieldType": "Employee",
|
|
33
|
+
"isDetail": false
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### actions[].fields[](联动目标字段)
|
|
42
|
+
|
|
43
|
+
| 键 | 说明 |
|
|
44
|
+
|------|------|
|
|
45
|
+
| fieldId | 目标字段的 fieldId(从 `form read --app-id` 获取) |
|
|
46
|
+
| name | 字段名(显示用) |
|
|
47
|
+
| dataKey | 字段编码;`form read` 不返回它,**留空即可**(用 fieldId 代替可行) |
|
|
48
|
+
| fieldType | 字段类型,如 `Text` / `Employee` / `Date` |
|
|
49
|
+
| **`isDetail`** | **目标落在明细表里时必须为 `true`**。不传 = 主表字段 |
|
|
50
|
+
|
|
51
|
+
**目标字段在明细表里,就加 `"isDetail": true`** —— 这是「主表字段控制明细列显隐」的写法,两个方向都支持(`hide` / `required` 均可):
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"conditions": [{ "fieldId": "<主表字段ID>", "operator": "EQUAL", "value": "Y" }],
|
|
56
|
+
"actions": [{
|
|
57
|
+
"prop": "hide",
|
|
58
|
+
"fields": [{ "fieldId": "<明细列ID>", "name": "明细列A", "dataKey": "", "fieldType": "Text", "isDetail": true }]
|
|
59
|
+
}]
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**怎么认出明细字段**:`form read` 的输出里,明细字段会标注所属明细表 —— 带 `明细表: xxx` 那些就是,照它填 `isDetail: true`。
|
|
64
|
+
|
|
65
|
+
### conditions(触发条件)
|
|
66
|
+
|
|
67
|
+
多个条件之间是 **AND** 关系(全部满足才触发)。
|
|
68
|
+
|
|
69
|
+
| 字段 | 说明 |
|
|
70
|
+
|------|------|
|
|
71
|
+
| fieldId | 触发字段的 fieldId(从 `form read --app-id` 获取) |
|
|
72
|
+
| operator | 比较符,见下表 |
|
|
73
|
+
| value | 普通字段的比较值(文本/数字)。**「为空 / 不为空」不要给** |
|
|
74
|
+
| options | Select/RadioBox 字段的选项,格式:`[{"optionId": "选项ID", "content": "选项名"}]` |
|
|
75
|
+
|
|
76
|
+
比较符:
|
|
77
|
+
|
|
78
|
+
| 写法 | 含义 | 备注 |
|
|
79
|
+
|------|------|------|
|
|
80
|
+
| `EQUAL` / `NOT_EQUAL` | 等于 / 不等于 | |
|
|
81
|
+
| `CONTAIN` / `NOT_CONTAIN` | 包含 / 不包含 | |
|
|
82
|
+
| `GREATER` / `LESS` / `GREATER_EQUAL` / `LESS_EQUAL` | 大于 / 小于 / 大于等于 / 小于等于 | |
|
|
83
|
+
| **`NULL`** | **为空** | 也可以写 `EMPTY` / `IS_NULL`,命令会归一成平台码 |
|
|
84
|
+
| **`NOT_NULL`** | **不为空** | 也可以写 `NOT_EMPTY` / `IS_NOT_NULL` |
|
|
85
|
+
|
|
86
|
+
**「为空」的算子写错,报错会指向完全无关的地方。** 平台不认 `EMPTY` 这类写法时不会说「算子不合法」,而是在写库时抛一句 `mybatis PersistenceException / Error updating database` —— 容易让人误判成字段配置问题(真实发生过:被当成「目标字段 `dataKey` 为空导致 NOT NULL」去查,而 `dataKey` 留空本身是没问题的)。用 `NULL` / `NOT_NULL`,或者写 `EMPTY` 交给命令归一。
|
|
87
|
+
|
|
88
|
+
### 多个条件之间:任一 / 全部
|
|
89
|
+
|
|
90
|
+
界面上的「满足以下**任一**条件」= `OR`,「满足以下**全部**条件」= `AND`。在 config 顶层写 `detailType`:
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{ "detailType": "OR", "conditions": [ ... ], "actions": [ ... ] }
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**不写这个键时由平台取自己的默认值** —— 设计器每次都显式发,所以缺省行为没有依据,命令不替平台决定。多条件时建议明确写。
|
|
97
|
+
|
|
98
|
+
## 生效维度(生效范围)
|
|
99
|
+
|
|
100
|
+
联动可以只对**某一种展示形态**生效。在 config 里用 `effect` 指定:
|
|
101
|
+
|
|
102
|
+
| 写法 | 含义 |
|
|
103
|
+
|------|------|
|
|
104
|
+
| 不写 | **当前表单**(最常见) |
|
|
105
|
+
| `"effect": "formLayout"` | 只对**某个表单布局**生效(布局 id 现查) |
|
|
106
|
+
| `"effect": { ... }` | 直接给 `{effectType, effectName, effectValue}`,自行指定 |
|
|
107
|
+
|
|
108
|
+
⚠ **布局维度的值要的是 `multipleLayoutId`,不是 `formLayout.id`** —— 同一张表上这两个值**相邻但不同**(例如 `…375` 与 `…376`)。给错了命令**不报错**,只是指向另一个布局,而且平台按这个 id 解析不出名字,回读时生效范围是个空白(`表单布局: `)。命令取的是前者,不用手填。
|
|
109
|
+
|
|
110
|
+
### 工作流表单那条路由的维度不一样
|
|
111
|
+
|
|
112
|
+
上面的表是 **eb 表**(`form linkage add`)的。**原生工作流程表单**(`wf-form linkage`)提供的是另外四种,写法也不同:
|
|
113
|
+
|
|
114
|
+
| 界面上的维度 | `effect` 写什么 | 取值 | 额外参数 |
|
|
115
|
+
|---|---|---|---|
|
|
116
|
+
| 当前表单 | 不写(缺省) | 表单 formId | — |
|
|
117
|
+
| **表单布局** | `"formLayout"` | **布局 id**(默认布局;可用 `"layoutId"` 指定别的) | — |
|
|
118
|
+
| **当前工作流** | `"workFlow"` | **流程 ID** | `--workflow-id` |
|
|
119
|
+
| **选择节点** | `"includeNode"` | **节点 ID** | `--workflow-id` + `"nodeId"`(可写节点名) |
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
e10-cli wf-form linkage <formId> "规则名" --workflow-id <流程ID> --config @cfg.json
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
```json
|
|
126
|
+
{ "effect": "workFlow", "conditions": [ ... ], "actions": [ ... ] }
|
|
127
|
+
{ "effect": "includeNode", "nodeId": "1级审批", "conditions": [ ... ], "actions": [ ... ] }
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**这条路由的 `refId` 始终是流程 ID**,是「这条联动挂在哪个流程上」,**不是**选项的取值 —— 给「选择节点」时选项取值是节点 ID,两者不同,别照着取值抄。流程表单 formId 与流程 ID 不是一回事,用 `workflow info <流程ID>` 可以反查。
|
|
131
|
+
|
|
132
|
+
选项的显示名里那个 `【V1】` 是**平台按活动版本自己加的**,写节点名进去它会补成「节点名【V1】」。
|
|
133
|
+
|
|
134
|
+
### actions(联动效果)
|
|
135
|
+
|
|
136
|
+
| 属性 | prop 值 | 效果 |
|
|
137
|
+
|------|---------|------|
|
|
138
|
+
| 隐藏 | `hide` | 字段隐藏不可见 |
|
|
139
|
+
| 隐藏行 | `hideLine` | 字段所在行整行隐藏(仅表格布局;`hideRow` 兼容旧写法) |
|
|
140
|
+
| 显示(只读) | `show` | 字段显示但不可编辑 |
|
|
141
|
+
| 编辑 | `edit` | 字段显示且可编辑 |
|
|
142
|
+
| 只读 | `readonly` | 字段显示且不可编辑(同 show) |
|
|
143
|
+
| 必填 | `required` | 字段显示且必填(条件满足时必填) |
|
|
144
|
+
|
|
145
|
+
**优先级**:`hide` > `readonly` > `edit`
|
|
146
|
+
|
|
147
|
+
多个联动规则同时满足时,优先级高的生效。
|
|
148
|
+
|
|
149
|
+
## 示例
|
|
150
|
+
|
|
151
|
+
### 示例 1:优先级=高 时隐藏负责人字段
|
|
152
|
+
|
|
153
|
+
```json
|
|
154
|
+
{
|
|
155
|
+
"conditions": [
|
|
156
|
+
{
|
|
157
|
+
"fieldId": "1290473132445114373",
|
|
158
|
+
"operator": "EQUAL",
|
|
159
|
+
"options": [{"optionId": "1290473132445114394", "content": "高"}]
|
|
160
|
+
}
|
|
161
|
+
],
|
|
162
|
+
"actions": [
|
|
163
|
+
{
|
|
164
|
+
"prop": "hide",
|
|
165
|
+
"fields": [
|
|
166
|
+
{
|
|
167
|
+
"fieldId": "1290473132445114370",
|
|
168
|
+
"name": "负责人",
|
|
169
|
+
"dataKey": "fzr48cef",
|
|
170
|
+
"fieldType": "Employee"
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
}
|
|
174
|
+
]
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### 示例 2:金额 > 10000 时审批人变为只读
|
|
179
|
+
|
|
180
|
+
```json
|
|
181
|
+
{
|
|
182
|
+
"conditions": [
|
|
183
|
+
{
|
|
184
|
+
"fieldId": "金额字段ID",
|
|
185
|
+
"operator": "GREATER_THAN",
|
|
186
|
+
"value": "10000"
|
|
187
|
+
}
|
|
188
|
+
],
|
|
189
|
+
"actions": [
|
|
190
|
+
{
|
|
191
|
+
"prop": "readonly",
|
|
192
|
+
"fields": [
|
|
193
|
+
{
|
|
194
|
+
"fieldId": "审批人字段ID",
|
|
195
|
+
"name": "审批人",
|
|
196
|
+
"dataKey": "spr89abc",
|
|
197
|
+
"fieldType": "Employee"
|
|
198
|
+
}
|
|
199
|
+
]
|
|
200
|
+
}
|
|
201
|
+
]
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## 注意事项
|
|
206
|
+
|
|
207
|
+
1. **主表 vs 明细表**:主表触发字段可修改主表或明细字段;明细表触发字段只能修改本行字段。
|
|
208
|
+
目标落在明细表里时,`actions[].fields[]` 那个条目**必须带 `isDetail: true`**;不带的话这个目标会被当作主表字段提交
|
|
209
|
+
2. **表格布局限制**:通过隐藏行/列/单元格自定义属性隐藏的字段,无法通过联动显示出来
|
|
210
|
+
3. **明细表字段列隐藏**:需在明细表第一行配置操作按钮元素
|
|
211
|
+
4. **多规则冲突**:避免同一个触发字段或同一个目标字段出现在多个规则里
|
|
212
|
+
5. **默认属性**:字段的默认显示属性为设计器中设置的"读写属性"或"字段权限"
|
|
213
|
+
6. **目标字段 dataKey**:`form read` 不返回它,**留空即可** —— 平台按 `fieldId` 定位,`dataKey` 空着能正常建规则(已对照验证)。填上真值也行,但别为了凑它去猜;它**不是**某些报错的原因。
|
|
214
|
+
7. **Select 选项 ID**:必须用 `form read --app-id` 返回的真实 `valueKey`(自动生成的长 ID,如 `1294601918674214939`),不能用建表单时给的短 `valueKey`(如 `"GQ"` / `"5"`)
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## 值带出(编辑已有字段的 ffRelateField)
|
|
219
|
+
|
|
220
|
+
值带出不是 `linkage add` 的显隐规则,而是**字段级配置**(`ffRelateField`):当 EBuilder 关联字段选中某条记录后,自动将该记录的某个字段值复制到当前字段。例如:选客户→自动带出联系人;选合同→自动带出合同金额。
|
|
221
|
+
|
|
222
|
+
### 创建时配置
|
|
223
|
+
|
|
224
|
+
`form create --fields` 里用 `relateFrom` 定义,CLI 在 create Step 3 自动配置 ffRelateField:
|
|
225
|
+
|
|
226
|
+
```json
|
|
227
|
+
{ "componentKey": "Text", "fieldName": "联系人",
|
|
228
|
+
"relateFrom": { "ebuilderField": "关联客户", "sourceFieldId": "1296220571782152194" } }
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### 创建后补配
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
e10-cli form edit-field <objId> <appId> <fieldId> \
|
|
235
|
+
--relate-from <EBuilder字段名> \
|
|
236
|
+
--relate-from-source <目标表单源字段fieldId>
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
> ⚠️ **`sourceFieldId` 和 `--relate-from-source` 必须传字段的数字 fieldId**(如 `1296220571782152194`),不能传字段名(如"联系人姓名")。用 `form read <objId> --app-id <appId>` 获取字段的 fieldId。
|
|
240
|
+
|
|
241
|
+
- `--relate-from`:本表单中的 EBuilder 关联字段名(如 `"关联客户"`)
|
|
242
|
+
- `--relate-from-source`:关联目标表单中要复制值的字段 fieldId
|
|
243
|
+
|
|
244
|
+
### HRM 值带出(form relate,表内 Employee/Department 源)
|
|
245
|
+
|
|
246
|
+
换表内的**人员字段**或**部门字段**自动填目标字段。源字段是表单里的 Employee/Department 类型,目标字段按 HRM 属性带出值。结构差异:**Employee 源 ffRelateField 带 `module:"hrm"`,Department 源不带**。
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
# 换「申请人」(Employee) → 自动填「申请人工号」为邮箱
|
|
250
|
+
e10-cli form relate <appId> <objId> 申请人工号 --from 申请人 --key email
|
|
251
|
+
|
|
252
|
+
# 换「所属部门」(Department) → 自动填「申请人工号」为部门编号
|
|
253
|
+
e10-cli form relate <appId> <objId> 申请人工号 --from 所属部门 --key code
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
参数:
|
|
257
|
+
| 参数 | 说明 |
|
|
258
|
+
|------|------|
|
|
259
|
+
| `<targetField>` | 目标字段(被填充),名称或 fieldId |
|
|
260
|
+
| `--from <field>` | 源字段(触发),必须 Employee 或 Department 类型 |
|
|
261
|
+
| `--key <key>` | 带出属性 key。默认 Employee=`department`、Department=`name`。不传 `--title` 时自动取属性中文名 |
|
|
262
|
+
|
|
263
|
+
`--key` 从平台清单校验(`listBusinessField`),非法 key 会报错并列出可选属性:
|
|
264
|
+
|
|
265
|
+
**Employee 源**(人员属性,部分):`username`姓名 / `email`邮箱 / `superior`上级 / `mobile`手机 / `jobNum`工号 / `hiredate`入职时间 / `department`部门 / `position`岗位 / `grade`职级 / `allSuperiors`所有上级 …
|
|
266
|
+
|
|
267
|
+
**Department 源**(部门属性,全部):`name`部门名称(→Text) / `code`部门编号(→Text) / `parent`上级部门(→Department) / `fullname`部门全称(→Text) / `department.coadjutant`协办人(→RelateBrowser) / `deptEmployee`部门人员(→Employee)
|
|
268
|
+
|
|
269
|
+
> 目标字段类型与属性不匹配时命令只提示警告、不阻止(如 `deptEmployee` 通常只能填 Employee 字段)。
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# 消息提醒(表单数据提醒)
|
|
2
|
+
|
|
3
|
+
表单数据发生**新建 / 修改 / 删除**时,按配置把消息推给指定的人。位置在 **表单模型 → 消息提醒 → 表单数据提醒**(同一页面还有个「动作流提醒」页签,是另一条链路)。
|
|
4
|
+
|
|
5
|
+
一条提醒由这几样组成:**触发时机 + 推送渠道 + 标题内容 + 落地页 + 提醒对象**,整体可**启用 / 停用**。
|
|
6
|
+
|
|
7
|
+
## 命令
|
|
8
|
+
|
|
9
|
+
| 命令 | 用途 |
|
|
10
|
+
|---|---|
|
|
11
|
+
| `form message list <appId> [--obj-id <objId>] [--keyword <kw>]` | 列出提醒。不传 `--obj-id` 就是把整个应用的列出来 |
|
|
12
|
+
| `form message get <appId> <triggerId>` | 看单条,含**推送渠道**与提醒对象 |
|
|
13
|
+
| `form message add <appId> <objId> --name <名称>` | 新建 |
|
|
14
|
+
| `form message edit <appId> <triggerId> [...]` | 修改,没传的项保持原值 |
|
|
15
|
+
| `form message delete <appId> <triggerId>` | 删除(不可逆) |
|
|
16
|
+
| `form message enable \| disable <appId> <triggerId>` | 启用 / 停用 |
|
|
17
|
+
|
|
18
|
+
`get` / `edit` / `delete` / `enable` / `disable` 的 `--obj-id` 可以省 —— 不传会自动反查这条提醒挂在哪张表单上。
|
|
19
|
+
|
|
20
|
+
### `add` / `edit` 的选项
|
|
21
|
+
|
|
22
|
+
| 选项 | 说明 |
|
|
23
|
+
|---|---|
|
|
24
|
+
| `--type <类型>` | 触发时机:`新建` / `修改` / `删除`,逗号分隔,也可以写 `all`。缺省 `all` |
|
|
25
|
+
| `--channels <渠道>` | 推送渠道:`im`(站内)/ `cloud-bridge`(云桥)/ `email`(邮件)/ `sms`(短信),逗号分隔,也可以写 `all`。**缺省只发 `im`** —— 不会替你打开短信 |
|
|
26
|
+
| `--title` / `--content` | 提醒标题与内容。纯文本会自动包成富文本;不传时标题取提醒名称、内容按触发时机生成一句话(如「数据新建、修改了」) |
|
|
27
|
+
| `--pc-link` / `--mobile-link` | 点开提醒后的落地页,缺省是这条记录的表单卡片页 |
|
|
28
|
+
| `--rule <spec>` | 提醒对象,可重复(写法见下) |
|
|
29
|
+
| `--rule-json '<json>'` | 提醒对象原始报文,逃生口 |
|
|
30
|
+
| `--disabled` | 建成即停用(`edit` 用 `--enable` / `--disable`) |
|
|
31
|
+
|
|
32
|
+
## 提醒对象怎么写
|
|
33
|
+
|
|
34
|
+
五类:`user` 人员、`dept` 部门、`role` 角色、`company` 分部、`matrix` 矩阵。
|
|
35
|
+
|
|
36
|
+
写法是 `<类型>:<值>[,name=<显示名>][,extra=0|1]`:
|
|
37
|
+
|
|
38
|
+
- **`<类型>:<名字>`** —— 工具按名字去查。**同名多条会报错并列出候选(带 ID)**,不会替你挑一条,免得配错人还看不出来。
|
|
39
|
+
- **`<类型>:<ID>,name=<名字>`** —— 名字有歧义、或手上只有 ID 时用这个:`<值>` 直接当 ID 用,不查。
|
|
40
|
+
|
|
41
|
+
`extra` 是组织范围上的附加项 —— 页面上部门 / 分部的提醒对象显示成「营销部:本部门含兼职人员」就是它。部门 / 分部缺省开、人员 / 角色 / 矩阵缺省关,需要时显式覆盖。
|
|
42
|
+
|
|
43
|
+
### 矩阵提醒对象(`matrix`)
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
form message add <appId> <objId> --name 有新数据了 --type 新建 --channels im \
|
|
47
|
+
--rule matrix:门店经理矩阵
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
矩阵那条报文的**键集合与其余四类完全不同**(真机报文坐实):只有 `selectedType` / `containExtra` / `name` /
|
|
51
|
+
`jobLevelText` / `jobLevelTextSpan` / `matrixValueRelation` / `matrixConditionData` / `ruledetail` / `id`,
|
|
52
|
+
**没有** `levelScope` / `fieldtype` / `roleLevel` / `relation` 那一套,而且**不带 `ruletype`** —— 平台靠
|
|
53
|
+
`selectedType='matrix'` 认它。工具会按矩阵的**值字段**自动构造 `matrixValueRelation`
|
|
54
|
+
(决定用哪一列匹配当前用户),矩阵没配值字段时直接报错。
|
|
55
|
+
|
|
56
|
+
> ⚠ **矩阵的「条件」这一层暂时配不了**。设计器能给矩阵提醒对象再加条件(`matrixConditionData`),
|
|
57
|
+
> 但那个对话框里的右值是一种新形态(`type:"custom"` + 一组选中的对象数组 + `customSelect`),
|
|
58
|
+
> CLI 还没有对应的构造;报文里这个键会发空串。要带条件的,先去设计器里配。
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
form message add <appId> <objId> --name 有新数据了 \
|
|
62
|
+
--type 新建 --channels im,email \
|
|
63
|
+
--rule user:任来仪 \
|
|
64
|
+
--rule dept:营销部 \
|
|
65
|
+
--rule role:会议管理员
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## 几个容易踩的点
|
|
69
|
+
|
|
70
|
+
- **列表是应用级的**:这条接口按应用列,`--obj-id` 是命令在**本地按表单收口**(平台不认那个过滤参数,传了也照回全应用)。
|
|
71
|
+
- **渠道勾选要单条看**:列表和详情返回里都不带渠道,`form message get` 会额外读一次补上。
|
|
72
|
+
- **停用不等于删除**:`disable` 只是不再推,配置留着;`delete` 才是真的没了。
|
|
73
|
+
- **修改是整份保存**:`edit` 先读回现有配置再合并你改的项,**没传的项不会被清空**。提醒对象默认保持原样,要整份替换就传 `--rule`,要清空传 `--clear-rules`。
|
|
74
|
+
- **提醒名称**就是列表里显示的那个名字,建的时候起的 `--name` 别随手写。
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# 多物理表(一个表单的字段分散到多张物理表)
|
|
2
|
+
|
|
3
|
+
设计器里「表单 → 字段管理」有三个页签:**主表 | 明细表 | 其他**。本文说的是**「其他」** —— 同一个表单的字段分散在多张**物理表**上。
|
|
4
|
+
|
|
5
|
+
## 什么时候用
|
|
6
|
+
|
|
7
|
+
**字段数过多时的容量兜底**(单表字段超过 100 个左右)。正常表单用不到,属于偶尔一用的结构级能力。业务上要「一行对多行」请用**明细表**,那是另一回事(见 `guide-form-sub-detail.md`)。
|
|
8
|
+
|
|
9
|
+
## ⚠ 和「明细表」是两根轴,别混
|
|
10
|
+
|
|
11
|
+
| | 明细表 | **物理表(本文)** |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| 建表命令 | `form add-detail-table` | **`form add-physical-table`** |
|
|
14
|
+
| 加字段命令 | `form add-field --sub-form-id` | **`form add-physical-field`** |
|
|
15
|
+
| 建表端点 | `saveSubForm` | **`saveFormTable`** |
|
|
16
|
+
| 标志 | `isSubForm: true` | **`isSubForm: false`** |
|
|
17
|
+
| `tableType` | `MAIN` | **`SUBSIDIARY`** |
|
|
18
|
+
| 布局里 | `DetailTable` 组件 | 无(不自动进布局,见下) |
|
|
19
|
+
| 语义 | 一对多业务建模 | 一个表单自己的字段拆到多张表 |
|
|
20
|
+
|
|
21
|
+
## 命令
|
|
22
|
+
|
|
23
|
+
```shell
|
|
24
|
+
# 1) 列出表单的全部物理表(含主表)—— 忘掉 formTableId 时就用它
|
|
25
|
+
e10-cli form physical-table list <objId> <appId>
|
|
26
|
+
|
|
27
|
+
# 2) 建一张附属物理表 —— 输出 formTableId,后面都要用它
|
|
28
|
+
e10-cli form add-physical-table <objId> <appId> \
|
|
29
|
+
--name 物理表A \
|
|
30
|
+
--table-name uf_ryxxb_6_1
|
|
31
|
+
|
|
32
|
+
# 3) 往那张表里加字段(任意类型,能力同 form add-field)
|
|
33
|
+
e10-cli form add-physical-field <objId> <appId> <formTableId> <字段名> <类型> [标题] [选项]
|
|
34
|
+
|
|
35
|
+
# 4) 改名
|
|
36
|
+
e10-cli form rename-physical-table <objId> <appId> <formTableId> \
|
|
37
|
+
--name 新名字 --table-name uf_ryxxb_6_1
|
|
38
|
+
|
|
39
|
+
# 5) 删除(可一次删多张;表里的字段一并删除,不可逆)
|
|
40
|
+
e10-cli form delete-physical-table <objId> <appId> <formTableId...>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`add-physical-field` 的选项与 `form add-field` 同名同义(`--precision` / `--format` / `--default` / `--data-key` / `--column-name` / `--multiple` / `--option-template` / `--browser-type` / `--sform-id` …)—— 两者**共用同一份字段构造器**,所以字段形状是同一套,不存在「这个命令能建那个命令不能建」的差异。
|
|
44
|
+
|
|
45
|
+
| 参数 | 说明 |
|
|
46
|
+
|---|---|
|
|
47
|
+
| `--name <名>` | 物理表**显示名**,设计器里那排 chip 上的字 |
|
|
48
|
+
| `--table-name <名>` | **数据库表名**(如 `uf_ryxxb_6_1`)。⚠ 平台的建议命名规则未抓到报文,**必填**;改名时也要原样回传 |
|
|
49
|
+
|
|
50
|
+
## 表 id 从哪来
|
|
51
|
+
|
|
52
|
+
建表输出里就带着:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
物理表已建: 物理表A formTableId=1323895867900731392 tableName=uf_ryxxb_6_1
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
事后想找回,用 `form physical-table list`(走 `getFormAGroupList`,就是设计器那排 chip 的数据源):
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
$ e10-cli form physical-table list 1323898521989193728 1323897873591762945
|
|
62
|
+
表单 1323898521989193728 共 3 张物理表:
|
|
63
|
+
多物理表测试表单 [主表] formTableId=1323898521989193731 库表=uf_dwlbcsbd_5766 字段2
|
|
64
|
+
表1 [附属] formTableId=1323898595055067136 库表=uf_dwlbcs_t1 字段3
|
|
65
|
+
表2 [附属] formTableId=1323898612300947456 库表=uf_dwlbcs_t2 字段3
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
⚠ 注意这只列**物理表**。`form detail-table list`(走 `querySubForms`)是另一回事,只列**明细表**。
|
|
69
|
+
|
|
70
|
+
字段**归属**也随时可读:`form read <objId> --app-id <appId>` 每个字段后面会带 `· 物理表: 表1`。
|
|
71
|
+
|
|
72
|
+
> 读 `getFormAGroupList` 时别碰那条记录里的 `id` 键 —— 它是 **formId**,`formTableId` 才是表 id。这个子系统里 `id` 反复是这个陷阱。
|
|
73
|
+
|
|
74
|
+
## ⚠ `add-physical-field` **不碰布局**
|
|
75
|
+
|
|
76
|
+
字段建在这张物理表上,但**不会自动进表单布局**——它是否需要在布局里出现、怎么放,尚未抓到报文。别默认它已经挂在表单上了;要不要进布局请在设计器里确认。
|
|
77
|
+
|
|
78
|
+
(`form add-field` 会做布局插入,是因为它落在主表/明细表这些**本来就在布局里**的落点上。)
|
|
79
|
+
|
|
80
|
+
## 报文契约
|
|
81
|
+
|
|
82
|
+
### 建表 / 改名 —— 同一个端点,带不带 `id` 决定是哪种
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
POST /api/ebuilder/form/form/field/manage/saveFormTable?apid=<appId>
|
|
86
|
+
header ebbusinessid: <formId>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{"module":"ebuilderform",
|
|
91
|
+
"formTable":{"id":"<表id:改名时带,新建时不带>",
|
|
92
|
+
"name":"物理表A",
|
|
93
|
+
"tableName":"uf_ryxxb_6_1",
|
|
94
|
+
"tableType":"SUBSIDIARY",
|
|
95
|
+
"form":{"id":"<formId>"},
|
|
96
|
+
"otherProperties":"{}"},
|
|
97
|
+
"customParam":{"appId":"...","objId":"..."}}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
响应:`{"code":200,"status":true,"data":{"formTableId":"..."}}` —— 新表的 id 在 `data.formTableId`。
|
|
101
|
+
|
|
102
|
+
### 加字段 —— **不是**批量端点
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
POST /api/ebuilder/form/form/field/manage/saveFormFieldNew
|
|
106
|
+
body {"formId":...,"module":"ebuilderform","jsonObj":"{... 带 \"formTableId\":\"<表id>\" ...}"}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
字段落点由 **jsonObj 里的 `formTableId`** 决定。这条与「建表时连字段一起建」的 `batch/save/formField` + `formTableList` **不是同一条路**。
|
|
110
|
+
|
|
111
|
+
### 删表
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
POST /api/ebuilder/form/form/field/manage/deleteFormTable?apid=<appId>
|
|
115
|
+
body {"module":"ebuilderform","formId":"<formId>","ids":["<表id>"],"customParam":{...}}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 列表(`form physical-table list`)
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
POST /api/ebuilder/form/form/field/manage/getFormAGroupList?apid=<appId>
|
|
122
|
+
body {"module":"ebuilderform","formId":"<formId>","customParam":{...}}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
响应 `data.formList[]` 每条:`name`(显示名)/ `tableName` / `tableType`(`MAIN` | `SUBSIDIARY`)/ `formTableId` / `systemTable` / `dataCount`;
|
|
126
|
+
另外 `data.groupList[]` 是字段分组。**主表也在 `formList` 里**(`tableType: MAIN`)。
|
|
127
|
+
|
|
128
|
+
⚠ 记录里的 `id` 键是 **formId**,不是表 id。
|
|
129
|
+
|
|
130
|
+
## 踩过的两条坑(都别再走)
|
|
131
|
+
|
|
132
|
+
**1. 不能把已有字段搬到另一张表。** 试过把字段的 `formTableId` 改成新表再整份写回,平台明确拒绝:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
【备注】此字段不属于当前物理表,不能更改位置
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
所以**别指望「字段超 100 之后把老字段挪走」**——至少这条路径不行。能做的只有:**一开始就把新字段建到新表上**。这也解释了设计器的真实用法:先建附属表,后续新增的字段直接落在它上面。
|
|
139
|
+
|
|
140
|
+
**2. 平台会对形状不认的字段回 `200` 但静默不落库。** 在 `batch/save/formField` 那条路上,`DateTime` / `Percent` / `Browser` 三种就是这样——接口回成功,字段根本没建出来。所以 `add-physical-field` **每次写完都回读确认**,「接口回 200」不等于「建上了」。带配置的类型(如 Select 的选项)建完再用对应命令补。
|
|
141
|
+
|
|
142
|
+
## 注意事项
|
|
143
|
+
|
|
144
|
+
1. **删除不可逆**,表里的字段一并删除。执行前先确认表 id。
|
|
145
|
+
2. **`--table-name` 必填**。设计器用的是 `uf_<表单名拼音>_<n>_<m>` 这类命名,但规则没抓到报文,CLI 不替你猜 —— 重名/非法由平台报错(`此表的数据库表名称与数据库现有表存在冲突`)。
|
|
146
|
+
3. **建完的空表照样存在**于「其他」页签里;要清掉用 `delete-physical-table`。
|