weaver-e10-builder 1.1.8 → 1.2.2

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 (431) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/actionflow.d.ts.map +1 -1
  3. package/dist/commands/actionflow.js +32 -0
  4. package/dist/commands/actionflow.js.map +1 -1
  5. package/dist/commands/app.d.ts.map +1 -1
  6. package/dist/commands/app.js +17 -5
  7. package/dist/commands/app.js.map +1 -1
  8. package/dist/commands/auth.d.ts.map +1 -1
  9. package/dist/commands/auth.js +9 -2
  10. package/dist/commands/auth.js.map +1 -1
  11. package/dist/commands/designer.d.ts.map +1 -1
  12. package/dist/commands/designer.js +22 -1
  13. package/dist/commands/designer.js.map +1 -1
  14. package/dist/commands/form-field-props.d.ts +3 -0
  15. package/dist/commands/form-field-props.d.ts.map +1 -0
  16. package/dist/commands/form-field-props.js +242 -0
  17. package/dist/commands/form-field-props.js.map +1 -0
  18. package/dist/commands/form-layout-init.d.ts +0 -7
  19. package/dist/commands/form-layout-init.d.ts.map +1 -1
  20. package/dist/commands/form-layout-init.js +23 -39
  21. package/dist/commands/form-layout-init.js.map +1 -1
  22. package/dist/commands/form-serial-mark.d.ts.map +1 -1
  23. package/dist/commands/form-serial-mark.js +134 -42
  24. package/dist/commands/form-serial-mark.js.map +1 -1
  25. package/dist/commands/form-virtual.d.ts +3 -0
  26. package/dist/commands/form-virtual.d.ts.map +1 -0
  27. package/dist/commands/form-virtual.js +197 -0
  28. package/dist/commands/form-virtual.js.map +1 -0
  29. package/dist/commands/form.d.ts +3 -0
  30. package/dist/commands/form.d.ts.map +1 -1
  31. package/dist/commands/form.js +263 -57
  32. package/dist/commands/form.js.map +1 -1
  33. package/dist/commands/interface.js +1 -1
  34. package/dist/commands/interface.js.map +1 -1
  35. package/dist/commands/report-admin.d.ts +5 -0
  36. package/dist/commands/report-admin.d.ts.map +1 -0
  37. package/dist/commands/report-admin.js +420 -0
  38. package/dist/commands/report-admin.js.map +1 -0
  39. package/dist/commands/report-query.d.ts +3 -0
  40. package/dist/commands/report-query.d.ts.map +1 -0
  41. package/dist/commands/report-query.js +314 -0
  42. package/dist/commands/report-query.js.map +1 -0
  43. package/dist/commands/report-validate.d.ts +3 -0
  44. package/dist/commands/report-validate.d.ts.map +1 -0
  45. package/dist/commands/report-validate.js +719 -0
  46. package/dist/commands/report-validate.js.map +1 -0
  47. package/dist/commands/report.d.ts +12 -0
  48. package/dist/commands/report.d.ts.map +1 -0
  49. package/dist/commands/report.js +666 -0
  50. package/dist/commands/report.js.map +1 -0
  51. package/dist/commands/wf-form.d.ts +34 -0
  52. package/dist/commands/wf-form.d.ts.map +1 -1
  53. package/dist/commands/wf-form.js +303 -127
  54. package/dist/commands/wf-form.js.map +1 -1
  55. package/dist/commands/workflow-advanced.d.ts.map +1 -1
  56. package/dist/commands/workflow-advanced.js +109 -90
  57. package/dist/commands/workflow-advanced.js.map +1 -1
  58. package/dist/commands/workflow-auth-resp.d.ts +8 -0
  59. package/dist/commands/workflow-auth-resp.d.ts.map +1 -0
  60. package/dist/commands/workflow-auth-resp.js +568 -0
  61. package/dist/commands/workflow-auth-resp.js.map +1 -0
  62. package/dist/commands/workflow-condition.d.ts.map +1 -1
  63. package/dist/commands/workflow-condition.js +3 -1
  64. package/dist/commands/workflow-condition.js.map +1 -1
  65. package/dist/commands/workflow-create-auth-resp.d.ts +4 -0
  66. package/dist/commands/workflow-create-auth-resp.d.ts.map +1 -0
  67. package/dist/commands/workflow-create-auth-resp.js +204 -0
  68. package/dist/commands/workflow-create-auth-resp.js.map +1 -0
  69. package/dist/commands/workflow-node-overtime.d.ts.map +1 -1
  70. package/dist/commands/workflow-node-overtime.js +125 -92
  71. package/dist/commands/workflow-node-overtime.js.map +1 -1
  72. package/dist/commands/workflow-node-reject.d.ts +52 -0
  73. package/dist/commands/workflow-node-reject.d.ts.map +1 -1
  74. package/dist/commands/workflow-node-reject.js +134 -63
  75. package/dist/commands/workflow-node-reject.js.map +1 -1
  76. package/dist/commands/workflow-node-sign.d.ts.map +1 -1
  77. package/dist/commands/workflow-node-sign.js +14 -7
  78. package/dist/commands/workflow-node-sign.js.map +1 -1
  79. package/dist/commands/workflow-node-validate.d.ts +6 -0
  80. package/dist/commands/workflow-node-validate.d.ts.map +1 -1
  81. package/dist/commands/workflow-node-validate.js +143 -21
  82. package/dist/commands/workflow-node-validate.js.map +1 -1
  83. package/dist/commands/workflow-node.d.ts.map +1 -1
  84. package/dist/commands/workflow-node.js +359 -116
  85. package/dist/commands/workflow-node.js.map +1 -1
  86. package/dist/commands/workflow-numbering.d.ts.map +1 -1
  87. package/dist/commands/workflow-numbering.js +73 -34
  88. package/dist/commands/workflow-numbering.js.map +1 -1
  89. package/dist/commands/workflow-operator-sign.d.ts +10 -0
  90. package/dist/commands/workflow-operator-sign.d.ts.map +1 -1
  91. package/dist/commands/workflow-operator-sign.js +40 -53
  92. package/dist/commands/workflow-operator-sign.js.map +1 -1
  93. package/dist/commands/workflow-plan-range.d.ts +10 -0
  94. package/dist/commands/workflow-plan-range.d.ts.map +1 -1
  95. package/dist/commands/workflow-plan-range.js +15 -54
  96. package/dist/commands/workflow-plan-range.js.map +1 -1
  97. package/dist/commands/workflow-segment.d.ts.map +1 -1
  98. package/dist/commands/workflow-segment.js +22 -14
  99. package/dist/commands/workflow-segment.js.map +1 -1
  100. package/dist/commands/workflow.d.ts.map +1 -1
  101. package/dist/commands/workflow.js +13 -69
  102. package/dist/commands/workflow.js.map +1 -1
  103. package/dist/index.js +15 -0
  104. package/dist/index.js.map +1 -1
  105. package/dist/services/actionflow/build_workflow_draft.d.ts +6 -0
  106. package/dist/services/actionflow/build_workflow_draft.d.ts.map +1 -1
  107. package/dist/services/actionflow/build_workflow_draft.js +63 -4
  108. package/dist/services/actionflow/build_workflow_draft.js.map +1 -1
  109. package/dist/services/actionflow/calendar_mapper.d.ts +2 -2
  110. package/dist/services/actionflow/calendar_mapper.d.ts.map +1 -1
  111. package/dist/services/actionflow/calendar_mapper.js +33 -13
  112. package/dist/services/actionflow/calendar_mapper.js.map +1 -1
  113. package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
  114. package/dist/services/actionflow/components/action_eb_add.js +13 -1
  115. package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
  116. package/dist/services/actionflow/components/action_eb_delete.js +2 -2
  117. package/dist/services/actionflow/components/action_eb_delete.js.map +1 -1
  118. package/dist/services/actionflow/components/action_eb_recover.js +2 -2
  119. package/dist/services/actionflow/components/action_eb_recover.js.map +1 -1
  120. package/dist/services/actionflow/components/action_eb_save_version.js +2 -2
  121. package/dist/services/actionflow/components/action_eb_save_version.js.map +1 -1
  122. package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
  123. package/dist/services/actionflow/components/action_eb_update.js +15 -3
  124. package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
  125. package/dist/services/actionflow/components/action_eb_update_compiler.js +5 -5
  126. package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
  127. package/dist/services/actionflow/components/approve_create.d.ts.map +1 -1
  128. package/dist/services/actionflow/components/approve_create.js +5 -2
  129. package/dist/services/actionflow/components/approve_create.js.map +1 -1
  130. package/dist/services/actionflow/components/approve_trigger.d.ts.map +1 -1
  131. package/dist/services/actionflow/components/approve_trigger.js +5 -0
  132. package/dist/services/actionflow/components/approve_trigger.js.map +1 -1
  133. package/dist/services/actionflow/components/date_trigger.d.ts.map +1 -1
  134. package/dist/services/actionflow/components/date_trigger.js +14 -1
  135. package/dist/services/actionflow/components/date_trigger.js.map +1 -1
  136. package/dist/services/actionflow/components/dml_execute.d.ts.map +1 -1
  137. package/dist/services/actionflow/components/dml_execute.js +18 -10
  138. package/dist/services/actionflow/components/dml_execute.js.map +1 -1
  139. package/dist/services/actionflow/components/document_actions.js +5 -5
  140. package/dist/services/actionflow/components/document_actions.js.map +1 -1
  141. package/dist/services/actionflow/components/eb_get_data_by_id.d.ts.map +1 -1
  142. package/dist/services/actionflow/components/eb_get_data_by_id.js +8 -6
  143. package/dist/services/actionflow/components/eb_get_data_by_id.js.map +1 -1
  144. package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -1
  145. package/dist/services/actionflow/components/enquiry_form.js +28 -9
  146. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  147. package/dist/services/actionflow/components/hrm_actions.d.ts.map +1 -1
  148. package/dist/services/actionflow/components/hrm_actions.js +34 -13
  149. package/dist/services/actionflow/components/hrm_actions.js.map +1 -1
  150. package/dist/services/actionflow/components/index.js +3 -3
  151. package/dist/services/actionflow/components/index.js.map +1 -1
  152. package/dist/services/actionflow/components/inner_mq_send.d.ts.map +1 -1
  153. package/dist/services/actionflow/components/inner_mq_send.js +43 -4
  154. package/dist/services/actionflow/components/inner_mq_send.js.map +1 -1
  155. package/dist/services/actionflow/components/meeting_create.js +9 -9
  156. package/dist/services/actionflow/components/meeting_create.js.map +1 -1
  157. package/dist/services/actionflow/components/multiple_execution.d.ts.map +1 -1
  158. package/dist/services/actionflow/components/multiple_execution.js +83 -4
  159. package/dist/services/actionflow/components/multiple_execution.js.map +1 -1
  160. package/dist/services/actionflow/components/output.d.ts +3 -2
  161. package/dist/services/actionflow/components/output.d.ts.map +1 -1
  162. package/dist/services/actionflow/components/output.js +33 -0
  163. package/dist/services/actionflow/components/output.js.map +1 -1
  164. package/dist/services/actionflow/components/schedule_create.js +10 -10
  165. package/dist/services/actionflow/components/schedule_create.js.map +1 -1
  166. package/dist/services/actionflow/components/send_message.js +1 -1
  167. package/dist/services/actionflow/components/send_message.js.map +1 -1
  168. package/dist/services/actionflow/components/simple_scheduler.d.ts.map +1 -1
  169. package/dist/services/actionflow/components/simple_scheduler.js +42 -9
  170. package/dist/services/actionflow/components/simple_scheduler.js.map +1 -1
  171. package/dist/services/actionflow/components/time_batch_trigger.d.ts.map +1 -1
  172. package/dist/services/actionflow/components/time_batch_trigger.js +43 -13
  173. package/dist/services/actionflow/components/time_batch_trigger.js.map +1 -1
  174. package/dist/services/actionflow/components/workflow_actions.d.ts +0 -1
  175. package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
  176. package/dist/services/actionflow/components/workflow_actions.js +21 -27
  177. package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
  178. package/dist/services/actionflow/context_preflight.d.ts +31 -2
  179. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  180. package/dist/services/actionflow/context_preflight.js +179 -4
  181. package/dist/services/actionflow/context_preflight.js.map +1 -1
  182. package/dist/services/actionflow/design_client.d.ts +4 -0
  183. package/dist/services/actionflow/design_client.d.ts.map +1 -1
  184. package/dist/services/actionflow/design_client.js +10 -0
  185. package/dist/services/actionflow/design_client.js.map +1 -1
  186. package/dist/services/actionflow/dynamic_resources.d.ts.map +1 -1
  187. package/dist/services/actionflow/dynamic_resources.js +10 -3
  188. package/dist/services/actionflow/dynamic_resources.js.map +1 -1
  189. package/dist/services/actionflow/enrich_approve_trigger.d.ts.map +1 -1
  190. package/dist/services/actionflow/enrich_approve_trigger.js +18 -3
  191. package/dist/services/actionflow/enrich_approve_trigger.js.map +1 -1
  192. package/dist/services/actionflow/formula_service.d.ts +1 -1
  193. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  194. package/dist/services/actionflow/formula_service.js +135 -12
  195. package/dist/services/actionflow/formula_service.js.map +1 -1
  196. package/dist/services/actionflow/generation_service.d.ts.map +1 -1
  197. package/dist/services/actionflow/generation_service.js +18 -2
  198. package/dist/services/actionflow/generation_service.js.map +1 -1
  199. package/dist/services/actionflow/preflight_service.d.ts +1 -1
  200. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  201. package/dist/services/actionflow/preflight_service.js +194 -6
  202. package/dist/services/actionflow/preflight_service.js.map +1 -1
  203. package/dist/services/actionflow/save_workflow_draft.d.ts +8 -0
  204. package/dist/services/actionflow/save_workflow_draft.d.ts.map +1 -1
  205. package/dist/services/actionflow/save_workflow_draft.js +6 -2
  206. package/dist/services/actionflow/save_workflow_draft.js.map +1 -1
  207. package/dist/services/actionflow/update_service.d.ts +6 -0
  208. package/dist/services/actionflow/update_service.d.ts.map +1 -1
  209. package/dist/services/actionflow/update_service.js +125 -7
  210. package/dist/services/actionflow/update_service.js.map +1 -1
  211. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  212. package/dist/services/actionflow/workflow_compiler.js +17 -9
  213. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  214. package/dist/services/browser.d.ts +34 -0
  215. package/dist/services/browser.d.ts.map +1 -0
  216. package/dist/services/browser.js +57 -0
  217. package/dist/services/browser.js.map +1 -0
  218. package/dist/services/esb-interface/document-parser.d.ts +5 -0
  219. package/dist/services/esb-interface/document-parser.d.ts.map +1 -1
  220. package/dist/services/esb-interface/document-parser.js +117 -1
  221. package/dist/services/esb-interface/document-parser.js.map +1 -1
  222. package/dist/services/esb-interface/importer.d.ts.map +1 -1
  223. package/dist/services/esb-interface/importer.js +7 -2
  224. package/dist/services/esb-interface/importer.js.map +1 -1
  225. package/dist/services/field-props-data.d.ts +56 -0
  226. package/dist/services/field-props-data.d.ts.map +1 -0
  227. package/dist/services/field-props-data.js +732 -0
  228. package/dist/services/field-props-data.js.map +1 -0
  229. package/dist/services/form-edit-base.d.ts +45 -0
  230. package/dist/services/form-edit-base.d.ts.map +1 -0
  231. package/dist/services/form-edit-base.js +76 -0
  232. package/dist/services/form-edit-base.js.map +1 -0
  233. package/dist/services/form-field-drop.d.ts +41 -0
  234. package/dist/services/form-field-drop.d.ts.map +1 -0
  235. package/dist/services/form-field-drop.js +58 -0
  236. package/dist/services/form-field-drop.js.map +1 -0
  237. package/dist/services/form-style-template.d.ts +17 -0
  238. package/dist/services/form-style-template.d.ts.map +1 -0
  239. package/dist/services/form-style-template.js +102 -0
  240. package/dist/services/form-style-template.js.map +1 -0
  241. package/dist/services/form-virtual.d.ts +60 -0
  242. package/dist/services/form-virtual.d.ts.map +1 -0
  243. package/dist/services/form-virtual.js +331 -0
  244. package/dist/services/form-virtual.js.map +1 -0
  245. package/dist/services/report/analyze.d.ts +67 -0
  246. package/dist/services/report/analyze.d.ts.map +1 -0
  247. package/dist/services/report/analyze.js +173 -0
  248. package/dist/services/report/analyze.js.map +1 -0
  249. package/dist/services/report/build.d.ts +166 -0
  250. package/dist/services/report/build.d.ts.map +1 -0
  251. package/dist/services/report/build.js +520 -0
  252. package/dist/services/report/build.js.map +1 -0
  253. package/dist/services/report/constants.d.ts +145 -0
  254. package/dist/services/report/constants.d.ts.map +1 -0
  255. package/dist/services/report/constants.js +250 -0
  256. package/dist/services/report/constants.js.map +1 -0
  257. package/dist/services/report/dataset.d.ts +73 -0
  258. package/dist/services/report/dataset.d.ts.map +1 -0
  259. package/dist/services/report/dataset.js +185 -0
  260. package/dist/services/report/dataset.js.map +1 -0
  261. package/dist/services/report/fields.d.ts +80 -0
  262. package/dist/services/report/fields.d.ts.map +1 -0
  263. package/dist/services/report/fields.js +245 -0
  264. package/dist/services/report/fields.js.map +1 -0
  265. package/dist/services/report/forms.d.ts +70 -0
  266. package/dist/services/report/forms.d.ts.map +1 -0
  267. package/dist/services/report/forms.js +237 -0
  268. package/dist/services/report/forms.js.map +1 -0
  269. package/dist/services/report/guard.d.ts +73 -0
  270. package/dist/services/report/guard.d.ts.map +1 -0
  271. package/dist/services/report/guard.js +262 -0
  272. package/dist/services/report/guard.js.map +1 -0
  273. package/dist/services/report/http.d.ts +118 -0
  274. package/dist/services/report/http.d.ts.map +1 -0
  275. package/dist/services/report/http.js +159 -0
  276. package/dist/services/report/http.js.map +1 -0
  277. package/dist/services/report/lifecycle.d.ts +107 -0
  278. package/dist/services/report/lifecycle.d.ts.map +1 -0
  279. package/dist/services/report/lifecycle.js +323 -0
  280. package/dist/services/report/lifecycle.js.map +1 -0
  281. package/dist/services/report/permission.d.ts +59 -0
  282. package/dist/services/report/permission.d.ts.map +1 -0
  283. package/dist/services/report/permission.js +286 -0
  284. package/dist/services/report/permission.js.map +1 -0
  285. package/dist/services/report/query-checks.d.ts +124 -0
  286. package/dist/services/report/query-checks.d.ts.map +1 -0
  287. package/dist/services/report/query-checks.js +374 -0
  288. package/dist/services/report/query-checks.js.map +1 -0
  289. package/dist/services/report/query.d.ts +106 -0
  290. package/dist/services/report/query.d.ts.map +1 -0
  291. package/dist/services/report/query.js +278 -0
  292. package/dist/services/report/query.js.map +1 -0
  293. package/dist/services/report/render.d.ts +52 -0
  294. package/dist/services/report/render.d.ts.map +1 -0
  295. package/dist/services/report/render.js +138 -0
  296. package/dist/services/report/render.js.map +1 -0
  297. package/dist/services/report/reports.d.ts +110 -0
  298. package/dist/services/report/reports.d.ts.map +1 -0
  299. package/dist/services/report/reports.js +179 -0
  300. package/dist/services/report/reports.js.map +1 -0
  301. package/dist/services/report/safe-save.d.ts +57 -0
  302. package/dist/services/report/safe-save.d.ts.map +1 -0
  303. package/dist/services/report/safe-save.js +325 -0
  304. package/dist/services/report/safe-save.js.map +1 -0
  305. package/dist/services/report/sources.d.ts +48 -0
  306. package/dist/services/report/sources.d.ts.map +1 -0
  307. package/dist/services/report/sources.js +147 -0
  308. package/dist/services/report/sources.js.map +1 -0
  309. package/dist/services/report/types.d.ts +312 -0
  310. package/dist/services/report/types.d.ts.map +1 -0
  311. package/dist/services/report/types.js +2 -0
  312. package/dist/services/report/types.js.map +1 -0
  313. package/dist/services/report/validate.d.ts +169 -0
  314. package/dist/services/report/validate.d.ts.map +1 -0
  315. package/dist/services/report/validate.js +685 -0
  316. package/dist/services/report/validate.js.map +1 -0
  317. package/dist/services/report/verify.d.ts +72 -0
  318. package/dist/services/report/verify.d.ts.map +1 -0
  319. package/dist/services/report/verify.js +441 -0
  320. package/dist/services/report/verify.js.map +1 -0
  321. package/dist/services/report/workbook.d.ts +108 -0
  322. package/dist/services/report/workbook.d.ts.map +1 -0
  323. package/dist/services/report/workbook.js +471 -0
  324. package/dist/services/report/workbook.js.map +1 -0
  325. package/dist/services/rich-types.d.ts +39 -0
  326. package/dist/services/rich-types.d.ts.map +1 -1
  327. package/dist/services/rich-types.js +78 -30
  328. package/dist/services/rich-types.js.map +1 -1
  329. package/dist/services/workflow-node-layout.d.ts +214 -0
  330. package/dist/services/workflow-node-layout.d.ts.map +1 -0
  331. package/dist/services/workflow-node-layout.js +338 -0
  332. package/dist/services/workflow-node-layout.js.map +1 -0
  333. package/dist/services/workflow-operator.d.ts +47 -2
  334. package/dist/services/workflow-operator.d.ts.map +1 -1
  335. package/dist/services/workflow-operator.js +102 -5
  336. package/dist/services/workflow-operator.js.map +1 -1
  337. package/dist/services/workflow-overtime.d.ts +95 -0
  338. package/dist/services/workflow-overtime.d.ts.map +1 -0
  339. package/dist/services/workflow-overtime.js +207 -0
  340. package/dist/services/workflow-overtime.js.map +1 -0
  341. package/dist/services/workflow-plan-range.d.ts +18 -0
  342. package/dist/services/workflow-plan-range.d.ts.map +1 -0
  343. package/dist/services/workflow-plan-range.js +72 -0
  344. package/dist/services/workflow-plan-range.js.map +1 -0
  345. package/package.json +3 -2
  346. package/skill-docs/SKILL.md +277 -261
  347. package/skill-docs/_catalog.md +77 -66
  348. package/skill-docs/actionflows/SKILL.md +22 -14
  349. package/skill-docs/actionflows/references/components/calendar/MeetingCreate.md +17 -17
  350. package/skill-docs/actionflows/references/components/calendar/ScheduleCreate.md +17 -17
  351. package/skill-docs/actionflows/references/components/database/DMLExecute.md +3 -3
  352. package/skill-docs/actionflows/references/components/ebuilder/DateTrigger.md +32 -17
  353. package/skill-docs/actionflows/references/components/ebuilder/EbGetDataById.md +17 -17
  354. package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +6 -0
  355. package/skill-docs/actionflows/references/components/ebuilder/EventFormData.md +2 -0
  356. package/skill-docs/actionflows/references/components/ebuilder/TimeBatchTrigger.md +19 -17
  357. package/skill-docs/actionflows/references/components/logic/Output.md +28 -17
  358. package/skill-docs/actionflows/references/components/message/InnerMQSend.md +6 -2
  359. package/skill-docs/actionflows/references/components/personnel/AlterPersonStatus.md +30 -30
  360. package/skill-docs/actionflows/references/components/personnel/HrmEmployeeUpdate.md +32 -32
  361. package/skill-docs/actionflows/references/components/trigger/InnerMQListener.md +41 -40
  362. package/skill-docs/actionflows/references/components/trigger/SimpleScheduler.md +19 -17
  363. package/skill-docs/actionflows/references/components/workflow/ApproveCreate.md +17 -17
  364. package/skill-docs/actionflows/references/components/workflow/ApproveDelete.md +19 -17
  365. package/skill-docs/actionflows/references/components/workflow/ApproveEntrust.md +19 -17
  366. package/skill-docs/actionflows/references/components/workflow/ApproveSave.md +17 -17
  367. package/skill-docs/actionflows/references/components/workflow/ApproveTrigger.md +99 -84
  368. package/skill-docs/actionflows/references/dynamic_capability_matrix.md +39 -0
  369. package/skill-docs/references/common/guide-plan-template.md +251 -233
  370. package/skill-docs/references/common/ref-cli-commands.md +519 -373
  371. package/skill-docs/references/ebuilder-designer/guide-designer-components.md +1 -1
  372. package/skill-docs/references/ebuilder-designer/guide-designer-factory.md +460 -460
  373. package/skill-docs/references/ebuilder-designer/guide-designer.md +4 -4
  374. package/skill-docs/references/form/guide-create-form.md +232 -214
  375. package/skill-docs/references/form/guide-form-association.md +1 -1
  376. package/skill-docs/references/form/guide-form-view.md +318 -318
  377. package/skill-docs/references/form/guide-virtual-form.md +156 -0
  378. package/skill-docs/references/form/ref-form-fields.md +239 -99
  379. package/skill-docs/references/form/style-templates.md +80 -27
  380. package/skill-docs/references/report/add-dataset-registration-guide.md +139 -0
  381. package/skill-docs/references/report/ai-report-workflow.md +412 -0
  382. package/skill-docs/references/report/api-report-build-fast-path.md +275 -0
  383. package/skill-docs/references/report/app-datasource-lookup-guide.md +230 -0
  384. package/skill-docs/references/report/cell-config-echo-guide.md +163 -0
  385. package/skill-docs/references/report/cell-transform-guide.md +147 -0
  386. package/skill-docs/references/report/condition-format-guide.md +140 -0
  387. package/skill-docs/references/report/cross-dataset-filter-guide.md +304 -0
  388. package/skill-docs/references/report/dataset-query-filter-guide.md +235 -0
  389. package/skill-docs/references/report/dataset-sidebar-ops-guide.md +280 -0
  390. package/skill-docs/references/report/dataset-table-field-contract-guide.md +339 -0
  391. package/skill-docs/references/report/datasource-metadata-guide.md +365 -0
  392. package/skill-docs/references/report/datasource-selection-and-parent-filter-guide.md +148 -0
  393. package/skill-docs/references/report/date-range-query-reference.md +102 -0
  394. package/skill-docs/references/report/default-header-style-guide.md +70 -0
  395. package/skill-docs/references/report/designer-blank-prevention-guide.md +111 -0
  396. package/skill-docs/references/report/event-hreflink-guide.md +184 -0
  397. package/skill-docs/references/report/field-bind-exact-match-guide.md +208 -0
  398. package/skill-docs/references/report/formula-cell-api-guide.md +258 -0
  399. package/skill-docs/references/report/guide-report-build.md +131 -0
  400. package/skill-docs/references/report/guide-report-modify.md +100 -0
  401. package/skill-docs/references/report/guide-report-multisource.md +143 -0
  402. package/skill-docs/references/report/guide-report-query.md +98 -0
  403. package/skill-docs/references/report/hidden-row-and-header-merge-guide.md +100 -0
  404. package/skill-docs/references/report/layout-showlocation-freeze-guide.md +167 -0
  405. package/skill-docs/references/report/preaggregate-auto-disable-guide.md +107 -0
  406. package/skill-docs/references/report/query-condition-api-guide.md +890 -0
  407. package/skill-docs/references/report/ref-report-commands.md +122 -0
  408. package/skill-docs/references/report/ref-report-pitfalls.md +226 -0
  409. package/skill-docs/references/report/report-baseinfo-defaults-guide.md +117 -0
  410. package/skill-docs/references/report/report-building-guide.md +511 -0
  411. package/skill-docs/references/report/report-config-schema.md +445 -0
  412. package/skill-docs/references/report/report-create-modes-guide.md +182 -0
  413. package/skill-docs/references/report/report-data-model.md +447 -0
  414. package/skill-docs/references/report/report-delivery-contract.md +101 -0
  415. package/skill-docs/references/report/report-designer-feature-map.md +500 -0
  416. package/skill-docs/references/report/report-internal-error-guide.md +78 -0
  417. package/skill-docs/references/report/report-knowledge-base.md +389 -0
  418. package/skill-docs/references/report/report-lifecycle-api-guide.md +392 -0
  419. package/skill-docs/references/report/report-list-page-ops-guide.md +191 -0
  420. package/skill-docs/references/report/report-permission-guide.md +365 -0
  421. package/skill-docs/references/report/report-requirement-analysis-template.md +202 -0
  422. package/skill-docs/references/report/report-self-check-guide.md +164 -0
  423. package/skill-docs/references/report/safe-partial-save-guide.md +151 -0
  424. package/skill-docs/references/report/snowflake-id-precision-guide.md +84 -0
  425. package/skill-docs/references/report/spec-build-schema.md +291 -0
  426. package/skill-docs/references/report/targeted-fix-guide.md +97 -0
  427. package/skill-docs/references/report/user-request-scope-only-guide.md +82 -0
  428. package/skill-docs/references/workflow/guide-workflow-auth-resp.md +190 -0
  429. package/skill-docs/references/workflow/guide-workflow-node-layout.md +181 -0
  430. package/skill-docs/references/workflow/guide-workflow.md +7 -3
  431. package/skill-docs/actionflows/references/components/workflow/ApproveCompletelyDelete.md +0 -17
@@ -1,373 +1,519 @@
1
- # e10-cli 命令参考
2
-
3
- > **所有系统交互统一使用 `e10-cli`**。auth 文件自动查找,也可 `--auth <path>` 指定。加 `--json` 输出 JSON 格式。
4
-
5
- ---
6
-
7
- ## 工具
8
-
9
- | 命令 | 说明 |
10
- |------|------|
11
- | `e10-cli docx read <文件>` | 解析 Word 文档为 markdown + 提取图片到 `_images/`。**禁止自己写 python-docx 脚本** |
12
- | `e10-cli interface import <文件> [--system-pool-name <名称>] [--apply] [--out <文件>]` | 解析 `.docx/.pdf/.md/.txt` 为 Postman Collection;默认预览,`--apply` 才调用 ESB 创建系统接口。未传系统池名称时从文档文件名推导;完整规则见 `references/esb-interface/guide-import.md` |
13
-
14
- ---
15
-
16
- ## Ecode 项目操作
17
-
18
- | 命令 | 说明 |
19
- |------|------|
20
- | `e10-cli project create <name> [desc]` | 新建 Ecode 项目(名称自动追加时间戳) |
21
- | `e10-cli project import <projectId> <zip> --main-url <url>` | 导入 zip 包,`--main-url` **必填** |
22
- | `e10-cli project tree <parentId>` | 查看目录结构 |
23
- | `e10-cli project read <fileId>` | 读取代码文件内容 |
24
- | `e10-cli project update <fileId> <content>` | 更新代码文件(content 以 `@` 开头则为文件路径) |
25
- | `e10-cli project create-file <name> <parentId> [type]` | 新建代码文件(默认 js) |
26
- | `e10-cli project create-folder <name> <parentId>` | 新建文件夹 |
27
- | `e10-cli project delete-file <fileId>` | 删除代码文件 |
28
- | `e10-cli project delete-folder <folderId>` | 删除文件夹(= 删除应用) |
29
-
30
- - 导入成功后会在 Ecode 项目下生成应用文件夹
31
- - 二次导入之前先删掉旧应用文件夹(通过 `e10-cli project tree` 找到 folderId)
32
-
33
- ---
34
-
35
- ## Ebuilder 应用 & 表单
36
-
37
- | 命令 | 说明 |
38
- |------|------|
39
- | `e10-cli app create <name> [desc]` | 新建 Ebuilder 应用(scope=PC_MOBILE,INTERNAL 类型)。`--json` 输出 `{id,name}` |
40
- | `e10-cli app list [--name <关键词>]` | 查询应用列表(扁平 id/name/description) |
41
- | `e10-cli app folder [--type 1/2/3]` | 查看应用目录结构(文件夹+应用树,含发布状态)。1=我管理的/2=我创建的/3=全部 |
42
- | `e10-cli app read <appId>` | 查看应用**详情**(全量配置:名称/描述/简称/范围/目录/组织/发布状态)。`--json` 输出完整对象。走 `/app/info` |
43
- | `e10-cli app edit <appId> [--name] [--desc] [--short-name]` | 编辑应用信息(至少指定一个写参数;内部先读 `/app/info` 再合并提交) |
44
- | `e10-cli app delete <appId>` | 删除应用(软删除,可恢复;存在关联资源会提示先清理) |
45
- | `e10-cli form read <objId> [--app-id <appId>] [--out <file>]` | 读取表单字段。`--app-id` 含明细表字段+Select/RadioBox/CheckBox 选项;`--out fields.json` 写 UTF-8 JSON(推荐,机器可读)。旧版 `[dir]` 参数写 memo.md,已过时 |
46
- | `e10-cli form read <objId> --app-id <appId> --out fields.json` | 读取字段含选项(Select/RadioBox/CheckBox 自动带 options)。**含明细表字段**,配动作流/联动拿明细 fieldId 用这个 |
47
- | `e10-cli form list <appId>` | 列出应用下的所有表单 |
48
- | `e10-cli form create <appId> <name> <dir> --fields @<json文件>` | 创建表单。`--fields` **必填**。支持 DetailTable(嵌套formFields)、EBuilder(sformId+dataTitle)、relateFrom(联动)。fields.json 字段可带 `"required":true`/`"readOnly":true` 直标(写进布局 comps)。**字段名与平台系统字段重名(标题/创建者/创建时间/数据ID/最后更新人/数据状态)→ 不新建物理字段、复用系统字段**,并把该字段在**布局置为可见**(platform 系统字段默认隐藏;可写 `"singleRow":true` 独占一行、`"hidden":true` 保持隐藏)。`--json` 返回 `skippedSys`。**默认不加菜单**,要入口传 `--menu`(台账菜单 VIEWPORT);漏加 `e10-cli menu add-table <appId> <objId>` 补 |
49
- | `e10-cli form add-field <objId> <appId> <name> <type> [title]` | 添加字段。`<type>`=componentKey(Text/Select/Employee/Money/DetailTable 等同 form create);`[title]` 字段显示名,不传同 name。Select 类型需单独 `field-options` 配选项。**`--sub-form-id <明细表subFormId>` 在明细表里加字段**(自动重新布局)。Number 类型:**`--percent` 百分比显示**(numberType=percentage,缺省 1 位小数)、**`--default <值>` 默认值**(如 `--default 1000` 工时单价默认 1000)、`--precision <n>` 精度。**EBuilder/Flow 类型**:`--sform-id <目标表单objId>`(EBuilder 表关联 / Flow 浏览-流程字段,数据来源=浏览流程)。EBuilder 字段**自动配关联浏览弹窗显示列**(=目标表全部业务字段,去系统字段)。**`--multiple` 多选**(人员/部门/EBuilder/Browser 默认单选;**下拉 Select --multiple → SelectMultiple 类型**)。**`--max-len <n>` 文本最大长度**(Text 缺省 100、TextArea 缺省 4000)。**`--single-row` 独占一行显示**。**`--option-template <模板ID或名>` Select 绑定选项预设模板**(选项来自模板,与 `field-options` 二选一) |
50
- | `e10-cli form detail-table list/read <objId> <appId> [...]` | 列出明细表,或读取指定明细表的二级明细开关与配置 |
51
- | `e10-cli form detail-table sub-detail set <objId> <appId> <父明细表> --target <子明细表> --target-field <子字段> [--default-expand]` | 开启并设置二级明细。表和字段可写名称或 ID;默认采用平台实测的 `rowId/inside/single`,保存后自动回读。另有 `enable`、`disable`(保留配置)、`clear`(清空配置) |
52
- | `e10-cli form edit-field <objId> <appId> <fieldId>` | 编辑字段属性。`--title`/`--required`/`--no-required`/`--sform-id`(改EBuilder关联)/`--relate-from`(值带出)/**`--multiple`/`--no-multiple`**(人员/部门/EBuilder/Browser 多选切换) |
53
- | `e10-cli form field-lang get <objId> <appId> <fieldId>` | 查看字段名称的中英文多语言配置;未配置时返回当前中文名称和 `configured:false` |
54
- | `e10-cli form field-lang set <objId> <appId> <fieldId> --zh <中文> --en <English>` | 设置字段名称多语言。先保存多语言标签,再读取完整字段并回写 `labelObj.title`,不会覆盖字段其他属性 |
55
- | `e10-cli form serial-mark set <objId> <appId> <fieldId> --segments @<json>` | **表单编号**(纯建模表):用 JSON 数组组合任意编号规则,数组顺序即拼接顺序。段类型 `fixed`/`year`/`serial`/`field`/`system`/`date`;field 段可 inline `shortName` 代字映射。子命令组:`set`(配置,--segments) / `add-segment`(增量追加段) / `short-name`(代字 list/set) / `read`(查看) / `fields`(查可绑定字段) / `clear`(解除)。被编码字段平台自动只读。**⚠ 仅对未绑流程的纯建模表有效——eb表单绑流程后表单编号字段在流程提交时不生效,编号改走流程编号(`workflow numbering`,落到 REQUEST_NO 系统字段)** |
56
- | `e10-cli form field-options <objId> <appId> <fieldId> --options @<json> [--default <key>]` | 设选项/默认值。options.json: `[{"name":"选项名","valueKey":"可选"}]`;`--default` 用平台生成的长 valueKey(`form read --app-id` 获取),不是 name |
57
- | `e10-cli form option-template <list\|read\|create\|copy\|delete>` | **Select 选项预设模板管理**(下拉选项复用:多个表单共享一套选项,模板改了各表单跟着变)。`list [--system]` 列模板(默认自定义模板,--system 看系统内置);`read <模板ID> [--flat]` 看选项树;`create <名称> --options @<json> [--level 1] [--describe 文本]` 建模板(options.json: `[{"name":"低","valueKey":"10","children":[]}]`,**valueKey 必须数字**,children 嵌套=多级);`copy <模板ID>` 复制(系统 default 模板不可复制);`delete <模板ID>` 删模板(被引用时平台拒绝)。**字段引用模板**:`form add-field --option-template <模板ID或名>` 或 fields.json 写 `"optionTemplate":"模板名"`(Select 专有,选项不内联) |
58
- | `e10-cli form linkage add <appId> <objId> <name> --config @<json>` | 添加字段显隐联动规则 |
59
- | `e10-cli form relate <appId> <objId> <目标字段> --from <源字段>` | **HRM 值带出联动**:源字段为表内 Employee(人员)或 Department(部门)类型,换源自动填目标字段(换申请人→填邮箱/工号/部门;换所属部门→填部门编号/上级部门)。`--key` 从平台清单校验(默认 Employee=department、Department=name),`--title` 指定显示名(默认属性中文名)。详见 `form/guide-form-linkage.md` |
60
- | `e10-cli form delete <objId> <appId>` | 删除表单 |
61
- | `e10-cli form permission data add <objId> <appId> --org-type <类型> [--org-id <id>] --rights <view/edit/delete...> [--file-rights <view/download...>]` | **表单数据权限**,`1/view=查看`、`2/edit=编辑`、`3/delete=删除`,可任意组合;附件 `401/view=查看`、`402/download=下载`。固定写入 `obj_data_admin` 并按新增权限 ID 回读。授权对象支持 all/role/department/company/employee/group/post;all 的 orgId 自动为 0 |
62
- | `e10-cli form permission imp-exp <list\|add> <objId> <appId> ...` | **导入导出权限**(独立分类 `data_imp_exp`,⚠ 勿用 `data add` 加——共享权限只有 查看/编辑/删除 三种,导出/导入不在其中)。`list` 查看;`add --org-type <类型> [--org-id] --rights <export/import/delete-import...> [--update-import] [--export-details] [--export-attachment] [--export-field-range listShowField|all]`。`export=8`、`import=9`、`delete-import=93`(93 须与 import 同选,自动带更新导入);添加后按权限 ID 回读 `impRightList` 校验。删除同 `permission remove --right-id` |
63
- | `e10-cli form permission <list\|add\|remove\|rebuild> <objId> <appId>` | 权限通用管理及兼容入口。新建权限与数据权限分开;旧 `add --right-type` 保留兼容。`list` 查看全部分类;`remove --right-id <id[,id...]>` 删除一条或多条权限;添加后提示 `isShowRebuild=2` 时执行 `rebuild` |
64
- | `e10-cli form list-view <objId> <appId>` | 查看台账/数据列表(获取 viewId 用于菜单配置) |
65
- | `e10-cli form list-columns <objId> <appId> <listId> [--add <fieldId...>] [--remove <fieldId...>] [--set @columns.json] [--terminal pc/mobile] [--pc-only]` | 查看/批量设置台账显示列。增量追加、移除或整组指定顺序/列宽/格式;整组模式与增删互斥。支持主表和明细子字段,保留已有列未指定属性、事件及数据主键;一次保存并回读核对目标列和另一终端。详见 `references/form/guide-list-columns.md` |
66
- | `e10-cli form list-unit <objId> <appId> <listId> <fieldId> <后缀> [--prefix <前缀>] [--clear] [--pc-only]` | 设置台账列显示**单位**(后缀/前缀)。平台无字段级单位属性,靠列表列配置 `showTrans.ruleConfig.suffix/prefix` 实现。如 `form list-unit ... <fieldId> "(元)"` 让列显示单位;`--clear` 清除 |
67
- | `e10-cli form list-format <objId> <appId> <listId> <fieldId> [--thousandths] [--no-thousandths] [--decimal <n>] [--clear] [--pc-only]` | 查看/设置台账列**千分位/小数位**(Number/Money 列)。不加参数显示当前;`--thousandths` 开千分位(列 `format:"THOUSANDS"`)、`--no-thousandths` 关、`--decimal <n>` 小数位数(`decimalLength`)、`--clear` 清除恢复默认。与 `list-unit`(单位,走 `showTrans`)是两套不同机制。**自动保留移动端配置** |
68
- | `e10-cli form list-click <objId> <appId> <listId> <fieldId> [--target <formObjId>] [--open-mode <模式>] [--win-size <尺寸>] [--clear] [--pc-only]` | 设置台账列**点击跳转**。`--open-mode` 支持当前页面/新窗口/弹出窗口/右侧滑出/右侧推出;`--win-size` 仅用于滑出/推出,具体数值按需求填写:百分比使用 `%`(0~100),像素使用 `px`,两种单位不可混用。缺省 `800px` |
69
- | `e10-cli form ebuilder-columns <objId> <appId> <fieldId> [字段名/ID...] [--clear]` | 设置 EBuilder 关联字段的**浏览显示列**(存在字段配置 `ffDisplayColumns:{id,name}[]`)。**缺省查看**:列出当前显示列 + 目标表单全部**业务字段候选**(系统字段已自动过滤,不设显示列时浏览走平台默认列会带系统字段);**传目标表业务字段名/ID 设置**,系统字段会被拦截提示"系统字段不能设为显示列";`--clear` 清空。关联浏览显示哪些字段(只留业务字段) |
70
- | `e10-cli form ebuilder-scope <get\|set\|clear> <objId> <appId> <fieldId>` | **浏览数据定义 → 数据范围设置**(关联浏览字段,限定被关联数据须满足条件才可选,如关联客户只选"客户状态=启用"的)。走 `browserDataScope` 接口(独立于字段布局)。`set --rules '[{"field":"客户状态","operator":"eq","value":"启用"}]'`(选项类 value 用选项名,CLI 自动解析 valueKey);`--logic and/or` 多规则关系;`--fill-null` 关联字段为空时填充;`get` 读已设条件;`clear` 清空。**这是关联浏览筛选的正解**,旧 `ebuilder-filter` 走 layout/save 不被设计器识别 |
71
- | `e10-cli form validate list <objId> <appId>` | 查看表单**查重规则**(字段重复校验,多字段 AND)。`add <objId> <appId> <字段名...> [--help 提示] [--remind]` 新增(缺省禁止提交 NOSUBMISSION,`--remind` 仅提醒);`delete <objId> <appId> <ruleId>` 删除。项目名称重名/工时日期重复不允许 |
72
- | `e10-cli form list-search <objId> <appId> <listId> [--add <fieldId...>] [--quick <fieldId...>] [--remove <fieldId>] [--pc-only]` | 查看/配置台账**搜索条件**。`--add` 进搜索面板、`--quick` 加顶部快捷筛选(均支持多字段)、`--remove` 移除。主表字段直取 ds/fields;明细子字段自动 fallback `getFormField` 单取元数据。**自动保留移动端配置** |
73
- | `e10-cli form list-sort <objId> <appId> <listId> [--field <fieldId...>] [--order ASC\|DESC] [--clear] [--pc-only]` | 查看/配置台账**排序**。`--field` 支持多个(按传入顺序多级排序,`--order` 对所有字段生效)、`--clear` 清除。**自动保留移动端配置** |
74
- | `e10-cli form list-stats <objId> <appId> <listId> [--add <json或@文件>] [--remove <statId>] [--pc-only]` | 主表/明细顶部统计,sum/count/avg/max/min、条件及格式;明细 count 支持 `{ "type":"count", "subFormId":"..." }`。保存后回读、保护移动端;平台可能共享两端统计,输出 mobileStatistics。详见 `references/form/guide-list-stats.md` |
75
- | `e10-cli form list-stats detail <objId> <appId> <listId> <subFormId> [--fields <fieldId...>] [--name-prefix <文本>] [--pc-only]` | 为明细数值字段批量生成 sum 和一项子表 count;重复运行复用同名同配置项 |
76
- | `e10-cli form list-filter <objId> <appId> <listId> [--add '<json>'] [--clear] [--pc-only]` | 查看/配置**视图数据条件**(台账只显示满足条件的数据)。`--add '{"conditions":[{"fieldId":"...","func":"eq","value":"研发valueKey","text":"研发"}]}'`(func: eq 等于 / notEq 不等于 / in 属于 / notIn 不属于 / like 包含 / notLike 不包含 / gt 大于 / lt 小于 / between 介于 / isNull 为空 / isNotNull 不为空,单选 Select 用 eq;value 填选项 valueKey、text 填显示名;多条件默认 AND)、`--clear` 清空。走 saveNListConfig config.filter(明文条件树,非独立接口)。**自动保留移动端配置** |
77
- | `e10-cli form list-event <objId> <appId> <listId> [--add-page '<json>'] [--add-field '<json>'] [--open-mode <模式>] [--modal-width <pct>] [--modal-height <pct>] [--win-size <pct>] [--clear] [--pc-only]` | 查看/配置**行事件**(点击行数据 NewPage 打开表单布局)。`--add-page '{"pageId":"1/<objId>","pageName":"新建数据","openMode":"右侧滑出"}'` 选页面方式(pageId 缺省 `1/<objId>` 新建布局,`0/<objId>`=显示布局)、`--add-field '{"urlFieldId":"字段id"}'` 选字段方式(URL取自行内字段值,urlFieldText/Type自动补)、`--clear` 清空。**打开方式** `--open-mode`(或在 JSON 里写 `openMode`):当前页面/新窗口/弹出窗口/右侧滑出(缺省)/右侧推出;弹出/滑出/推出 用 `--modal-width`/`--modal-height`(缺省 50%),滑出/推出 用 `--win-size`(缺省 100%)。走 saveNListConfig config.eventGroup(明文 JSON,config+mConfig 都写)。**自动保留移动端配置** |
78
- | `e10-cli form list-group <objId> <appId> <listId> [--enable --group-field <fieldId> [--group-size N]] [--disable] [--pc-only]` | 查看/配置**启用分组**(台账按某字段分组聚合显示)。`--enable --group-field <分组字段id> [--group-size N 默认100]` 启用/换分组字段、`--disable` 禁用(保留 groupField/groupSize 仅 enable=false)。走 saveNListConfig config.enableGroup(对象,持久化,不走 layout/save LZW)。**自动保留移动端配置** |
79
- | `e10-cli form list-hierarchy <objId> <appId> <listId> [--enable --parent-field <名称或fieldId> [--expand-level N]] [--disable] [--pc-only]` | 查看/配置**上下级树形展示**。上级字段必须是主表中单选、关联当前表单自身的 EBuilder 字段(常见名称“上级类型”);与普通 `list-group` 分组聚合不是同一能力。走 `saveNListConfig config.superiorField`,保存后独立回读并自动保留移动端配置 |
80
- | `e10-cli form list-permission <objId> <appId> <listId> [--add-all] [--add-user <userId> --name <name>] [--add-role <roleId> [--name <name>]] [--add-matrix <矩阵id> --name <name>] [--share-level <n>] [--seclevel <min>-<max>] [--add-raw '<json>'] [--remove <id>] [--remove-all] [--clear]` | 查看/配置**台账视图权限**(谁能查看这个台账)。`--add-all` 所有人(自动把空 dataid 与 0 视为同一主体,避免重复)、`--add-user` 人员、`--add-role` 角色、`--add-matrix` 矩阵。`--remove <id>` 删除指定权限;`--remove-all` 删除全部“所有人”,与 `--add-all` 同用可清理重复后只保留一条;`--clear` 清空全部。保存走 `list/permission/save` 全量覆盖并回读。另支持共享级别和安全级别范围 |
81
- | `e10-cli form list-search-group <objId> <appId> <listId> [--add <fieldId>] [--remove <fieldId>] [--clear] [--pc-only]` | 查看/配置**分类搜索**(按选项字段分类筛选)。`--add <选项字段fieldId>`(须已在显示列)、`--remove <fieldId>`、`--clear`。走 saveNListConfig config.searchConditions.groupFilters(视图级明文)。**仅主表选项类字段 Select/RadioBox/CheckBox,不支持明细字段(产品边界,传明细报错)**。listGroupSets 留空由平台运行时生成 |
82
- | `e10-cli form view list <objId> <appId> [--with-comps]` | 列出表单全部视图。`--with-comps` 额外拉每个视图布局 comps 数、标出空视图(NList 数据视图会显示「读取失败」,正常) |
83
- | `e10-cli form view rename <objId> <appId> <viewId> <新名称>` | 修改已有默认台账(nListView)的名称,保留原视图 ID 和配置,并在保存后回读确认。需求名称与默认名称不一致时统一用此命令,不新建重复视图 |
84
- | `e10-cli form view create <objId> <appId> <视图名> [--type formView\|kanbanView\|calendarView\|mindMapView\|multiView] [--terminal PC\|MOBILE] [--layout-type FLOW\|EXCEL] [--detail <明细名>] [--sub-form-id <明细subFormId>]` | 给**已有表单**添加视图。`formView` 创建后是空布局,需续跑 `form view populate` 填字段;`kanbanView`/`calendarView`/`mindMapView`/`multiView` 建视图实体。**multiView 数据维度**:缺省主表;明细表维度用 `--detail <明细名>`(按名解析)或 `--sub-form-id <明细subFormId>`(直传),传值即明细维度(`subFormMain:true`)。**台账(NList)视图**用 `form table-view create`,不在此命令 |
85
- | `e10-cli form view populate <objId> <appId> <viewId>` | 把已有字段按布局类型填入新增的 formView(视图为空时用这个填充) |
86
- | `e10-cli form layout read <objId> <appId> [--view-id <id>]` | 读表单布局结构(comps 坐标/只读)。不传 `--view-id` 读默认布局,传则读指定视图 |
87
- | `e10-cli form group <objId> <appId> --groups '{"基本信息":["字段名/fieldId",...]}'` | 给**已建好的 eb 表**加字段分组(折叠容器)。建组 saveFieldGroup → 分配 updateFormFieldGroup → initLayout generateCollapse 渲染。`--groups` 可 `@文件`;`--required` 同时设分组内字段必填;同名分组复用不重复建(去重)。建表时一次性带分组用 `form create` 的 fields.json `group` 属性 |
88
- | `e10-cli form data add <objId> <appId> <json>` | 写入表单数据(`@` 开头为 JSON 文件路径)。JSON key 可用 fieldId 或字段名;Select/RadioBox 值填选项名(自动解析 valueKey)或 valueKey、CheckBox/SelectMultiple 用数组、TextArea 直接值、Employee/Department 用 ID。详见 `form/guide-form-data.md` |
89
- | `e10-cli form data list <objId> [--page <n>] [--size <n>]` | 查询表单数据。`--page` 页码(缺省1)、`--size` 每页条数(缺省1000;不传 pageInfo 平台默认卡 10) |
90
- | `e10-cli form data delete <objId> <dataId>` | 删除一条表单数据 |
91
-
92
- ### 表单按钮
93
-
94
- | 命令 | 说明 |
95
- |------|------|
96
- | `e10-cli form button list <objId> <appId>` | 列出所有按钮 |
97
- | `e10-cli form button add <objId> <appId> <name> [--url <url>\|--open-view <视图>\|--open-layout <表单>\|--start-workflow <流程>] [--layout-type 新建\|编辑\|显示] [--map "目标字段:来源字段"...] [--target-app <appId>] --view <来源视图> --position <位置...>` | 添加通用打开页面按钮。支持固定 URL、平台视图、表单布局及流程快捷入口;`--map` 把当前行来源字段传给目标字段,可多项。当前行映射只允许行上/行末下拉;右上按钮无单行上下文。目标名称不唯一时使用 ID,保存后回读动作和映射 |
98
- | `e10-cli form button action-set <objId> <appId> <buttonId> [--open-view ...\|--open-layout ...\|--start-workflow ...] [--map ...]` | 更新已有自定义按钮的单一 `openpage` 动作,保留按钮位置和权限;适合修正目标页面或动态字段映射,避免重复创建同名按钮 |
99
- | `e10-cli form button toggle <objId> <appId> <buttonId>` | 启用/禁用按钮 |
100
- | `e10-cli form button position <objId> <appId> <buttonId> [--view <视图...> --position <位置...>] [--show-position <json或@文件>] [--replace]` | 设置已有按钮位置并回读验证。默认合并、保留未指定页面;`--replace` 全量替换。视图支持 ID/唯一名称/新建/编辑/显示;多台账不能省略具体视图。系统按钮适用,保留动作权限及返回的日志/提示配置。详见 `references/form/guide-form-button.md` |
101
- | `e10-cli form button views <objId> <appId> <buttonId>` | 读取该按钮可选视图及当前 showPosition,配置前先查询 |
102
- | `e10-cli form association list/get <objId> <appId> [associationId]` | 查询关联页签列表或详情;get 必须传 associationId,详情含目标视图、筛选映射和权限 |
103
- | `e10-cli form association views <objId> <appId> [--target-app <id>]` | 查询可绑定视图及所属表单 |
104
- | `e10-cli form association fields <objId> <appId> --view <viewId> [--target-app <id>]` | 查询来源表单字段和目标视图字段 |
105
- | `e10-cli form association create <objId> <appId> <name> --view <viewId> --permissions <json或@文件> [--layouts 显示 编辑] [--terminals PC MOBILE] [--mappings <json或@文件>]` | 创建关联页签;默认仅显示布局、PC+MOBILE、启用。权限必须显式提供,筛选映射为 [{targetField,sourceField}] |
106
- | `e10-cli form association update <objId> <appId> <associationId> [--name <名>] [--view <viewId>] [--layouts 显示 新建 编辑] [--terminals PC MOBILE] [--enabled true/false] [--mappings <json或@文件>]` | 保留未指定配置;布局和终端为集合替换;显示=0,新建=1,编辑=2,none 关闭全部布局。仅启停走独立接口并回读;多动作时传 --action |
107
- | `e10-cli form association set-filter <objId> <appId> <associationId> --mappings <json或@文件> [--action <id>]` | 替换目标视图动作的数据筛选字段映射,区别于权限条件 |
108
- | `e10-cli form association clear-filter <objId> <appId> <associationId> [--action <id>]` | 清空指定视图动作的数据筛选映射 |
109
- | `e10-cli form association set-condition <objId> <appId> <associationId> --perm <序号或类型> --rules <json或@文件> [--logic and/or]` | 设置页签权限条件,来源表单字段;与关联目标视图数据筛选独立 |
110
- | `e10-cli form association clear-condition <objId> <appId> <associationId> --perm <序号或类型>` | 清空指定权限条件;完整指南见 references/form/guide-form-association.md |
111
- | `e10-cli form button info <objId> <appId> <buttonId>` | 查看按钮详情 |
112
- | `e10-cli form button sort <objId> <appId> <sourceId> <targetId>` | 调整按钮排序 |
113
- | `e10-cli form button delete <objId> <appId> <buttonId>` | 删除按钮 |
114
-
115
- > **除非用户明确要求,否则不要往表单写入任何数据。** 表单创建完成后只需确认字段正确即可,不要自动插入测试数据。
116
-
117
- | `e10-cli form field-linkage list <appId> <objId>` | 字段联动(跨表带出赋值):列出联动 |
118
- | `e10-cli form field-linkage read <appId> <objId> <id>` | 回读单条(inFields/outFields) |
119
- | `e10-cli form field-linkage fields <appId> <formId>` | 查源表可带出字段 |
120
- | `e10-cli form field-linkage delete <appId> <objId> <ids...>` | 删除(批量) |
121
- | `e10-cli form field-linkage add <appId> <objId> --trigger <字段名> --target <字段名> --hops "<objId:字段名,...>"` | 新增。`--hops` 多跳链式(单跳用 `--source-form/--query-field`)。**Text 字段必须多跳取名称**。详见 `form/guide-field-linkage.md` |
122
-
123
- > **创建表单流程**:
124
- > 1. 读取 `references/form/guide-create-form.md` 了解标准创建流程;确定字段类型和参数时读取 `references/form/ref-form-fields.md`
125
- > 2. 与用户确认所有字段名和字段类型
126
- > 3. 将字段定义写入临时 JSON 文件(格式:`[{"componentKey":"Text","fieldName":"姓名"},...]`)
127
- > 4. 执行 `e10-cli form create ... --fields @<临时文件路径>`
128
- > 5. 涉及人员的字段统一使用 Employee 类型,不要用 Text
129
-
130
- ---
131
-
132
- ## 角色
133
-
134
- | 命令 | 说明 |
135
- |------|------|
136
- | `e10-cli role list` | 列出所有角色(树形结构,含层级关系) |
137
- | `e10-cli role create <name>` | 创建角色,`--parent <id>` 指定父角色,`--code` 编码,`--remark` 备注 |
138
- | `e10-cli role delete <ids...>` | 删除角色(可多个) |
139
- | `e10-cli role add-member <roleId> <keyword>` | 搜索人员并添加到角色 |
140
-
141
- ## 流程
142
-
143
- | 命令 | 说明 |
144
- |------|------|
145
- | `e10-cli workflow create <appId> <formObjId> <name> [desc]` | 创建 EB 流程,当前命令按固定模式创建并自动设置所有人可发起。**默认不加菜单**,要入口传 `--menu`(发起菜单 LAYOUT,指向表单新建页 `/sp/ebdfpage/card/1/<formObjId>/0`,点开即触发流程);漏加 `e10-cli menu add-start <appId> <formObjId>` 补 |
146
- | `e10-cli workflow create-workflow <name>` | **非默认路径**。仅当用户明确强调「用流程表单 / 工作流程 / 流程中心建流程、不在应用下」时才用;默认走上一条 `workflow create`(eb 应用内)。关联流程表单:不传 `--form-id` 自建(`relateForm=0`,服务端建表回吐 `data.formId`)/ `--form-id <已有>` 绑定(`relateForm=1`)。`--odoc` 创建公文流程(两种表单方式均支持,增加 `bridgeService=odoc`);`--workflow-type`(默认 -1=其它)、`--sub-company <机构>`、`--belong-type <0个人/1团队>`(默认 1)、`--table-name`、`--desc`、`--is-free`、`--layout <FLOW流式(默认)/EXCEL表格式>`(自建模式下 EXCEL 走 formmanage/saveForm 建表后绑定;建表后不可切换)。不带 source/messageParams |
147
- | `e10-cli workflow odoc <list\|read>` | 查询公文流程列表,或读取单个公文流程及公文设置摘要。`list` 支持 `--name`、`--sub-company`、`--belong-type`、分页参数 |
148
- | `e10-cli workflow odoc setting <get\|set> <workflowId>` | 读取或修改公文设置。`set --config @json` 读取当前配置后合并保存并回读;常用参数含 `--official-type`、`--request-title-field`、`--upload-word/pdf/ofd`、`--text-in-form`、`--column-position`、`--attach-area`、`--archive-node` |
149
- | `e10-cli wf-form read <formId>` | **流程表单管理(非默认路径)**。读流程表单字段(getConfig)。`<formId>` 由 `workflow create-workflow` 回吐。与 eb 表 `form read` 对齐,走 `/api/workflow/core/form/...`(module=workflow、customParam={}、无 apid) |
150
- | `e10-cli wf-form add-field <formId> <字段名> <类型> [标题]` | 给流程表单加字段。类型:Text/TextArea/Number/Money/Date/DateTime/Select/Employee/Department/Browser。`--sub-form-id <明细subFormId>` 明细字段;`--multiple` 多选;`--precision`/`--percent`/`--default`(Number/Money);`--format`(日期精度)。formTableId 省略 |
151
- | `e10-cli wf-form edit-field <formId> <fieldId> [--title <标题>] [--multiple|--single]` | 编辑已有字段(read-modify-write)。`--multiple`/`--single`:Employee/Department/Browser 切 isSingle,Select↔SelectMultiple。必填为布局级用 `wf-form layout init --required` |
152
- | `e10-cli wf-form formula set <formId> --expression "DAYS({主表.开始时间},{主表.结束时间})" --target <fieldId>` | 给流程表单字段绑定计算公式。`{主表.字段}`/`{明细表名.字段}` 引用(getConfig 解析)→ `/api/excel/formula/save`(module=workflow) → ffExpress 绑字段 + saveSourceForm。`--name`/`--return-type`。另:`formula get <id>` / `list <formId>` / `functions` |
153
- | `e10-cli wf-form linkage <formId> <联动名> --config '{"conditions":[{"field":"请假天数","operator":"EQUAL","value":"3"}],"actions":[{"prop":"hide","fields":["请假事由"]}]}'` | 显隐联动。`--config` 写字段名(自动 getConfig 解析 fieldId/dataKey)。prop: hide/show/edit/readonly/required/hideLine;operator: EQUAL/NOT_EQUAL/GREATER/LESS/EMPTY 等 |
154
- | `e10-cli wf-form validate add <formId> <字段名...> [--remind] [--help <提示>]` | 字段查重规则(多字段 AND,重复禁止提交/提醒)。`list`/`delete <ruleId>`。字段名自动 getConfig 解析 |
155
- | `e10-cli wf-form relate <formId> <目标字段> --from <Employee/Department源字段> [--key email/department/code/name] [--title <名>]` | 值带出:换表内 Employee/Department 字段自动填目标字段(HRM 属性带出)。`--key` 默认 Employee=department/Department=name。机制同 eb 表(ffRelateField,Employee 源 module=hrm) |
156
- | `e10-cli wf-form permission get <formId>` | 查看流程表单字段权限(display/readOnly/required/disableEdit)。**写字段权限用 `workflow node field-permission`**(节点级,流程表单表单级写平台多返 500) |
157
- | `e10-cli wf-form add-detail-table <formId> <明细表名> [首字段名] [--init]` | 给流程表单加明细子表(saveSubForm+首字段+可选 init 放入布局)。机制同 eb 表 `form add-detail-table` |
158
- | `e10-cli wf-form field-options <formId> <fieldId> --options '[{"name":"事假"},...]' [--default <序号>]` | 给流程表单 Select/SelectMultiple 配选项(read-modify-write:getFormField 读全字段→改 options→saveFormFieldNew 重存)。`--options` 支持 `@文件`;`--default` 默认选项 valueKey |
159
- | `e10-cli wf-form layout init <formId>` | 初始化/重建流程表单布局(initLayout,按 layoutType 选模板,默认 FLOW)。`--read-only`/`--required`/`--single-row` 覆盖字段属性 |
160
- | `e10-cli wf-form layout add <formId> --name <布局名>` | 新增一套流程表单布局。`--layout-type FLOW|EXCEL`(默认 FLOW)、`--terminal-type PC|MOBILE`(默认 PC)、`--describe`、`--workflow-id`;返回 `layoutId`,多套布局并存且不覆盖原布局 |
161
- | `e10-cli wf-form layout delete <formId> <layoutId>` | 删除指定流程表单布局。`layoutId` 取自 `layout add` 返回值;可传 `--workflow-id`、`--terminal PC|MOBILE`(默认 PC)。该操作从布局列表移除目标布局 |
162
- | `e10-cli wf-form field-prop <formId>` | 设置运行时布局字段属性:`--required <字段...>`、`--no-required <字段...>`、`--readonly <字段...>`、`--editable <字段...>`、`--single-row <字段...>`。字段可传名称或 ID;内部 getConfig 读取并由 initLayout 保存,同时保留已有分组和独占一行设置 |
163
- | `e10-cli wf-form group <formId> --groups '{"基本信息":["字段名/ID",...]}'` | 给**已建好的流程表单**加字段分组(折叠容器,对齐 eb 表 `form group`)。建组 saveFieldGroup → 分配 updateFormFieldGroup → initLayout generateCollapse 渲染。`--groups` 可 `@文件`;同名分组复用不重复建(去重) |
164
- | `e10-cli workflow list <appId>` | 列出应用下的所有流程 |
165
- | `e10-cli workflow search` | 通用搜索流程(不依赖 appId)。`--name`/`--id`/`--type`/`--belong` |
166
- | `e10-cli workflow nodes <workflowId>` | 查看流程节点详情(名称、类型、操作者、连线含 linkId) |
167
- | `e10-cli workflow nodes <wf> --mode list` | 列表视图:展示全节点含 nodeAttr、合流方式(比 chart XML 更全) |
168
- | `e10-cli workflow set-operator <wf> <node> [keyword]` | 设置节点操作者。`--type user`(指定人) / `role`(指定角色) / `dept`(指定部门) / `position`(指定岗位) / `all`(所有人) / `free`(自由选择) / `superior`(发起人上级) / `initiator`(流程发起人本人) / `prev-node`(上一节点) / `form`(表单相关人员) / `matrix`(矩阵对应,需 `--matrix-id` `--value-config-id` `--matrix-rule`)。`--sign-order` 会签/非会签/竞签/依次处理/抄送/抄送需批注(form 类型也支持,概念见 guide-workflow)。**依次处理倒序**用 `--execute-order 2-2`(默认)/`2-1`正序/`1-1,2-2`安全级别正序+倒序。**`--dept-scope 本部门`**=单个部门内会签/`本及下级`默认。**一个节点多人用逗号分隔 keyword**(如 `"区域经理,部门领导"`,user/dept 都支持);默认每次全量重建操作者组(先清空再新建),重复设置不堆积。**多操作者组叠加(如「部门领导矩阵 + 门店经理矩阵」双组会签):先用 set-operator 配第一组,再用 `--append` 配第二组**,`--append` 不清空已有组,两组合起来就是双矩阵会签 |
169
- | `e10-cli workflow generate-link-id <wf>` | 生成新连线 ID |
170
- | `e10-cli workflow add-node <wf> <type> <name>` | 添加节点(列表 API)。`<type>`: 0=发起 1=审批 2=确认 3=归档 5=投递 7=自动处理 8=等待 / forkstart/forkend/forkmiddle。**结束节点=归档节点(type=3)**。`--node-attr` 节点属性;合流点支持 `--merge-type`(0=全部/1=指定/2=数量/3=比例)、`--merge-num`、`--branch-nodes` |
171
- | `e10-cli workflow rename-node <wf> <nodeId> <name>` | 重命名节点(saveNodeSetForm API) |
172
- | `e10-cli workflow add-link <wf> <from> <to> <label>` | 一键添加连线(列表 API)。`--reject` 退回 / `--default` 默认出口 |
173
- | `e10-cli workflow add-links <wf> @links.json` | 批量添加连线(列表 API,一次保存)。格式:`[{"from":"节点ID","to":"节点ID","label":"标签","reject":true,"default":true}]` |
174
- | `e10-cli workflow link-list <wf>` | 查看出口列表(含默认/退回/条件标志)。`--node-id` 过滤单节点 |
175
- | `e10-cli workflow link-save <wf> @datas.json` | 修改/删除出口(列表方式)。`--delete-rows`/`--changed-link-ids`/`--update-row-ids` |
176
- | `e10-cli workflow link-rename <wf> <linkId> <名称>` | 重命名出口(连线名称)。linkId 用 link-list 查看。实现:读出口列表 → 改 linkName → saveNodeLinkEditTable(updateRowIds) |
177
- | `e10-cli workflow numbering read <wf>` | 查看流程编号规则 |
178
- | `e10-cli workflow numbering enable <wf>` | 启用流程编号(`--off` 关闭)。方案要求"流程有编号"时必做,平台默认不自动启用 |
179
- | `e10-cli workflow numbering set <wf> [--prefix <前缀>] [--separator <ch>] [--serial <n>] [--no-year] [--dry-run]` | **配置流程编号规则**(一次设全组成):前缀 + 流水号位数(默认4)+ 可选年份段。**`--separator <ch>` 段间分隔符**(如 `-` `~`):在相邻段(前缀-年、年-流水)间自动插独立固定段 → `--prefix QXBK --separator ~ --serial 4` = `QXBK~2026~0001`;平台分隔符就是独立 FIX_CONTEXT 段、可多个固定段共存。`--dry-run` 只打印将产出的段序列(复用/新建/删除)不落库。旧版曾按类型只留一段会删掉已有分隔符段。`--prefix LC --serial 4 --no-year` → `LC0001`。比 `add-component` 逐个加更省事,常用这条 |
180
- | `e10-cli workflow numbering add-component <wf> --type fixed\|date\|field --value <text> --format <yyyyMMdd> --field-id <id>` | 添加编号组成项:fixed=固定内容 / date=日期 / field=表单字段 |
181
- | `e10-cli workflow numbering reserve <wf> <count> [--prefix]` | 预留编号。**流程编号=REQUEST_NO 系统字段**:eb表单绑流程后编号走本命令(不要用 `form serial-mark` 表单编号,那对流程表无效) |
182
- | `e10-cli workflow node validate <wf> <nodeId> --rule "主题字段 操作 值字段或字面值"` | 节点提交校验(智能审批规则,提交时拦截)。值可以是**字段**(字段 vs 字段)或**字面值**(字段 vs 常量);主题字段支持**跨表**——用「明细表名.字段名」定位明细字段做主子表校验:`"请假时长 小于 4"`、`"行程明细.行程开始时间 等于 出差开始日期"`(明细字段=主表字段)。`--name` 规则名;`--disable` 关闭;`--view` 查看 |
183
- | `e10-cli workflow node menu <wf> <nodeId>` | 查看/切换节点操作菜单。`--toggle <menuId>` 切换启用状态 |
184
- | `e10-cli workflow node reject <wf> <nodeId>` | 配置节点退回设置。`--remind`/`--type`/`--checked-node`/`--submit-type` |
185
- | `e10-cli workflow node timeout <wf> <nodeId>` | 配置节点超时处理。`--time-type`/`--time-value`/`--flow-type`/`--remind-type` |
186
- | `e10-cli workflow node field-permission get <wf> <nodeId>` | 查看节点字段权限(各字段 显示/隐藏)。表单字段在节点上可见与否 |
187
- | `e10-cli workflow node field-permission set <wf> <nodeId> --hide <字段...>` | 设置节点字段显示/隐藏。`--hide 字段名/ID` 隐藏、`--show` 显示;可多个,已设权限则更新、未设则新建 |
188
- | `e10-cli workflow node sign <wf> <nodeId>` | 节点签字意见必填(退回时必填意见等)。缺省查看;`--all-required` 全部必填、`--none-required` 全部不必填、`--select "退回,加签"` 指定操作类型必填(按 mustInputDto=2 + 选中操作类型 id)。`getSignConfigForm` 枚举操作类型 |
189
- | `e10-cli workflow node empty-handle get <wf> <nodeId>` | 查看节点**流程异常处理**(无可处理人时怎么办) |
190
- | `e10-cli workflow node empty-handle set <wf> <nodeId> --handle-way <1-5>` | 设置节点流程异常处理:1=指定人员(`--person 名称/ID`) / 2=用户指定 / 3=发起人 / 4=自动流转下一节点 / 5=提交指定节点(`--assign-node <节点ID>`);`--off` 关闭;`--sync` 同步所有节点 |
191
- | `e10-cli workflow setting title <wf>` | 流程标题规则(发起后标题按规则生成,如"发起人-提交日期-客户名称"→真实数据)。缺省列出可用变量(发起人/部门/日期/表单字段);`--rule "发起人\|提交日期\|客户名称"` 竖线分隔字段名设置;`--sep <分隔符>` 默认 `-`;`--disable` 关闭自动生成(标题回退流程名+系统默认)。占位符 `$code$`,平台发起时替换为真实值 |
192
- | `e10-cli workflow setting submit <wf>` | 提交确认设置。`--confirm`/`--node-range`/`--show-way` |
193
- | `e10-cli workflow setting sign <wf>` | 签字意见设置。`--show-order`/`--inform-range` |
194
- | `e10-cli workflow setting comment <wf>` | 评论功能开关。`--enable` |
195
- | `e10-cli workflow setting batch <wf>` | 批量操作设置。`--enable-batch`/`--enable-turn-todo`/`--enable-consult`/`--enable-reject` |
196
- | `e10-cli workflow setting auto <wf>` | 自动处理设置。`--enable`/`--way`/`--follow-type` |
197
- | `e10-cli workflow setting other <wf>` | 其他设置。`--message-op`/`--auto-save`/`--switch-identity` |
198
- | `e10-cli workflow advanced doc <wf>` | 流程存档设置。`--enable`/`--dir-select`/`--doc-types` |
199
- | `e10-cli workflow advanced schedule <wf>` | 定时触发审批。`--enable`/`--frequency`/`--begin-date`/`--time`/`--weekday-only`/`--sms`/`--email`/`--message`/`--limit-creator` |
200
- | `e10-cli workflow advanced schedule-range <wf>` | 定时触发人员范围。`--list`/`--add`/`--delete` |
201
- | `e10-cli workflow delete <workflowId>` | 删除流程。`--with-form` 同时删除关联表单 |
202
- | `e10-cli workflow delete-link <wf> <linkIds...>` | 删除连线(列表 API,可多个)。自动清理关联节点 |
203
- | `e10-cli workflow delete-node <wf> <nodeId>` | 删除节点(自动清理关联出口)。`--bridge` 桥接上下游 |
204
- | `e10-cli workflow save-layout <wf> @xmlfile` | 保存完整流程图 XML(浏览器 mxGraph 格式:数字 cell id + nodeId/linkId)。服务器只认浏览器格式,勿转 node_X。新增节点/连线会自动注入 flag="add" |
205
- | `e10-cli workflow auto-layout <wf>` | **节点自动排版**(分层布局,全量重排坐标)。`--direction ltr/ttb`(默认ltr)、`--gap-x/--gap-y` 间距、`--dry-run` 只算不打回、`--out` 配合 dry-run 输出新 XML。忽略退回线分层,分支自然融入 |
206
- | `e10-cli workflow condition add <wf> <sourceId> <nodeId> <name> --rule "..."` | **简化语法**添加条件。`sourceId` 是连线 ID(linkId),`nodeId` 是该连线的来源节点 ID(srcNodeId),不是目标节点 ID;可从 `workflow nodes --json` / `link-list` 取得。`--rule "system:流程标题:包含:关键词"` 或 `--rule "form:字段ID|字段名|dataKey:大于:1000"`(fieldId/名/dataKey 均可匹配)。按 fieldType 自动判族校验算子,`--relation AND/OR`。**增强语法**:字段vs字段 `form:字段:大于:field:值字段`(range 用 `form:字段:范围:field:左:右`);明细量词 规则末尾 `:任一`/`:所有`;多值属于 `form:字段:包含:值1,值2`;人员/部门字段 `form:人员字段:包含:张三,李四` 自动解析成对象;系统字段 `system:紧急程度:等于:紧急`;嵌套 OR 用 `\|` 分隔 `form:关联项目:不为空\|form:关联客户:不为空`。详见 `workflow/guide-workflow-condition.md` |
207
- | `e10-cli workflow save-condition @jsonfile --app-id <appId>` | 保存条件规则(原始 JSON)。CLI 自动生成 ID 并绑定到连线 |
208
- | `e10-cli workflow condition list <wf>` | 列出工作流下所有连线绑定的条件(连线名 + 条件名 + 表达式 + mapId),支持 `--name` 过滤 |
209
- | `e10-cli workflow condition get <wf> <id>` | 查看单个条件详情。`<id>` 可用 conditionKey / mapId / conditionId |
210
- | `e10-cli workflow condition delete <wf> <id> [--link-id <linkId>] [--node-id <nodeId>]` | 删除条件(删定义 + 解绑连线)。`<id>` 同 get |
211
- | `e10-cli workflow set-link-condition-key <wf> <link> <key> <node>` | 绑定条件 Key 到连线 |
212
- | `e10-cli workflow save-action @jsonfile` | 加节点提交动作(常量赋值)。**只接 JSON 一个参数**,`workflowId`/`nodeId` 写在 JSON 内部(不是位置参数)。JSON 格式见 `workflow/guide-workflow-action.md` |
213
- | `e10-cli actionflow generate '{"planFile":"@plan.json","appName":"AI-名称"}'` | **动作流生成**(语义 plan → 编译 → preflight → 保存并启用 → 正式回读,返回设计器链接)。`planFile` 必须以 `@` 引用文件(`@plan.json` 或 `@绝对路径`),CLI 强制要求 `@` 前缀。event 节点 `ApproveTrigger` 自带流程节点触发绑定(`workflowPath`+`triggerTiming`+`approveNode`/`approveLink`),不走 pathdef/addaction,无需单独绑节点。默认保存并启用;`{"mode":"stash",...}` 显式暂存。组件契约/参数/映射/条件的权威是 `e10-cli actionflow component-describe <type>`,详见 `actionflows/SKILL.md`。覆盖 ActionEb 全系列/Approve/Document/Hrm/Http(含 HTTPS 地址和 `inputParams`)/DML 数仓/触发器(含 CustomTrigger、InnerMQListener)/消息(含 InnerMQSend)/会议日程/逻辑 20+ 组件;Http 生成前实时校验当前租户连接器→资源→接口→详情,并按当前连接器回填标题/图标;InnerMQListener 与 InnerMQSend 同流互斥 |
214
- | `e10-cli actionflow datasource-list '{"query":"esb"}'` | 查询当前租户数仓数据源连接;`DMLExecute.params.dataSetConn.id` 必须使用这里返回的真实 ID |
215
- | `e10-cli actionflow http-connectors --out http-connectors.json` | 查询当前租户 HTTP 连接器;后续按 `http-resources` → `http-interfaces` → `http-interface-detail` 继续读取,HTTP 请求参数用接口详情的真实 `inputParams` 配置 |
216
- | `e10-cli actionflow update '@update-plan.json'` | **已有动作流保留式修改**(精确 appId → 读正式设计 → 备份 → 按原节点 ID 显式 operations → saveDesign(saveNewVersion=true) → 正式回读)。**不可改 event 触发器**(触发类型/表单/时机/参数变了就新建);未声明内容保留。触发类型含按钮触发、自定义触发、内置 MQ 监听/发送 |
217
- | `e10-cli workflow action list-node <wf> <nodeId> [--trigger-type all\|link]` | 列出节点绑定的动作(getAddActionDataList)。显示每条的动作类型/appId/触发时机,type0 还带字段=值 |
218
- | `e10-cli workflow action clear-node <wf> <nodeId> [--trigger-type all\|link]` | **清空节点所有动作绑定**(deleteAddAction + delList)。清理重复 add/已删实体残留的悬空绑定;动作流实体另用 `action delete` 清 |
219
- | `e10-cli workflow action disable <appId> <name>` | 禁用动作流(禁用后才能删除) |
220
- | `e10-cli workflow action delete <appId> <name>` | 删除动作流(自动先禁用再 batchAddRecycle 删实体)。**平台无"按动作流反查绑定节点"接口**:删实体后,绑定了此动作流的节点会残留**悬空引用**(前端显示「被删除」)。CLI 删完会提示,需逐个用 `action clear-node <wf> <node>` 清理节点绑定 |
221
- | `e10-cli workflow action batch-delete @list.json` | 批量删除动作流(每项 `{id,name}`,自动先禁用再 batchAddRecycle) |
222
-
223
- > **加节点**: add-node 直接操作节点列表 API (getNodeEditTable → saveNodeEditTable)
224
- > **加连线**: add-link/add-links 直接操作出口列表 API (getWfpNodeLinkTable → saveNodeLinkEditTable)
225
- > **删连线**: delete-link 直接操作出口列表 API (getWfpNodeLinkTable → saveNodeLinkEditTable, deleteRows)
226
- > **删节点**: delete-node 直接操作节点列表 API (saveNodeEditTable, deleteRows),`--bridge` 自动桥接
227
- > **查看节点/出口**: nodes --mode list / link-list 走列表 API(比 chart XML 更完整)
228
- > **加分支条件两种方式**:
229
- > - 简化: `condition add` — 一行命令搞定
230
- > - 完整: generate-link-id → save-layout → save-condition → set-link-condition-key
231
- > **加节点提交动作(字段常量赋值)**: save-action @action.json(格式见 `workflow/guide-workflow-action.md`)
232
- > **加跨表单动作流**: `e10-cli actionflow generate`(语义 plan 生成 + 保存并启用 + 正式回读,event 自带流程节点绑定);`workflow action` 仅作查/清/删/禁用管理
233
-
234
- ---
235
-
236
- ## 菜单
237
-
238
- | 命令 | 说明 |
239
- |------|------|
240
- | `e10-cli menu list <appId>` | 列出当前Ebuilder应用下的菜单 |
241
- | `e10-cli menu add <name> <path> <appId>` | 将页面加入左侧导航(LINK 类型,URL path)。ecode 页面 path 如 `/sp/custom/ecode/project-list`。**表单台账/流程发起菜单用下面两条专用命令**(VIEWPORT/LAYOUT 类型,非 URL) |
242
- | `e10-cli menu add-table <appId> <objId> [name]` | 给表单加**台账菜单**(VIEWPORT,指向数据列表页)。`form create --menu` 才自动加(默认不加),此处用于事后补加 |
243
- | `e10-cli menu add-start <appId> <formObjId> [name]` | 给流程绑定的表单加**发起菜单**(LAYOUT,指向表单新建页,点开触发流程)。`workflow create --menu` 才自动加(默认不加) |
244
- | `e10-cli menu permission list <appId> <menuId>` | 列菜单可见范围授权(**默认所有人**;无输出=全可见) |
245
- | `e10-cli menu permission add <appId> <menuId> <目标> --type role\|dept\|user\|all` | 给菜单授权。默认语义:**加角色/人/部门后自动撤「所有人」→ 只有授权对象可见**;`--keep-all` 保留所有人;`--type all` 恢复"所有人可见" |
246
- | `e10-cli menu permission remove <appId> <menuId> <目标> --type role\|dept\|user\|all` | 撤销菜单授权(撤销所有人用 `--type all`) |
247
- | `e10-cli menu delete <menuId> <appId>` | 删除菜单项 |
248
-
249
- ---
250
-
251
- ## 页面 & 设计器(配置式页面搭建)
252
-
253
- > 设计器页面 vs Ecode 页面:应用内建页**优先用设计器 Ebuilder 页面(配置式)**——`page create` 建页 → `designer comp-add --template` 加组件(28 个内置 factory 模板)→ 组件 setter/脚本绑数据 → `designer save` → `designer unlock` → `page publish-menu` 发布菜单,全程不写前端代码。详见 `ebuilder-designer/guide-designer.md`。
254
-
255
- | 命令 | 说明 |
256
- |------|------|
257
- | `e10-cli page list --app-id <appId>` | 列应用下页面(id/name/belongModule/terminalScope) |
258
- | `e10-cli page create <name> <appId> [--scope PC,MOBILE] [--layout-type GRID] [--module EB_PAGE]` | 创建页面(**参数顺序:名称在前、appId 在后,写反会 401**)。免登录页 `--module EB_ANONYMOUS_PAGE` 不支持 Comment/SearchGlobal/FastCreate |
259
- | `e10-cli page get <pageId>` | 页面详情(模块/终端/权限视图) |
260
- | `e10-cli page delete <pageIds...>` | 删除页面(软删除,可多个) |
261
- | `e10-cli page publish-menu <pageId> <appId> [name]` | 页面发布为应用菜单(默认所有人可见,`menu permission` 收窄)。**发布前先 save+unlock**,否则设计器/预览弹「布局未保存」 |
262
- | `e10-cli designer info <pageId>` | 页面元信息。**看 `allowEdit`/`isLock`**:isLock=1 先 unlock 再 save |
263
- | `e10-cli designer layout <pageId> [--json] [--terminal pc\|mobile]` | 读布局(`--json` 输出完整两端 JSON 供 save 复用;摘要模式看组件 id/type/标题/坐标) |
264
- | `e10-cli designer save <pageId> --layouts <json\|@file> [--page-name] [--sync-outdate]` | 保存布局(自动 LZ 压缩)。**入参取自 layout --json、只改 comps;必须含 PC+MOBILE 两端**(缺端丢另一端),CLI 强校验 |
265
- | `e10-cli designer lock <pageId>` / `designer unlock <pageId>` | 锁定/解锁(软锁;**收尾必做 unlock**,每次都递增版本号) |
266
- | `e10-cli designer position <pageId> <compId> --x --y --w --h` | 调 PC 栅格位置(12 列;改后自动保存) |
267
- | `e10-cli designer comp-add <pageId> --template <名\|路径> [--type <Type>] [--x --y --w --h]` | 加组件:内置模板直接传名(`pie`/`bar`/`nlist`/`slide`…28 个,`designer factory-list` 查全表);也可传任意布局 JSON 路径,或 `--from <srcPage> --comp <id>` 从活页克隆。自动生成新 id + PC/MOBILE refCompId 互连并保存 |
268
- | `e10-cli designer comp-remove <pageId> <compId>` | 移除组件(PC/MOBILE 按 refCompId 联动删) |
269
- | `e10-cli designer factory-list` | 列出 28 个内置 factory 模板(名称↔组件 type 对照) |
270
- | `e10-cli designer chart dataset-set\|measure-add\|dimension-add\|title\|height` | **图表配置(全 11 种)**。dataset-set 绑表单;measure-add 加度量(SUM/AVG/MAX/MIN 用 `--field-id`,COUNT 用 `--count-records`);dimension-add 加维度(字段名/ID 均可,Date 自动按月);title 设业务标题;height 设像素高。**Gauge:COUNT+无维度;堆积:2 度量+1 维度;Bubble:只能 1 度量** |
271
- | `e10-cli designer digital-panel panel-add ...` | 数字面板加 KPI 卡(`--field-id --aggregator SUM\|COUNT\|AVG\|MAX\|MIN --label`) |
272
- | `e10-cli designer list dataset-set\|field-add\|order-add` | NList 绑数据源/加显示列(`--type` `--comp-type` 同值传字段类型)/加排序 |
273
- | `e10-cli designer calendar dataset-bind\|field-map\|title` | 日历绑数据源(`--start --end --title-field`,内置全视图渲染)/调映射(`--end clear` 全天单日)/设标题 |
274
- | `e10-cli designer slide pic-add\|title` | 幻灯片加轮播图(**平台资源路径**,已防 Git Bash 路径转换)/设标题 |
275
- | `e10-cli designer nav-panel menu-add\|menu-source-type\|title` | 导航面板加跳页菜单(NewPage 双层 eventGroup 自动构造)/切菜单来源 DEFAULT\|CUSTOM/设标题 |
276
-
277
- > **setter 通用**:`--field-id` 传字段名或 fieldId;绑定条目由 CLI 从 ds/fields 取平台原样字段对象自动构造(不用手填 physicalField/browserParams);其余 12 类非图表组件无 setter,走「导出 layout → 脚本改 config → save」(见 `ebuilder-designer/guide-designer-factory.md` 深度配置节)。
278
- | `e10-cli designer auto-height <pageId>` | **单列纵堆模式**:按组件内容自动定高 + 重排 y(配完字段后跑一次)。**多列栅格勿用**(会覆盖 w/x),手调 position |
279
- | `e10-cli designer version list <pageId> [--page] [--size] [--since/--until] [--remark]` | 版本列表(save 自动产生快照;**versionId 取 records[].id 非 version 号**) |
280
- | `e10-cli designer version revert <pageId> <versionId>` | 还原历史版本(整体替换两端;不可逆,还原前建议 lock) |
281
-
282
- > **坑**:① save 入参铁律——取自 `/layout/list` 原值只改 comps,元数据不动;② 组件标题用业务名(comp-add 出来是占位名,配完必改);③ 高度是内容驱动(h 过低裁切,`position --h` 调大);④ 非 TTY 环境给 `comp-add` 带 `--yes`。
283
-
284
- ---
285
-
286
- ## 人员 & 图标
287
-
288
- | 命令 | 说明 |
289
- |------|------|
290
- | `e10-cli user search <keyword> [count]` | 模糊搜索员工(返回 ID/姓名/部门/手机) |
291
- | `e10-cli icon search <keyword...>` | 搜索 Ebuilder 图标(4999 个,支持多关键词) |
292
-
293
- ---
294
-
295
- ## 版本更新(只提醒,升级需确认)
296
-
297
- | 命令 | 说明 |
298
- |------|------|
299
- | `e10-cli update check` | 强制连网查一次(忽略 24h 缓存),显示 当前/最新/结论。`--on`/`--off` 开关注册 |
300
- | `e10-cli update apply [--yes]` | 升级到最新(打印将执行的 `npm install -g weaver-e10-builder@<最新>` 并询问确认;加 `--yes` 跳过确认)。仅在线可用,内网走离线 tgz |
301
-
302
- > **自动提醒**:每次 `e10-cli auth status` 末尾静默检查(每 24h 最多连网一次;离线/内网自动跳过不打扰)。检测到新版本只打一行 `💡 有新版本…`,**不自动安装**。
303
-
304
- ---
305
-
306
- ## 代码检查
307
-
308
- | 命令 | 说明 |
309
- |------|------|
310
- | `e10-cli check <项目目录>` | 代码质量检查,逐条自检,全部确认通过后再 build |
311
-
312
- ---
313
-
314
- ## 典型工作流
315
-
316
- ```bash
317
- # 1. 创建项目ecode
318
- e10-cli project create 会议室预订
319
-
320
- # 2. 打包 & 上传
321
- ecodecmd build /path/to/project --target=e10
322
- e10-cli project import <projectId> .target/xxx.zip --main-url /sp/custom/ecode/table-demo
323
-
324
- # 3. 后续改代码再上传(先删旧应用文件夹)
325
- ecodecmd build /path/to/project --target=e10
326
- e10-cli project tree <projectId> # 找旧应用 folderId
327
- e10-cli project delete-folder <folderId>
328
- e10-cli project import <projectId> .target/xxx.zip --main-url /sp/custom/ecode/table-demo
329
-
330
- # 4. 需要表单时
331
- e10-cli app create 会议室管理 # → appId
332
- # 先写字段定义文件 fields.json,然后:
333
- e10-cli form create <appId> 会议室表单 /path/to/project --fields @fields.json # → objId
334
- e10-cli form read <objId> --app-id <appId> --out fields.json # 写入 fields.json(推荐)
335
-
336
- # 5. 角色管理
337
- e10-cli role create 财务主管 --code CW01 --remark "审批角色"
338
- e10-cli role add-member <roleId> 张三
339
-
340
- # 6. 创建流程
341
- e10-cli workflow create <appId> <formObjId> 会议室审批
342
- e10-cli workflow nodes <workflowId> # 查看节点
343
-
344
- # 7. 配置审批节点
345
- e10-cli workflow set-operator <wf> <nodeId> 张三 # 指定人
346
- e10-cli workflow set-operator <wf> <nodeId> 财务主管 --type role # 指定角色
347
-
348
- # 8. 加分支条件(如金额≥1000走CEO审批)
349
- e10-cli workflow generate-link-id <wf> # → newLinkId
350
- e10-cli workflow save-layout <wf> @修改后的xml文件
351
- e10-cli workflow save-condition @条件.json # → conditionKey
352
- e10-cli workflow set-link-condition-key <wf> <linkId> <key> <nodeId>
353
-
354
- # 9. 添加菜单
355
- e10-cli menu add 会议室预订 /sp/custom/ecode/meeting/list <appId>
356
-
357
- # 10. 配置动作流(新建/修改)—— 新建走 generate,已有流修改走 update
358
- # 先查目标表字段 + 流程上下文 paramKey
359
- e10-cli actionflow form-fields '{"tableId":"<targetTableId>","appId":"<targetAppId>"}'
360
- e10-cli actionflow workflow-context-fields '{"workflowId":"<wf>"}'
361
- # 按名称或 paramKey 筛选;默认每页仅 20 条,避免终端截断
362
- e10-cli actionflow workflow-context-fields '{"workflowId":"<wf>","query":"数据ID"}'
363
- # 输出完整原始 JSON(终端仍只显示可用摘要,避免截断)
364
- e10-cli actionflow workflow-context-fields '{"workflowId":"<wf>"}' --out context.json
365
- # 正式设计回读同理;默认摘要,raw:true 才直接打印完整 JSON
366
- e10-cli actionflow read-design '{"sceneId":"<sceneId>"}' --out design.json
367
- # 写 plan.json(event=ApproveTrigger 带 workflowPath+triggerTiming;actions=ActionEbAdd/Update/Delete)
368
- # mapping: {"源paramKey":"目标字段ID"},目标ID +前缀=累加 -前缀=累减;明细仅 add;
369
- # update 定位: opType=id(关联字段)/updateData+filterCondition(requestId 定位走 ApprovalData paramKey)
370
- e10-cli actionflow generate '{"planFile":"@plan.json","appName":"AI-动作流名"}' # planFile 必须以 @ 引用文件(@plan.json 或 @绝对路径)
371
- # 管理: list-node 查节点绑定 / clear-node 清 / delete/disable 删动作流
372
- e10-cli workflow action list-node <wf> <nodeId>
373
- ```
1
+ # e10-cli 命令参考
2
+
3
+ > **所有系统交互统一使用 `e10-cli`**。auth 文件自动查找,也可 `--auth <path>` 指定。加 `--json` 输出 JSON 格式。
4
+
5
+ ---
6
+
7
+ ## 工具
8
+
9
+ | 命令 | 说明 |
10
+ |------|------|
11
+ | `e10-cli docx read <文件>` | 解析 Word 文档为 markdown + 提取图片到 `_images/`。**禁止自己写 python-docx 脚本** |
12
+ | `e10-cli interface import <文件> [--system-pool-name <名称>] [--apply] [--out <文件>]` | 解析 `.docx/.pdf/.md/.txt` 为 Postman Collection;默认预览,`--apply` 才调用 ESB 创建系统接口。未传系统池名称时从文档文件名推导;完整规则见 `references/esb-interface/guide-import.md` |
13
+
14
+ ---
15
+
16
+ ## Ecode 项目操作
17
+
18
+ | 命令 | 说明 |
19
+ |------|------|
20
+ | `e10-cli project create <name> [desc]` | 新建 Ecode 项目(名称自动追加时间戳) |
21
+ | `e10-cli project import <projectId> <zip> --main-url <url>` | 导入 zip 包,`--main-url` **必填** |
22
+ | `e10-cli project tree <parentId>` | 查看目录结构 |
23
+ | `e10-cli project read <fileId>` | 读取代码文件内容 |
24
+ | `e10-cli project update <fileId> <content>` | 更新代码文件(content 以 `@` 开头则为文件路径) |
25
+ | `e10-cli project create-file <name> <parentId> [type]` | 新建代码文件(默认 js) |
26
+ | `e10-cli project create-folder <name> <parentId>` | 新建文件夹 |
27
+ | `e10-cli project delete-file <fileId>` | 删除代码文件 |
28
+ | `e10-cli project delete-folder <folderId>` | 删除文件夹(= 删除应用) |
29
+
30
+ - 导入成功后会在 Ecode 项目下生成应用文件夹
31
+ - 二次导入之前先删掉旧应用文件夹(通过 `e10-cli project tree` 找到 folderId)
32
+
33
+ ---
34
+
35
+ ## Ebuilder 应用 & 表单
36
+
37
+ | 命令 | 说明 |
38
+ |------|------|
39
+ | `e10-cli app create <name> [desc]` | 新建 Ebuilder 应用(scope=PC_MOBILE,INTERNAL 类型)。`--json` 输出 `{id,name}` |
40
+ | `e10-cli app list [--name <关键词>]` | 查询应用列表(扁平 id/name/description) |
41
+ | `e10-cli app folder [--type 1/2/3]` | 查看应用目录结构(文件夹+应用树,含发布状态)。1=我管理的/2=我创建的/3=全部 |
42
+ | `e10-cli app read <appId>` | 查看应用**详情**(全量配置:名称/描述/简称/范围/目录/组织/发布状态)。`--json` 输出完整对象。走 `/app/info` |
43
+ | `e10-cli app edit <appId> [--name] [--desc] [--short-name]` | 编辑应用信息(至少指定一个写参数;内部先读 `/app/info` 再合并提交) |
44
+ | `e10-cli app delete <appId>` | 删除应用(软删除,可恢复;存在关联资源会提示先清理) |
45
+ | `e10-cli form read <objId> [--app-id <appId>] [--out <file>]` | 读取表单字段。`--app-id` 含明细表字段+Select/RadioBox/CheckBox 选项;`--out fields.json` 写 UTF-8 JSON(推荐,机器可读)。旧版 `[dir]` 参数写 memo.md,已过时 |
46
+ | `e10-cli form read <objId> --app-id <appId> --out fields.json` | 读取字段含选项(Select/RadioBox/CheckBox 自动带 options)。**含明细表字段**,配动作流/联动拿明细 fieldId 用这个 |
47
+ | `e10-cli form list <appId>` | 列出应用下的所有表单 |
48
+ | `e10-cli form create <appId> <name> <dir> --fields @<json文件>` | 创建表单。`--fields` **必填**。支持 DetailTable(嵌套formFields)、EBuilder(sformId+dataTitle)、relateFrom(联动)。fields.json 字段可带 `"required":true`/`"readOnly":true` 直标(写进布局 comps)。**字段名与平台系统字段重名(标题/创建者/创建时间/数据ID/最后更新人/数据状态)→ 不新建物理字段、复用系统字段**,并把该字段在**布局置为可见**(platform 系统字段默认隐藏;可写 `"singleRow":true` 独占一行、`"hidden":true` 保持隐藏)。`--json` 返回 `skippedSys`。**默认不加菜单**,要入口传 `--menu`(台账菜单 VIEWPORT);漏加 `e10-cli menu add-table <appId> <objId>` 补 |
49
+ | `e10-cli form virtual source-groups` / `sources <groupId>` | 查询 EB 表单和系统业务数据源分组、数据源列表 |
50
+ | `e10-cli form virtual dataset-groups` / `datasets <groupId>` / `dataset-info <id>` | 查询数据加工分组、数据集和数据集定义 |
51
+ | `e10-cli form virtual fields <appId> --source-id ... --source-group ...` | 校验数据源 ID 字段并读取可映射字段 |
52
+ | `e10-cli form virtual create <appId> <name> --source-id ... --source-group ... --fields @json` | 创建虚拟表;`--source-type LOGIC|ETEAMS`,支持 `--layout FLOW|EXCEL`。字段默认沿用来源类型,只允许兼容的同族展示类型 |
53
+ | `e10-cli form virtual read <objId> <appId>` | 读取虚拟表来源、字段映射和默认视图信息 |
54
+ | `e10-cli form virtual add-fields <objId> <appId> <formId> --source-id ... --source-group ... --fields @json` | 从原数据源向虚拟表增加字段 |
55
+ | `e10-cli form add-field <objId> <appId> <name> <type> [title]` | 添加字段。`<type>`=componentKey(Text/Select/Employee/Money/DetailTable 等同 form create);`[title]` 字段显示名,不传同 name。Select 类型需单独 `field-options` 配选项。**`--sub-form-id <明细表subFormId>` 在明细表里加字段**(自动重新布局)。Number 类型:**`--percent` 百分比显示**(numberType=percentage,缺省 1 位小数)、**`--default <值>` 默认值**(如 `--default 1000` 工时单价默认 1000)、`--precision <n>` 精度。**EBuilder/Flow 类型**:`--sform-id <目标表单objId>`(EBuilder 表关联 / Flow 浏览-流程字段,数据来源=浏览流程)。EBuilder 字段**自动配关联浏览弹窗显示列**(=目标表全部业务字段,去系统字段)。**`--multiple` 多选**(人员/部门/EBuilder/Browser 默认单选;**下拉 Select --multiple → SelectMultiple 类型**)。**`--max-len <n>` 文本最大长度**(Text 缺省 100、TextArea 缺省 4000)。**`--single-row` 独占一行显示**。**`--option-template <模板ID或名>` Select 绑定选项预设模板**(选项来自模板,与 `field-options` 二选一) |
56
+ | `e10-cli form detail-table list/read <objId> <appId> [...]` | 列出明细表,或读取指定明细表的二级明细开关与配置 |
57
+ | `e10-cli form detail-table sub-detail set <objId> <appId> <父明细表> --target <子明细表> --target-field <子字段> [--default-expand]` | 开启并设置二级明细。表和字段可写名称或 ID;默认采用平台验证的 `rowId/inside/single`,保存后自动回读。另有 `enable`、`disable`(保留配置)、`clear`(清空配置) |
58
+ | `e10-cli form edit-field <objId> <appId> <fieldId> [选项]` | 编辑字段属性。`--title` 显示名、**`--type <类型>` 改字段类型**(取值同 `add-field`,如 `Text`/`Number`/`Date`/`Select`/`Department`;走读-改-写,**不用删字段重建**,显示名/列名/位置都保留;改成 `EBuilder`/`Flow` 必须同时给 `--sform-id`)、`--required`/`--no-required`、`--sform-id`(改EBuilder关联)、`--relate-from`(值带出)、**`--multiple`/`--no-multiple`**(人员/部门/EBuilder/Browser 多选切换)。**⚠ 字段已有数据时平台拒绝改动结构**(显示名例外)——报「此列已存在数据不可修改数据库字段名称」,该文案与实际情况不符,它拦的不止字段名 |
59
+ | `e10-cli form field-lang get <objId> <appId> <fieldId>` | 查看字段名称的中英文多语言配置;未配置时返回当前中文名称和 `configured:false` |
60
+ | `e10-cli form field-lang set <objId> <appId> <fieldId> --zh <中文> --en <English>` | 设置字段名称多语言。先保存多语言标签,再读取完整字段并回写 `labelObj.title`,不会覆盖字段其他属性 |
61
+ | `e10-cli form serial-mark set <objId> <appId> <fieldId> --segments @<json>` | **表单编号**(纯建模表):用 JSON 数组组合任意编号规则,数组顺序即拼接顺序。段类型 `fixed`/`year`/`serial`/`field`/`system`/`date`;field 段可 inline `shortName` 代字映射。子命令组:`set`(配置,--segments) / `add-segment`(增量追加段) / `short-name`(代字 list/set) / `read`(查看) / `fields`(查可绑定字段) / `enable`(启用) / `disable`(停用,可加 `--field <fieldId>` 只停某一个字段的编号) / `clear`(解除绑定)。**`disable` 停用 ≠ `clear` 解除**:停用只关开关(`isUse=0`),绑定记录与组成段原样保留、可 `enable` 恢复;解除走删除接口,绑定不可逆。要「暂时不生成编号」一律用 `disable`。被编码字段平台自动只读。**⚠ 仅对未绑流程的纯建模表有效——eb表单绑流程后表单编号字段在流程提交时不生效,编号改走流程编号(`workflow numbering`,落到 REQUEST_NO 系统字段)** |
62
+ | `e10-cli form field-options <objId> <appId> <fieldId> --options @<json> [--default <key>]` | 设选项/默认值。options.json: `[{"name":"选项名","valueKey":"可选"}]`;`--default` 用平台生成的长 valueKey(`form read --app-id` 获取),不是 name |
63
+ | `e10-cli form option-template <list\|read\|create\|copy\|delete>` | **Select 选项预设模板管理**(下拉选项复用:多个表单共享一套选项,模板改了各表单跟着变)。`list [--system]` 列模板(默认自定义模板,--system 看系统内置);`read <模板ID> [--flat]` 看选项树;`create <名称> --options @<json> [--level 1] [--describe 文本]` 建模板(options.json: `[{"name":"低","valueKey":"10","children":[]}]`,**valueKey 必须数字**,children 嵌套=多级);`copy <模板ID>` 复制(系统 default 模板不可复制);`delete <模板ID>` 删模板(被引用时平台拒绝)。**字段引用模板**:`form add-field --option-template <模板ID或名>` 或 fields.json 写 `"optionTemplate":"模板名"`(Select 专有,选项不内联) |
64
+ | `e10-cli form linkage add <appId> <objId> <name> --config @<json>` | 添加字段显隐联动规则 |
65
+ | `e10-cli form relate <appId> <objId> <目标字段> --from <源字段>` | **HRM 值带出联动**:源字段为表内 Employee(人员)或 Department(部门)类型,换源自动填目标字段(换申请人→填邮箱/工号/部门;换所属部门→填部门编号/上级部门)。`--key` 从平台清单校验(默认 Employee=department、Department=name),`--title` 指定显示名(默认属性中文名)。详见 `form/guide-form-linkage.md` |
66
+ | `e10-cli form delete-field <objId> <appId> <fieldId...>` | **删除字段**(可一次多个,批量)。**仍被布局引用的字段平台不允许删除**(报「当前字段已被布局引用,不允许删除」);加 `--force` 时 CLI 先从布局移除再重试——会**连字段的标题组件一起摘**(一个字段在布局里是「字段本体 + 标题标签」两个组件),否则表单上会留下孤儿标签。字段**有数据**时同样删不掉 |
67
+ | `e10-cli form delete <objId> <appId>` | 删除**整个表单**(不是字段;删字段用上面的 delete-field) |
68
+ | `e10-cli form permission data add <objId> <appId> --org-type <类型> [--org-id <id>] --rights <view/edit/delete...> [--file-rights <view/download...>]` | **表单数据权限**,`1/view=查看`、`2/edit=编辑`、`3/delete=删除`,可任意组合;附件 `401/view=查看`、`402/download=下载`。固定写入 `obj_data_admin` 并按新增权限 ID 回读。授权对象支持 all/role/department/company/employee/group/post;all 的 orgId 自动为 0 |
69
+ | `e10-cli form permission imp-exp <list\|add> <objId> <appId> ...` | **导入导出权限**(独立分类 `data_imp_exp`,⚠ 勿用 `data add` 加——共享权限只有 查看/编辑/删除 三种,导出/导入不在其中)。`list` 查看;`add --org-type <类型> [--org-id] --rights <export/import/delete-import...> [--update-import] [--export-details] [--export-attachment] [--export-field-range listShowField|all]`。`export=8`、`import=9`、`delete-import=93`(93 须与 import 同选,自动带更新导入);添加后按权限 ID 回读 `impRightList` 校验。删除同 `permission remove --right-id` |
70
+ | `e10-cli form permission <list\|add\|remove\|rebuild> <objId> <appId>` | 权限通用管理及兼容入口。新建权限与数据权限分开;旧 `add --right-type` 保留兼容。`list` 查看全部分类;`remove --right-id <id[,id...]>` 删除一条或多条权限;添加后提示 `isShowRebuild=2` 时执行 `rebuild` |
71
+ | `e10-cli form list-view <objId> <appId>` | 查看台账/数据列表(获取 viewId 用于菜单配置) |
72
+ | `e10-cli form list-columns <objId> <appId> <listId> [--add <fieldId...>] [--remove <fieldId...>] [--set @columns.json] [--terminal pc/mobile] [--pc-only]` | 查看/批量设置台账显示列。增量追加、移除或整组指定顺序/列宽/格式;整组模式与增删互斥。支持主表和明细子字段,保留已有列未指定属性、事件及数据主键;一次保存并回读核对目标列和另一终端。详见 `references/form/guide-list-columns.md` |
73
+ | `e10-cli form list-unit <objId> <appId> <listId> <fieldId> <后缀> [--prefix <前缀>] [--clear] [--pc-only]` | 设置台账列显示**单位**(后缀/前缀)。平台无字段级单位属性,靠列表列配置 `showTrans.ruleConfig.suffix/prefix` 实现。如 `form list-unit ... <fieldId> "(元)"` 让列显示单位;`--clear` 清除 |
74
+ | `e10-cli form list-format <objId> <appId> <listId> <fieldId> [--thousandths] [--no-thousandths] [--decimal <n>] [--clear] [--pc-only]` | 查看/设置台账列**千分位/小数位**(Number/Money 列)。不加参数显示当前;`--thousandths` 开千分位(列 `format:"THOUSANDS"`)、`--no-thousandths` 关、`--decimal <n>` 小数位数(`decimalLength`)、`--clear` 清除恢复默认。与 `list-unit`(单位,走 `showTrans`)是两套不同机制。**自动保留移动端配置** |
75
+ | `e10-cli form list-click <objId> <appId> <listId> <fieldId> [--target <formObjId>] [--open-mode <模式>] [--win-size <尺寸>] [--clear] [--pc-only]` | 设置台账列**点击跳转**。`--open-mode` 支持当前页面/新窗口/弹出窗口/右侧滑出/右侧推出;`--win-size` 仅用于滑出/推出,具体数值按需求填写:百分比使用 `%`(0~100),像素使用 `px`,两种单位不可混用。缺省 `800px` |
76
+ | `e10-cli form ebuilder-columns <objId> <appId> <fieldId> [字段名/ID...] [--clear]` | 设置 EBuilder 关联字段的**浏览显示列**(存在字段配置 `ffDisplayColumns:{id,name}[]`)。**缺省查看**:列出当前显示列 + 目标表单全部**业务字段候选**(系统字段已自动过滤,不设显示列时浏览走平台默认列会带系统字段);**传目标表业务字段名/ID 设置**,系统字段会被拦截提示"系统字段不能设为显示列";`--clear` 清空。关联浏览显示哪些字段(只留业务字段) |
77
+ | `e10-cli form ebuilder-scope <get\|set\|clear> <objId> <appId> <fieldId>` | **浏览数据定义 → 数据范围设置**(关联浏览字段,限定被关联数据须满足条件才可选,如关联客户只选"客户状态=启用"的)。走 `browserDataScope` 接口(独立于字段布局)。`set --rules '[{"field":"客户状态","operator":"eq","value":"启用"}]'`(选项类 value 用选项名,CLI 自动解析 valueKey);`--logic and/or` 多规则关系;`--fill-null` 关联字段为空时填充;`get` 读已设条件;`clear` 清空。**这是关联浏览筛选的正解**,旧 `ebuilder-filter` 走 layout/save 不被设计器识别 |
78
+ | `e10-cli form validate list <objId> <appId>` | 查看表单**查重规则**(字段重复校验,多字段 AND)。`add <objId> <appId> <字段名...> [--help 提示] [--remind]` 新增(缺省禁止提交 NOSUBMISSION,`--remind` 仅提醒);`delete <objId> <appId> <ruleId>` 删除。项目名称重名/工时日期重复不允许 |
79
+ | `e10-cli form add-detail-table <objId> <appId> <明细表名> [首字段名] [--init]` | 给**已存在的主表**加明细子表(saveSubForm 建子表 + 加首字段使其可见)。`--data-key <物理表名>`、`--first-field-type <类型>`(默认 Text)。⚠ **空子表平台会过滤掉、布局里看不见**,首字段名强烈建议传;`--init` 建完把 DetailTable 组件放进布局。后续往明细里加字段用 `form add-field --sub-form-id <subFormId>`:建表时一次性带明细用 `form create` 的 fields.json `DetailTable`+`formFields` |
80
+ | `e10-cli form list-search <objId> <appId> <listId> [--add <fieldId...>] [--quick <fieldId...>] [--remove <fieldId>] [--pc-only]` | 查看/配置台账**搜索条件**。`--add` 进搜索面板、`--quick` 加顶部快捷筛选(均支持多字段)、`--remove` 移除。主表字段直取 ds/fields;明细子字段自动 fallback `getFormField` 单取元数据。**自动保留移动端配置** |
81
+ | `e10-cli form list-sort <objId> <appId> <listId> [--field <fieldId...>] [--order ASC\|DESC] [--clear] [--pc-only]` | 查看/配置台账**排序**。`--field` 支持多个(按传入顺序多级排序,`--order` 对所有字段生效)、`--clear` 清除。**自动保留移动端配置** |
82
+ | `e10-cli form list-stats <objId> <appId> <listId> [--add <json或@文件>] [--remove <statId>] [--pc-only]` | 主表/明细顶部统计,sum/count/avg/max/min、条件及格式;明细 count 支持 `{ "type":"count", "subFormId":"..." }`。保存后回读、保护移动端;平台可能共享两端统计,输出 mobileStatistics。详见 `references/form/guide-list-stats.md` |
83
+ | `e10-cli form list-stats detail <objId> <appId> <listId> <subFormId> [--fields <fieldId...>] [--name-prefix <文本>] [--pc-only]` | 为明细数值字段批量生成 sum 和一项子表 count;重复运行复用同名同配置项 |
84
+ | `e10-cli form list-filter <objId> <appId> <listId> [--add '<json>'] [--clear] [--pc-only]` | 查看/配置**视图数据条件**(台账只显示满足条件的数据)。`--add '{"conditions":[{"fieldId":"...","func":"eq","value":"研发valueKey","text":"研发"}]}'`(func: eq 等于 / notEq 不等于 / in 属于 / notIn 不属于 / like 包含 / notLike 不包含 / gt 大于 / lt 小于 / between 介于 / isNull 为空 / isNotNull 不为空,单选 Select 用 eq;value 填选项 valueKey、text 填显示名;多条件默认 AND)、`--clear` 清空。走 saveNListConfig config.filter(明文条件树,非独立接口)。**自动保留移动端配置** |
85
+ | `e10-cli form list-event <objId> <appId> <listId> [--add-page '<json>'] [--add-field '<json>'] [--open-mode <模式>] [--modal-width <pct>] [--modal-height <pct>] [--win-size <pct>] [--clear] [--pc-only]` | 查看/配置**行事件**(点击行数据 NewPage 打开表单布局)。`--add-page '{"pageId":"1/<objId>","pageName":"新建数据","openMode":"右侧滑出"}'` 选页面方式(pageId 缺省 `1/<objId>` 新建布局,`0/<objId>`=显示布局)、`--add-field '{"urlFieldId":"字段id"}'` 选字段方式(URL取自行内字段值,urlFieldText/Type自动补)、`--clear` 清空。**打开方式** `--open-mode`(或在 JSON 里写 `openMode`):当前页面/新窗口/弹出窗口/右侧滑出(缺省)/右侧推出;弹出/滑出/推出 用 `--modal-width`/`--modal-height`(缺省 50%),滑出/推出 用 `--win-size`(缺省 100%)。走 saveNListConfig config.eventGroup(明文 JSON,config+mConfig 都写)。**自动保留移动端配置** |
86
+ | `e10-cli form list-group <objId> <appId> <listId> [--enable --group-field <fieldId> [--group-size N]] [--disable] [--pc-only]` | 查看/配置**启用分组**(台账按某字段分组聚合显示)。`--enable --group-field <分组字段id> [--group-size N 默认100]` 启用/换分组字段、`--disable` 禁用(保留 groupField/groupSize 仅 enable=false)。走 saveNListConfig config.enableGroup(对象,持久化,不走 layout/save LZW)。**自动保留移动端配置** |
87
+ | `e10-cli form list-hierarchy <objId> <appId> <listId> [--enable --parent-field <名称或fieldId> [--expand-level N]] [--disable] [--pc-only]` | 查看/配置**上下级树形展示**。上级字段必须是主表中单选、关联当前表单自身的 EBuilder 字段(常见名称“上级类型”);与普通 `list-group` 分组聚合不是同一能力。走 `saveNListConfig config.superiorField`,保存后独立回读并自动保留移动端配置 |
88
+ | `e10-cli form list-permission <objId> <appId> <listId> [--add-all] [--add-user <userId> --name <name>] [--add-role <roleId> [--name <name>]] [--add-matrix <矩阵id> --name <name>] [--share-level <n>] [--seclevel <min>-<max>] [--add-raw '<json>'] [--remove <id>] [--remove-all] [--clear]` | 查看/配置**台账视图权限**(谁能查看这个台账)。`--add-all` 所有人(自动把空 dataid 与 0 视为同一主体,避免重复)、`--add-user` 人员、`--add-role` 角色、`--add-matrix` 矩阵。`--remove <id>` 删除指定权限;`--remove-all` 删除全部“所有人”,与 `--add-all` 同用可清理重复后只保留一条;`--clear` 清空全部。保存走 `list/permission/save` 全量覆盖并回读。另支持共享级别和安全级别范围 |
89
+ | `e10-cli form list-search-group <objId> <appId> <listId> [--add <fieldId>] [--remove <fieldId>] [--clear] [--pc-only]` | 查看/配置**分类搜索**(按选项字段分类筛选)。`--add <选项字段fieldId>`(须已在显示列)、`--remove <fieldId>`、`--clear`。走 saveNListConfig config.searchConditions.groupFilters(视图级明文)。**仅主表选项类字段 Select/RadioBox/CheckBox,不支持明细字段(产品边界,传明细报错)**。listGroupSets 留空由平台运行时生成 |
90
+ | `e10-cli form view list <objId> <appId> [--with-comps]` | 列出表单全部视图。`--with-comps` 额外拉每个视图布局 comps 数、标出空视图(NList 数据视图会显示「读取失败」,正常) |
91
+ | `e10-cli form view rename <objId> <appId> <viewId> <新名称>` | 修改已有默认台账(nListView)的名称,保留原视图 ID 和配置,并在保存后回读确认。需求名称与默认名称不一致时统一用此命令,不新建重复视图 |
92
+ | `e10-cli form view create <objId> <appId> <视图名> [--type formView\|kanbanView\|calendarView\|mindMapView\|multiView] [--terminal PC\|MOBILE] [--layout-type FLOW\|EXCEL] [--detail <明细名>] [--sub-form-id <明细subFormId>]` | 给**已有表单**添加视图。`formView` 创建后是空布局,需续跑 `form view populate` 填字段;`kanbanView`/`calendarView`/`mindMapView`/`multiView` 建视图实体。**multiView 数据维度**:缺省主表;明细表维度用 `--detail <明细名>`(按名解析)或 `--sub-form-id <明细subFormId>`(直传),传值即明细维度(`subFormMain:true`)。**台账(NList)视图**用 `form table-view create`,不在此命令 |
93
+ | `e10-cli form view populate <objId> <appId> <viewId>` | 把已有字段按布局类型填入新增的 formView(视图为空时用这个填充) |
94
+ | `e10-cli form layout read <objId> <appId> [--view-id <id>]` | 读表单布局结构(comps 坐标/只读)。不传 `--view-id` 读默认布局,传则读指定视图 |
95
+ | `e10-cli form layout init <objId> <appId> [--style-template <名\|id>] [--view-id <id>] [--read-only] [--required] [--disable-edit] [--single-row]` | 初始化/重建表单布局(initLayout):**换样式模板** + 覆盖字段 readOnly/required/disableEdit/singleRow(不传这些开关则**保留字段已有设置**)。**⚠ 样式模板流式与表格式是两套**,同名不同 id,按表单实际布局类型实时查(传错套会直接报错并列出可用项;**平台对跨套 id 不报错、只会静默忽略,表现为"命令成功但样式没变"**)。缺省:流式=标准版、表格式=表格版。完整模板表见 `form/style-templates.md`。**建表时不能指定样式,只能建完再用本命令换** |
96
+ | `e10-cli form group <objId> <appId> --groups '{"基本信息":["字段名/fieldId",...]}'` | 给**已建好的 eb 表**加字段分组(折叠容器)。建组 saveFieldGroup → 分配 updateFormFieldGroup → initLayout generateCollapse 渲染。`--groups` 可 `@文件`;`--required` 同时设分组内字段必填;同名分组复用不重复建(去重)。建表时一次性带分组用 `form create` 的 fields.json `group` 属性 |
97
+ | `e10-cli form data add <objId> <appId> <json>` | 写入表单数据(`@` 开头为 JSON 文件路径)。JSON key 可用 fieldId 或字段名;Select/RadioBox 值填选项名(自动解析 valueKey)或 valueKey、CheckBox/SelectMultiple 用数组、TextArea 直接值、Employee/Department 用 ID。详见 `form/guide-form-data.md` |
98
+ | `e10-cli form data list <objId> [--page <n>] [--size <n>]` | 查询表单数据。`--page` 页码(缺省1)、`--size` 每页条数(缺省1000;不传 pageInfo 平台默认卡 10) |
99
+ | `e10-cli form data delete <objId> <dataId>` | 删除一条表单数据 |
100
+
101
+ ### 表单按钮
102
+
103
+ | 命令 | 说明 |
104
+ |------|------|
105
+ | `e10-cli form button list <objId> <appId>` | 列出所有按钮 |
106
+ | `e10-cli form button add <objId> <appId> <name> [--url <url>\|--open-view <视图>\|--open-layout <表单>\|--start-workflow <流程>] [--layout-type 新建\|编辑\|显示] [--map "目标字段:来源字段"...] [--target-app <appId>] --view <来源视图> --position <位置...>` | 添加通用打开页面按钮。支持固定 URL、平台视图、表单布局及流程快捷入口;`--map` 把当前行来源字段传给目标字段,可多项。当前行映射只允许行上/行末下拉;右上按钮无单行上下文。目标名称不唯一时使用 ID,保存后回读动作和映射 |
107
+ | `e10-cli form button action-set <objId> <appId> <buttonId> [--open-view ...\|--open-layout ...\|--start-workflow ...] [--map ...]` | 更新已有自定义按钮的单一 `openpage` 动作,保留按钮位置和权限;适合修正目标页面或动态字段映射,避免重复创建同名按钮 |
108
+ | `e10-cli form button toggle <objId> <appId> <buttonId>` | 启用/禁用按钮 |
109
+ | `e10-cli form button position <objId> <appId> <buttonId> [--view <视图...> --position <位置...>] [--show-position <json或@文件>] [--replace]` | 设置已有按钮位置并回读验证。默认合并、保留未指定页面;`--replace` 全量替换。视图支持 ID/唯一名称/新建/编辑/显示;多台账不能省略具体视图。系统按钮适用,保留动作权限及返回的日志/提示配置。详见 `references/form/guide-form-button.md` |
110
+ | `e10-cli form button views <objId> <appId> <buttonId>` | 读取该按钮可选视图及当前 showPosition,配置前先查询 |
111
+ | `e10-cli form association list/get <objId> <appId> [associationId]` | 查询关联页签列表或详情;get 必须传 associationId,详情含目标视图、筛选映射和权限 |
112
+ | `e10-cli form association views <objId> <appId> [--target-app <id>]` | 查询可绑定视图及所属表单 |
113
+ | `e10-cli form association fields <objId> <appId> --view <viewId> [--target-app <id>]` | 查询来源表单字段和目标视图字段 |
114
+ | `e10-cli form association create <objId> <appId> <name> --view <viewId> --permissions <json或@文件> [--layouts 显示 编辑] [--terminals PC MOBILE] [--mappings <json或@文件>]` | 创建关联页签;默认仅显示布局、PC+MOBILE、启用。权限必须显式提供,筛选映射为 [{targetField,sourceField}] |
115
+ | `e10-cli form association update <objId> <appId> <associationId> [--name <名>] [--view <viewId>] [--layouts 显示 新建 编辑] [--terminals PC MOBILE] [--enabled true/false] [--mappings <json或@文件>]` | 保留未指定配置;布局和终端为集合替换;显示=0,新建=1,编辑=2,none 关闭全部布局。仅启停走独立接口并回读;多动作时传 --action |
116
+ | `e10-cli form association set-filter <objId> <appId> <associationId> --mappings <json或@文件> [--action <id>]` | 替换目标视图动作的数据筛选字段映射,区别于权限条件 |
117
+ | `e10-cli form association clear-filter <objId> <appId> <associationId> [--action <id>]` | 清空指定视图动作的数据筛选映射 |
118
+ | `e10-cli form association set-condition <objId> <appId> <associationId> --perm <序号或类型> --rules <json或@文件> [--logic and/or]` | 设置页签权限条件,来源表单字段;与关联目标视图数据筛选独立 |
119
+ | `e10-cli form association clear-condition <objId> <appId> <associationId> --perm <序号或类型>` | 清空指定权限条件;完整指南见 references/form/guide-form-association.md |
120
+ | `e10-cli form button info <objId> <appId> <buttonId>` | 查看按钮详情 |
121
+ | `e10-cli form button sort <objId> <appId> <sourceId> <targetId>` | 调整按钮排序 |
122
+ | `e10-cli form button delete <objId> <appId> <buttonId>` | 删除按钮 |
123
+
124
+ > **除非用户明确要求,否则不要往表单写入任何数据。** 表单创建完成后只需确认字段正确即可,不要自动插入测试数据。
125
+
126
+ | `e10-cli form field-linkage list <appId> <objId>` | 字段联动(跨表带出赋值):列出联动 |
127
+ | `e10-cli form field-linkage read <appId> <objId> <id>` | 回读单条(inFields/outFields) |
128
+ | `e10-cli form field-linkage fields <appId> <formId>` | 查源表可带出字段 |
129
+ | `e10-cli form field-linkage delete <appId> <objId> <ids...>` | 删除(批量) |
130
+ | `e10-cli form field-linkage add <appId> <objId> --trigger <字段名> --target <字段名> --hops "<objId:字段名,...>"` | 新增。`--hops` 多跳链式(单跳用 `--source-form/--query-field`)。**Text 字段必须多跳取名称**。详见 `form/guide-field-linkage.md` |
131
+
132
+ > **创建表单流程**:
133
+ > 1. 读取 `references/form/guide-create-form.md` 了解标准创建流程;确定字段类型和参数时读取 `references/form/ref-form-fields.md`
134
+ > 2. 与用户确认所有字段名和字段类型
135
+ > 3. 将字段定义写入临时 JSON 文件(格式:`[{"componentKey":"Text","fieldName":"姓名"},...]`)
136
+ > 4. 执行 `e10-cli form create ... --fields @<临时文件路径>`
137
+ > 5. 涉及人员的字段统一使用 Employee 类型,不要用 Text
138
+
139
+ ---
140
+
141
+ ## 角色
142
+
143
+ | 命令 | 说明 |
144
+ |------|------|
145
+ | `e10-cli role list` | 列出所有角色(树形结构,含层级关系) |
146
+ | `e10-cli role create <name>` | 创建角色,`--parent <id>` 指定父角色,`--code` 编码,`--remark` 备注 |
147
+ | `e10-cli role delete <ids...>` | 删除角色(可多个) |
148
+ | `e10-cli role add-member <roleId> <keyword>` | 搜索人员并添加到角色 |
149
+
150
+ ## 流程
151
+
152
+ | 命令 | 说明 |
153
+ |------|------|
154
+ | `e10-cli workflow create <appId> <formObjId> <name> [desc]` | 创建 EB 流程,当前命令按固定模式创建并自动设置所有人可发起。**默认不加菜单**,要入口传 `--menu`(发起菜单 LAYOUT,指向表单新建页 `/sp/ebdfpage/card/1/<formObjId>/0`,点开即触发流程);漏加 `e10-cli menu add-start <appId> <formObjId>` 补 |
155
+ | `e10-cli workflow create-workflow <name>` | **非默认路径**。仅当用户明确强调「用流程表单 / 工作流程 / 流程中心建流程、不在应用下」时才用;默认走上一条 `workflow create`(eb 应用内)。关联流程表单:不传 `--form-id` 自建(`relateForm=0`,服务端建表回吐 `data.formId`)/ `--form-id <已有>` 绑定(`relateForm=1`)。`--odoc` 创建公文流程(两种表单方式均支持,增加 `bridgeService=odoc`);`--workflow-type`(默认 -1=其它)、`--sub-company <机构>`、`--belong-type <0个人/1团队>`(默认 1)、`--table-name`、`--desc`、`--is-free`、`--layout <FLOW流式(默认)/EXCEL表格式>`(自建模式下 EXCEL 走 formmanage/saveForm 建表后绑定;建表后不可切换)。不带 source/messageParams |
156
+ | `e10-cli workflow auth-resp <list\|create\|update\|read\|configure\|save-design>` | 独立权责表管理。`configure <id> --config @json` 从零创建变量、开始/结束节点、中间节点及操作者、分支条件和路径并保存回读;`save-design` 用于完整设计结构的保留式保存 |
157
+ | `e10-cli workflow auth-resp variable <list\|add>` | 独立管理权责表变量,变量先创建后供权责表条件引用。支持字符串、数值、选项、浏览和关联浏览变量 |
158
+ | `e10-cli workflow auth-resp reference <list\|add\|remove>` | 管理权责表路径中的嵌套权责表。`list <宿主baseId>` 仅返回首尾为中间节点且不会形成循环引用的权责表;`add` 按分支与顺序写入 `addMethod=2` 的引用;`remove` 删除引用列及对应路径。 |
159
+ | `e10-cli workflow auth-resp-flow create <name> --base @json (--new-table <name>\|--reuse-table <id>)` | 按权责表方式创建流程。新建模式直接使用表单字段;复用模式可加 `--mappings @json` 保存权责表变量到当前表单字段的映射 |
160
+ | `e10-cli workflow auth-resp-flow <bind\|design-read\|design-apply\|mapping-read\|mapping-save>` | 对已有权责表流程维护绑定关系、权责表流转设计及变量映射。节点、分支条件和路径通过权责表设计维护。详细顺序见 `workflow/guide-workflow-auth-resp.md` |
161
+ | `e10-cli workflow odoc <list\|read>` | 查询公文流程列表,或读取单个公文流程及公文设置摘要。`list` 支持 `--name`、`--sub-company`、`--belong-type`、分页参数 |
162
+ | `e10-cli workflow odoc setting <get\|set> <workflowId>` | 读取或修改公文设置。`set --config @json` 读取当前配置后合并保存并回读;常用参数含 `--official-type`、`--request-title-field`、`--upload-word/pdf/ofd`、`--text-in-form`、`--column-position`、`--attach-area`、`--archive-node` |
163
+ | `e10-cli wf-form read <formId>` | **流程表单管理(非默认路径)**。读流程表单字段(getConfig)。`<formId>` 由 `workflow create-workflow` 回吐。与 eb 表 `form read` 对齐,走 `/api/workflow/core/form/...`(module=workflow、customParam={}、无 apid) |
164
+ | `e10-cli wf-form add-field <formId> <字段名> <类型> [标题]` | 给流程表单加字段。类型:Text/TextArea/Number/Money/Date/DateTime/Select/Employee/Department/Browser(浏览按钮),**以及全部富组件类型**(Time/Score/Signature/Project/Location/Order/Contract 等,走与 eb 表同一张映射表)。`--sub-form-id <明细subFormId>` 明细字段;`--multiple` 多选;`--precision`/`--percent`/`--default`(Number/Money);`--format`(日期精度)。formTableId 省略 |
165
+ | `e10-cli wf-form add-field <formId> <名> Browser <标题> --browser-type <源>` | **浏览按钮必须指定浏览数据源**,否则平台报「程序异常」。源可选 `workflow`(缺省=工作流) / `hrcontract` / `role` / `archive` / `form`;用 `form` 时再配 `--browser-form-source business\|ebuilder`。落到平台是 `type=RelateBrowser` + `browserType:{module,name,id,type}` |
166
+ | `e10-cli wf-form add-field <formId> <名> Browser <标题> --browser-name "CLM-合同类型"` | **按名字指定浏览数据源**,含自定义浏览框(`customBrowser_xxx`,没有固定 id 必须现查)。名字**精确匹配**,查不到会停下并列候选,不用近似项顶替。优先于 `--browser-type`。批量 `add-fields` 直接在 JSON 里写 `browserType:{...}` 对象 |
167
+ | `e10-cli wf-form add-fields <formId> @fields.json [--no-init]` | **批量加字段**:JSON 数组每项 `{name,type,title?,subFormId?,multiple?,precision?,percent?,default?,format?,singleRow?,defaultCurrent?}`;加完**自动跑一次 layout init 重新布局**(`--no-init` 跳过)。字段多时比逐条 `add-field` 省事 |
168
+ | `e10-cli wf-form ebuilder-scope <formId> <ebuilder字段Id> --rule "目标表字段:操作:值" [--sform-id <objId>] [--workflow-id <wfId>]` | 给流程表单的**关联浏览字段**设数据范围(如关联客户只选「客户状态=启用」的)。操作用 `eq`/`neq`/`like`/`isnull`/`notnull`;Select 值填**选项名**。对应 eb 表的 `form ebuilder-scope` |
169
+ | `e10-cli wf-form edit-field <formId> <fieldId> [--title <标题>] [--multiple|--single]` | 编辑已有字段(read-modify-write)。`--multiple`/`--single`:Employee/Department/Browser 切 isSingle,Select↔SelectMultiple。必填为布局级用 `wf-form layout init --required` |
170
+ | `e10-cli wf-form delete-field <formId> <fieldId...> [--force]` | 删除流程表单字段(可批量)。**仍被布局引用的字段平台拒删**;`--force` 让 CLI 先从布局摘掉这些字段的组件(含它的标题标签)再删。eb 表侧对应 `form delete-field` |
171
+ | `e10-cli wf-form formula set <formId> --expression "DAYS({主表.开始时间},{主表.结束时间})" --target <fieldId>` | 给流程表单字段绑定计算公式。`{主表.字段}`/`{明细表名.字段}` 引用(getConfig 解析)→ `/api/excel/formula/save`(module=workflow) → ffExpress 绑字段 + saveSourceForm。`--name`/`--return-type`。另:`formula get <id>` / `list <formId>` / `functions` |
172
+ | `e10-cli wf-form linkage <formId> <联动名> --config '{"conditions":[{"field":"请假天数","operator":"EQUAL","value":"3"}],"actions":[{"prop":"hide","fields":["请假事由"]}]}'` | 显隐联动。`--config` 写字段名(自动 getConfig 解析 fieldId/dataKey)。prop: hide/show/edit/readonly/required/hideLine;operator: EQUAL/NOT_EQUAL/GREATER/LESS/EMPTY 等 |
173
+ | `e10-cli wf-form validate add <formId> <字段名...> [--remind] [--help <提示>]` | 字段查重规则(多字段 AND,重复禁止提交/提醒)。`list`/`delete <ruleId>`。字段名自动 getConfig 解析 |
174
+ | `e10-cli wf-form relate <formId> <目标字段> --from <Employee/Department源字段> [--key email/department/code/name] [--title <名>]` | 值带出:换表内 Employee/Department 字段自动填目标字段(HRM 属性带出)。`--key` 默认 Employee=department/Department=name。机制同 eb 表(ffRelateField,Employee 源 module=hrm) |
175
+ | `e10-cli wf-form permission get <formId>` | 查看流程表单字段权限(display/readOnly/required/disableEdit)。**写字段权限用 `workflow node field-permission`**(节点级,流程表单表单级写平台多返 500) |
176
+ | `e10-cli wf-form add-detail-table <formId> <明细表名> [首字段名] [--init]` | 给流程表单加明细子表(saveSubForm+首字段+可选 init 放入布局)。机制同 eb 表 `form add-detail-table` |
177
+ | `e10-cli wf-form field-options <formId> <fieldId> --options '[{"name":"事假"},...]' [--default <序号>]` | 给流程表单 Select/SelectMultiple 配选项(read-modify-write:getFormField 读全字段→改 options→saveFormFieldNew 重存)。`--options` 支持 `@文件`;`--default` 默认选项 valueKey |
178
+ | `e10-cli wf-form layout init <formId>` | 初始化/重建流程表单布局(initLayout,按 layoutType 选模板,默认 FLOW)。`--read-only`/`--required`/`--single-row` 覆盖字段属性 |
179
+ | `e10-cli wf-form layout add <formId> --name <布局名>` | 新增一套流程表单布局。`--layout-type FLOW|EXCEL`(默认 FLOW)、`--terminal-type PC|MOBILE`(默认 PC)、`--describe`、`--workflow-id`;返回 `layoutId`,多套布局并存且不覆盖原布局 |
180
+ | `e10-cli wf-form layout delete <formId> <layoutId>` | 删除指定流程表单布局。`layoutId` 取自 `layout add` 返回值;可传 `--workflow-id`、`--terminal PC|MOBILE`(默认 PC)。该操作从布局列表移除目标布局 |
181
+ | `e10-cli wf-form field-prop <formId>` | 设置运行时布局字段属性:`--required <字段...>`、`--no-required <字段...>`、`--readonly <字段...>`、`--editable <字段...>`、`--single-row <字段...>`。字段可传名称或 ID;内部 getConfig 读取并由 initLayout 保存,同时保留已有分组和独占一行设置 |
182
+ | `e10-cli wf-form group <formId> --groups '{"基本信息":["字段名/ID",...]}'` | 给**已建好的流程表单**加字段分组(折叠容器,对齐 eb 表 `form group`)。建组 saveFieldGroup → 分配 updateFormFieldGroup → initLayout generateCollapse 渲染。`--groups` 可 `@文件`;同名分组复用不重复建(去重) |
183
+ | `e10-cli workflow list <appId>` | 列出应用下的所有流程 |
184
+ | `e10-cli workflow search` | 通用搜索流程(不依赖 appId)。`--name`/`--id`/`--type`/`--belong` |
185
+ | `e10-cli workflow nodes <workflowId>` | 查看流程节点详情(名称、类型、操作者、连线含 linkId) |
186
+ | `e10-cli workflow nodes <wf> --mode list` | 列表视图:展示全节点含 nodeAttr、合流方式(比 chart XML 更全) |
187
+ | `e10-cli workflow set-operator <wf> <node> [keyword]` | 设置节点操作者。`--type user`(指定人) / `role`(指定角色) / `dept`(指定部门) / `position`(指定岗位) / `all`(所有人) / `free`(自由选择) / `superior`(发起人上级) / `initiator`(流程发起人本人) / `prev-node`(上一节点) / `form`(表单相关人员) / `matrix`(矩阵对应,需 `--matrix-id` `--value-config-id` `--matrix-rule`)。`--sign-order` 会签/非会签/竞签/依次处理/抄送/抄送需批注(概念见 guide-workflow);**`--type form` 另支持「或签」**,等价于竞签(表单字段里多人任一人签,语义一致),已登记的签署顺序里没有单独一档。**依次处理倒序**用 `--execute-order 2-2`(默认)/`2-1`正序/`1-1,2-2`安全级别正序+倒序。**`--dept-scope 本部门`**=单个部门内会签/`本及下级`默认。**一个节点多人用逗号分隔 keyword**(如 `"区域经理,部门领导"`,user/dept 都支持);默认每次全量重建操作者组(先清空再新建),重复设置不堆积。**多操作者组叠加(如「部门领导矩阵 + 门店经理矩阵」双组会签):先用 set-operator 配第一组,再用 `--append` 配第二组**,`--append` 不清空已有组,两组合起来就是双矩阵会签 |
188
+ | `e10-cli workflow generate-link-id <wf>` | 生成新连线 ID |
189
+ | `e10-cli workflow add-node <wf> <type> <name>` | 添加节点(列表 API)。`<type>`: 0=发起 1=审批 2=确认 3=归档 5=投递 7=自动处理 8=等待 / forkstart/forkend/forkmiddle。**结束节点=归档节点(type=3)**。`--node-attr` 节点属性;合流点支持 `--merge-type`(0=全部/1=指定/2=数量/3=比例)、`--merge-num`、`--branch-nodes` |
190
+ | `e10-cli workflow rename-node <wf> <nodeId> <name>` | 重命名节点(saveNodeSetForm API) |
191
+ | `e10-cli workflow add-link <wf> <from> <to> <label>` | 一键添加连线(列表 API)。`--reject` 退回 / `--default` 默认出口 |
192
+ | `e10-cli workflow add-links <wf> @links.json` | 批量添加连线(列表 API,一次保存)。格式:`[{"from":"节点ID","to":"节点ID","label":"标签","reject":true,"default":true}]` |
193
+ | `e10-cli workflow link-list <wf>` | 查看出口列表(含默认/退回/条件标志)。`--node-id` 过滤单节点 |
194
+ | `e10-cli workflow link-save <wf> @datas.json` | 修改/删除出口(列表方式)。`--delete-rows`/`--changed-link-ids`/`--update-row-ids` |
195
+ | `e10-cli workflow link-rename <wf> <linkId> <名称>` | 重命名出口(连线名称)。linkId 用 link-list 查看。实现:读出口列表 → 改 linkName → saveNodeLinkEditTable(updateRowIds) |
196
+ | `e10-cli workflow numbering read <wf>` | 查看流程编号规则 |
197
+ | `e10-cli workflow numbering enable <wf>` | 启用流程编号(`--off` 关闭)。方案要求"流程有编号"时必做,平台默认不自动启用 |
198
+ | `e10-cli workflow numbering set <wf> [--prefix <前缀>] [--separator <ch>] [--serial <n>] [--no-year] [--dry-run]` | **配置流程编号规则**(一次设全组成):前缀 + 流水号位数(默认4)+ 可选年份段。**`--separator <ch>` 段间分隔符**(如 `-` `~`):在相邻段(前缀-年、年-流水)间自动插独立固定段 → `--prefix QXBK --separator ~ --serial 4` = `QXBK~2026~0001`;平台分隔符就是独立 FIX_CONTEXT 段、可多个固定段共存。`--dry-run` 只打印将产出的段序列(复用/新建/删除)不落库。旧版曾按类型只留一段会删掉已有分隔符段。`--prefix LC --serial 4 --no-year` → `LC0001`。比 `add-component` 逐个加更省事,常用这条 |
199
+ | `e10-cli workflow numbering add-component <wf> --type fixed\|date\|field --value <text> --format <yyyyMMdd> --field-id <id>` | 添加编号组成项:fixed=固定内容 / date=日期 / field=表单字段 |
200
+ | `e10-cli workflow numbering reserve <wf> <count> [--prefix]` | 预留编号。**流程编号=REQUEST_NO 系统字段**:eb表单绑流程后编号走本命令(不要用 `form serial-mark` 表单编号,那对流程表无效) |
201
+ | `e10-cli workflow node validate <wf> <nodeId> --rule "主题字段 操作 值字段或字面值"` | 节点提交校验(智能审批规则,提交时拦截)。值可以是**字段**(字段 vs 字段)或**字面值**(字段 vs 常量);主题字段支持**跨表**——用「明细表名.字段名」定位明细字段做主子表校验:`"请假时长 小于 4"`、`"行程明细.行程开始时间 等于 出差开始日期"`(明细字段=主表字段)。**操作符**:大于 / 大于等于 / 小于 / 小于等于 / 等于 / 不等于 / **为空 / 不为空**(后两个无需值,如 `"备注 不为空"`)。**明细量词**:明细字段的主题末尾可写 `:任一`(任一行,缺省)或 `:所有`(所有行),如 `"货品明细.货品名称:所有 不为空"`;主表字段写量词会报错。`--name` 规则名;`--disable` 关闭;`--view` 查看 |
202
+ | `e10-cli workflow node menu <wf> <nodeId>` | 查看/切换节点操作菜单。`--toggle <menuId>` 切换启用状态 |
203
+ | `e10-cli workflow node layout list <wf> [--terminal PC\|MOBILE]` | 列出该工作流表单的布局,以及每套被哪些节点引用 |
204
+ | `e10-cli workflow node layout get <wf> <nodeId>` | 查看某节点挂的是哪套布局(空 = 跟随表单默认) |
205
+ | `e10-cli workflow node layout bind <wf> <nodeId> --layout-id <id>` | 把节点挂到某套布局。**自动从原来那套摘掉**(一个节点同时只属于一套布局);幂等 |
206
+ | `e10-cli workflow node layout unbind <wf> <nodeId>` | 摘下独立布局,回落表单默认布局;幂等 |
207
+ | `e10-cli workflow node layout create <wf> --name [--layout-type FLOW\|EXCEL] [--nodes <id...>] [--from <布局ID>\|--empty]` | 新建布局。**默认复制表单默认布局**(`--from` 换来源);`--empty` 才是空白布局。类型不写则跟随来源,**建后不可切换**。删布局用 `wf-form layout delete` |
208
+ | `e10-cli workflow node layout init <wf> <布局ID> [--fields <名...>] [--list-fields] [--style-template] [--required\|--readonly\|--single-row]` | 重建某套布局的排版(**只动这一套**)。`--fields` = 只摆这些字段(不传=全摆,没摆的字段在表单上仍在);`--list-fields` 看可摆清单。`create --init [--fields …]` 可建完直接排 |
209
+ | `e10-cli workflow node-reject get <wf> <nodeId>` | 查看节点退回设置(退回提醒 / 退回方式 / 默认选中 / 退回后提交) |
210
+ | `e10-cli workflow node-reject set <wf> <nodeId> [选项]` | 设置节点退回规则。`--reject-type free\|step\|range\|byLink\|preApprover`(自由/逐级/指定范围/按出口/上一审批人)、`--submit-type step\|direct\|fork\|operator`、`--reject-remind none\|all\|nodes\|user`、`--default-node prev\|start\|custom`、`--remind-node-ids`(提醒节点)、`--range-node-ids`(退回范围节点)、`--default-node-id`、`--to-create-node`(出口未配时退发起节点);`--custom` / `--no-custom` 显式指定是否启用自定义退回设置,**缺省保留节点当前值**。⚠ `--no-custom` 时平台会忽略全部节点级退回值,读回看到的是全局默认回显——不是没保存 |
211
+ | `e10-cli workflow node-overtime list <wf> <nodeId>` | 查看节点超时规则(含启用状态与规则描述)。新规则平台默认「未启用」,需跑一遍 `set` 才会启用 |
212
+ | `e10-cli workflow node-overtime set <wf> <nodeId> [选项]` | 设置节点超时规则,**建好后自动启用并回读核对**(回读不符即报错)。`--duration <天:时:分>`(如 `0:2:0`)、`--flow-type next\|reject\|submit\|intervene\|operator`(下一操作者/退回节点/提交节点/干预对象/指定操作者)、`--flow-delay <天:时:分>`、`--flow-node <节点ID>`(reject\|submit 的目标节点)、`--intervene-ids <用户ID>`(intervene 的干预对象)、`--operator-group <操作组ID>`(operator 的操作组)、`--disabled`(关闭超时处理且不启用)、`--skip-required`(有必填项也继续自动处理) |
213
+ | `e10-cli workflow node-overtime remind <wf> <nodeId> [选项]` | 设置超时提醒。`--name <提醒名>`、`--type 0\|1`(超时前/超时后)、`--offset <天:时:分>`、`--mode 0\|1`(仅提醒本人/逐级提醒)、`--remind-group-id`、`--msg`/`--no-msg`、`--mail`/`--no-mail`、`--sms`/`--no-sms`。`--overtime-id` **可省略**:该节点只有一条超时规则时自动使用,多条时列出候选要求显式指定 |
214
+ | `e10-cli workflow node vote <wf> <nodeId> --type count\|rate --num <n>` | 配置投票节点规则(**自动把节点置为投票类型** nodeType=5)。`--type count` 通过人数 / `rate` 通过率(`--num 100` = 100%);`--min-num` 最少通过人数、`--show-results` 投票后显示结果、`--veto` 一票否决 |
215
+ | `e10-cli workflow node-robot get <wf> <nodeId>` | 查看机器人节点(等待节点 type 8)配置:等待时长 / 处理间隔 / 操作 / 异常干预 / 动作 |
216
+ | `e10-cli workflow node-robot set <wf> <nodeId> [选项]` | 更新机器人节点配置(读-改-写,**未传的字段保留原值**)。`--wait-value <分钟>`、`--processing-interval`、`--operator-name`、`--operate-type-name`、`--remark`、`--intervene-type`、`--enable-remark-custom` |
217
+ | `e10-cli workflow node-robot set-remark <wf> <nodeId> --zh <中文> --en <English>` | 设置机器人节点备注的多语言 |
218
+ | `e10-cli workflow operator-sign <wf> <nodeId> --sign-order <order>` | 修改节点操作者的签署顺序(会签/非会签/竞签/依次处理/抄送/抄送需批注)。**以「更新旧组」方式改,不删组重建**——只想换签署方式时用它;要重建整组用 `set-operator`。`--group <组名>` 只改指定组。⚠ 平台更新路径会**清空原有的「依次逐个处理-处理顺序」**(命令会显式告警);需要配处理顺序请用 `set-operator ... --sign-order 依次处理 --execute-order <码>`(走重建) |
219
+ | `e10-cli workflow node reject <wf> <nodeId>` | ⚠ **已弃用**,请改用 `workflow node-reject`(get / set)。旧命令只有 4 个数值开关,配不了退回范围/提醒节点、也控制不了「自定义 / 全局」 |
220
+ | `e10-cli workflow node timeout <wf> <nodeId>` | ⚠ **已弃用**,请改用 `workflow node-overtime`。旧命令的超时时长与提醒字段名平台不认(时长恒为 0、提醒直接报错),且配不了退回/提交目标节点 |
221
+ | `e10-cli workflow node field-permission get <wf> <nodeId>` | 查看节点字段权限(各字段 显示/隐藏)。表单字段在节点上可见与否 |
222
+ | `e10-cli workflow node field-permission set <wf> <nodeId> --hide <字段...>` | 设置节点字段显示/隐藏。`--hide 字段名/ID` 隐藏、`--show` 显示;可多个,已设权限则更新、未设则新建 |
223
+ | `e10-cli workflow node sign <wf> <nodeId>` | 节点签字意见必填(退回时必填意见等)。缺省查看;`--all-required` 全部必填、`--none-required` 全部不必填、`--select "退回,加签"` 指定操作类型必填(按 mustInputDto=2 + 选中操作类型 id)。`getSignConfigForm` 枚举操作类型 |
224
+ | `e10-cli workflow node empty-handle get <wf> <nodeId>` | 查看节点**流程异常处理**(无可处理人时怎么办) |
225
+ | `e10-cli workflow node empty-handle set <wf> <nodeId> --handle-way <1-5>` | 设置节点流程异常处理:1=指定人员(`--person 名称/ID`) / 2=用户指定 / 3=发起人 / 4=自动流转下一节点 / 5=提交指定节点(`--assign-node <节点ID>`);`--off` 关闭;`--sync` 同步所有节点 |
226
+ | `e10-cli workflow setting title <wf>` | 流程标题规则(发起后标题按规则生成,如"发起人-提交日期-客户名称"→真实数据)。缺省列出可用变量(发起人/部门/日期/表单字段);`--rule "发起人\|提交日期\|客户名称"` 竖线分隔字段名设置;`--sep <分隔符>` 默认 `-`;`--disable` 关闭自动生成(标题回退流程名+系统默认)。占位符 `$code$`,平台发起时替换为真实值 |
227
+ | `e10-cli workflow setting submit <wf>` | 提交确认设置。`--confirm`/`--node-range`/`--show-way` |
228
+ | `e10-cli workflow setting sign <wf>` | 签字意见设置。`--show-order`/`--inform-range` |
229
+ | `e10-cli workflow setting comment <wf>` | 评论功能开关。`--enable` |
230
+ | `e10-cli workflow setting batch <wf>` | 批量操作设置。`--enable-batch`/`--enable-turn-todo`/`--enable-consult`/`--enable-reject` |
231
+ | `e10-cli workflow setting auto <wf>` | 自动处理设置。`--enable`/`--way`/`--follow-type` |
232
+ | `e10-cli workflow setting other <wf>` | 其他设置。`--message-op`/`--auto-save`/`--switch-identity` |
233
+ | `e10-cli workflow advanced doc <wf>` | 流程存档设置。`--enable`/`--dir-select`/`--doc-types` |
234
+ | `e10-cli workflow advanced schedule <wf> [选项]` | 定时触发审批。**没有参数=查看**;配置分两次保存:详细配置(`--frequency` 频率 / `--begin-date` 开始日期 / `--weekday-only` / `--sms` / `--email` / `--message`)与开关(`--enable` 总开关 / `--limit-creator` 限制发起人范围)。`--frequency` 只需写要改的档位(如 `{"item1":"1","item2":"3"}`=按日每 3 天),缺的档位自动补全;item1: 1=日/2=周/3=月/4=季/5=年,item2=每几个周期。**⚠ 触发时间由平台固定,不可配置**(平台上该项为只读,帮助文案「固定晚上触发,不支持修改触发时间」)——没有 `--time` 选项。配完范围用 `workflow plan-range` |
235
+ | `e10-cli workflow plan-range list <planId> [--page-size <n>]` | 查看定时计划的人员范围。`<planId>` 是定时计划 ID(`workflow advanced schedule` 输出里的「计划ID」) |
236
+ | `e10-cli workflow plan-range add <planId> --obj-type department\|employee --target-id <id> [--target-name <名>]` | 添加定时触发人员范围(多个目标 ID 用逗号分隔) |
237
+ | `e10-cli workflow plan-range delete <planId> --id <记录ID[,记录ID]>` | 删除定时触发人员范围(**多条逗号分隔**) |
238
+ | `e10-cli workflow advanced schedule-range <wf>` | ⚠ **已弃用**,请改用 `workflow plan-range`。旧命令列表恒显示 0 条、删除恒报「入参不全」 |
239
+ | `e10-cli workflow delete <workflowId>` | 删除流程。`--with-form` 同时删除关联表单 |
240
+ | `e10-cli workflow delete-link <wf> <linkIds...>` | 删除连线(列表 API,可多个)。自动清理关联节点 |
241
+ | `e10-cli workflow delete-node <wf> <nodeId>` | 删除节点(自动清理关联出口)。`--bridge` 桥接上下游 |
242
+ | `e10-cli workflow save-layout <wf> @xmlfile` | 保存完整流程图 XML(浏览器 mxGraph 格式:数字 cell id + nodeId/linkId)。服务器只认浏览器格式,勿转 node_X。新增节点/连线会自动注入 flag="add" |
243
+ | `e10-cli workflow auto-layout <wf>` | **节点自动排版**(分层布局,全量重排坐标)。`--direction ltr/ttb`(默认ltr)、`--gap-x/--gap-y` 间距、`--dry-run` 只算不打回、`--out` 配合 dry-run 输出新 XML。忽略退回线分层,分支自然融入 |
244
+ | `e10-cli workflow condition add <wf> <sourceId> <nodeId> <name> --rule "..."` | **简化语法**添加条件。`sourceId` 是连线 ID(linkId),`nodeId` 是该连线的来源节点 ID(srcNodeId),不是目标节点 ID;可从 `workflow nodes --json` / `link-list` 取得。`--rule "system:流程标题:包含:关键词"` 或 `--rule "form:字段ID|字段名|dataKey:大于:1000"`(fieldId/名/dataKey 均可匹配)。按 fieldType 自动判族校验算子,`--relation AND/OR`。**增强语法**:字段vs字段 `form:字段:大于:field:值字段`(range 用 `form:字段:范围:field:左:右`);明细量词 规则末尾 `:任一`/`:所有`;多值属于 `form:字段:包含:值1,值2`;人员/部门字段 `form:人员字段:包含:张三,李四` 自动解析成对象;系统字段 `system:紧急程度:等于:紧急`;嵌套 OR 用 `\|` 分隔 `form:关联项目:不为空\|form:关联客户:不为空`。详见 `workflow/guide-workflow-condition.md` |
245
+ | `e10-cli workflow save-condition @jsonfile --app-id <appId>` | 保存条件规则(原始 JSON)。CLI 自动生成 ID 并绑定到连线 |
246
+ | `e10-cli workflow condition list <wf>` | 列出工作流下所有连线绑定的条件(连线名 + 条件名 + 表达式 + mapId),支持 `--name` 过滤 |
247
+ | `e10-cli workflow condition get <wf> <id>` | 查看单个条件详情。`<id>` 可用 conditionKey / mapId / conditionId |
248
+ | `e10-cli workflow condition delete <wf> <id> [--link-id <linkId>] [--node-id <nodeId>]` | 删除条件(删定义 + 解绑连线)。`<id>` 同 get |
249
+ | `e10-cli workflow set-link-condition-key <wf> <link> <key> <node>` | 绑定条件 Key 到连线 |
250
+ | `e10-cli workflow save-action @jsonfile` | 加节点提交动作(常量赋值)。**只接 JSON 一个参数**,`workflowId`/`nodeId` 写在 JSON 内部(不是位置参数)。JSON 格式见 `workflow/guide-workflow-action.md` |
251
+ | `e10-cli actionflow generate '{"planFile":"@plan.json","appName":"AI-名称"}'` | **动作流生成**(语义 plan → 编译 → preflight → 保存并启用 → 正式回读,返回设计器链接)。`planFile` 必须以 `@` 引用文件(`@plan.json` 或 `@绝对路径`),CLI 强制要求 `@` 前缀。event 节点 `ApproveTrigger` 自带流程节点触发绑定(`workflowPath`+`triggerTiming`+`approveNode`/`approveLink`),不走 pathdef/addaction,无需单独绑节点。默认保存并启用;`{"mode":"stash",...}` 显式暂存。组件契约/参数/映射/条件的权威是 `e10-cli actionflow component-describe <type>`,详见 `actionflows/SKILL.md`。覆盖 ActionEb 全系列/Approve/Document/Hrm/Http(含 HTTPS 地址和 `inputParams`)/DML 数仓/触发器(含 CustomTrigger、InnerMQListener)/消息(含 InnerMQSend)/会议日程/逻辑 20+ 组件;Http 生成前实时校验当前租户连接器→资源→接口→详情,并按当前连接器回填标题/图标;InnerMQListener 与 InnerMQSend 同流互斥 |
252
+ | `e10-cli actionflow datasource-list '{"query":"esb"}'` | 查询当前租户数仓数据源连接;`DMLExecute.params.dataSetConn.id` 必须使用这里返回的真实 ID |
253
+ | `e10-cli actionflow http-connectors --out http-connectors.json` | 查询当前租户 HTTP 连接器;后续按 `http-resources` → `http-interfaces` → `http-interface-detail` 继续读取,HTTP 请求参数用接口详情的真实 `inputParams` 配置 |
254
+ | `e10-cli actionflow update '@update-plan.json'` | **已有动作流保留式修改**(精确 appId → 读正式设计 → 备份 → 按原节点 ID 显式 operations → saveDesign(saveNewVersion=true) → 正式回读)。**不可改 event 触发器**(触发类型/表单/时机/参数变了就新建);未声明内容保留。触发类型含按钮触发、自定义触发、内置 MQ 监听/发送 |
255
+ | `e10-cli workflow action list-node <wf> <nodeId> [--trigger-type all\|link]` | 列出节点绑定的动作(getAddActionDataList)。显示每条的动作类型/appId/触发时机,type0 还带字段=值 |
256
+ | `e10-cli workflow action clear-node <wf> <nodeId> [--trigger-type all\|link]` | **清空节点所有动作绑定**(deleteAddAction + delList)。清理重复 add/已删实体残留的悬空绑定;动作流实体另用 `action delete` 清 |
257
+ | `e10-cli workflow action disable <appId> <name>` | 禁用动作流(禁用后才能删除) |
258
+ | `e10-cli workflow action delete <appId> <name>` | 删除动作流(自动先禁用再 batchAddRecycle 删实体)。**平台无"按动作流反查绑定节点"接口**:删实体后,绑定了此动作流的节点会残留**悬空引用**(前端显示「被删除」)。CLI 删完会提示,需逐个用 `action clear-node <wf> <node>` 清理节点绑定 |
259
+ | `e10-cli workflow action batch-delete @list.json` | 批量删除动作流(每项 `{id,name}`,自动先禁用再 batchAddRecycle) |
260
+
261
+ ### 公用流转片段 & 子流程 & 消息
262
+
263
+ | 命令 | 说明 |
264
+ |------|------|
265
+ | `e10-cli workflow segment create <name> [--desc <text>]` | 新建**公用流转片段**并自动启用,返回 segmentId |
266
+ | `e10-cli workflow segment list [--type 1\|2] [--sub-company-id <id>]` | 列出公用流转片段。`--type 1`=流转片段(默认)/ `2`=权责表片段 |
267
+ | `e10-cli workflow segment enable <segmentId>` / `disable <segmentId>` | 启用 / 停用片段 |
268
+ | `e10-cli workflow segment add-link <segmentId> <源节点> <目标节点> [连线名]` | 片段内加连线(读片段图重编号 cell id 后追加) |
269
+ | `e10-cli workflow segment embed <wf> <segmentId> [--x <n>] [--y <n>]` | 在主流程里插入**公用流转节点**(引用指定片段,自动拼 group + 子节点 XML 并入主流程图)。`--sub-company-id` 用于查片段名 |
270
+ | `e10-cli workflow sub-process list <wf> <nodeId>` | 列出节点上全部子流程配置 |
271
+ | `e10-cli workflow sub-process get <wf> <nodeId> <subSetId>` | 查看子流程配置详情(主配置 + detailSet + 触发条件) |
272
+ | `e10-cli workflow sub-process set <wf> <nodeId> --sub-wf <子流程ID> [--name <配置名>] [--id <subSetId>]` | 新建/更新子流程主配置(**不传 `--id` 新建,传了则读-改-写**)。`--enable`/`--disable`(默认停用)、`--tri-once` 只触发一次、`--tri-source <主表objId>`、`--time-day`/`--time-hour`/`--time-minute` 延时 |
273
+ | `e10-cli workflow sub-process set-condition <wf> <nodeId> <subSetId> --rule "..." [--relation AND\|OR]` | 设置子流程触发条件(复用条件构建器,`--rule` 语法同 `workflow condition add`),并回填到主配置 |
274
+ | `e10-cli workflow sub-process set-mapping <wf> --sub-wf <子流程ID> --map 源字段:目标字段[:名] [--field-mapping-id <id>]` | 设置主→子字段映射(`--map` 可多个;不传 `--field-mapping-id` 则新建) |
275
+ | `e10-cli workflow sub-process set-detail <wf> <nodeId> <subSetId> [选项]` | 更新明细设置(创建人 / 读意见等,读-改-写)。`--creator <类型:字段ID>`、`--del-old-sub-request 0\|1`、`--read-main`/`--read-paralle`/`--read-sub`、`--auto-show 0\|1`、`--init-default-val` |
276
+ | `e10-cli workflow sub-process delete <wf> <subSetId>` | 删除子流程配置(连同 detailSet 一并删) |
277
+ | `e10-cli workflow message create <wf> <nodeId> <名称> [选项]` | 创建**消息提醒动作流**并绑定到流程节点。`--title`、`--content`、`--recipients <用户ID>`(缺省流程发起人)、`--channel im\|yunqiao\|email\|sms`、`--event arrive\|leave\|delete\|save\|revert\|pause\|cancel`(触发时机)、`--node-name` |
278
+
279
+ > **加节点**: add-node 直接操作节点列表 API (getNodeEditTable → saveNodeEditTable)
280
+ > **加连线**: add-link/add-links 直接操作出口列表 API (getWfpNodeLinkTable → saveNodeLinkEditTable)
281
+ > **删连线**: delete-link 直接操作出口列表 API (getWfpNodeLinkTable → saveNodeLinkEditTable, deleteRows)
282
+ > **删节点**: delete-node 直接操作节点列表 API (saveNodeEditTable, deleteRows),`--bridge` 自动桥接
283
+ > **查看节点/出口**: nodes --mode list / link-list 走列表 API(比 chart XML 更完整)
284
+ > **加分支条件两种方式**:
285
+ > - 简化: `condition add` — 一行命令搞定
286
+ > - 完整: generate-link-id → save-layout → save-condition → set-link-condition-key
287
+ > **加节点提交动作(字段常量赋值)**: save-action @action.json(格式见 `workflow/guide-workflow-action.md`)
288
+ > **加跨表单动作流**: `e10-cli actionflow generate`(语义 plan 生成 + 保存并启用 + 正式回读,event 自带流程节点绑定);`workflow action` 仅作查/清/删/禁用管理
289
+
290
+ ---
291
+
292
+ ## 菜单
293
+
294
+ | 命令 | 说明 |
295
+ |------|------|
296
+ | `e10-cli menu list <appId>` | 列出当前Ebuilder应用下的菜单 |
297
+ | `e10-cli menu add <name> <path> <appId>` | 将页面加入左侧导航(LINK 类型,URL path)。ecode 页面 path 如 `/sp/custom/ecode/project-list`。**表单台账/流程发起菜单用下面两条专用命令**(VIEWPORT/LAYOUT 类型,非 URL) |
298
+ | `e10-cli menu add-table <appId> <objId> [name]` | 给表单加**台账菜单**(VIEWPORT,指向数据列表页)。`form create --menu` 才自动加(默认不加),此处用于事后补加 |
299
+ | `e10-cli menu add-start <appId> <formObjId> [name]` | 给流程绑定的表单加**发起菜单**(LAYOUT,指向表单新建页,点开触发流程)。`workflow create --menu` 才自动加(默认不加) |
300
+ | `e10-cli menu permission list <appId> <menuId>` | 列菜单可见范围授权(**默认所有人**;无输出=全可见) |
301
+ | `e10-cli menu permission add <appId> <menuId> <目标> --type role\|dept\|user\|all` | 给菜单授权。默认语义:**加角色/人/部门后自动撤「所有人」→ 只有授权对象可见**;`--keep-all` 保留所有人;`--type all` 恢复"所有人可见" |
302
+ | `e10-cli menu permission remove <appId> <menuId> <目标> --type role\|dept\|user\|all` | 撤销菜单授权(撤销所有人用 `--type all`) |
303
+ | `e10-cli menu delete <menuId> <appId>` | 删除菜单项 |
304
+
305
+ ---
306
+
307
+ ## 页面 & 设计器(配置式页面搭建)
308
+
309
+ > 设计器页面 vs Ecode 页面:应用内建页**优先用设计器 Ebuilder 页面(配置式)**——`page create` 建页 → `designer comp-add --template` 加组件(28 个内置 factory 模板)→ 组件 setter/脚本绑数据 → `designer save` → `designer unlock` → `page publish-menu` 发布菜单,全程不写前端代码。详见 `ebuilder-designer/guide-designer.md`。
310
+
311
+ | 命令 | 说明 |
312
+ |------|------|
313
+ | `e10-cli page list --app-id <appId>` | 列应用下页面(id/name/belongModule/terminalScope) |
314
+ | `e10-cli page create <name> <appId> [--scope PC,MOBILE] [--layout-type GRID] [--module EB_PAGE]` | 创建页面(**参数顺序:名称在前、appId 在后,写反会 401**)。免登录页 `--module EB_ANONYMOUS_PAGE` 不支持 Comment/SearchGlobal/FastCreate |
315
+ | `e10-cli page get <pageId>` | 页面详情(模块/终端/权限视图) |
316
+ | `e10-cli page delete <pageIds...>` | 删除页面(软删除,可多个) |
317
+ | `e10-cli page publish-menu <pageId> <appId> [name]` | 页面发布为应用菜单(默认所有人可见,`menu permission` 收窄)。**发布前先 save+unlock**,否则设计器/预览弹「布局未保存」 |
318
+ | `e10-cli designer info <pageId>` | 页面元信息。**看 `allowEdit`/`isLock`**:isLock=1 先 unlock 再 save |
319
+ | `e10-cli designer layout <pageId> [--json] [--terminal pc\|mobile]` | 读布局(`--json` 输出完整两端 JSON 供 save 复用;摘要模式看组件 id/type/标题/坐标) |
320
+ | `e10-cli designer save <pageId> --layouts <json\|@file> [--page-name] [--sync-outdate]` | 保存布局(自动 LZ 压缩)。**入参取自 layout --json、只改 comps;必须含 PC+MOBILE 两端**(缺端丢另一端),CLI 强校验 |
321
+ | `e10-cli designer lock <pageId>` / `designer unlock <pageId>` | 锁定/解锁(软锁;**收尾必做 unlock**,每次都递增版本号) |
322
+ | `e10-cli designer position <pageId> <compId> --x --y --w --h` | 调 PC 栅格位置(12 列;改后自动保存) |
323
+ | `e10-cli designer comp-add <pageId> --template <名\|路径> [--type <Type>] [--x --y --w --h]` | 加组件:内置模板直接传名(`pie`/`bar`/`nlist`/`slide`…28 个,`designer factory-list` 查全表);也可传任意布局 JSON 路径,或 `--from <srcPage> --comp <id>` 从活页克隆。自动生成新 id + PC/MOBILE refCompId 互连并保存 |
324
+ | `e10-cli designer comp-remove <pageId> <compId>` | 移除组件(PC/MOBILE 按 refCompId 联动删) |
325
+ | `e10-cli designer factory-list` | 列出 28 个内置 factory 模板(名称↔组件 type 对照) |
326
+ | `e10-cli designer chart dataset-set\|measure-add\|dimension-add\|title\|height` | **图表配置(全 11 种)**。dataset-set 绑表单;measure-add 加度量(SUM/AVG/MAX/MIN 用 `--field-id`,COUNT 用 `--count-records`);dimension-add 加维度(字段名/ID 均可,Date 自动按月);title 设业务标题;height 设像素高。**Gauge:COUNT+无维度;堆积:2 度量+1 维度;Bubble:只能 1 度量** |
327
+ | `e10-cli designer digital-panel panel-add ...` | 数字面板加 KPI 卡(`--field-id --aggregator SUM\|COUNT\|AVG\|MAX\|MIN --label`) |
328
+ | `e10-cli designer list dataset-set\|field-add\|order-add` | NList 绑数据源/加显示列(`--type` `--comp-type` 同值传字段类型)/加排序 |
329
+ | `e10-cli designer calendar dataset-bind\|field-map\|title` | 日历绑数据源(`--start --end --title-field`,内置全视图渲染)/调映射(`--end clear` 全天单日)/设标题 |
330
+ | `e10-cli designer slide pic-add\|title` | 幻灯片加轮播图(**平台资源路径**,已防 Git Bash 路径转换)/设标题 |
331
+ | `e10-cli designer nav-panel menu-add\|menu-source-type\|title` | 导航面板加跳页菜单(NewPage 双层 eventGroup 自动构造)/切菜单来源 DEFAULT\|CUSTOM/设标题 |
332
+
333
+ > **setter 通用**:`--field-id` 传字段名或 fieldId;绑定条目由 CLI 从 ds/fields 取平台原样字段对象自动构造(不用手填 physicalField/browserParams);其余 12 类非图表组件无 setter,走「导出 layout → 脚本改 config → save」(见 `ebuilder-designer/guide-designer-factory.md` 深度配置节)。
334
+ | `e10-cli designer auto-height <pageId>` | **单列纵堆模式**:按组件内容自动定高 + 重排 y(配完字段后跑一次)。**多列栅格勿用**(会覆盖 w/x),手调 position |
335
+ | `e10-cli designer version list <pageId> [--page] [--size] [--since/--until] [--remark]` | 版本列表(save 自动产生快照;**versionId 取 records[].id 非 version 号**) |
336
+ | `e10-cli designer version revert <pageId> <versionId>` | 还原历史版本(整体替换两端;不可逆,还原前建议 lock) |
337
+
338
+ > **坑**:① save 入参铁律——取自 `/layout/list` 原值只改 comps,元数据不动;② 组件标题用业务名(comp-add 出来是占位名,配完必改);③ 高度是内容驱动(h 过低裁切,`position --h` 调大);④ 非 TTY 环境给 `comp-add` 带 `--yes`。
339
+
340
+ ---
341
+
342
+ ## 报表(设计器报表)
343
+
344
+ ```bash
345
+ # 建表(首选):声明式一步落库,不留空壳
346
+ e10-cli report build --spec spec.json # 正式
347
+ e10-cli report build --spec spec.json --dry-run # 只定源+字段预检
348
+ e10-cli report build --spec spec.json --form-confirmed --source-id <id> # 用户已确认表
349
+ e10-cli report build --spec spec.json --field-confirmed "列A,列B" # 确认文案≠显示名
350
+ # 退出码 3=需选表(未建) 4=需选字段(未建) 2=成功但有警告
351
+ e10-cli report find <appId> [表名] | --list | --suggest "关键词" # 应用内定源
352
+ e10-cli report create blank|template|quick --app-id <id> --name "名" [--model-id <id>]
353
+ e10-cli report create models # 模板列表
354
+
355
+ # 读 / 改
356
+ e10-cli report read <reportId> [--fields]
357
+ e10-cli report list --app-id <id>
358
+ e10-cli report delete <reportId> --app-id <id> # 进回收站,可还原
359
+ e10-cli report dataset list|rename|preview|check-used|delete|replace ... # 数据集侧栏
360
+ e10-cli report dataset agg|sort get|save|clear --dataset-id <id>
361
+
362
+ # 查询条件
363
+ e10-cli report query list|save|type|check-echo|fix-echo <reportId> --app-id <id>
364
+ e10-cli report query verify <reportId> --app-id <id> [--fix] # Q1~Q10 体检
365
+ e10-cli report fix query-default <reportId> --app-id <id> [--set ...] [--apply]
366
+ e10-cli report fix query-style <reportId> --app-id <id> [--delete-id ...] [--apply]
367
+
368
+ # 权限 / 分组 / 生命周期 / 版本
369
+ e10-cli report scope list|set|matrix ... --report-id <id> --app-id <id>
370
+ e10-cli report group list|add|delete --app-id <id>
371
+ e10-cli report lifecycle copy-and-menu|add-menu|move|transfer ...
372
+ e10-cli report lifecycle recycle list|restore|purge ...
373
+ e10-cli report version save|list <reportId>
374
+ e10-cli report snapshot set|list <reportId> [--cron "0 0 0 * * ?"]
375
+ e10-cli report restore <reportId> --version <versionId>
376
+ e10-cli report cleanup --app-id <id> [--prefix __build_] [--apply]
377
+
378
+ # 校验 / 体检 / 修复(fix 默认只预演,--apply 才落库)
379
+ e10-cli report validate base|condition|format|transform|href|gridline|blank|style ...
380
+ e10-cli report verify bind|all|meta|condition|format|blank|gridline|contract|limit <reportId> [--app-id <id>]
381
+ e10-cli report fix table-name <reportId> [--apply] # 补 tableName
382
+ e10-cli report fix freeze <reportId> [--anchor x,y] [--apply]
383
+ e10-cli report fix echo <reportId> --app-id <id>
384
+
385
+ # 分析
386
+ e10-cli report join-suggest --app-id <id> (--parent-form 主表 --child-form 子表)
387
+ e10-cli report py preagg --report-id <id> [--app-id <id>]
388
+ ```
389
+
390
+ > 建表 / 改表 / 查询条件怎么用、踩坑在哪:`references/report/guide-report-build.md`、`guide-report-modify.md`、`guide-report-query.md`、`ref-report-pitfalls.md`。
391
+
392
+ ## 人员 & 图标
393
+
394
+ | 命令 | 说明 |
395
+ |------|------|
396
+ | `e10-cli user search <keyword> [count]` | 模糊搜索员工(返回 ID/姓名/部门/手机) |
397
+ | `e10-cli icon search <keyword...>` | 搜索 Ebuilder 图标(4999 个,支持多关键词) |
398
+
399
+ ---
400
+
401
+ ## 认证 & 多环境
402
+
403
+ | 命令 | 说明 |
404
+ |------|------|
405
+ | `e10-cli auth status` | 查看当前登录状态(cookie 过期会提示)。**认全局 `--profile`**——多环境切换后用它确认登的是哪个环境;该 profile 未登录时直接报错,不会回落到别的环境 |
406
+ | `e10-cli auth login` | 浏览器 OIDC SSO 授权 → 本地回调 → 自动保存。**需要用户亲自点**,自动化跑不了 |
407
+ | `e10-cli auth set --base-url <url> --eteamsid <值>` | 直接写入认证(**非交互**)。SSO 回调不到 localhost 时用这条:让用户从浏览器 DevTools → Application → Cookies 复制 `ETEAMSID` 值即可 |
408
+ | `e10-cli auth profile list\|use <name>\|current` | 多环境 Profile 管理。也可以不切激活项,直接在任意命令前加全局 `--profile <名>` |
409
+ | `e10-cli auth export-weaver-env` | 导出当前鉴权为 `WEAVER_*` 环境变量(供外部脚本复用):`eval "$(e10-cli auth export-weaver-env)"` |
410
+
411
+ > ⚠ `ETEAMSID` 是会话凭据——只在命令行里传,**不要写进任何项目文件**。
412
+
413
+ ---
414
+
415
+ ## 矩阵
416
+
417
+ | 命令 | 说明 |
418
+ |------|------|
419
+ | `e10-cli matrix list [--name <关键词>] [--enable-status 0\|1] [--org-id <id>]` | 查询矩阵列表(**含停用矩阵**,带状态;`--out` 写 JSON 文件) |
420
+ | `e10-cli matrix create <name> [选项]` | 新建矩阵(**新建即为启用**,要停用再跑 `matrix disable`)。所属机构的字段名由**分权状态**决定,CLI 自动判断并在缺省时用当前机构兜底,分权租户无需手写机构 |
421
+ | `e10-cli matrix config <id>` / `config-edit <id>` | 查看 / 编辑矩阵配置(条件字段 + 值字段) |
422
+ | `e10-cli matrix enable <id>` / `disable <id>` | 启用 / 停用(停用后数据只读) |
423
+ | `e10-cli matrix update <id>` / `delete <ids...>` | 更新基本信息(名称/描述/同步方式)/ 删除(级联删配置、数据、维护者) |
424
+ | `e10-cli matrix data` | 矩阵数据维护(映射行) |
425
+
426
+ > 系统矩阵与自定义矩阵的区别、以及「条件列 → 人员列 → 数据映射 → 运行时读回」的完整步骤见 `references/hrm/guide-matrix.md`。
427
+
428
+ ---
429
+
430
+ ## 编译 & Skill 文档
431
+
432
+ | 命令 | 说明 |
433
+ |------|------|
434
+ | `e10-cli compile <项目目录> [--strict]` | 编译前端项目(`--strict` 把警告也当错误)。代码质量自检用 `e10-cli check <项目目录>` |
435
+ | `e10-cli skill root` | 打印 skill 文档根目录绝对路径(文档版本与 CLI 版本一致) |
436
+ | `e10-cli skill copy [目标目录]` | 全量拷贝文档 + 模板到本地(默认当前目录),放出 `references/` `actionflows/` `assets/` `SKILL.md` |
437
+ | `e10-cli skill sync [--target <目录>]` | 探测已安装的 skill(`~/.claude/skills`、`~/.workbuddy/skills`、`~/.codex/skills` 等),把文档树 + 薄层指令文件自动拷进对应目录;`--target` 可重复指定额外的安装根目录 |
438
+
439
+ ---
440
+
441
+ ## 版本更新(只提醒,升级需确认)
442
+
443
+ | 命令 | 说明 |
444
+ |------|------|
445
+ | `e10-cli update check` | 强制连网查一次(忽略 24h 缓存),显示 当前/最新/结论。`--on`/`--off` 开关注册 |
446
+ | `e10-cli update apply [--yes]` | 升级到最新(打印将执行的 `npm install -g weaver-e10-builder@<最新>` 并询问确认;加 `--yes` 跳过确认)。仅在线可用,内网走离线 tgz |
447
+
448
+ > **自动提醒**:每次 `e10-cli auth status` 末尾静默检查(每 24h 最多连网一次;离线/内网自动跳过不打扰)。检测到新版本只打一行 `💡 有新版本…`,**不自动安装**。
449
+
450
+ ---
451
+
452
+ ## 代码检查
453
+
454
+ | 命令 | 说明 |
455
+ |------|------|
456
+ | `e10-cli check <项目目录>` | 代码质量检查,逐条自检,全部确认通过后再 build |
457
+
458
+ ---
459
+
460
+ ## 典型工作流
461
+
462
+ ```bash
463
+ # 1. 创建项目ecode
464
+ e10-cli project create 会议室预订
465
+
466
+ # 2. 打包 & 上传
467
+ ecodecmd build /path/to/project --target=e10
468
+ e10-cli project import <projectId> .target/xxx.zip --main-url /sp/custom/ecode/table-demo
469
+
470
+ # 3. 后续改代码再上传(先删旧应用文件夹)
471
+ ecodecmd build /path/to/project --target=e10
472
+ e10-cli project tree <projectId> # 找旧应用 folderId
473
+ e10-cli project delete-folder <folderId>
474
+ e10-cli project import <projectId> .target/xxx.zip --main-url /sp/custom/ecode/table-demo
475
+
476
+ # 4. 需要表单时
477
+ e10-cli app create 会议室管理 # → appId
478
+ # 先写字段定义文件 fields.json,然后:
479
+ e10-cli form create <appId> 会议室表单 /path/to/project --fields @fields.json # → objId
480
+ e10-cli form read <objId> --app-id <appId> --out fields.json # 写入 fields.json(推荐)
481
+
482
+ # 5. 角色管理
483
+ e10-cli role create 财务主管 --code CW01 --remark "审批角色"
484
+ e10-cli role add-member <roleId> 张三
485
+
486
+ # 6. 创建流程
487
+ e10-cli workflow create <appId> <formObjId> 会议室审批
488
+ e10-cli workflow nodes <workflowId> # 查看节点
489
+
490
+ # 7. 配置审批节点
491
+ e10-cli workflow set-operator <wf> <nodeId> 张三 # 指定人
492
+ e10-cli workflow set-operator <wf> <nodeId> 财务主管 --type role # 指定角色
493
+
494
+ # 8. 加分支条件(如金额≥1000走CEO审批)
495
+ e10-cli workflow generate-link-id <wf> # → newLinkId
496
+ e10-cli workflow save-layout <wf> @修改后的xml文件
497
+ e10-cli workflow save-condition @条件.json # → conditionKey
498
+ e10-cli workflow set-link-condition-key <wf> <linkId> <key> <nodeId>
499
+
500
+ # 9. 添加菜单
501
+ e10-cli menu add 会议室预订 /sp/custom/ecode/meeting/list <appId>
502
+
503
+ # 10. 配置动作流(新建/修改)—— 新建走 generate,已有流修改走 update
504
+ # 先查目标表字段 + 流程上下文 paramKey
505
+ e10-cli actionflow form-fields '{"tableId":"<targetTableId>","appId":"<targetAppId>"}'
506
+ e10-cli actionflow workflow-context-fields '{"workflowId":"<wf>"}'
507
+ # 按名称或 paramKey 筛选;默认每页仅 20 条,避免终端截断
508
+ e10-cli actionflow workflow-context-fields '{"workflowId":"<wf>","query":"数据ID"}'
509
+ # 输出完整原始 JSON(终端仍只显示可用摘要,避免截断)
510
+ e10-cli actionflow workflow-context-fields '{"workflowId":"<wf>"}' --out context.json
511
+ # 正式设计回读同理;默认摘要,raw:true 才直接打印完整 JSON
512
+ e10-cli actionflow read-design '{"sceneId":"<sceneId>"}' --out design.json
513
+ # 写 plan.json(event=ApproveTrigger 带 workflowPath+triggerTiming;actions=ActionEbAdd/Update/Delete)
514
+ # mapping: {"源paramKey":"目标字段ID"},目标ID +前缀=累加 -前缀=累减;明细仅 add;
515
+ # update 定位: opType=id(关联字段)/updateData+filterCondition(requestId 定位走 ApprovalData paramKey)
516
+ e10-cli actionflow generate '{"planFile":"@plan.json","appName":"AI-动作流名"}' # planFile 必须以 @ 引用文件(@plan.json 或 @绝对路径)
517
+ # 管理: list-node 查节点绑定 / clear-node 清 / delete/disable 删动作流
518
+ e10-cli workflow action list-node <wf> <nodeId>
519
+ ```