weaver-work-cli 0.1.24 → 0.1.26

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.
Files changed (401) hide show
  1. package/README.md +30 -21
  2. package/dist/cmd/root.js +1 -0
  3. package/dist/core/output.js +53 -1
  4. package/dist/core/runtime-agent.js +19 -0
  5. package/dist/internal/e10/auth/commands.js +58 -23
  6. package/dist/internal/e10/auth/crypto.js +52 -12
  7. package/dist/internal/e10/auth/xiaoe.js +145 -53
  8. package/dist/internal/e10/context.js +5 -27
  9. package/dist/shortcuts/archive-oa/constants.js +66 -0
  10. package/dist/shortcuts/archive-oa/continuation.js +70 -0
  11. package/dist/shortcuts/archive-oa/errors.js +53 -0
  12. package/dist/shortcuts/archive-oa/host.js +157 -0
  13. package/dist/shortcuts/archive-oa/index.js +225 -0
  14. package/dist/shortcuts/archive-oa/manifest.js +62 -0
  15. package/dist/shortcuts/archive-oa/operations/borrow-car.js +159 -0
  16. package/dist/shortcuts/archive-oa/operations/borrow-url.js +108 -0
  17. package/dist/shortcuts/archive-oa/operations/confirm.js +48 -0
  18. package/dist/shortcuts/archive-oa/operations/contract.js +120 -0
  19. package/dist/shortcuts/archive-oa/operations/locate.js +50 -0
  20. package/dist/shortcuts/archive-oa/operations/registry.js +40 -0
  21. package/dist/shortcuts/archive-oa/operations/shared.js +181 -0
  22. package/dist/shortcuts/archive-oa/operations/types.js +45 -0
  23. package/dist/shortcuts/archive-oa/operations.js +13 -0
  24. package/dist/shortcuts/caizhilian/operations/handlers/fileops.js +67 -1
  25. package/dist/shortcuts/caizhilian/operations/handlers/setting-attach.js +198 -0
  26. package/dist/shortcuts/caizhilian/operations/shared.js +32 -0
  27. package/dist/shortcuts/caizhilian/operations/specs.js +15 -0
  28. package/dist/shortcuts/index.js +2 -0
  29. package/dist/shortcuts/invoice/host.js +2 -1
  30. package/dist/shortcuts/invoice/manifest.js +111 -0
  31. package/dist/shortcuts/invoice/operations/issuing-qys.js +361 -0
  32. package/dist/shortcuts/invoice/operations/issuing.js +5 -5
  33. package/dist/shortcuts/invoice/operations/registry.js +4 -0
  34. package/dist/shortcuts/workflow/endpoints.js +11 -0
  35. package/dist/shortcuts/workflow/host.js +2 -2
  36. package/dist/shortcuts/workflow/index.js +25 -1
  37. package/dist/shortcuts/workflow/operations/chatscene.js +270 -0
  38. package/dist/shortcuts/workflow/operations/form.js +2128 -244
  39. package/dist/shortcuts/workflow/operations/read.js +186 -41
  40. package/dist/shortcuts/workflow/operations/shared.js +25 -0
  41. package/dist/shortcuts/workflow/operations/sign-input.js +106 -0
  42. package/dist/shortcuts/workflow/operations/write.js +9 -1
  43. package/dist/shortcuts/workflow/stdout-compact.js +41 -0
  44. package/docs/archive-oa.md +79 -0
  45. package/docs/caizhilian.md +4 -3
  46. package/docs/e10-auth.md +13 -5
  47. package/node_modules/@napi-rs/keyring/LICENSE +21 -0
  48. package/node_modules/@napi-rs/keyring/README.md +19 -0
  49. package/node_modules/@napi-rs/keyring/index.d.ts +166 -0
  50. package/node_modules/@napi-rs/keyring/index.js +514 -0
  51. package/node_modules/@napi-rs/keyring/keytar.d.ts +53 -0
  52. package/node_modules/@napi-rs/keyring/keytar.js +26 -0
  53. package/node_modules/@napi-rs/keyring/package.json +125 -0
  54. package/node_modules/@napi-rs/keyring-darwin-arm64/README.md +3 -0
  55. package/node_modules/@napi-rs/keyring-darwin-arm64/keyring.darwin-arm64.node +0 -0
  56. package/node_modules/@napi-rs/keyring-darwin-arm64/package.json +32 -0
  57. package/node_modules/commander/LICENSE +22 -0
  58. package/node_modules/commander/Readme.md +1149 -0
  59. package/node_modules/commander/esm.mjs +16 -0
  60. package/node_modules/commander/index.js +24 -0
  61. package/node_modules/commander/lib/argument.js +149 -0
  62. package/node_modules/commander/lib/command.js +2662 -0
  63. package/node_modules/commander/lib/error.js +39 -0
  64. package/node_modules/commander/lib/help.js +709 -0
  65. package/node_modules/commander/lib/option.js +367 -0
  66. package/node_modules/commander/lib/suggestSimilar.js +101 -0
  67. package/node_modules/commander/package-support.json +16 -0
  68. package/node_modules/commander/package.json +82 -0
  69. package/node_modules/commander/typings/esm.d.mts +3 -0
  70. package/node_modules/commander/typings/index.d.ts +1045 -0
  71. package/package.json +5 -1
  72. package/skill-template/business-info.json +16 -0
  73. package/skill-template/domains/archive-oa.md +19 -0
  74. package/skill-template/domains/yepiaotong.md +2 -2
  75. package/skills/weaver-e10-archive-oa/SKILL.md +159 -0
  76. package/skills/weaver-e10-archive-oa/references/archive-locate.md +49 -0
  77. package/skills/weaver-e10-archive-oa/references/borrow-car.md +76 -0
  78. package/skills/weaver-e10-archive-oa/references/borrow-flow.md +53 -0
  79. package/skills/weaver-e10-archive-oa/references/contract-search.md +63 -0
  80. package/skills/weaver-e10-archive-oa/references/disabled-capabilities.md +29 -0
  81. package/skills/weaver-e10-archive-oa/references/qys-contract-search.md +47 -0
  82. package/skills/weaver-e10-archive-oa/references/source-manifest.json +400 -0
  83. package/skills/weaver-e10-builder/SKILL.md +303 -0
  84. package/skills/weaver-e10-builder/_catalog.md +94 -0
  85. package/skills/weaver-e10-builder/actionflows/CONTEXT.md +71 -0
  86. package/skills/weaver-e10-builder/actionflows/SKILL.md +176 -0
  87. package/skills/weaver-e10-builder/actionflows/docs/adr/0001-generated-actionflow-cleanup-identity.md +5 -0
  88. package/skills/weaver-e10-builder/actionflows/docs/adr/0002-preserve-existing-actionflow-on-update.md +36 -0
  89. package/skills/weaver-e10-builder/actionflows/references/components/calendar/MeetingCreate.md +19 -0
  90. package/skills/weaver-e10-builder/actionflows/references/components/calendar/ScheduleCreate.md +17 -0
  91. package/skills/weaver-e10-builder/actionflows/references/components/database/DMLExecute.md +38 -0
  92. package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentCopy.md +17 -0
  93. package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentMove.md +17 -0
  94. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentCopy.md +17 -0
  95. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentDelete.md +17 -0
  96. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentEdit.md +17 -0
  97. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentMove.md +17 -0
  98. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentPermissionChange.md +17 -0
  99. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRenewal.md +17 -0
  100. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRevert.md +17 -0
  101. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSave.md +17 -0
  102. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscription.md +17 -0
  103. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionApprove.md +17 -0
  104. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionSendBack.md +17 -0
  105. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionWithdraw.md +17 -0
  106. package/skills/weaver-e10-builder/actionflows/references/components/document/FileFolderSave.md +17 -0
  107. package/skills/weaver-e10-builder/actionflows/references/components/document/GetAttachmentInfo.md +17 -0
  108. package/skills/weaver-e10-builder/actionflows/references/components/document/GetDocumentInfo.md +17 -0
  109. package/skills/weaver-e10-builder/actionflows/references/components/document/ModifyDocumentStatus.md +17 -0
  110. package/skills/weaver-e10-builder/actionflows/references/components/document/ReplaceAttachment.md +17 -0
  111. package/skills/weaver-e10-builder/actionflows/references/components/document/UpdatePrintNum.md +17 -0
  112. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbAdd.md +100 -0
  113. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbDelete.md +23 -0
  114. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbRecover.md +17 -0
  115. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbSaveVersion.md +17 -0
  116. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbUpdate.md +67 -0
  117. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/DateTrigger.md +32 -0
  118. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EbGetDataById.md +17 -0
  119. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EnquiryForm.md +107 -0
  120. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventButton.md +33 -0
  121. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventFormData.md +19 -0
  122. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/TimeBatchTrigger.md +19 -0
  123. package/skills/weaver-e10-builder/actionflows/references/components/http/Http.md +77 -0
  124. package/skills/weaver-e10-builder/actionflows/references/components/logic/Condition.md +23 -0
  125. package/skills/weaver-e10-builder/actionflows/references/components/logic/LogicFlowSet.md +17 -0
  126. package/skills/weaver-e10-builder/actionflows/references/components/logic/MultipleExecution.md +38 -0
  127. package/skills/weaver-e10-builder/actionflows/references/components/logic/Output.md +37 -0
  128. package/skills/weaver-e10-builder/actionflows/references/components/message/InnerMQSend.md +50 -0
  129. package/skills/weaver-e10-builder/actionflows/references/components/message/SendMessage.md +30 -0
  130. package/skills/weaver-e10-builder/actionflows/references/components/personnel/AlterPersonStatus.md +30 -0
  131. package/skills/weaver-e10-builder/actionflows/references/components/personnel/HrmEmployeeUpdate.md +34 -0
  132. package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelAlterType.md +38 -0
  133. package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelOnboarding.md +36 -0
  134. package/skills/weaver-e10-builder/actionflows/references/components/serverless/ServerlessAction.md +42 -0
  135. package/skills/weaver-e10-builder/actionflows/references/components/trigger/CustomTrigger.md +82 -0
  136. package/skills/weaver-e10-builder/actionflows/references/components/trigger/InnerMQListener.md +41 -0
  137. package/skills/weaver-e10-builder/actionflows/references/components/trigger/SimpleScheduler.md +19 -0
  138. package/skills/weaver-e10-builder/actionflows/references/components/trigger/WebHookTrigger.md +91 -0
  139. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAddSign.md +17 -0
  140. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAgreeRejectApply.md +17 -0
  141. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCommit.md +17 -0
  142. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveConsulTurnTodo.md +17 -0
  143. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCreate.md +17 -0
  144. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDelete.md +19 -0
  145. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoCirculate.md +17 -0
  146. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoForward.md +17 -0
  147. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoTurnTodo.md +17 -0
  148. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveEntrust.md +19 -0
  149. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveIntervention.md +17 -0
  150. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveMandatoryArchiving.md +17 -0
  151. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveManualCC.md +17 -0
  152. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRefuseRejectApply.md +17 -0
  153. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRejectApply.md +17 -0
  154. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSave.md +17 -0
  155. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSendBack.md +17 -0
  156. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveShareEntry.md +17 -0
  157. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveTrigger.md +99 -0
  158. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveWithdraw.md +17 -0
  159. package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkFlowDocEmpowerment.md +17 -0
  160. package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkflowToDoc.md +17 -0
  161. package/skills/weaver-e10-builder/actionflows/references/condition_rules.md +100 -0
  162. package/skills/weaver-e10-builder/actionflows/references/dynamic_capability_matrix.md +39 -0
  163. package/skills/weaver-e10-builder/actionflows/references/dynamic_resources.md +41 -0
  164. package/skills/weaver-e10-builder/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1043 -0
  165. package/skills/weaver-e10-builder/actionflows/references/function_rules.md +15 -0
  166. package/skills/weaver-e10-builder/actionflows/references/trigger_runtime_notes.md +53 -0
  167. package/skills/weaver-e10-builder/assets/dom-structure/Bar.json +341 -0
  168. package/skills/weaver-e10-builder/assets/dom-structure/BarStack.json +341 -0
  169. package/skills/weaver-e10-builder/assets/dom-structure/Bubble.json +323 -0
  170. package/skills/weaver-e10-builder/assets/dom-structure/Calendar.json +515 -0
  171. package/skills/weaver-e10-builder/assets/dom-structure/Circular.json +337 -0
  172. package/skills/weaver-e10-builder/assets/dom-structure/CollapsePanel.json +289 -0
  173. package/skills/weaver-e10-builder/assets/dom-structure/Comment.json +617 -0
  174. package/skills/weaver-e10-builder/assets/dom-structure/CountDown.json +755 -0
  175. package/skills/weaver-e10-builder/assets/dom-structure/DigitalPanel.json +191 -0
  176. package/skills/weaver-e10-builder/assets/dom-structure/EbButton.json +387 -0
  177. package/skills/weaver-e10-builder/assets/dom-structure/FastCreate.json +242 -0
  178. package/skills/weaver-e10-builder/assets/dom-structure/Gauge.json +282 -0
  179. package/skills/weaver-e10-builder/assets/dom-structure/HBar.json +336 -0
  180. package/skills/weaver-e10-builder/assets/dom-structure/HBarStack.json +337 -0
  181. package/skills/weaver-e10-builder/assets/dom-structure/Line.json +341 -0
  182. package/skills/weaver-e10-builder/assets/dom-structure/NList.json +712 -0
  183. package/skills/weaver-e10-builder/assets/dom-structure/NavBar.json +274 -0
  184. package/skills/weaver-e10-builder/assets/dom-structure/NavPanel.json +390 -0
  185. package/skills/weaver-e10-builder/assets/dom-structure/NewTab.json +606 -0
  186. package/skills/weaver-e10-builder/assets/dom-structure/Nightingale.json +336 -0
  187. package/skills/weaver-e10-builder/assets/dom-structure/PageHeader.json +205 -0
  188. package/skills/weaver-e10-builder/assets/dom-structure/Picture.json +209 -0
  189. package/skills/weaver-e10-builder/assets/dom-structure/Pie.json +338 -0
  190. package/skills/weaver-e10-builder/assets/dom-structure/ProgressChart.json +299 -0
  191. package/skills/weaver-e10-builder/assets/dom-structure/SearchGlobal.json +628 -0
  192. package/skills/weaver-e10-builder/assets/dom-structure/Slide.json +489 -0
  193. package/skills/weaver-e10-builder/assets/dom-structure/Treemap.json +324 -0
  194. package/skills/weaver-e10-builder/assets/factory/chart-dimensions.json +536 -0
  195. package/skills/weaver-e10-builder/assets/factory/example-btn-progress-collapse-configured.json +2515 -0
  196. package/skills/weaver-e10-builder/assets/factory/example-configured-2.json +13805 -0
  197. package/skills/weaver-e10-builder/assets/factory/example-configured.json +6735 -0
  198. package/skills/weaver-e10-builder/assets/factory/factory-bar-stack.json +326 -0
  199. package/skills/weaver-e10-builder/assets/factory/factory-bar.json +222 -0
  200. package/skills/weaver-e10-builder/assets/factory/factory-bubble.json +322 -0
  201. package/skills/weaver-e10-builder/assets/factory/factory-calendar.json +325 -0
  202. package/skills/weaver-e10-builder/assets/factory/factory-circular.json +320 -0
  203. package/skills/weaver-e10-builder/assets/factory/factory-collapse-panel.json +132 -0
  204. package/skills/weaver-e10-builder/assets/factory/factory-comment.json +388 -0
  205. package/skills/weaver-e10-builder/assets/factory/factory-count-down.json +198 -0
  206. package/skills/weaver-e10-builder/assets/factory/factory-digital-panel.json +108 -0
  207. package/skills/weaver-e10-builder/assets/factory/factory-eb-button.json +150 -0
  208. package/skills/weaver-e10-builder/assets/factory/factory-fast-create.json +62 -0
  209. package/skills/weaver-e10-builder/assets/factory/factory-gauge.json +312 -0
  210. package/skills/weaver-e10-builder/assets/factory/factory-h-bar-stack.json +328 -0
  211. package/skills/weaver-e10-builder/assets/factory/factory-h-bar.json +326 -0
  212. package/skills/weaver-e10-builder/assets/factory/factory-line.json +212 -0
  213. package/skills/weaver-e10-builder/assets/factory/factory-nav-bar.json +167 -0
  214. package/skills/weaver-e10-builder/assets/factory/factory-nav-menu.json +144 -0
  215. package/skills/weaver-e10-builder/assets/factory/factory-nav-panel.json +338 -0
  216. package/skills/weaver-e10-builder/assets/factory/factory-new-tab.json +163 -0
  217. package/skills/weaver-e10-builder/assets/factory/factory-nightingale.json +312 -0
  218. package/skills/weaver-e10-builder/assets/factory/factory-nlist.json +112 -0
  219. package/skills/weaver-e10-builder/assets/factory/factory-page-header.json +171 -0
  220. package/skills/weaver-e10-builder/assets/factory/factory-picture.json +169 -0
  221. package/skills/weaver-e10-builder/assets/factory/factory-pie.json +212 -0
  222. package/skills/weaver-e10-builder/assets/factory/factory-progress-chart.json +162 -0
  223. package/skills/weaver-e10-builder/assets/factory/factory-search-global.json +104 -0
  224. package/skills/weaver-e10-builder/assets/factory/factory-slide.json +164 -0
  225. package/skills/weaver-e10-builder/assets/factory/factory-treemap.json +322 -0
  226. package/skills/weaver-e10-builder/assets/icons.db +0 -0
  227. package/skills/weaver-e10-builder/assets/sample/.claude/settings.local.json +8 -0
  228. package/skills/weaver-e10-builder/assets/sample/api/formApi.js +510 -0
  229. package/skills/weaver-e10-builder/assets/sample/config/config.js +0 -0
  230. package/skills/weaver-e10-builder/assets/sample/config/configLoad.js +0 -0
  231. package/skills/weaver-e10-builder/assets/sample/config/configLoad_default.js +0 -0
  232. package/skills/weaver-e10-builder/assets/sample/config/config_default.js +0 -0
  233. package/skills/weaver-e10-builder/assets/sample/entry.js +22 -0
  234. package/skills/weaver-e10-builder/assets/sample/eslint.config.cjs +48 -0
  235. package/skills/weaver-e10-builder/assets/sample/memo.md +0 -0
  236. package/skills/weaver-e10-builder/assets/sample/readme.js +8 -0
  237. package/skills/weaver-e10-builder/references/app/guide-app-publish.md +92 -0
  238. package/skills/weaver-e10-builder/references/auth/guide-auth.md +88 -0
  239. package/skills/weaver-e10-builder/references/coding/guide-edit-backfill.md +189 -0
  240. package/skills/weaver-e10-builder/references/coding/guide-form-crud.md +262 -0
  241. package/skills/weaver-e10-builder/references/coding/guide-page-code.md +244 -0
  242. package/skills/weaver-e10-builder/references/coding/guide-page-export.md +119 -0
  243. package/skills/weaver-e10-builder/references/coding/ref-compile-rules.md +130 -0
  244. package/skills/weaver-e10-builder/references/common/guide-plan-template.md +164 -0
  245. package/skills/weaver-e10-builder/references/common/map.md +153 -0
  246. package/skills/weaver-e10-builder/references/common/ref-cli-commands.md +635 -0
  247. package/skills/weaver-e10-builder/references/components/@weapp-Button.md +104 -0
  248. package/skills/weaver-e10-builder/references/components/base-Badge.md +100 -0
  249. package/skills/weaver-e10-builder/references/components/base-Dialog.md +358 -0
  250. package/skills/weaver-e10-builder/references/components/base-Empty.md +58 -0
  251. package/skills/weaver-e10-builder/references/components/base-Tag.md +112 -0
  252. package/skills/weaver-e10-builder/references/components/display-Alert.md +64 -0
  253. package/skills/weaver-e10-builder/references/components/display-Avatar.md +150 -0
  254. package/skills/weaver-e10-builder/references/components/display-Calendar.md +263 -0
  255. package/skills/weaver-e10-builder/references/components/display-Carousel.md +115 -0
  256. package/skills/weaver-e10-builder/references/components/display-Collapse.md +299 -0
  257. package/skills/weaver-e10-builder/references/components/display-FilePreview.md +49 -0
  258. package/skills/weaver-e10-builder/references/components/display-Icon.md +66 -0
  259. package/skills/weaver-e10-builder/references/components/display-List.md +320 -0
  260. package/skills/weaver-e10-builder/references/components/display-Pagination.md +41 -0
  261. package/skills/weaver-e10-builder/references/components/display-Spin.md +34 -0
  262. package/skills/weaver-e10-builder/references/components/display-Steps.md +89 -0
  263. package/skills/weaver-e10-builder/references/components/display-Table.md +160 -0
  264. package/skills/weaver-e10-builder/references/components/display-Title.md +117 -0
  265. package/skills/weaver-e10-builder/references/components/form-Checkbox.md +161 -0
  266. package/skills/weaver-e10-builder/references/components/form-DepartmentBrowser-api.md +52 -0
  267. package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser-api.md +51 -0
  268. package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser.md +51 -0
  269. package/skills/weaver-e10-builder/references/components/form-Input.md +123 -0
  270. package/skills/weaver-e10-builder/references/components/form-Radio.md +145 -0
  271. package/skills/weaver-e10-builder/references/components/form-Select.md +191 -0
  272. package/skills/weaver-e10-builder/references/components/form-Switch.md +46 -0
  273. package/skills/weaver-e10-builder/references/components/form-Upload.md +53 -0
  274. package/skills/weaver-e10-builder/references/components/generic-Echarts.md +102 -0
  275. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-components.md +130 -0
  276. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-css.md +127 -0
  277. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-factory.md +460 -0
  278. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-version.md +111 -0
  279. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer.md +288 -0
  280. package/skills/weaver-e10-builder/references/esb-interface/guide-import.md +34 -0
  281. package/skills/weaver-e10-builder/references/form/guide-create-form.md +248 -0
  282. package/skills/weaver-e10-builder/references/form/guide-ebuilder-filter.md +73 -0
  283. package/skills/weaver-e10-builder/references/form/guide-ebuilder-scope.md +82 -0
  284. package/skills/weaver-e10-builder/references/form/guide-field-linkage.md +123 -0
  285. package/skills/weaver-e10-builder/references/form/guide-form-archive-permission.md +175 -0
  286. package/skills/weaver-e10-builder/references/form/guide-form-association.md +124 -0
  287. package/skills/weaver-e10-builder/references/form/guide-form-button.md +169 -0
  288. package/skills/weaver-e10-builder/references/form/guide-form-data.md +78 -0
  289. package/skills/weaver-e10-builder/references/form/guide-form-formula-functions.md +343 -0
  290. package/skills/weaver-e10-builder/references/form/guide-form-layout-incremental.md +90 -0
  291. package/skills/weaver-e10-builder/references/form/guide-form-layout-planning.md +68 -0
  292. package/skills/weaver-e10-builder/references/form/guide-form-linkage.md +269 -0
  293. package/skills/weaver-e10-builder/references/form/guide-form-message.md +74 -0
  294. package/skills/weaver-e10-builder/references/form/guide-form-physical-table.md +146 -0
  295. package/skills/weaver-e10-builder/references/form/guide-form-serial-mark.md +47 -0
  296. package/skills/weaver-e10-builder/references/form/guide-form-sub-detail.md +82 -0
  297. package/skills/weaver-e10-builder/references/form/guide-form-view-permission.md +38 -0
  298. package/skills/weaver-e10-builder/references/form/guide-form-view.md +371 -0
  299. package/skills/weaver-e10-builder/references/form/guide-formula-linkage.md +281 -0
  300. package/skills/weaver-e10-builder/references/form/guide-list-columns.md +52 -0
  301. package/skills/weaver-e10-builder/references/form/guide-list-custom-text.md +52 -0
  302. package/skills/weaver-e10-builder/references/form/guide-list-stats.md +136 -0
  303. package/skills/weaver-e10-builder/references/form/guide-virtual-form.md +156 -0
  304. package/skills/weaver-e10-builder/references/form/ref-form-fields.md +293 -0
  305. package/skills/weaver-e10-builder/references/form/style-templates.md +97 -0
  306. package/skills/weaver-e10-builder/references/hrm/guide-matrix.md +245 -0
  307. package/skills/weaver-e10-builder/references/hrm/guide-org-employee.md +155 -0
  308. package/skills/weaver-e10-builder/references/menu/system-menus.md +75 -0
  309. package/skills/weaver-e10-builder/references/report/add-dataset-registration-guide.md +139 -0
  310. package/skills/weaver-e10-builder/references/report/ai-report-workflow.md +412 -0
  311. package/skills/weaver-e10-builder/references/report/api-report-build-fast-path.md +275 -0
  312. package/skills/weaver-e10-builder/references/report/app-datasource-lookup-guide.md +230 -0
  313. package/skills/weaver-e10-builder/references/report/cell-config-echo-guide.md +163 -0
  314. package/skills/weaver-e10-builder/references/report/cell-transform-guide.md +147 -0
  315. package/skills/weaver-e10-builder/references/report/condition-format-guide.md +140 -0
  316. package/skills/weaver-e10-builder/references/report/cross-dataset-filter-guide.md +304 -0
  317. package/skills/weaver-e10-builder/references/report/dataset-query-filter-guide.md +235 -0
  318. package/skills/weaver-e10-builder/references/report/dataset-sidebar-ops-guide.md +280 -0
  319. package/skills/weaver-e10-builder/references/report/dataset-table-field-contract-guide.md +339 -0
  320. package/skills/weaver-e10-builder/references/report/datasource-metadata-guide.md +365 -0
  321. package/skills/weaver-e10-builder/references/report/datasource-selection-and-parent-filter-guide.md +148 -0
  322. package/skills/weaver-e10-builder/references/report/date-range-query-reference.md +102 -0
  323. package/skills/weaver-e10-builder/references/report/default-header-style-guide.md +70 -0
  324. package/skills/weaver-e10-builder/references/report/designer-blank-prevention-guide.md +111 -0
  325. package/skills/weaver-e10-builder/references/report/event-hreflink-guide.md +184 -0
  326. package/skills/weaver-e10-builder/references/report/field-bind-exact-match-guide.md +208 -0
  327. package/skills/weaver-e10-builder/references/report/formula-cell-api-guide.md +258 -0
  328. package/skills/weaver-e10-builder/references/report/guide-report-build.md +131 -0
  329. package/skills/weaver-e10-builder/references/report/guide-report-modify.md +100 -0
  330. package/skills/weaver-e10-builder/references/report/guide-report-multisource.md +143 -0
  331. package/skills/weaver-e10-builder/references/report/guide-report-query.md +98 -0
  332. package/skills/weaver-e10-builder/references/report/hidden-row-and-header-merge-guide.md +100 -0
  333. package/skills/weaver-e10-builder/references/report/layout-showlocation-freeze-guide.md +167 -0
  334. package/skills/weaver-e10-builder/references/report/preaggregate-auto-disable-guide.md +107 -0
  335. package/skills/weaver-e10-builder/references/report/query-condition-api-guide.md +890 -0
  336. package/skills/weaver-e10-builder/references/report/ref-report-commands.md +122 -0
  337. package/skills/weaver-e10-builder/references/report/ref-report-pitfalls.md +226 -0
  338. package/skills/weaver-e10-builder/references/report/report-baseinfo-defaults-guide.md +117 -0
  339. package/skills/weaver-e10-builder/references/report/report-building-guide.md +511 -0
  340. package/skills/weaver-e10-builder/references/report/report-config-schema.md +445 -0
  341. package/skills/weaver-e10-builder/references/report/report-create-modes-guide.md +182 -0
  342. package/skills/weaver-e10-builder/references/report/report-data-model.md +447 -0
  343. package/skills/weaver-e10-builder/references/report/report-delivery-contract.md +101 -0
  344. package/skills/weaver-e10-builder/references/report/report-designer-feature-map.md +500 -0
  345. package/skills/weaver-e10-builder/references/report/report-internal-error-guide.md +78 -0
  346. package/skills/weaver-e10-builder/references/report/report-knowledge-base.md +389 -0
  347. package/skills/weaver-e10-builder/references/report/report-lifecycle-api-guide.md +392 -0
  348. package/skills/weaver-e10-builder/references/report/report-list-page-ops-guide.md +191 -0
  349. package/skills/weaver-e10-builder/references/report/report-permission-guide.md +365 -0
  350. package/skills/weaver-e10-builder/references/report/report-requirement-analysis-template.md +202 -0
  351. package/skills/weaver-e10-builder/references/report/report-self-check-guide.md +164 -0
  352. package/skills/weaver-e10-builder/references/report/safe-partial-save-guide.md +151 -0
  353. package/skills/weaver-e10-builder/references/report/snowflake-id-precision-guide.md +84 -0
  354. package/skills/weaver-e10-builder/references/report/spec-build-schema.md +294 -0
  355. package/skills/weaver-e10-builder/references/report/targeted-fix-guide.md +97 -0
  356. package/skills/weaver-e10-builder/references/report/user-request-scope-only-guide.md +82 -0
  357. package/skills/weaver-e10-builder/references/workflow/guide-function-management.md +154 -0
  358. package/skills/weaver-e10-builder/references/workflow/guide-opinion-settings.md +126 -0
  359. package/skills/weaver-e10-builder/references/workflow/guide-workflow-action.md +174 -0
  360. package/skills/weaver-e10-builder/references/workflow/guide-workflow-auth-resp.md +224 -0
  361. package/skills/weaver-e10-builder/references/workflow/guide-workflow-condition.md +447 -0
  362. package/skills/weaver-e10-builder/references/workflow/guide-workflow-node-layout.md +181 -0
  363. package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc-setting.md +248 -0
  364. package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc.md +68 -0
  365. package/skills/weaver-e10-builder/references/workflow/guide-workflow.md +527 -0
  366. package/skills/weaver-e10-builder/references/workflow/operator-matrix.md +76 -0
  367. package/skills/weaver-e10-caizhilian/SKILL.md +43 -16
  368. package/skills/weaver-e10-caizhilian/references/agent-entry.md +7 -3
  369. package/skills/weaver-e10-caizhilian/references/collaboration.md +5 -3
  370. package/skills/weaver-e10-caizhilian/references/document.md +33 -11
  371. package/skills/weaver-e10-caizhilian/references/file-collection.md +4 -3
  372. package/skills/weaver-e10-caizhilian/references/file-upload.md +2 -3
  373. package/skills/weaver-e10-caizhilian/references/files.md +23 -2
  374. package/skills/weaver-e10-caizhilian/references/folder.md +48 -16
  375. package/skills/weaver-e10-caizhilian/references/setting-attach.md +61 -42
  376. package/skills/weaver-e10-caizhilian/references/setting-backup.md +13 -51
  377. package/skills/weaver-e10-caizhilian/references/setting-encrypt.md +20 -51
  378. package/skills/weaver-e10-caizhilian/references/setting-storage.md +82 -147
  379. package/skills/weaver-e10-caizhilian/references/source-manifest.json +99 -1
  380. package/skills/weaver-e10-caizhilian/references/withheld.md +20 -44
  381. package/skills/weaver-e10-shared/SKILL.md +24 -18
  382. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +16 -15
  383. package/skills/weaver-e10-shared/references/non-interactive-environment.md +10 -10
  384. package/skills/weaver-e10-workflow/SKILL.md +23 -44
  385. package/skills/weaver-e10-workflow/references/source-manifest.json +40 -25
  386. package/skills/weaver-e10-workflow/references/workflow-create.md +278 -85
  387. package/skills/weaver-e10-workflow/references/workflow-edit.md +1 -1
  388. package/skills/weaver-e10-workflow/references/workflow-memory.md +1 -4
  389. package/skills/weaver-e10-workflow/references/workflow-query.md +2 -2
  390. package/skills/weaver-e10-yepiaotong/SKILL.md +10 -7
  391. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +49 -1
  392. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-qys-ledger.md +66 -0
  393. package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +59 -36
  394. package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +54 -509
  395. package/skills/weaver-e10-yepiaotong/references/reim-examples.md +182 -345
  396. package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +4 -5
  397. package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +153 -345
  398. package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +5 -5
  399. package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +182 -154
  400. package/skills/weaver-e10-yepiaotong/references/source-manifest.json +96 -0
  401. package/skills/weaver-e10-yepiaotong/references/reim-fast-path.md +0 -119
@@ -0,0 +1,169 @@
1
+ # 台账视图按钮显示位置
2
+
3
+ 用于将已有系统按钮或自定义按钮显示在指定视图的行上、行末下拉或顶部。配置的是按钮 `showPosition`,与整行点击的 `form list-event`、字段点击的 `form list-click` 独立。
4
+
5
+ ## 查询与设置
6
+
7
+ ```bash
8
+ e10-cli form button list <objId> <appId>
9
+ e10-cli form button views <objId> <appId> <buttonId>
10
+ e10-cli form button position <objId> <appId> <buttonId> --view <listId> --position 行上
11
+ ```
12
+
13
+ `views` 返回平台 `getViewDatas` 对此按钮开放的视图,以及现有位置配置。`--view` 支持视图 ID、唯一名称、表单页语义“新建/编辑/显示”;多个同名视图必须用 ID。省略视图或使用“台账”时,必须只有一个可选台账,否则拒绝保存。
14
+
15
+ | 显示位置 | 平台值 |
16
+ |---|---|
17
+ | 右上 | `rightTop` |
18
+ | 右上下拉 | `rightTopDropDown` |
19
+ | 行上(行内) | `lineEnd` |
20
+ | 行末下拉 | `LineEndDropDown` |
21
+
22
+ 行上、行末下拉只适用于台账,不适用于表单新建/编辑/显示页。
23
+
24
+ ## 多视图及替换语义
25
+
26
+ 普通设置默认合并:仅更新指定视图,保留其余台账及表单页的位置。同一视图的旧位置数组由此次指定的位置数组替换;需要多位置时一次传齐。
27
+
28
+ ```bash
29
+ e10-cli form button position <objId> <appId> <buttonId> --view <listId> --position 行上 右上
30
+ e10-cli form button position <objId> <appId> <buttonId> --show-position @button-positions.json
31
+ ```
32
+
33
+ 不同视图使用不同位置时,JSON 文件示例(将 ID 占位替换为实际值):
34
+
35
+ ```json
36
+ {
37
+ "<listIdA>_table": ["lineEnd"],
38
+ "<listIdB>_table": ["LineEndDropDown"],
39
+ "show_form": ["rightTop"],
40
+ "edit_form": ["rightTopDropDown"]
41
+ }
42
+ ```
43
+
44
+ `--show-position` 也默认合并,不能与 `--position/--view` 同时使用。显式 `--replace` 才替换全部页面配置;未列出的页面不再显示该按钮。`--show-position '{}' --replace` 清空所有显示位置。
45
+
46
+ 新建自定义按钮也支持 `form button add ... --view <listId> --position 行上`。按钮点击动作仍由原有动作配置决定;改变显示位置不会自动添加行数据参数。
47
+
48
+ ## 打开页面与当前行字段映射
49
+
50
+ 按钮可以打开固定 URL、平台视图或表单布局;流程快捷入口本质上打开流程绑定表单的“新建布局”。四种目标参数互斥:
51
+
52
+ ```bash
53
+ # 打开目标视图并按当前行过滤:目标字段 ← 来源字段
54
+ e10-cli form button add <objId> <appId> "查看明细" --open-view <视图名或viewId> --map "关联主表:数据ID" --view <来源视图> --position 行上
55
+
56
+ # 打开表单新建/编辑/显示布局并预填,可通过 --target-app 跨应用
57
+ e10-cli form button add <objId> <appId> "新建明细" --open-layout <目标表名或objId> --layout-type 新建 --map "关联主表:数据ID" --view <来源视图> --position 行上
58
+
59
+ # 发起当前应用内流程;内部解析流程绑定表单并打开新建布局
60
+ e10-cli form button add <objId> <appId> "发起申请" --start-workflow <流程名或workflowId> --map "关联主表:数据ID" --view <来源视图> --position 行上
61
+
62
+ # 无当前行参数的顶部入口
63
+ e10-cli form button add <objId> <appId> "发起申请" --start-workflow <流程> --view <来源视图> --position 右上
64
+ ```
65
+
66
+ `--map` 可连续传多项,字段两端均支持唯一名称或 ID。视图动作生成原生 `VIEWPORT + autoFillParams`,布局动作生成 `LAYOUT + paramsMode=2`,不是拼固定 URL。EBuilder 目标字段通常映射来源“数据ID”。行上/行末下拉存在当前行上下文,可以使用映射;右上/右上下拉没有确定的单行上下文,禁止使用 `--map`。
67
+
68
+ 更新已有按钮动作而不改变位置和权限:
69
+
70
+ ```bash
71
+ e10-cli form button action-set <objId> <appId> <buttonId> --open-view <视图> --map "关联主表:数据ID"
72
+ ```
73
+
74
+ 当前仅管理一个 `openpage` 动作,不用于复杂多动作编排。`--start-workflow` 暂只解析当前应用内流程;跨应用普通视图/布局使用 `--target-app`。
75
+
76
+ ## 按钮基础属性
77
+
78
+ `form button set` 改按钮的展示配置,**已有的动作和权限原样保留**:
79
+
80
+ ```bash
81
+ # 名称 / 提示内容 / 备注
82
+ e10-cli form button set <objId> <appId> <buttonId> --name "提交" --tips "请确认数据无误" --desc "业务备注"
83
+
84
+ # 图标(存的是 JSON 串,命令负责拼装)
85
+ e10-cli form button set <objId> <appId> <buttonId> --icon Icon-N-Offer-management --icon-display line
86
+ e10-cli form button set <objId> <appId> <buttonId> --icon Icon-N-Offer-management --icon-color "#ff0000" --icon-bg "#ffffff"
87
+ e10-cli form button set <objId> <appId> <buttonId> --icon-none # 清空图标
88
+ e10-cli form button set <objId> <appId> <buttonId> --only-icon # 只显示图标
89
+
90
+ # 点击日志
91
+ e10-cli form button set <objId> <appId> <buttonId> --no-log
92
+ e10-cli form button set <objId> <appId> <buttonId> --log --log-message "提交了单据"
93
+ ```
94
+
95
+ `--icon-display` 取 `line`(描边)或 `fill`(填充);只改颜色/描边时按钮必须已有图标。
96
+
97
+ ### 数据过滤
98
+
99
+ 按钮的「数据过滤」决定**列表里哪些行**受该按钮影响,条件语法与 `form list-filter` **完全一致**:
100
+
101
+ ```bash
102
+ e10-cli form button set <objId> <appId> <buttonId> --add '{"conditions":[{"fieldId":"<fieldId>","func":"contains","value":"abc"}]}'
103
+ e10-cli form button set <objId> <appId> <buttonId> --replace @cond.json
104
+ e10-cli form button set <objId> <appId> <buttonId> --remove <fieldId>
105
+ e10-cli form button set <objId> <appId> <buttonId> --relation or
106
+ e10-cli form button set <objId> <appId> <buttonId> --clear-filter
107
+ ```
108
+
109
+ `--add` 叠加、`--replace` 整体覆盖、`--remove` 按字段摘、`--relation` 只调顶层关系,同名同义。启用数据过滤时开关 `conditionEnable` 自动置 1,`--clear-filter` 置回 0。另有 `--disable-condition` / `--clear-disable-condition` 管「禁用条件」。
110
+
111
+ `form button add` 建按钮时也能一次带上:`--tips --desc --icon --only-icon --no-log --log-message --data-filter`。
112
+
113
+ ## 按钮权限
114
+
115
+ 「按钮权限」管**哪些人能看见并点击这个按钮**,与表单共享权限是两套:
116
+
117
+ ```bash
118
+ e10-cli form button permission <objId> <appId> <buttonId> # 列出
119
+ e10-cli form button permission <objId> <appId> <buttonId> --add-all
120
+ e10-cli form button permission <objId> <appId> <buttonId> --add-company 某分部 --contain-extra
121
+ e10-cli form button permission <objId> <appId> <buttonId> --add-department 某部门
122
+ e10-cli form button permission <objId> <appId> <buttonId> --add-people 某人
123
+ e10-cli form button permission <objId> <appId> <buttonId> --remove 1 # 序号(从 1 起)或权限 id
124
+ e10-cli form button permission <objId> <appId> <buttonId> --clear
125
+ ```
126
+
127
+ 授权对象支持**全体 / 分部 / 部门 / 人员**四类,主体可写名称或 ID。名称要求精确同名,撞名会报错并列出候选 id;取不到显示名也会直接报错,不会写入一条空名字。`--contain-extra` 表示含下级。其余授权对象类型本轮不支持,遇到会当场报错而不是写错。
128
+
129
+ 未配置过权限的按钮,平台会保留一条「全体」。保存后按**集合**回读核对(平台会重排顺序,不比数组顺序)。
130
+
131
+ ## 按钮动作(可挂多个)
132
+
133
+ 一个按钮可以挂**多个**动作。`form button action` 负责增删查:
134
+
135
+ ```bash
136
+ e10-cli form button action <objId> <appId> <buttonId> # 列出(序号 / 类型 / 摘要)
137
+ e10-cli form button action <objId> <appId> <buttonId> --remove 2 # 按序号或动作 id
138
+ e10-cli form button action <objId> <appId> <buttonId> --clear # 清空自定义动作
139
+ ```
140
+
141
+ 追加动作(同一次命令里按 打开页面 → 确认框 → JavaScript → 编辑字段值 → 触发逻辑流 的顺序追加,可一次给多种):
142
+
143
+ | 动作 | 用法 |
144
+ |---|---|
145
+ | 打开页面(URL) | `--add-url <url> [--page-type LINK\|CUSTOMPAGE] [--map "参数名:来源字段"]` |
146
+ | 打开页面(视图 / 布局 / 流程) | `--add-view <视图>`、`--add-layout <表单> [--layout-type 新建\|编辑\|显示]`、`--add-start-workflow <流程>`,共用 `--map "目标字段:来源字段"` |
147
+ | 确认框 | `--add-confirm --confirm-title <标题> --confirm-content <正文> [--confirm-true <文案>] [--confirm-false <文案>]` |
148
+ | JavaScript | `--add-js --code <源码\|@文件>` |
149
+ | 编辑字段值 | `--add-edit-field "字段:值"`(可多个;字段写 fieldId 或字段标题) |
150
+ | 触发逻辑流 | `--add-logic <逻辑流名或ID> [--logic-ecode-id <id>]` |
151
+
152
+ `--open-type` 管打开方式:`1` 弹窗 / `2` 当前页 / `3` 新窗口。
153
+
154
+ ### 使用说明与边界
155
+
156
+ - **编辑字段值**本轮只支持「赋固定值」。同一次命令里多次 `--add-edit-field` 会并进同一条动作(按字段去重,同字段后写的覆盖先写的);按钮上已有该动作时会并入它,不会多出一条。
157
+ - **触发逻辑流**只做绑定,**不生成**逻辑流。按名称解析要求精确同名,撞名报错并列出候选。`ecodeId` 可用 `--logic-ecode-id` 指定;不给时沿用该按钮上已有的绑定值,都没有则留空。
158
+ - **JavaScript** 源码建议用 `--code @文件` 传入,避免命令行转义把脚本弄坏。
159
+ - `action-set` 是早期只支持单一打开页面动作的命令,**已标记废弃**,等价于 `action --clear --add-view …`;仍可用,但新需求请用 `form button action`。
160
+
161
+ 保存沿用「读回为底 → 只覆盖本次要改的部分 → 写 → 回读」:改动作时权限原样保留,改属性或权限时动作原样保留,互不冲掉。改完若提示回读不一致,远端可能已被改动,先重新查询再处理。
162
+
163
+ ## 保存与验证
164
+
165
+ 命令先分页查找按钮,再读取动作、权限和可选视图。提交时保留按钮基础配置、完整动作和权限,及接口返回的日志/自定义提示设置,并按视图实际名称重建 `showPositionSpan`。
166
+
167
+ 保存后回读按钮位置并核对动作、权限 ID 集合;成功输出 `verified: true`。若提示“已保存,但回读不一致”,远端可能已修改,必须先重新查询再处理。该验证属于配置回读,不代表已验证按钮点击行为或浏览器渲染。
168
+
169
+ 计划模板 3.3 中必须记录:按钮名称/ID、来源视图名称/ID、显示位置、目标类型与名称/ID、每条“目标字段 ← 来源字段”映射、验证结果。只有需求涉及按钮展示时才填写,无需求标“— 无”。系统删除按钮测试仅核对配置和显示,不点击删除业务数据。
@@ -0,0 +1,78 @@
1
+ # 表单数据 CLI 操作
2
+
3
+ 通过 CLI 读写表单数据(不需要写页面代码)。JS 编码 API(getSimpleData/saveFormData 等)见 `coding/guide-form-crud.md`。
4
+
5
+ ## 读数据
6
+
7
+ ```bash
8
+ e10-cli form data list <objId> [--page <n>] [--size <n>]
9
+ ```
10
+
11
+ 返回该表单数据记录。`--page` 页码(缺省 1)、`--size` 每页条数(缺省 1000;不传 pageInfo 平台默认卡 10 条)。
12
+
13
+ ## 写数据(新增)
14
+
15
+ ```bash
16
+ e10-cli form data add <objId> <appId> @data.json
17
+ # 或直接传 JSON:e10-cli form data add <objId> <appId> '{"单行文本":"x","金额":1000,"类型":"A"}'
18
+ ```
19
+
20
+ data.json 格式(`@` 开头为文件路径)。key 可用 **fieldId(长 ID)或字段名(中文)**,CLI 自动按字段类型构造(走 `form/core/saveFormData`,dataDetails 按类型分):
21
+
22
+ ```json
23
+ {
24
+ "单行文本": "张三",
25
+ "金额": 1000,
26
+ "签订日期": "2026-01-01",
27
+ "类型": "A",
28
+ "备注": "一段文字"
29
+ }
30
+ ```
31
+
32
+ | 字段类型 | 值格式 |
33
+ |---------|--------|
34
+ | Text / Number / Money | 直接值 |
35
+ | TextArea | 直接值(文本) |
36
+ | Date / DateTime | `"2026-01-01"` / `"2026-01-01 10:30"` |
37
+ | Select / RadioBox | **选项名(自动解析为 valueKey)** 或 valueKey(长 ID) |
38
+ | CheckBox / SelectMultiple | 选项名数组 `["A","B"]` 或 valueKey 数组 |
39
+ | Employee / Department | 用户/部门 ID(暂未支持按名解析) |
40
+ | FileComponent | `"fileid1,fileid2"` |
41
+
42
+ > **除非用户明确要求,否则不要往表单写入任何数据。** 表单创建完成后只需确认字段正确即可,不要自动插入测试数据。
43
+
44
+ ## 读明细:`detail`
45
+
46
+ `list` 只返回主表。要**连明细一起读**用 `detail`:
47
+
48
+ ```bash
49
+ e10-cli form data detail <objId> <appId> <dataId> [--no-detail]
50
+ ```
51
+
52
+ 输出主表字段(按显示名)与各明细表的行。`--no-detail` 表示只要主表。
53
+
54
+ ## 改数据:`update`
55
+
56
+ ```bash
57
+ e10-cli form data update <objId> <appId> <dataId> @patch.json [--detail-mode cover|append]
58
+ ```
59
+
60
+ `@patch.json` 的写法和 `add` 一样(key 用字段名),**只需写要改的字段**。带明细表名即处理明细:
61
+
62
+ ```json
63
+ { "金额": 1200, "物料明细": [ { "物料名称": "螺丝", "数量": 100 } ] }
64
+ ```
65
+
66
+ - `--detail-mode cover`(缺省):**整表覆盖**该明细的行 —— 写几行就是几行,原来的行被替换
67
+ - `--detail-mode append`:只追加,原有明细行保留
68
+
69
+ 不传明细表名时,明细原样不动。
70
+
71
+ > `add` 走设计器那条保存链(`form/core/saveFormData`,**一次一条、只写主表**);
72
+ > `update` 与 `detail` 走表单数据 OpenAPI。
73
+
74
+ ## 删数据
75
+
76
+ ```bash
77
+ e10-cli form data delete <objId> <dataId>
78
+ ```
@@ -0,0 +1,343 @@
1
+ # 字段函数公式大全(平台 funcList)
2
+
3
+ > 来源:平台公式函数目录,共 **219 个函数**,11 类。写 `fields.json` 的 `formula` 或 `form formula set --expression` 时查这里。
4
+ > 引用字段语法:`{主表.字段名}` / `{明细表名.字段名}`;**日期差用 `DAYS(开始,结束)`**(相减不生效)。
5
+ >
6
+ > **两种写法都收**:设计器的公式编辑器里显示和输入的是方括号 `[字段名]`,平台存储的是花括号
7
+ > `{主表.字段名}`。CLI 两者都认,**从编辑器里复制原文直接传即可**,会先归一化成花括号再下发。
8
+ > 不必自己把 `[通知]` 改写成 `{主表.通知}`。
9
+ >
10
+ > ⚠️ 注意区分:**函数签名里的 `[...]` 表示「可选参数」**(如 `CONCAT(文本1, 文本2, [文本3, …])`),
11
+ > 而表达式里写在字段位置上的 `[字段名]` 才是字段引用。别把签名里的方括号当成引用照抄。
12
+ >
13
+ > 返回类型不填时按目标字段类型推断(数字/金额→Number,日期/时间→Date,其余→String)。
14
+ > **纯常量公式**(不含任何字段引用)平台允许,会带一条提示正常保存。
15
+ > 完整原始数据含参数说明/示例结果:`senba6/公式表.json`。
16
+
17
+ ## ⚠️ 写公式前先记住这几条
18
+
19
+ 这四条是**平台侧的语言规则**,写错**不报错**,只是算不对或整段失效 —— 出问题很难往回找。
20
+
21
+ **1. 函数名称必须大写。** `CONCAT(...)` / `VALUE(...)` / `IF(...)` / `SUM(...)`,小写平台不认。
22
+ > **例外:自定义 JS 脚本函数保持原样大小写** —— `default()`、`replaceAll()`、`countRelate()`、`getAddHrmIds()` 这些(见「自定义JS脚本函数」一类)是用户脚本注册的,名字怎么写就怎么用,**别跟着一起改成大写**。
23
+
24
+ **2. 逻辑比较用 `==`(两个等号),不是 `=`(一个等号)。**
25
+
26
+ ```
27
+ ✅ IF({主表.状态}=="已完成", 1, 0)
28
+ ❌ IF({主表.状态}="已完成", 1, 0) ← 单个等号是赋值语义,不是比较
29
+ ```
30
+
31
+ **3. 给字段赋值用 `=`(一个等号),它只出现在整条公式的最左边。**
32
+
33
+ ```
34
+ {主表.销售金额}=VALUE({主表.数量})*VALUE({主表.单价})
35
+ └──── 赋值,一个等号 ────┘└──── 函数体内部,比较用两个等号 ────┘
36
+ ```
37
+
38
+ 顶层那个 `=` 与函数体里的 `==` 是**两个层次**的东西,别因为看见 `=` 就写成 `==`,也别在函数体里把比较写成 `=`。函数联动的赋值式与 CLI 的关系见 `guide-formula-linkage.md`。
39
+
40
+ **4. 跨表复制粘贴公式,必须把非本表的字段变量换掉。** 从别的表单复制来的公式里,`{主表.X}` / `{明细表.X}` 指的是**原来那张表**的字段。粘到当前表必须逐个替换成本表字段 —— 平台按名字找字段,找不到、或者找到同名但语义不同的字段,**都不会拦住你**,只会静默算出不对的结果。
41
+
42
+ **5. 选项型控件(Select / RadioBox / CheckBox)要比的值,得引用「选项本身」,不能拿字符串比。**
43
+
44
+ ```
45
+ ✅ IF({主表.性别}=={主表.性别.男}, 65, 60) ← 三段式:表.字段.选项
46
+ ❌ IF({主表.性别}=='男', 65, 60) ← 恒不成立
47
+ ```
48
+
49
+ 选项在库里存的是 **valueKey**(一串 id),不是选项名,所以拿 `'男'` 去比**永远不相等**;而平台**照收、不报错、回 200** —— 写完看着全绿,结果永远不对,是最难查的一类错。`e10-cli` 解析到「选项型字段 与字符串字面量 做 `==`/`!=`」会**出声警告**并给出正确写法,但**不会替你改**(表达式合不合法最终由平台定)。
50
+
51
+ ⚠ 选项引用必须写**完整三段**。`[性别.男]` 只有两段,会被当成「明细表 `性别` 里的字段 `男`」—— 两段的方括号写法是既有的「明细表.字段名」,两者撞车,不给它开后门。
52
+
53
+ ## 函数速查矩阵
54
+
55
+ | 分类 | 函数(中文名) |
56
+ |------|--------------|
57
+ | 字符函数 | CONCAT(链接多个文本), TEXT(将变量转为文本), VALUE(将文本转为数字), LEN(返回文本长度), SEARCH(在文本中查找关键字), REPLACE(替换文本中的字), REPT(将文本重复指定次数), PAD(将文本填充至指定长度), TRIM(清除前后空格), LEFT(返回文本左侧开始的文字), RIGHT(返回文本右侧开始的文字), MID(返回文本指定位置开始的文字), SCORE(获取选项型控件分数), IDCARD(身份证函数), ISSTRING(是否是字符串), ISJSON(JSON字符格式化), GETJSONVALUE(JSON字符取值), ISINT(字符内容是否是整数), ISNUMBER(字符内容是否是数字), ISFLOAT(字符内容是否是浮点型), SPLIT(字符分割), LOWER(字符转小写), UPPER(字符转大写), TEXTBEFORE(截取N个分割符之前的字符), TEXTAFTER(截取N个分隔符之后的字符), ENDWITH(判断字符串str1是否以str2结束), NVL(在所有参数中返回第一个不是null的值), CODE(计算文本串中第一个字符的数字代码), RMB(数字转换成金额写法), BAHTTEXT(数字金额转成泰铢文本表示), DOLLAR(数字金额转换成美元文本表示), PROPER(将首字母大写其余小写), TEXTJOIN(分隔符文本化,支持排除空值), LTRIM(清除左边空格), RTRIM(清除右边空格), SUBSTR(将指定字符串按指定位数进行截取), ASC(返回半角(单字节)字符), CONCATENATE(函数用于将多个变量合并成一个单独的字符串), ENCODEURL(将文本字符串中的特殊字符编码为 URL 编码格式), NUMBERSTRING(数字转汉字), DOLLARDE(将数字转换为以小数部分表示的价格), DOLLARFR(转换成分数表示的金额数字), EXACT(判断两个字符是否完全相等(区分大小写)), REPLACEALL(依据关键字替换所有字符) |
58
+ | 聚合函数 | COUNT(计数), SUM(求和), AVG(平均值), MIN(最小值), MAX(最大值), COUNTDATA(跨表计数), SUMDATA(跨表求和), AVGDATA(跨表求平均值), MINDATA(跨表求最小值), MAXDATA(跨表求最大值), COUNTIF(计数), SUMIF(合计), MAXIF(最大值), MINIF(最小值), AVGIF(平均数), AVGIFS(条件过滤求平均数), SUMIFS(条件过滤求合计), COUNTIFS(条件过滤求总数), MAXIFS(条件过滤求最大值), MINIFS(条件过滤求最小值) |
59
+ | 日期函数 | TODAY(当前日期), NOW(当前日期时间), DATEADD(对日期加减年、月、日), DATEDIFF(返回两个日期的差值), DATEFORMAT(返回指定格式的日期), YEAR(返回日期中的年), MONTH(返回日期中的月), DAY(返回日期中的日), HOUR(返回日期中的小时), MINUTE(返回日期中的分钟), SECOND(返回日期中的秒), WEEKNUM(返回日期为第几周), WEEKDAY(返回日期为星期几), NETWORKDAYSPI(返回所选时间段内包含的工作日天数), EOMONTH(返回某月最后一天日期), CURRYEAR(返回当前年份), CURRMONTH(返回当前月份), CURRDAY(返回当前第几日(当月)), CURRWEEK(返回当前日期是本周第几天), CURRHOUR(返回当前小时), CURRMINUTE(返回当前分), CURRSECOND(返回当前秒), MAXDATE(返回一组日期中的最大值), MINDATE(返回一组日期中的最小值), COMPAREDATE(返回两个日期指定时间的差值), TIMESTAMPTODATE(返回时间戳转换后的日期), DATETOTIMESTAMP(返回日期转换后的时间戳), DATE(拼接日期字符串), DAYS(计算两个日期之间的间隔天数), LUNAR(返回当前日期对应的农历时间), QUARTER(返回日期中的季度), YEARDELTA(返回指定日期后一年的日期), TIME(返回12小时制的时间), CURRDATETIME(获取当前日期时间), GETDATEVALUE(返回指定类型的日期), COMPAREWORKDATE(返回所选时间段内包含的工作日天数), CURRDATE(当前日期), TIMEVALUE(时间值), YEARFRAC(年份差), DAYS360(360天计算) |
60
+ | 逻辑函数 | IF(如果条件为真,则...否则...), AND(且), OR(或), NOT(反转真假结果), IN(变量是否包含在一组结果中), LIKE(文本是否包含任意一个关键字), ISEMPTY(是否为空), TRUE(返回真), FALSE(返回假), IFS(多条件), SWITCH(条件选择), SORT(条件排序), IFERROR(异常处理), NOTEMPTY(是否不为空) |
61
+ | 数学函数 | ROUNDUP(向上舍入), ROUND(四舍五入), ROUNDDOWN(向下舍入), AGGREGATION(聚合运算), MOD(求余), TRUNC(数字格式化), CALDTROW(明细逐行计算函数), ABS(绝对值), RANDOM(随机数生成), POWER(N次方), SQRT(根号), ACOS(返回指定数值的反余弦值), ASIN(返回指定数值的反正弦值), ATAN(计算指定数值的反正切值), CEILING(将参数number沿绝对值增大的方向), COS(返回一个角度的余弦值), DEGREES(将弧度转化为度), EXP(返回e的n次幂), FACT(返回数的阶乘), LN(返回一个数的自然对数), PI(是一个数学常量函数), PROMOTION(返回参数2在参数1上提升的比例), RADIANS(将角度转换成弧度), RANDBETWEEN(在两个数之间生成一个随机整数), SIGN(返回数值的正负性), SIN(计算给定角度的正弦值), TAN(返回指定角度的正切值), DEF(满足过滤条件的明细数据按照【维度】对指标进行聚合运算), EARLIER(满足过滤条件的明细数据按照【维度】对指标进行聚合运算), FLOOR(将参数 Number 沿绝对值减小的方向向下舍入,使其等于最接近Significance的倍数), INT(向下舍入到最接近的整数), RAND(随机返回一个值) |
62
+ | 财务函数 | GETMONEY(获取所给定数字的金额大写) |
63
+ | 自定义拓展函数 | default() |
64
+ | 查找函数 | CHOOSE(返回索引范围内指定的值), VLOOKUPS(按列查找,返回所需值), MATCH(返回指定数值在指定数组区域中的位置), FIND(查找), INDEX(数据索引), UNIQUE(唯一值过滤), FILTER(条件过滤) |
65
+ | 数据库函数 | GETHRMLOGINID(返回指定人员系统账号), GETHRMWORKCODE(返回指定人员编号), GETHRMMANAGER(返回指定人员直接上级), GETHRMEMAIL(获取指定人员邮箱), GETHRMSECLEVEL(获取指定人员安全级别), GETHRMALLMANAGER(返回指定人员所有上级), GETHRMDEPARTMENT(返回指定人员部门), GETHRMSUBCOMPANY(返回指定人员分部), GETDEPARTMENTNAME(返回指定部门名称), GETDEPARTMENTCODE(返回指定部门编号), GETSUPERDEPARTMENT(返回指定部门直接上级部门), GETALLSUPERDEPARTMENT(返回指定部门所有上级部门), GETSUBCOMPANYNAME(返回指定分部名称), GETSUBCOMPANYCODE(返回指定分部编号), GETSUPERSUBCOMPANY(返回指定分部直接上级分部), GETALLSUPERSUBCOMPANY(返回指定分部所有上级分部), GETHRMNAME(获取人员名称), GETHRMMOBILE(获取人员手机号码), GETREQUESTMARK(获取指定流程编号), GETDOCCODE(获取指定文档编号), GETPRJCODE(获取指定项目编号), GETCRMCODE(获取指定客户编号), LANGUAGE(当前语言), LANGUAGEID(当前语言ID), GETREQUESTSTATUS(流程状态), GETEMPIDBYNUMBER(人员编号获取人员ID), GETEMPIDBYACCOUNTNAME(登录名获取人员ID), GETDEPTIDBYNUMBER(部门编号获取部门), GETEMPIDBYMOBILE(人员手机获取人员ID), GETALLPARTNER(获取同部门所有同事), GETSUBDEPARTMENTS(获取所有下级部门), GETALLSUBEMPS(获取所有下级), GETSUBBRANCHSBYPID(获取所有下级分部), GTLDEP(获取一级部门), GTLSDEP(获取一级分部), GETHRMGRADE(获取指定人员职级), GETHRMPOSITION(获取指定人员岗位), GETEMPSTATUS(获取指定人员的状态) |
66
+ | 特殊函数 | DISTANCE(返回两个位置间的直线距离), GETUSER(返回用户的个人资料), FIELDS(根据条件和排序获取指定表格中的全部数据(最多50条)或指定条数的数据的指定字段值的集合。), CONCATOPT(选项合并) |
67
+ | 自定义JS脚本函数 | 1(1), 10(10), 2(2), 3(3), 4(4), 5(5), 6(6), 15(15), 16(16), 8(8), 9(9), replaceAll(replaceAll), commonHrmIds(变更前后未改变的参会人), isMainInfoEqual(变更前后主要信息是否修改(时间地点)), getRemoveHrmIds(获取移除人员), getAddHrmIds(获取新增人员), uniqueNumberString(提醒人员汇总), countRelate(计算浏览按钮选择数量) |
68
+
69
+ ## 各函数格式与示例
70
+
71
+ ### 字符函数(44 个)
72
+
73
+ | 函数 | 格式 | 示例 | 返回 |
74
+ |------|------|------|------|
75
+ | CONCAT(链接多个文本) | `CONCAT(文本1, 文本2, [文本3, …],[#分隔符#])` | CONCAT({总价}/10000, '万元') | string |
76
+ | TEXT(将变量转为文本) | `TEXT(变量)` | TEXT({当前数据.性别}) | string |
77
+ | VALUE(将文本转为数字) | `VALUE([文本、数字、选项])` | VALUE('23') | number |
78
+ | LEN(返回文本长度) | `LEN(文本)` | LEN('大家好dajiahao') | number |
79
+ | SEARCH(在文本中查找关键字) | `SEARCH(关键字, 文本, [搜索开始位置])` | SEARCH('大家', '大家好大家好', 3) | number |
80
+ | REPLACE(替换文本中的字) | `REPLACE(原文本, 替换开始位置, 替换字符数, 新文本)` | REPLACE('大家好大家好', 2, 3, 'dajia') | string |
81
+ | REPT(将文本重复指定次数) | `REPT(文本, 重复次数)` | REPT('大家', 2) | string |
82
+ | PAD(将文本填充至指定长度) | `PAD(原文本, 长度, 填充用的文本, [填充位置])` | PAD('你好', 4, '你', 'LEFT') | string |
83
+ | TRIM(清除前后空格) | `TRIM(文本)` | TRIM(' 大家好 ') | string |
84
+ | LEFT(返回文本左侧开始的文字) | `LEFT(文本, 截取字符数)` | LEFT('大家好', 2) | string |
85
+ | RIGHT(返回文本右侧开始的文字) | `RIGHT(文本, 截取字符数)` | RIGHT('大家好', 2) | string |
86
+ | MID(返回文本指定位置开始的文字) | `MID(文本, 指定位置, 截取字符数)` | MID('大家好', 2, 1) | string |
87
+ | SCORE(获取选项型控件分数) | `SCORE({选项})` | SCORE({当前数据.单选框}) | number |
88
+ | IDCARD(身份证函数) | `IDCARD({身份证号码}, {查找类型})` | IDCARD( ‘43070319980706334X’ , ‘BD’ ) | string |
89
+ | ISSTRING(是否是字符串) | `ISSTRING({任意控件})` | ISSTRING('泛微123456') | boolean |
90
+ | ISJSON(JSON字符格式化) | `ISJSON({变量})` | 假设文本控件={a:123},ISJSON({文本控件}) | boolean |
91
+ | GETJSONVALUE(JSON字符取值) | `GETJSONVALUE({变量1},变量2)` | 假设文本控件={a:123},GETJSONVALUE('{文本控件}','a') | string |
92
+ | ISINT(字符内容是否是整数) | `ISINT({字符})` | ISINT( 2.123 ) | boolean |
93
+ | ISNUMBER(字符内容是否是数字) | `ISNUMBER({字符})` | ISNUMBER('2.123') | boolean |
94
+ | ISFLOAT(字符内容是否是浮点型) | `ISFLOAT({变量})` | ISFLOAT('2.123') | boolean |
95
+ | SPLIT(字符分割) | `SPLIT({字符},{字符})` | 假设文本控件=ABC#DEF,SPLIT('{文本控件}','#') | string |
96
+ | LOWER(字符转小写) | `LOWER({字符})` | LOWER('ABC') | String |
97
+ | UPPER(字符转大写) | `UPPER({字符})` | UPPER('abc') | String |
98
+ | TEXTBEFORE(截取N个分割符之前的字符) | `TEXTBEFORE({目标文本},{分隔符},{索引下标})` | TEXTBEFORE('abc-12','-',1) | String |
99
+ | TEXTAFTER(截取N个分隔符之后的字符) | `TEXTAFTER({目标文本},{分隔符},{索引下标})` | TEXTAFTER('abc-12','-',1) | String |
100
+ | ENDWITH(判断字符串str1是否以str2结束) | `ENDWITH({字符},{字符})` | ENDWITH('abc','c') | all |
101
+ | NVL(在所有参数中返回第一个不是null的值) | `NVL({字符})` | NVL('abc','','') | all |
102
+ | CODE(计算文本串中第一个字符的数字代码) | `CODE({字符})` | CODE('abc') | all |
103
+ | RMB(数字转换成金额写法) | `RMB({字符})` | RMB('1000.23') | all |
104
+ | BAHTTEXT(数字金额转成泰铢文本表示) | `BAHTTEXT({字符})` | BAHTTEXT('1000.23') | all |
105
+ | DOLLAR(数字金额转换成美元文本表示) | `DOLLAR({字符})` | DOLLAR('1000.23') | all |
106
+ | PROPER(将首字母大写其余小写) | `PROPER({字符})` | PROPER('abc') | all |
107
+ | TEXTJOIN(分隔符文本化,支持排除空值) | `TEXTJOIN({字符},{真假值},{字符})` | TEXTJOIN('-',TRUE(),'abc','cde') | all |
108
+ | LTRIM(清除左边空格) | `LTRIM({字符})` | LTRIM(' abc ') | all |
109
+ | RTRIM(清除右边空格) | `RTRIM({字符})` | RTRIM(' abc ') | all |
110
+ | SUBSTR(将指定字符串按指定位数进行截取) | `SUBSTR({字符},{数字},{数字})` | SUBSTR('abcdcf',1,3) | all |
111
+ | ASC(返回半角(单字节)字符) | `ASC({字符})` | ASC('abcABC') | all |
112
+ | CONCATENATE(函数用于将多个变量合并成一个单独的字符串) | `CONCATENATE({字符},{字符})` | CONCATENATE('AA','BB') | all |
113
+ | ENCODEURL(将文本字符串中的特殊字符编码为 URL 编码格式) | `ENCODEURL({字符})` | ENCODEURL('A B C') | all |
114
+ | NUMBERSTRING(数字转汉字) | `NUMBERSTRING({数字},{数字})` | NUMBERSTRING(123456,3) | all |
115
+ | DOLLARDE(将数字转换为以小数部分表示的价格) | `DOLLARDE({数字},{数字})` | DOLLARDE(1.02,16) | all |
116
+ | DOLLARFR(转换成分数表示的金额数字) | `DOLLARFR({数字},{数字})` | DOLLARFR(1.125,16) | all |
117
+ | EXACT(判断两个字符是否完全相等(区分大小写)) | `EXACT({字符},{字符})` | EXACT('ABC','Abc') | boolean |
118
+ | REPLACEALL(依据关键字替换所有字符) | `REPLACEALL({原字符},{目标字符},{替换字符},[指定替换位置])` | REPLACEALL('ABCA','A','a') | all |
119
+
120
+ ### 聚合函数(20 个)
121
+
122
+ | 函数 | 格式 | 示例 | 返回 |
123
+ |------|------|------|------|
124
+ | COUNT(计数) | `COUNT(变量,{变量...{变量N}})` | COUNT(1,2,3,4,5) | Number |
125
+ | SUM(求和) | `SUM(变量,{变量...{变量N}})` | SUM(1,2,3,4,5) | Number |
126
+ | AVG(平均值) | `AVG(变量,{变量...{变量N}})` | AVG(2,2,2) | Number |
127
+ | MIN(最小值) | `MIN(变量,{变量...{变量N}})` | MIN(1,2,3,4,5) | Number |
128
+ | MAX(最大值) | `MAX(变量,{变量...{变量N}})` | MAX(1,2,3,4,5) | Number |
129
+ | COUNTDATA(跨表计数) | `COUNTDATA(表,{条件})` | COUNTDATA({表B},{表B.金额}=={当前表格.金额}) | Number |
130
+ | SUMDATA(跨表求和) | `SUMDATA(数字,{条件})` | SUMDATA({表B.金额},{表B.年度}=={当前表格.年度}) | Number |
131
+ | AVGDATA(跨表求平均值) | `AVGDATA(数字,{条件})` | AVGDATA({表B.金额},{表B.年度}=={当前表格.年度}) | Number |
132
+ | MINDATA(跨表求最小值) | `MINDATA(数字,{条件})` | MINDATA({表B.金额},{表B.年度}=={当前表格.年度}) | Number |
133
+ | MAXDATA(跨表求最大值) | `MAXDATA(数字,{条件})` | MAXDATA({表B.金额},{表B.年度}=={当前表格.年度}) | Number |
134
+ | COUNTIF(计数) | `COUNTIF({数字}...)` | COUNTIF(1,2,3) | number |
135
+ | SUMIF(合计) | `SUMIF({数字}...)` | SUMIF(1,2,3) | number |
136
+ | MAXIF(最大值) | `MAXIF({数字}...)` | MAXIF(1,2,3) | number |
137
+ | MINIF(最小值) | `MINIF({数字}...)` | MINIF(1,2,3) | number |
138
+ | AVGIF(平均数) | `AVGIF({数字}...)` | AVGIF(1,2,3) | number |
139
+ | AVGIFS(条件过滤求平均数) | `AVGIFS({数字}.{变量},{条件})` | AVGIFS({表A.入账},{表A.月份},{表A.月份}=10) | number |
140
+ | SUMIFS(条件过滤求合计) | `SUMIFS({数字},{变量},{条件})` | SUMIFS({表A.入账},{表A.月份},{表A.月份}=10) | number |
141
+ | COUNTIFS(条件过滤求总数) | `COUNTIFS({数字},{变量},{条件},{是否合计选项条数},{是否去重})` | COUNTIFS({表A.入账},{表A.月份},{表A.月份}=10) COUNTIFS({表A.入账},{表A.月份},{表A.月份}=10,TRUE(),TRUE()) | number |
142
+ | MAXIFS(条件过滤求最大值) | `MAXIFS({数字}.{变量},{条件})` | MAXIFS({表A.入账},{表A.月份},{表A.月份}=10) | number |
143
+ | MINIFS(条件过滤求最小值) | `MINIFS({数字}.{变量},{条件})` | MINIFS({表A.入账},{表A.月份},{表A.月份}=10) | number |
144
+
145
+ ### 日期函数(40 个)
146
+
147
+ | 函数 | 格式 | 示例 | 返回 |
148
+ |------|------|------|------|
149
+ | TODAY(当前日期) | `TODAY()` | TODAY() | date |
150
+ | NOW(当前日期时间) | `NOW()` | NOW() | date |
151
+ | DATEADD(对日期加减年、月、日) | `DATEADD(日期,数值 , [单位],[日期累加类型])` | DATEADD('2016-12-21', 3) <br/> DATEADD('2016-12-24 20:00:00', 3, 'H') | date |
152
+ | DATEDIFF(返回两个日期的差值) | `DATEDIFF(日期1, 日期2, [单位])` | DATEDIFF('2016-12-21', '2016-12-24') <br/> DATEDIFF('2016-12-24 20:00:00', '2016-12-25 20:00:00', 'H') | number |
153
+ | DATEFORMAT(返回指定格式的日期) | `DATEFORMAT(日期, 可选格式)` | DATEFORMAT('2016-12-24', 'yyyy-MM-dd') | date |
154
+ | YEAR(返回日期中的年) | `YEAR(日期)` | YEAR('2016-12-24') | number |
155
+ | MONTH(返回日期中的月) | `MONTH(日期)` | MONTH('2016-12-24') | number |
156
+ | DAY(返回日期中的日) | `DAY(日期)` | DAY('2016-12-24') | number |
157
+ | HOUR(返回日期中的小时) | `HOUR(日期)` | HOUR('2016-12-24 20:30:56') | number |
158
+ | MINUTE(返回日期中的分钟) | `MINUTE(日期)` | MINUTE('2016-12-24 20:30:56') | number |
159
+ | SECOND(返回日期中的秒) | `SECOND(日期)` | SECOND('2016-12-24 20:30:56') | number |
160
+ | WEEKNUM(返回日期为第几周) | `WEEKNUM(日期)` | WEEKNUM('2016-12-25')<br/>WEEKNUM('2016-12-25',2) | number |
161
+ | WEEKDAY(返回日期为星期几) | `WEEKDAY(日期)` | WEEKDAY('2016-12-24') | number |
162
+ | NETWORKDAYSPI(返回所选时间段内包含的工作日天数) | `NETWORKDAYSPI(日期1, 日期2, 成员, [类型], [单位])` | 想知道李四在2021-11-07和2021-11-12之间的工作日天数<br/>NETWORKDAYSPI('2021-11-07', '2021-11-12',{U:李四}, 'A','D')<br/>NETWORKDAYSPI('2021-11-07', '2021-11-12',{U:李四}, 'A','ASS') | number |
163
+ | EOMONTH(返回某月最后一天日期) | `EOMONTH(日期,指定日期之前或之后的月数)` | EOMONTH('2021-11-07', -2) | string |
164
+ | CURRYEAR(返回当前年份) | `CURRYEAR()` | 假设当前时间为:2022年2月17日 11:20:30 ,CURRYEAR() | number |
165
+ | CURRMONTH(返回当前月份) | `CURRMONTH()` | 假设当前时间为:2022年2月17日 11:20:30 ,CURRMONTH() | number |
166
+ | CURRDAY(返回当前第几日(当月)) | `CURRDAY()` | 假设当前时间为:2022年2月17日 11:20:30 ,CURRDAY() | number |
167
+ | CURRWEEK(返回当前日期是本周第几天) | `CURRWEEK()` | 假设当前时间为:2022年2月17日 11:20:30 ,CURRWEEK() | number |
168
+ | CURRHOUR(返回当前小时) | `CURRHOUR()` | 假设当前时间为:2022年2月17日 11:20:30 ,CURRHOUR() | number |
169
+ | CURRMINUTE(返回当前分) | `CURRMINUTE()` | 假设当前时间为:2022年2月17日 11:20:30 ,CURRMINUTE() | number |
170
+ | CURRSECOND(返回当前秒) | `CURRSECOND()` | 假设当前时间为:2022年2月17日 11:20:30 ,CURRSECOND() | number |
171
+ | MAXDATE(返回一组日期中的最大值) | `MAXDATE(日期1,日期2,……)` | MAXDATE('2016-12-24', '2022-12-24') | date |
172
+ | MINDATE(返回一组日期中的最小值) | `MINDATE(日期1,日期2,……)` | MINDATE('2016-12-24', '2022-12-24') | date |
173
+ | COMPAREDATE(返回两个日期指定时间的差值) | `COMPAREDATE(日期1,日期2,[比较类型])` | 假设 日期1=2022-04-03、日期2=2022-04-04,COMPAREDATE({日期1},{日期2},'D') | date |
174
+ | TIMESTAMPTODATE(返回时间戳转换后的日期) | `TIMESTAMPTODATE(时间戳,日期格式)` | TIMESTAMPTODATE('1671172579', 'yyyy-MM-dd HH:mm:ss') | string |
175
+ | DATETOTIMESTAMP(返回日期转换后的时间戳) | `DATETOTIMESTAMP(日期)` | DATETOTIMESTAMP('2022-12-16 14:36:19') | string |
176
+ | DATE(拼接日期字符串) | `DATE({年},{月},{日})` | DATE('2022','12','16') | string |
177
+ | DAYS(计算两个日期之间的间隔天数) | `DAYS({日期},{日期})` | DAYS('2022-12-16','2022-12-18') | number |
178
+ | LUNAR(返回当前日期对应的农历时间) | `LUNAR({字符})` | LUNAR('2023','09','08') | all |
179
+ | QUARTER(返回日期中的季度) | `QUARTER({字符})` | QUARTER('2023-02-08') | all |
180
+ | YEARDELTA(返回指定日期后一年的日期) | `YEARDELTA({字符})` | YEARDELTA('2023-02-08') | all |
181
+ | TIME(返回12小时制的时间) | `TIME({字符})` | TIME(16,23,50) | all |
182
+ | CURRDATETIME(获取当前日期时间) | `CURRDATETIME({字符})` | CURRDATETIME('yyyy-MM-dd HH:mm:ss') | all |
183
+ | GETDATEVALUE(返回指定类型的日期) | `GETDATEVALUE({日期},{字符})` | GETDATEVALUE('2023-09-09 12:23:23','Y') | all |
184
+ | COMPAREWORKDATE(返回所选时间段内包含的工作日天数) | `COMPAREWORKDATE(日期1, 日期2, 成员, [类型], [单位])` | 想知道李四在2021-11-07和2021-11-12之间的工作日天数<br/>COMPAREWORKDATE('2021-11-07', '2021-11-12',{U:李四}, 'A','D') | number |
185
+ | CURRDATE(当前日期) | `CURRDATE()` | CURRDATE() | date |
186
+ | TIMEVALUE(时间值) | `TIMEVALUE({时间})` | TIMEVALUE('08:00') | date |
187
+ | YEARFRAC(年份差) | `YEARFRAC({日期},{日期})` | YEARFRAC('2022-09-09','2023-09-09') | date |
188
+ | DAYS360(360天计算) | `DAYS360({日期},{日期})` | DAYS360('2022-09-09','2023-10-09') | date |
189
+
190
+ ### 逻辑函数(14 个)
191
+
192
+ | 函数 | 格式 | 示例 | 返回 |
193
+ |------|------|------|------|
194
+ | IF(如果条件为真,则...否则...) | `IF(条件, 表达式1, 表达式2)` | IF({员工表.年龄} > 60, '退休', '在职') <Br/> IF({员工表.年龄} > 60, IF({员工表.性别} = {员工表.性别.女}, '退休', '在职'), '在职') | all |
195
+ | AND(且) | `AND(条件1, 条件2, [条件3, …])` | AND(2 = 2, 2 < 2) | boolean |
196
+ | OR(或) | `OR(条件1, 条件2, [条件3, …])` | OR(2 = 2, 2 > 3) | boolean |
197
+ | NOT(反转真假结果) | `NOT(逻辑结果)` | NOT(2 > 3) | boolean |
198
+ | IN(变量是否包含在一组结果中) | `IN(变量, [变量1, 变量2, …])` | IN(2, [2, 3, 4]) | boolean |
199
+ | LIKE(文本是否包含任意一个关键字) | `LIKE(文本, [文本1, 文本2, …])` | LIKE('大家好', ['大家', '好']) | boolean |
200
+ | ISEMPTY(是否为空) | `ISEMPTY(变量)` | ISEMPTY({员工表.电话}) | boolean |
201
+ | TRUE(返回真) | `TRUE()` | TRUE() | boolean |
202
+ | FALSE(返回假) | `FALSE()` | FALSE() | boolean |
203
+ | IFS(多条件) | `IFS({条件1},{结果1},{条件2},{结果2}...{默认结果})` | IFS(1>1,1,1=1,2,0) | all |
204
+ | SWITCH(条件选择) | `SWITCH({变量},{条件1},{结果1},{条件2},{结果2}...{默认结果})` | SWITCH({字段1},1,'A',2,'B','C') | all |
205
+ | SORT(条件排序) | `SORT({变量1},{变量2},{变量3}...{排序方式})` | SORT(1,2,5,4,3,'UP') | all |
206
+ | IFERROR(异常处理) | `IFERROR({变量},{变量})` | IFERROR(10/0,'0') | all |
207
+ | NOTEMPTY(是否不为空) | `NOTEMPTY(变量)` | NOTEMPTY({员工表.电话}) | boolean |
208
+
209
+ ### 数学函数(32 个)
210
+
211
+ | 函数 | 格式 | 示例 | 返回 |
212
+ |------|------|------|------|
213
+ | ROUNDUP(向上舍入) | `ROUNDUP(数字, [小数位精确度])` | ROUNDUP(76.9,0) | number |
214
+ | ROUND(四舍五入) | `ROUND(数字, [小数位精确度])` | ROUND(123.456,2),ROUND(123.456,0) | number |
215
+ | ROUNDDOWN(向下舍入) | `ROUNDDOWN(数字, [小数位精确度])` | ROUNDDOWN(76.9,0) | number |
216
+ | AGGREGATION(聚合运算) | `AGGREGATION({数字}...,{聚合运算类型})` | AGGREGATION(1 , 2,3,'AVG') | number |
217
+ | MOD(求余) | `MOD({数字},{数字})` | MOD( 7 , 3 ) | number |
218
+ | TRUNC(数字格式化) | `TRUNC({数字},{精度})` | TRUNC( 2.123 , 2 ) | number |
219
+ | CALDTROW(明细逐行计算函数) | `CALDTROW({字段},{公式或字段})` | 假设:明细有金额1、金额2、金额3等三个控件,明细行数为2,第一行值分别为:5、6、10,第二行的值分别为:1、1、9。CALDTROW({金额3}==10,{金额1}+{金额2}) | all |
220
+ | ABS(绝对值) | `ABS({字段})` | ABS(-9) | all |
221
+ | RANDOM(随机数生成) | `RANDOM({随机数长度},{随机类型})` | RANDOM(5,'NUM') | all |
222
+ | POWER(N次方) | `POWER({数字}, {数字}, {数字})` | POWER(2, 2) <br/> POWER(4, 1/2) <br/> POWER(0.33, 2, 3) | all |
223
+ | SQRT(根号) | `SQRT({数字})` | SQRT(4) | all |
224
+ | ACOS(返回指定数值的反余弦值) | `ACOS({数字})` | ACOS(0.1) | all |
225
+ | ASIN(返回指定数值的反正弦值) | `ASIN({数字})` | ASIN(0.1) | all |
226
+ | ATAN(计算指定数值的反正切值) | `ATAN({数字})` | ATAN(0.1) | all |
227
+ | CEILING(将参数number沿绝对值增大的方向) | `CEILING({数字})` | CEILING(0.5) | all |
228
+ | COS(返回一个角度的余弦值) | `COS({数字})` | COS(60*PI()/180) | all |
229
+ | DEGREES(将弧度转化为度) | `DEGREES({数字})` | DEGREES(1) | all |
230
+ | EXP(返回e的n次幂) | `EXP({数字})` | EXP(1) | all |
231
+ | FACT(返回数的阶乘) | `FACT({数字})` | FACT(4.8) | all |
232
+ | LN(返回一个数的自然对数) | `LN({数字})` | LN(0.5) | all |
233
+ | PI(是一个数学常量函数) | `PI({数字})` | PI() | all |
234
+ | PROMOTION(返回参数2在参数1上提升的比例) | `PROMOTION({数字},{数字})` | PROMOTION(12,14) | all |
235
+ | RADIANS(将角度转换成弧度) | `RADIANS({数字})` | RADIANS(30) | all |
236
+ | RANDBETWEEN(在两个数之间生成一个随机整数) | `RANDBETWEEN({数字},{数字})` | RANDBETWEEN(1,10) | all |
237
+ | SIGN(返回数值的正负性) | `SIGN({数字})` | SIGN(10) | all |
238
+ | SIN(计算给定角度的正弦值) | `SIN({数字})` | SIN(10) | all |
239
+ | TAN(返回指定角度的正切值) | `TAN({数字})` | TAN(0.785) | all |
240
+ | DEF(满足过滤条件的明细数据按照【维度】对指标进行聚合运算) | `DEF(聚合字段, 分组字段,聚合类型[SUM、AVG、COUNT],过滤条件)` | DEF({销售额},{省份},'SUM',{年份}=2013) | all |
241
+ | EARLIER(满足过滤条件的明细数据按照【维度】对指标进行聚合运算) | `EARLIER(排序列,排序类型:[UP、DOWN],聚合目标,聚合类型[SUM、COUNT])` | EARLIER({月份},'UP',{金额},'SUM') | all |
242
+ | FLOOR(将参数 Number 沿绝对值减小的方向向下舍入,使其等于最接近Significance的倍数) | `FLOOR({数字},{数字})` | FLOOR(23.445,1) | all |
243
+ | INT(向下舍入到最接近的整数) | `INT({数字})` | INT(234.32) | all |
244
+ | RAND(随机返回一个值) | `RAND({变量},{变量}...)` | RAND(5,9,10,23,44) | all |
245
+
246
+ ### 财务函数(1 个)
247
+
248
+ | 函数 | 格式 | 示例 | 返回 |
249
+ |------|------|------|------|
250
+ | GETMONEY(获取所给定数字的金额大写) | `GETMONEY({数字})` | GETMONEY(1234) | |
251
+
252
+ ### 自定义拓展函数(1 个)
253
+
254
+ | 函数 | 格式 | 示例 | 返回 |
255
+ |------|------|------|------|
256
+ | default | `` | | text |
257
+
258
+ ### 查找函数(7 个)
259
+
260
+ | 函数 | 格式 | 示例 | 返回 |
261
+ |------|------|------|------|
262
+ | CHOOSE(返回索引范围内指定的值) | `CHOOSE(索引位置,索引目标1...索引目标N)` | 假设:数字输入框1为0,数字输入框2为2,数字输入框3为3,数字输入框4为4。数字输入框1为检索位置的变量,后面3个为检索目标。 示例:CHOOSE({表A.数字输入框1}, {表A.数字输入框2}, {表A.数字输入框3}, {表A.数字输入框4}) | Array |
263
+ | VLOOKUPS(按列查找,返回所需值) | `VLOOKUPS(表,[条件],[返回参数])` | VLOOKUPS({税表},{税表.收入},AND({税表.收入}>{税表.应纳税所得额下限},{税表.收入}<{税表.应纳税所得额上限}),[{税表.税率},{税表.速算扣除数}]) | Array |
264
+ | MATCH(返回指定数值在指定数组区域中的位置) | `MATCH(值,[数组])` | MATCH(15000, [1000, 15000, 2000]) | Number |
265
+ | FIND(查找) | `FIND([{查找值1},{查找值2}...{查找值N}],[{查找目标1},{查找目标2}...{查找目标N}])` | FIND([1,2,3],[1,2,3,4],1) | boolean |
266
+ | INDEX(数据索引) | `INDEX({查找值},[{查找目标1},{查找目标2}...{查找目标N}])` | 假设:数字控件1=2,金额控件1=3,金额控件3=5,INDEX(1,[{数字控件1},{金额控件1},{金额控件2}] | all |
267
+ | UNIQUE(唯一值过滤) | `UNIQUE({过滤目标1},{过滤目标2}...{过滤目标N})` | 假设:文本控件1='A',文本控件2='B',文本控件3='B',UNIQUE({文本控件1},{文本控件2},{文本控件3}) | all |
268
+ | FILTER(条件过滤) | `FILTER([{过滤目标1},{过滤目标2}...{过滤目标N}],{过滤字段}={过滤依据})` | 假设:文本控件1='A',文本控件2='B',文本控件3='B',FILTER([{文本控件1},{文本控件2},{文本控件3}],'B') | all |
269
+
270
+ ### 数据库函数(38 个)
271
+
272
+ | 函数 | 格式 | 示例 | 返回 |
273
+ |------|------|------|------|
274
+ | GETHRMLOGINID(返回指定人员系统账号) | `GETHRMLOGINID({人员})` | GETHRMLOGINID({表单.张三}) | |
275
+ | GETHRMWORKCODE(返回指定人员编号) | `GETHRMWORKCODE({人员})` | GETHRMWORKCODE({表单.张三}) | |
276
+ | GETHRMMANAGER(返回指定人员直接上级) | `GETHRMMANAGER({人员}})` | GETHRMMANAGER({表单.张三}) | |
277
+ | GETHRMEMAIL(获取指定人员邮箱) | `GETHRMEMAIL({人员})` | GETHRMEMAIL({表单.张三}) | |
278
+ | GETHRMSECLEVEL(获取指定人员安全级别) | `GETHRMSECLEVEL({人员})` | 张三安全级别为1;GETHRMSECLEVEL({表单.张三}) | |
279
+ | GETHRMALLMANAGER(返回指定人员所有上级) | `GETHRMALLMANAGER({人员})` | GETHRMALLMANAGER({表单.张三}) | |
280
+ | GETHRMDEPARTMENT(返回指定人员部门) | `GETHRMDEPARTMENT({人员})` | GETHRMDEPARTMENT({表单.张三}) | |
281
+ | GETHRMSUBCOMPANY(返回指定人员分部) | `GETHRMSUBCOMPANY({人员})` | GETHRMSUBCOMPANY({表单.张三}) | |
282
+ | GETDEPARTMENTNAME(返回指定部门名称) | `GETDEPARTMENTNAME({部门})` | GETDEPARTMENTNAME({表单.A部门}) | |
283
+ | GETDEPARTMENTCODE(返回指定部门编号) | `GETDEPARTMENTCODE({部门})` | GETDEPARTMENTCODE({表单.A部门}) | |
284
+ | GETSUPERDEPARTMENT(返回指定部门直接上级部门) | `GETSUPERDEPARTMENT({部门})` | GETSUPERDEPARTMENT({表单.A部门}) | |
285
+ | GETALLSUPERDEPARTMENT(返回指定部门所有上级部门) | `GETALLSUPERDEPARTMENT({部门})` | GETALLSUPERDEPARTMENT({表单.A部门}) | |
286
+ | GETSUBCOMPANYNAME(返回指定分部名称) | `GETSUBCOMPANYNAME({分部})` | GETSUBCOMPANYNAME({表单.A分部}) | |
287
+ | GETSUBCOMPANYCODE(返回指定分部编号) | `GETSUBCOMPANYCODE({分部})` | GETSUBCOMPANYCODE({表单.A分部}) | |
288
+ | GETSUPERSUBCOMPANY(返回指定分部直接上级分部) | `GETSUPERSUBCOMPANY({分部})` | GETSUPERSUBCOMPANY({表单.A分部}) | |
289
+ | GETALLSUPERSUBCOMPANY(返回指定分部所有上级分部) | `GETALLSUPERSUBCOMPANY({分部})` | GETALLSUPERSUBCOMPANY({表单.A分部}) | |
290
+ | GETHRMNAME(获取人员名称) | `GETHRMNAME({人员})` | GETHRMNAME({U:张三}) | |
291
+ | GETHRMMOBILE(获取人员手机号码) | `GETHRMMOBILE({人员})` | GETHRMMOBILE({U:张三}) | |
292
+ | GETREQUESTMARK(获取指定流程编号) | `GETREQUESTMARK({关联流程})` | 假设关联流程=流程数据A,编号为:2332323,GETREQUESTMARK({关联流程}) | |
293
+ | GETDOCCODE(获取指定文档编号) | `GETDOCCODE({关联文档})` | 假设关联文档=文档A,文档A编号为:234567,GETDOCCODE({关联文档}) | |
294
+ | GETPRJCODE(获取指定项目编号) | `GETPRJCODE({关联项目})` | 假设关联项目=项目A,项目A编号为:2838383,GETPRJCODE({关联项目}) | |
295
+ | GETCRMCODE(获取指定客户编号) | `GETCRMCODE({关联客户})` | 假设关联客户=客户A,客户A编号为:2838383,GETCRMCODE({关联客户}) | |
296
+ | LANGUAGE(当前语言) | `LANGUAGE({人员})` | LANGUAGE({U:张三}) | |
297
+ | LANGUAGEID(当前语言ID) | `LANGUAGEID({人员})` | LANGUAGEID({U:张三}) | number |
298
+ | GETREQUESTSTATUS(流程状态) | `GETREQUESTSTATUS({关联流程})` | 假设关联流程所选中的数据正在审批中;GETREQUESTSTATUS({表单.关联流程}) | |
299
+ | GETEMPIDBYNUMBER(人员编号获取人员ID) | `GETEMPIDBYNUMBER({人员编号})` | GETEMPIDBYNUMBER({人员编号}) | string |
300
+ | GETEMPIDBYACCOUNTNAME(登录名获取人员ID) | `GETEMPIDBYACCOUNTNAME({登录名})` | 登录名获取人员ID;GETEMPIDBYACCOUNTNAME({登录名}) | string |
301
+ | GETDEPTIDBYNUMBER(部门编号获取部门) | `GETDEPTIDBYNUMBER({部门编号})` | 部门编号获取部门ID:GETDEPTIDBYNUMBER({部门编号},'id') | string |
302
+ | GETEMPIDBYMOBILE(人员手机获取人员ID) | `GETEMPIDBYMOBILE({手机号})` | 人员手机号码获取人员ID;GETEMPIDBYMOBILE({手机号}) | string |
303
+ | GETALLPARTNER(获取同部门所有同事) | `GETALLPARTNER({人员})` | GETALLPARTNER({U:张三}) | |
304
+ | GETSUBDEPARTMENTS(获取所有下级部门) | `GETSUBDEPARTMENTS({部门})` | GETSUBDEPARTMENTS({D:部门A}) | |
305
+ | GETALLSUBEMPS(获取所有下级) | `GETALLSUBEMPS({人员})` | GETALLPARTNER({U:张三}) | |
306
+ | GETSUBBRANCHSBYPID(获取所有下级分部) | `GETSUBBRANCHSBYPID({分部})` | GETSUBBRANCHSBYPID({D:分部A}) | |
307
+ | GTLDEP(获取一级部门) | `GTLDEP({部门})` | GTLDEP({D:部门B}) | |
308
+ | GTLSDEP(获取一级分部) | `GTLSDEP({分部})` | GTLSDEP({分部C}) | |
309
+ | GETHRMGRADE(获取指定人员职级) | `GTLSDEP({人员})` | GETHRMGRADE({U:张三}) | |
310
+ | GETHRMPOSITION(获取指定人员岗位) | `GETHRMPOSITION({人员})` | GETHRMPOSITION({U:张三}) | |
311
+ | GETEMPSTATUS(获取指定人员的状态) | `GETEMPSTATUS({人员})` | GETEMPSTATUS({U:张三}) | |
312
+
313
+ ### 特殊函数(4 个)
314
+
315
+ | 函数 | 格式 | 示例 | 返回 |
316
+ |------|------|------|------|
317
+ | DISTANCE(返回两个位置间的直线距离) | `DISTANCE({地理位置1}, {地理位置2})` | DISTANCE({表A.地理位置1}, {表A.地理位置2}) | number |
318
+ | GETUSER(返回用户的个人资料) | `GETUSER({人员选择}, 文本)` | GETUSER({表A.人员选择}, 'M') | string |
319
+ | FIELDS(根据条件和排序获取指定表格中的全部数据(最多50条)或指定条数的数据的指定字段值的集合。) | `FIELDS({字段}, [条件], [排序字段], [排序类型], [返回条数])` | FIELDS({表A.负责人}, {表A.销售状态} = {C:已签约}, {表A.创建时间-倒序}, 'desc', 50}) | Array |
320
+ | CONCATOPT(选项合并) | `CONCATOPT({明细选项}...[是否去重])` | 公式1: CONCATOPT({表A.明细复选框},TRUE())<br/>公式2: CONCATOPT({表A.明细复选框},FALSE()) | string |
321
+
322
+ ### 自定义JS脚本函数(18 个)
323
+
324
+ | 函数 | 格式 | 示例 | 返回 |
325
+ |------|------|------|------|
326
+ | 1 | `1(函数参数...)` | | number |
327
+ | 10 | `10(函数参数...)` | | number |
328
+ | 2 | `2(函数参数...)` | | number |
329
+ | 3 | `3(函数参数...)` | | number |
330
+ | 4 | `4(函数参数...)` | | number |
331
+ | 5 | `5(函数参数...)` | | number |
332
+ | 6 | `6(函数参数...)` | | number |
333
+ | 15 | `15(函数参数...)` | | number |
334
+ | 16 | `16(函数参数...)` | | number |
335
+ | 8 | `8(函数参数...)` | | number |
336
+ | 9 | `9(函数参数...)` | | number |
337
+ | replaceAll | `replaceAll(str,searchValue,replaceValue)` | | char |
338
+ | commonHrmIds(变更前后未改变的参会人) | `commonHrmIds(oldHrms,newHrms)` | | char |
339
+ | isMainInfoEqual(变更前后主要信息是否修改(时间地点)) | `isMainInfoEqual(oldInfo,newInfo)` | | number |
340
+ | getRemoveHrmIds(获取移除人员) | `getRemoveHrmIds(oldHrms,newHrms)` | | char |
341
+ | getAddHrmIds(获取新增人员) | `getAddHrmIds(oldHrms,newHrms)` | | char |
342
+ | uniqueNumberString(提醒人员汇总) | `uniqueNumberString(params)` | | char |
343
+ | countRelate(计算浏览按钮选择数量) | `countRelate(var1)` | | number |