weaver-e10-builder 1.5.13 → 1.5.14

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 (308) hide show
  1. package/dist/commands/actionflow.d.ts.map +1 -1
  2. package/dist/commands/actionflow.js +1 -0
  3. package/dist/commands/actionflow.js.map +1 -1
  4. package/dist/commands/designer-setters.d.ts.map +1 -1
  5. package/dist/commands/designer-setters.js +148 -47
  6. package/dist/commands/designer-setters.js.map +1 -1
  7. package/dist/commands/form-add-detail-table.d.ts.map +1 -1
  8. package/dist/commands/form-add-detail-table.js +53 -7
  9. package/dist/commands/form-add-detail-table.js.map +1 -1
  10. package/dist/commands/form-browser-definition.d.ts +14 -0
  11. package/dist/commands/form-browser-definition.d.ts.map +1 -0
  12. package/dist/commands/form-browser-definition.js +493 -0
  13. package/dist/commands/form-browser-definition.js.map +1 -0
  14. package/dist/commands/form-code.d.ts +5 -0
  15. package/dist/commands/form-code.d.ts.map +1 -0
  16. package/dist/commands/form-code.js +276 -0
  17. package/dist/commands/form-code.js.map +1 -0
  18. package/dist/commands/form-engine-linkage.d.ts +3 -0
  19. package/dist/commands/form-engine-linkage.d.ts.map +1 -0
  20. package/dist/commands/form-engine-linkage.js +199 -0
  21. package/dist/commands/form-engine-linkage.js.map +1 -0
  22. package/dist/commands/form-formula.d.ts.map +1 -1
  23. package/dist/commands/form-formula.js +7 -19
  24. package/dist/commands/form-formula.js.map +1 -1
  25. package/dist/commands/form-layout-template-advanced.d.ts +3 -0
  26. package/dist/commands/form-layout-template-advanced.d.ts.map +1 -0
  27. package/dist/commands/form-layout-template-advanced.js +115 -0
  28. package/dist/commands/form-layout-template-advanced.js.map +1 -0
  29. package/dist/commands/form-layout-template-easy.d.ts +3 -0
  30. package/dist/commands/form-layout-template-easy.d.ts.map +1 -0
  31. package/dist/commands/form-layout-template-easy.js +59 -0
  32. package/dist/commands/form-layout-template-easy.js.map +1 -0
  33. package/dist/commands/form-layout.d.ts.map +1 -1
  34. package/dist/commands/form-layout.js +77 -0
  35. package/dist/commands/form-layout.js.map +1 -1
  36. package/dist/commands/form-list-filter.js +1 -1
  37. package/dist/commands/form-list-filter.js.map +1 -1
  38. package/dist/commands/form-list-utils.d.ts +5 -0
  39. package/dist/commands/form-list-utils.d.ts.map +1 -1
  40. package/dist/commands/form-list-utils.js +23 -3
  41. package/dist/commands/form-list-utils.js.map +1 -1
  42. package/dist/commands/form-permission.d.ts.map +1 -1
  43. package/dist/commands/form-permission.js +55 -19
  44. package/dist/commands/form-permission.js.map +1 -1
  45. package/dist/commands/form-physical-table.d.ts.map +1 -1
  46. package/dist/commands/form-physical-table.js +8 -2
  47. package/dist/commands/form-physical-table.js.map +1 -1
  48. package/dist/commands/form.d.ts.map +1 -1
  49. package/dist/commands/form.js +143 -5
  50. package/dist/commands/form.js.map +1 -1
  51. package/dist/commands/menu.d.ts +68 -2
  52. package/dist/commands/menu.d.ts.map +1 -1
  53. package/dist/commands/menu.js +186 -41
  54. package/dist/commands/menu.js.map +1 -1
  55. package/dist/commands/page.d.ts.map +1 -1
  56. package/dist/commands/page.js +29 -6
  57. package/dist/commands/page.js.map +1 -1
  58. package/dist/commands/special.d.ts.map +1 -1
  59. package/dist/commands/special.js +3 -2
  60. package/dist/commands/special.js.map +1 -1
  61. package/dist/commands/wf-form.d.ts.map +1 -1
  62. package/dist/commands/wf-form.js +76 -31
  63. package/dist/commands/wf-form.js.map +1 -1
  64. package/dist/commands/workflow-auth-resp.js +2 -2
  65. package/dist/commands/workflow-auth-resp.js.map +1 -1
  66. package/dist/commands/workflow-base-settings.d.ts +3 -0
  67. package/dist/commands/workflow-base-settings.d.ts.map +1 -0
  68. package/dist/commands/workflow-base-settings.js +73 -0
  69. package/dist/commands/workflow-base-settings.js.map +1 -0
  70. package/dist/commands/workflow-condition.d.ts.map +1 -1
  71. package/dist/commands/workflow-condition.js +59 -450
  72. package/dist/commands/workflow-condition.js.map +1 -1
  73. package/dist/commands/workflow-export.d.ts +9 -0
  74. package/dist/commands/workflow-export.d.ts.map +1 -0
  75. package/dist/commands/workflow-export.js +121 -0
  76. package/dist/commands/workflow-export.js.map +1 -0
  77. package/dist/commands/workflow-node.d.ts.map +1 -1
  78. package/dist/commands/workflow-node.js +28 -53
  79. package/dist/commands/workflow-node.js.map +1 -1
  80. package/dist/commands/workflow-operator-batch.d.ts +3 -0
  81. package/dist/commands/workflow-operator-batch.d.ts.map +1 -0
  82. package/dist/commands/workflow-operator-batch.js +35 -0
  83. package/dist/commands/workflow-operator-batch.js.map +1 -0
  84. package/dist/commands/workflow-subprocess.d.ts.map +1 -1
  85. package/dist/commands/workflow-subprocess.js +21 -33
  86. package/dist/commands/workflow-subprocess.js.map +1 -1
  87. package/dist/commands/workflow.d.ts.map +1 -1
  88. package/dist/commands/workflow.js +18 -33
  89. package/dist/commands/workflow.js.map +1 -1
  90. package/dist/index.js +18 -1
  91. package/dist/index.js.map +1 -1
  92. package/dist/services/actionflow/browser_source.d.ts +9 -0
  93. package/dist/services/actionflow/browser_source.d.ts.map +1 -0
  94. package/dist/services/actionflow/browser_source.js +12 -0
  95. package/dist/services/actionflow/browser_source.js.map +1 -0
  96. package/dist/services/actionflow/components/date_trigger.js +1 -1
  97. package/dist/services/actionflow/components/date_trigger.js.map +1 -1
  98. package/dist/services/actionflow/components/document_actions.d.ts.map +1 -1
  99. package/dist/services/actionflow/components/document_actions.js +178 -25
  100. package/dist/services/actionflow/components/document_actions.js.map +1 -1
  101. package/dist/services/actionflow/components/enquiry_form.js +1 -1
  102. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  103. package/dist/services/actionflow/components/logic_flow_set.d.ts.map +1 -1
  104. package/dist/services/actionflow/components/logic_flow_set.js +80 -8
  105. package/dist/services/actionflow/components/logic_flow_set.js.map +1 -1
  106. package/dist/services/actionflow/components/meeting_create.d.ts.map +1 -1
  107. package/dist/services/actionflow/components/meeting_create.js +1 -0
  108. package/dist/services/actionflow/components/meeting_create.js.map +1 -1
  109. package/dist/services/actionflow/components/schedule_create.d.ts.map +1 -1
  110. package/dist/services/actionflow/components/schedule_create.js +2 -0
  111. package/dist/services/actionflow/components/schedule_create.js.map +1 -1
  112. package/dist/services/actionflow/components/time_batch_trigger.js +1 -1
  113. package/dist/services/actionflow/components/time_batch_trigger.js.map +1 -1
  114. package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
  115. package/dist/services/actionflow/components/workflow_actions.js +6 -2
  116. package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
  117. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  118. package/dist/services/actionflow/context_preflight.js +103 -6
  119. package/dist/services/actionflow/context_preflight.js.map +1 -1
  120. package/dist/services/actionflow/form_source.d.ts +2 -0
  121. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  122. package/dist/services/actionflow/form_source.js +8 -0
  123. package/dist/services/actionflow/form_source.js.map +1 -1
  124. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  125. package/dist/services/actionflow/formula_service.js +35 -19
  126. package/dist/services/actionflow/formula_service.js.map +1 -1
  127. package/dist/services/actionflow/logicflow_source.d.ts +5 -0
  128. package/dist/services/actionflow/logicflow_source.d.ts.map +1 -0
  129. package/dist/services/actionflow/logicflow_source.js +15 -0
  130. package/dist/services/actionflow/logicflow_source.js.map +1 -0
  131. package/dist/services/actionflow/preflight_service.d.ts +15 -0
  132. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  133. package/dist/services/actionflow/preflight_service.js +558 -26
  134. package/dist/services/actionflow/preflight_service.js.map +1 -1
  135. package/dist/services/actionflow/runtime_metadata.d.ts +8 -0
  136. package/dist/services/actionflow/runtime_metadata.d.ts.map +1 -1
  137. package/dist/services/actionflow/runtime_metadata.js +25 -0
  138. package/dist/services/actionflow/runtime_metadata.js.map +1 -1
  139. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  140. package/dist/services/actionflow/workflow_compiler.js +50 -10
  141. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  142. package/dist/services/actionflow/workflow_source.d.ts +2 -0
  143. package/dist/services/actionflow/workflow_source.d.ts.map +1 -1
  144. package/dist/services/actionflow/workflow_source.js +7 -0
  145. package/dist/services/actionflow/workflow_source.js.map +1 -1
  146. package/dist/services/auth-resp-condition.d.ts +7 -3
  147. package/dist/services/auth-resp-condition.d.ts.map +1 -1
  148. package/dist/services/auth-resp-condition.js +58 -63
  149. package/dist/services/auth-resp-condition.js.map +1 -1
  150. package/dist/services/browser.d.ts +5 -0
  151. package/dist/services/browser.d.ts.map +1 -1
  152. package/dist/services/browser.js +16 -4
  153. package/dist/services/browser.js.map +1 -1
  154. package/dist/services/condition-rules.d.ts +2 -30
  155. package/dist/services/condition-rules.d.ts.map +1 -1
  156. package/dist/services/condition-rules.js +3 -219
  157. package/dist/services/condition-rules.js.map +1 -1
  158. package/dist/services/designer-dataset.d.ts +45 -0
  159. package/dist/services/designer-dataset.d.ts.map +1 -0
  160. package/dist/services/designer-dataset.js +156 -0
  161. package/dist/services/designer-dataset.js.map +1 -0
  162. package/dist/services/form-association.d.ts +7 -0
  163. package/dist/services/form-association.d.ts.map +1 -1
  164. package/dist/services/form-association.js +22 -1
  165. package/dist/services/form-association.js.map +1 -1
  166. package/dist/services/form-code.d.ts +53 -0
  167. package/dist/services/form-code.d.ts.map +1 -0
  168. package/dist/services/form-code.js +370 -0
  169. package/dist/services/form-code.js.map +1 -0
  170. package/dist/services/form-create.d.ts +20 -0
  171. package/dist/services/form-create.d.ts.map +1 -1
  172. package/dist/services/form-create.js +73 -1
  173. package/dist/services/form-create.js.map +1 -1
  174. package/dist/services/form-field-build.d.ts +1 -1
  175. package/dist/services/form-field-build.d.ts.map +1 -1
  176. package/dist/services/form-field-build.js +20 -1
  177. package/dist/services/form-field-build.js.map +1 -1
  178. package/dist/services/form-field-drop.d.ts +2 -0
  179. package/dist/services/form-field-drop.d.ts.map +1 -1
  180. package/dist/services/form-field-drop.js +2 -0
  181. package/dist/services/form-field-drop.js.map +1 -1
  182. package/dist/services/form-layout-detail-insert.d.ts +58 -0
  183. package/dist/services/form-layout-detail-insert.d.ts.map +1 -0
  184. package/dist/services/form-layout-detail-insert.js +293 -0
  185. package/dist/services/form-layout-detail-insert.js.map +1 -0
  186. package/dist/services/form-layout-insert.d.ts.map +1 -1
  187. package/dist/services/form-layout-insert.js +34 -2
  188. package/dist/services/form-layout-insert.js.map +1 -1
  189. package/dist/services/form-layout-source/compile.d.ts.map +1 -1
  190. package/dist/services/form-layout-source/compile.js +11 -4
  191. package/dist/services/form-layout-source/compile.js.map +1 -1
  192. package/dist/services/form-layout-template-advanced.d.ts +330 -0
  193. package/dist/services/form-layout-template-advanced.d.ts.map +1 -0
  194. package/dist/services/form-layout-template-advanced.js +1437 -0
  195. package/dist/services/form-layout-template-advanced.js.map +1 -0
  196. package/dist/services/form-layout-template-easy.d.ts +34 -0
  197. package/dist/services/form-layout-template-easy.d.ts.map +1 -0
  198. package/dist/services/form-layout-template-easy.js +159 -0
  199. package/dist/services/form-layout-template-easy.js.map +1 -0
  200. package/dist/services/form-layout-template-flow.d.ts +23 -0
  201. package/dist/services/form-layout-template-flow.d.ts.map +1 -0
  202. package/dist/services/form-layout-template-flow.js +99 -0
  203. package/dist/services/form-layout-template-flow.js.map +1 -0
  204. package/dist/services/form-permission-archive.d.ts +23 -1
  205. package/dist/services/form-permission-archive.d.ts.map +1 -1
  206. package/dist/services/form-permission-archive.js +54 -2
  207. package/dist/services/form-permission-archive.js.map +1 -1
  208. package/dist/services/form-physical-table.d.ts +10 -0
  209. package/dist/services/form-physical-table.d.ts.map +1 -1
  210. package/dist/services/form-physical-table.js +20 -0
  211. package/dist/services/form-physical-table.js.map +1 -1
  212. package/dist/services/form-view-linkage-functions.d.ts +19 -0
  213. package/dist/services/form-view-linkage-functions.d.ts.map +1 -0
  214. package/dist/services/form-view-linkage-functions.js +90 -0
  215. package/dist/services/form-view-linkage-functions.js.map +1 -0
  216. package/dist/services/matrix-condition.d.ts +32 -1
  217. package/dist/services/matrix-condition.d.ts.map +1 -1
  218. package/dist/services/matrix-condition.js +169 -6
  219. package/dist/services/matrix-condition.js.map +1 -1
  220. package/dist/services/menu-catalog.d.ts +24 -1
  221. package/dist/services/menu-catalog.d.ts.map +1 -1
  222. package/dist/services/menu-catalog.js +49 -2
  223. package/dist/services/menu-catalog.js.map +1 -1
  224. package/dist/services/workflow-base-settings.d.ts +117 -0
  225. package/dist/services/workflow-base-settings.d.ts.map +1 -0
  226. package/dist/services/workflow-base-settings.js +504 -0
  227. package/dist/services/workflow-base-settings.js.map +1 -0
  228. package/dist/services/workflow-condition-core.d.ts +48 -0
  229. package/dist/services/workflow-condition-core.d.ts.map +1 -0
  230. package/dist/services/workflow-condition-core.js +316 -0
  231. package/dist/services/workflow-condition-core.js.map +1 -0
  232. package/dist/services/workflow-context.d.ts +10 -0
  233. package/dist/services/workflow-context.d.ts.map +1 -0
  234. package/dist/services/workflow-context.js +15 -0
  235. package/dist/services/workflow-context.js.map +1 -0
  236. package/dist/services/workflow-export.d.ts +80 -0
  237. package/dist/services/workflow-export.d.ts.map +1 -0
  238. package/dist/services/workflow-export.js +150 -0
  239. package/dist/services/workflow-export.js.map +1 -0
  240. package/dist/services/workflow-field-permission-route.d.ts +75 -0
  241. package/dist/services/workflow-field-permission-route.d.ts.map +1 -0
  242. package/dist/services/workflow-field-permission-route.js +52 -0
  243. package/dist/services/workflow-field-permission-route.js.map +1 -0
  244. package/dist/services/workflow-field-permission.d.ts +18 -0
  245. package/dist/services/workflow-field-permission.d.ts.map +1 -0
  246. package/dist/services/workflow-field-permission.js +40 -0
  247. package/dist/services/workflow-field-permission.js.map +1 -0
  248. package/dist/services/workflow-node-layout.d.ts +11 -10
  249. package/dist/services/workflow-node-layout.d.ts.map +1 -1
  250. package/dist/services/workflow-node-layout.js +24 -62
  251. package/dist/services/workflow-node-layout.js.map +1 -1
  252. package/dist/services/workflow-operator-batch-condition.d.ts +23 -0
  253. package/dist/services/workflow-operator-batch-condition.d.ts.map +1 -0
  254. package/dist/services/workflow-operator-batch-condition.js +56 -0
  255. package/dist/services/workflow-operator-batch-condition.js.map +1 -0
  256. package/package.json +1 -1
  257. package/skill-docs/SKILL.md +155 -154
  258. package/skill-docs/_catalog.md +9 -2
  259. package/skill-docs/actionflows/references/components/document/GetDocumentInfo.md +17 -17
  260. package/skill-docs/actionflows/references/components/logic/LogicFlowSet.md +23 -17
  261. package/skill-docs/assets/form-template/style-templates-advanced-base-example.json +1420 -0
  262. package/skill-docs/assets/form-template/style-templates-advanced-base.css +33 -0
  263. package/skill-docs/assets/form-template/style-templates-advanced-blue-crystal-example.json +1094 -0
  264. package/skill-docs/assets/form-template/style-templates-advanced-document-example.json +1251 -0
  265. package/skill-docs/assets/form-template/style-templates-advanced-grid-example.json +39 -0
  266. package/skill-docs/assets/form-template/style-templates-advanced-page-example.json +38 -0
  267. package/skill-docs/assets/form-template/style-templates-advanced-placements-example.json +30 -0
  268. package/skill-docs/assets/form-template/style-templates-advanced-standard-example.json +53 -0
  269. package/skill-docs/assets/form-template/style-templates-advanced-structure-example.json +25 -0
  270. package/skill-docs/assets/form-template/style-templates-advanced-table-example.json +1420 -0
  271. package/skill-docs/references/code-block/guide-code-block.md +141 -0
  272. package/skill-docs/references/code-block/guide-layout-css.md +107 -0
  273. package/skill-docs/references/code-block/ref-controls.md +60 -0
  274. package/skill-docs/references/code-block/ref-coverage.md +32 -0
  275. package/skill-docs/references/code-block/ref-details.md +57 -0
  276. package/skill-docs/references/code-block/ref-events-validation.md +42 -0
  277. package/skill-docs/references/code-block/ref-foundations-fields.md +56 -0
  278. package/skill-docs/references/code-block/ref-recipes.md +164 -0
  279. package/skill-docs/references/code-block/ref-troubleshooting.md +49 -0
  280. package/skill-docs/references/code-block/ref-ui-global.md +47 -0
  281. package/skill-docs/references/common/guide-plan-template.md +168 -167
  282. package/skill-docs/references/common/map.md +2 -1
  283. package/skill-docs/references/common/ref-cli-commands.md +54 -15
  284. package/skill-docs/references/ebuilder-designer/guide-designer-factory.md +8 -4
  285. package/skill-docs/references/form/form-template/style-templates-advanced-css-guide.md +167 -0
  286. package/skill-docs/references/form/form-template/style-templates-advanced.md +315 -0
  287. package/skill-docs/references/form/form-template/style-templates-easy.md +55 -0
  288. package/skill-docs/references/form/form-template/style-templates-flow.md +27 -0
  289. package/skill-docs/references/form/form-template/style-templates.md +29 -0
  290. package/skill-docs/references/form/guide-browser-definition.md +148 -0
  291. package/skill-docs/references/form/guide-create-form.md +258 -250
  292. package/skill-docs/references/form/guide-form-archive-permission.md +29 -6
  293. package/skill-docs/references/form/guide-form-formula-functions.md +354 -354
  294. package/skill-docs/references/form/guide-form-layout-incremental.md +28 -0
  295. package/skill-docs/references/form/guide-form-layout-planning.md +11 -0
  296. package/skill-docs/references/form/guide-form-layout-source.md +4 -0
  297. package/skill-docs/references/form/guide-form-linkage.md +295 -259
  298. package/skill-docs/references/form/guide-form-physical-table.md +2 -0
  299. package/skill-docs/references/form/guide-form-view.md +3 -0
  300. package/skill-docs/references/form/ref-form-fields.md +301 -293
  301. package/skill-docs/references/form/ref-list-filter-date-params.md +83 -0
  302. package/skill-docs/references/menu/system-menus.md +12 -0
  303. package/skill-docs/references/workflow/condition-core-contract.md +63 -0
  304. package/skill-docs/references/workflow/guide-base-auth-share-remind.md +126 -0
  305. package/skill-docs/references/workflow/guide-workflow-condition.md +476 -447
  306. package/skill-docs/references/workflow/guide-workflow-node-layout.md +6 -0
  307. package/skill-docs/references/workflow/guide-workflow.md +28 -2
  308. package/skill-docs/references/form/style-templates.md +0 -97
@@ -1,250 +1,258 @@
1
- # 新建 EBuilder 表单
2
-
3
- 通过 `e10-cli form create` 在 EBuilder 应用中创建表单。本指南说明从需求整理、`fields.json` 编写到建后配置的完整顺序;字段参数和布局样表的详细规则按需读取专题参考。
4
-
5
- 需求以已有 EB 表单、系统业务表或数据加工结果为实际数据源时,使用 [虚拟表创建与维护](guide-virtual-form.md) 的 `form virtual` 流程。
6
-
7
- ## 标准创建流程
8
-
9
- 1. 确认目标应用 `appId`。
10
- 2. 确认布局类型:流式 `FLOW` 或表格式 `EXCEL`。布局类型在建表时确定。
11
- 3. 从需求中整理字段、明细表、字段顺序和布局要求;遇到完整布局样表时,将空间结构写入 plan 的“表单布局蓝图”。
12
- 4. 将建表时可以完成的配置写入 `fields.json`。
13
- 5. 执行 `form create`,记录返回的 `objId` 和 `formId`。
14
- 6. 使用 `form list-view` 查询并记录默认台账 `listId`。
15
- 7. 按需求完成多语言、联动、校验、权限、视图和按钮等建后配置。
16
- 8. 使用读取命令轻量核对字段、布局和默认台账。
17
-
18
- ```bash
19
- e10-cli form create <appId> "<表单名>" --fields @fields.json --layout FLOW|EXCEL
20
- e10-cli form list-view <objId> <appId>
21
- e10-cli form read <objId> --app-id <appId> --out fields-created.json
22
- ```
23
-
24
- 需要同时生成台账菜单入口时,在创建命令中增加 `--menu`;建成后也可使用 `menu add-table <appId> <objId>` 添加。默认台账视图与应用菜单入口是两个资源。
25
-
26
- ### 自定义数据库表名
27
-
28
- 不指定时表名按表单名拼音首字母加随机数生成(如 `uf_xsddb_4683`)。需要固定或对齐既有命名时用 `--table-name`:
29
-
30
- ```bash
31
- e10-cli form create <appId> "客户信息表" --fields @fields.json --table-name cs_khxx
32
- ```
33
-
34
- - **平台前缀由 CLI 自动补**:传 `cs_khxx` 与传 `uf_cs_khxx` 结果相同(`uf_cs_khxx`)。
35
- - **格式约束**:字母开头,只含字母、数字、下划线。前缀之外的部分受平台长度上限约束 —— 前缀 `uf_`、总长上限 30 时,自定义部分最多 27 位。越界会直接报错,不会建成一半。
36
- - **建成后回读校验**:实际表名与预期不一致会报错,不静默通过。
37
- - 仅对**物理表**应用有效;应用未启用物理表时该选项不适用(CLI 会先查存储设置并拒绝)。
38
-
39
- ## 各阶段配置范围
40
-
41
- | 阶段 | 配置内容 |
42
- |---|---|
43
- | 需求与 plan | 表单名称、字段类型、顺序、明细结构、FLOW/EXCEL、布局蓝图及外围配置 |
44
- | `fields.json` | 字段、选项、默认值、精度、日期格式、关联、公式、明细、分组和显示属性 |
45
- | `form create` | 表单主体、字段、明细、布局、基础查看权限、默认台账及可选菜单 |
46
- | 建成后 | 字段多语言、联动、查重、进一步权限、视图名称与列、筛选、按钮及关联页签 |
47
- | 完成核对 | `objId`、`formId`、`listId`、字段结构和布局结果 |
48
-
49
- ## 建表前整理需求
50
-
51
- ### 布局类型
52
-
53
- ```bash
54
- e10-cli form create <appId> "<表单名>" --fields @fields.json --layout FLOW
55
- e10-cli form create <appId> "<表单名>" --fields @fields.json --layout EXCEL
56
- ```
57
-
58
- - `FLOW`:流式布局。
59
- - `EXCEL`:表格式布局,也是 CLI 缺省值。
60
- - 需求未明确且布局选择会影响结果时,建表前向用户确认。
61
- - 需求提供完整表格、合并单元格、分组标题、标签与字段交替排布时,按布局样表处理,详见 [表单布局规划](guide-form-layout-planning.md)。
62
-
63
- ### 字段定义
64
-
65
- 字段按照需求顺序写入 `fields.json`。主表字段在前,`DetailTable` 明细表放在数组末尾。
66
-
67
- ```json
68
- [
69
- {"componentKey":"Text","fieldName":"合同名称","required":true,"singleRow":true},
70
- {"componentKey":"DateRange","fieldName":"合同有效期","format":"yyyy-MM-dd"},
71
- {"componentKey":"Money","fieldName":"合同金额","precision":2},
72
- {"componentKey":"Select","fieldName":"合同状态","fieldOptions":[{"name":"草稿"},{"name":"履行中"}]},
73
- {"componentKey":"Employee","fieldName":"负责人"},
74
- {"componentKey":"DetailTable","fieldName":"付款明细","formFields":[
75
- {"componentKey":"Date","fieldName":"付款日期"},
76
- {"componentKey":"Number","fieldName":"付款金额","precision":2}
77
- ]}
78
- ]
79
- ```
80
-
81
- 常用字段类型包括文本、数字、选项、日期、组织、关联、行政区域和其他类型。完整类型、关联码表及各类型属性见 [表单字段定义参考](ref-form-fields.md);明细表通过表单结构配置创建。
82
-
83
- ## 常用字段属性
84
-
85
- | 属性 | 作用 |
86
- |---|---|
87
- | `required:true` | 字段必填 |
88
- | `readOnly:true` | 禁止手工编辑 |
89
- | `hidden:true` | 布局中隐藏,字段仍可参与计算 |
90
- | `singleRow:true` | 独占一行 |
91
- | `group:"基本信息"` | 放入指定字段分组 |
92
- | `multiple:true` | 支持多选的字段设置为多选 |
93
- | `maxLen:500` | 文本最大长度 |
94
- | `precision:2` | 数字或金额小数位 |
95
- | `defaultValue` | 字段默认值 |
96
-
97
- ### 字段分组
98
-
99
- 以需求为准:只有需求明确要求字段分组时,才在 `fields.json` 中设置 `group`;需求未要求时保持不分组。
100
-
101
- ```json
102
- [
103
- {"componentKey":"Text","fieldName":"项目名称","group":"基本信息","required":true},
104
- {"componentKey":"Employee","fieldName":"负责人","group":"基本信息"},
105
- {"componentKey":"Number","fieldName":"项目金额","group":"财务信息","precision":2}
106
- ]
107
- ```
108
-
109
- 同名 `group` 的字段进入同一个分组。分组内字段按字段顺序排列,需要整行展示的字段增加 `singleRow:true`。已有表单补充分组时使用:
110
-
111
- ```bash
112
- e10-cli form group <objId> <appId> --groups '{"基本信息":["项目名称","负责人"]}'
113
- ```
114
-
115
- ### 日期区间
116
-
117
- 字段本身包含开始与结束含义,如“项目周期、合同有效期、请假时间、活动时间”,优先使用 `DateRange`。明确要求两个独立字段,或开始、结束需要分别参与公式和联动时,再拆成两个日期字段。
118
-
119
- ```json
120
- {"componentKey":"DateRange","fieldName":"项目周期","format":"yyyy-MM-dd"}
121
- ```
122
-
123
- ### 选项和多选
124
-
125
- ```json
126
- {"componentKey":"Select","fieldName":"状态","fieldOptions":[{"name":"启用"},{"name":"停用"}]},
127
- {"componentKey":"Employee","fieldName":"项目成员","multiple":true}
128
- ```
129
-
130
- `Select`、`RadioBox`、`CheckBox` 可在 `fieldOptions` 中定义选项。人员、部门、EBuilder、Browser 和 Select 等支持按字段能力设置多选。共享选项可使用 `optionTemplate`;详细结构见 [表单字段定义参考](ref-form-fields.md)。
131
-
132
- ### 关联字段
133
-
134
- EBuilder 关联字段在创建时指定目标表单 `objId` 和显示字段:
135
-
136
- ```json
137
- {
138
- "componentKey":"EBuilder",
139
- "fieldName":"关联客户",
140
- "sformId":"<目标表单objId>",
141
- "dataTitle":"客户名称",
142
- "displayColumns":["客户名称","客户类型"]
143
- }
144
- ```
145
-
146
- `Flow` 的 `sformId` 同样指向目标流程绑定的表单 `objId`。原生关联对象和通用浏览类型的配置码表见 [表单字段定义参考](ref-form-fields.md);关联数据过滤和范围分别见 [EBuilder 过滤](guide-ebuilder-filter.md) 与 [关联浏览数据范围](guide-ebuilder-scope.md)。
147
-
148
- ### 明细表与二级明细
149
-
150
- 明细字段写入 `DetailTable.formFields`。二级明细关系配置在父明细表上,父明细每一行分别拥有对应的子明细数据:
151
-
152
- ```json
153
- [
154
- {"componentKey":"DetailTable","fieldName":"任务明细","enableSubDetail":true,
155
- "subDetailConfig":[{"subForm":"工时明细","subField":"父任务标识"}],"formFields":[
156
- {"componentKey":"Text","fieldName":"任务名称"}
157
- ]},
158
- {"componentKey":"DetailTable","fieldName":"工时明细","formFields":[
159
- {"componentKey":"Text","fieldName":"父任务标识"},
160
- {"componentKey":"Number","fieldName":"工时","precision":2}
161
- ]}
162
- ]
163
- ```
164
-
165
- 父级行标识缺省使用行 ID;子级行标识必须为单行文本。多父级复用、多子级和多级嵌套的规则,以及已有表单的查询、增加、删除、启停命令见 [二级明细表配置](guide-form-sub-detail.md)。
166
-
167
- ### 表单结构与布局组件
168
-
169
- 主表字段直接写在 `fields.json` 根数组中;明细表使用 `DetailTable` 配置,并通过 `formFields` 维护其字段。主表与明细表字段采用相同的字段类型和属性规则。
170
-
171
- 布局初始化会根据表单结构生成相应的内部组件:
172
-
173
- | 组件 | 在创建流程中的作用 |
174
- | --- | --- |
175
- | `DetailTable` | 定义明细表及其字段 |
176
- | `DataTable` | 在布局中承载和展示明细表 |
177
- | `Fold` | 承载字段分组和折叠区域 |
178
- | `Placeholder` | 维护布局中的占位位置 |
179
- | `EbuilderAppTag` | 维护 EB 应用相关的布局标签 |
180
-
181
- 业务字段从字段类型码表中选择;以上结构与内部组件由明细表、分组和布局配置生成与维护。
182
-
183
- ### 字段公式
184
-
185
- 可在目标字段中写 `formula`,由创建流程完成公式创建和字段绑定:
186
-
187
- ```json
188
- {"componentKey":"Number","fieldName":"项目收益","formula":"{主表.已收款}-{主表.项目费用}"}
189
- ```
190
-
191
- 公式表达式、明细汇总和函数格式见 [字段公式函数参考](guide-form-formula-functions.md)。复杂编号属于建后配置,见 [表单复杂编号](guide-form-serial-mark.md)。
192
-
193
- ## 执行创建
194
-
195
- 需要还原图片或 XLSX 源样式时,可在普通创建完成后使用[源样式还原命令链](guide-form-layout-source.md),或同时传 `--layout-source @source.json --layout-spec @spec.json --layout-artifact-out artifact.json`。该入口先验证源文件,继续使用原字段创建链,最后在高级属性、公式和分组重排结束后保存精确布局。失败保留已有 objId/formId,重试只处理该对象,不重复建表。
196
-
197
- ```bash
198
- e10-cli form create <appId> "采购合同" --fields @fields.json --layout EXCEL
199
- ```
200
-
201
- 创建流程会依次完成表单主体、字段和明细、布局初始化、字段高级属性、关联关系、选项、公式、分组、基础查看权限及默认台账配置。传入 `--menu` 时同时添加台账菜单入口。
202
-
203
- 记录命令返回的:
204
-
205
- - `objId`:EB 表单业务对象 ID,多数 `form` 命令使用它。
206
- - `formId`:底层表单 ID,布局和部分底层接口使用它。
207
- - `listId`:默认台账 ID,通过 `form list-view` 查询。
208
-
209
- ## 建成后配置
210
-
211
- 按需求执行,未提出的配置不额外增加:
212
-
213
- | 需求 | 命令或指南 |
214
- |---|---|
215
- | 字段中英文名称 | `form field-lang set` |
216
- | 字段显隐、只读、必填联动 | [表单联动](guide-form-linkage.md) |
217
- | 字段查重 | `form validate` |
218
- | 表单和数据权限 | `form permission` |
219
- | 默认台账改名、列、筛选和分组 | [表单视图](guide-form-view.md) |
220
- | 表单及视图按钮 | [表单按钮](guide-form-button.md) |
221
- | 关联页签 | [表单关联页签](guide-form-association.md) |
222
- | 复杂编号 | [表单复杂编号](guide-form-serial-mark.md) |
223
-
224
- 需求写成 `中文/English`(如 `项目/project`)时,先以中文名称创建字段,再设置多语言:
225
-
226
- ```bash
227
- e10-cli form field-lang set <objId> <appId> <fieldId> --zh "项目" --en "project"
228
- ```
229
-
230
- ## 完成核对
231
-
232
- 使用与本次需求直接相关的读取命令核对即可:
233
-
234
- ```bash
235
- e10-cli form read <objId> --app-id <appId> --out fields-created.json
236
- e10-cli form list-view <objId> <appId>
237
- e10-cli form layout read <objId>
238
- ```
239
-
240
- 重点确认字段数量与类型、明细结构、分组和显示属性、布局类型、默认台账名称与 `listId`。需要菜单时再确认菜单入口。
241
-
242
- `fields-created.json` 里的 `fieldName` **就是字段标题** —— 与设计器「字段管理」里看到的是同一个值,想核对标题建对没有看它即可。它为空就说明标题没写进去(`form add-field` 没给标题时会回落成字段名,所以正常不会空)。
243
-
244
- ## 专题参考
245
-
246
- - [表单字段定义参考](ref-form-fields.md):完整字段类型、属性、关联类型和 JSON 结构。
247
- - [表单布局规划](guide-form-layout-planning.md):FLOW/EXCEL、布局样表、布局蓝图及建后调整。
248
- - [表单复杂编号](guide-form-serial-mark.md):编号段、流水和代字配置。
249
- - [字段公式函数参考](guide-form-formula-functions.md):公式表达式和函数。
250
- - [表单视图](guide-form-view.md):默认台账、视图名称和列表配置。
1
+ # 新建 EBuilder 表单
2
+
3
+ 通过 `e10-cli form create` 在 EBuilder 应用中创建表单。本指南说明从需求整理、`fields.json` 编写到建后配置的完整顺序;字段参数和布局样表的详细规则按需读取专题参考。
4
+
5
+ 需求以已有 EB 表单、系统业务表或数据加工结果为实际数据源时,使用 [虚拟表创建与维护](guide-virtual-form.md) 的 `form virtual` 流程。
6
+
7
+ ## 标准创建流程
8
+
9
+ 1. 确认目标应用 `appId`。
10
+ 2. 确认布局类型:流式 `FLOW` 或表格式 `EXCEL`。布局类型在建表时确定。
11
+ 3. 从需求中整理字段、明细表、字段顺序和布局要求;遇到完整布局样表时,将空间结构写入 plan 的“表单布局蓝图”。
12
+ 4. 将建表时可以完成的配置写入 `fields.json`。
13
+ 5. 执行 `form create`,记录返回的 `objId` 和 `formId`。
14
+ 6. 使用 `form list-view` 查询并记录默认台账 `listId`。
15
+ 7. 按需求完成多语言、联动、校验、权限、视图和按钮等建后配置。
16
+ 8. 使用读取命令轻量核对字段、布局和默认台账。
17
+
18
+ ```bash
19
+ e10-cli form create <appId> "<表单名>" --fields @fields.json --layout FLOW|EXCEL
20
+ e10-cli form list-view <objId> <appId>
21
+ e10-cli form read <objId> --app-id <appId> --out fields-created.json
22
+ ```
23
+
24
+ 需要同时生成台账菜单入口时,在创建命令中增加 `--menu`;建成后也可使用 `menu add-table <appId> <objId>` 添加。默认台账视图与应用菜单入口是两个资源。
25
+
26
+ ### 自定义数据库表名
27
+
28
+ 不指定时表名按表单名拼音首字母加随机数生成(如 `uf_xsddb_4683`)。需要固定或对齐既有命名时用 `--table-name`:
29
+
30
+ ```bash
31
+ e10-cli form create <appId> "客户信息表" --fields @fields.json --table-name cs_khxx
32
+ ```
33
+
34
+ - **平台前缀由 CLI 自动补**:传 `cs_khxx` 与传 `uf_cs_khxx` 结果相同(`uf_cs_khxx`)。
35
+ - **格式约束**:字母开头,只含字母、数字、下划线。前缀之外的部分受平台长度上限约束 —— 前缀 `uf_`、总长上限 30 时,自定义部分最多 27 位。越界会直接报错,不会建成一半。
36
+ - **建成后回读校验**:实际表名与预期不一致会报错,不静默通过。
37
+ - 仅对**物理表**应用有效;应用未启用物理表时该选项不适用(CLI 会先查存储设置并拒绝)。
38
+
39
+ ## 各阶段配置范围
40
+
41
+ | 阶段 | 配置内容 |
42
+ |---|---|
43
+ | 需求与 plan | 表单名称、字段类型、顺序、明细结构、FLOW/EXCEL、布局蓝图及外围配置 |
44
+ | `fields.json` | 字段、选项、默认值、精度、日期格式、关联、公式、明细、分组和显示属性 |
45
+ | `form create` | 表单主体、字段、明细、布局、基础查看权限、默认台账及可选菜单 |
46
+ | 建成后 | 字段多语言、联动、查重、进一步权限、视图名称与列、筛选、按钮及关联页签 |
47
+ | 完成核对 | `objId`、`formId`、`listId`、字段结构和布局结果 |
48
+
49
+ ## 建表前整理需求
50
+
51
+ ### 布局类型
52
+
53
+ ```bash
54
+ e10-cli form create <appId> "<表单名>" --fields @fields.json --layout FLOW
55
+ e10-cli form create <appId> "<表单名>" --fields @fields.json --layout EXCEL
56
+ ```
57
+
58
+ - `FLOW`:流式布局。
59
+ - `EXCEL`:表格式布局,也是 CLI 缺省值。
60
+ - 需求未明确且布局选择会影响结果时,建表前向用户确认。
61
+ - 需求提供完整表格、合并单元格、分组标题、标签与字段交替排布时,按布局样表处理,详见 [表单布局规划](guide-form-layout-planning.md)。
62
+
63
+ ### 字段定义
64
+
65
+ 字段按照需求顺序写入 `fields.json`。主表字段在前,`DetailTable` 明细表放在数组末尾。
66
+
67
+ ```json
68
+ [
69
+ {"componentKey":"Text","fieldName":"合同名称","required":true,"singleRow":true},
70
+ {"componentKey":"DateRange","fieldName":"合同有效期","format":"yyyy-MM-dd"},
71
+ {"componentKey":"Money","fieldName":"合同金额","precision":2},
72
+ {"componentKey":"Select","fieldName":"合同状态","fieldOptions":[{"name":"草稿"},{"name":"履行中"}]},
73
+ {"componentKey":"Employee","fieldName":"负责人"},
74
+ {"componentKey":"DetailTable","fieldName":"付款明细","formFields":[
75
+ {"componentKey":"Date","fieldName":"付款日期"},
76
+ {"componentKey":"Number","fieldName":"付款金额","precision":2}
77
+ ]}
78
+ ]
79
+ ```
80
+
81
+ 常用字段类型包括文本、数字、选项、日期、组织、关联、行政区域和其他类型。完整类型、关联码表及各类型属性见 [表单字段定义参考](ref-form-fields.md);明细表通过表单结构配置创建。
82
+
83
+ ## 常用字段属性
84
+
85
+ | 属性 | 作用 |
86
+ |---|---|
87
+ | `required:true` | 字段必填 |
88
+ | `readOnly:true` | 禁止手工编辑 |
89
+ | `hidden:true` | 布局中隐藏,字段仍可参与计算 |
90
+ | `singleRow:true` | 独占一行 |
91
+ | `group:"基本信息"` | 放入指定字段分组 |
92
+ | `multiple:true` | 支持多选的字段设置为多选 |
93
+ | `maxLen:500` | 文本最大长度 |
94
+ | `precision:2` | 数字或金额小数位 |
95
+ | `defaultValue` | 字段默认值 |
96
+
97
+ ### 字段分组
98
+
99
+ 以需求为准:只有需求明确要求字段分组时,才在 `fields.json` 中设置 `group`;需求未要求时保持不分组。
100
+
101
+ ```json
102
+ [
103
+ {"componentKey":"Text","fieldName":"项目名称","group":"基本信息","required":true},
104
+ {"componentKey":"Employee","fieldName":"负责人","group":"基本信息"},
105
+ {"componentKey":"Number","fieldName":"项目金额","group":"财务信息","precision":2}
106
+ ]
107
+ ```
108
+
109
+ 同名 `group` 的字段进入同一个分组。分组内字段按字段顺序排列,需要整行展示的字段增加 `singleRow:true`。已有表单补充分组时使用:
110
+
111
+ ```bash
112
+ e10-cli form group <objId> <appId> --groups '{"基本信息":["项目名称","负责人"]}'
113
+ ```
114
+
115
+ ### 日期区间
116
+
117
+ 字段本身包含开始与结束含义,如“项目周期、合同有效期、请假时间、活动时间”,优先使用 `DateRange`。明确要求两个独立字段,或开始、结束需要分别参与公式和联动时,再拆成两个日期字段。
118
+
119
+ ```json
120
+ {"componentKey":"DateRange","fieldName":"项目周期","format":"yyyy-MM-dd"}
121
+ ```
122
+
123
+ ### 选项和多选
124
+
125
+ ```json
126
+ {"componentKey":"Select","fieldName":"状态","fieldOptions":[{"name":"启用"},{"name":"停用"}]},
127
+ {"componentKey":"Employee","fieldName":"项目成员","multiple":true}
128
+ ```
129
+
130
+ `Select`、`RadioBox`、`CheckBox` 可在 `fieldOptions` 中定义选项。人员、部门、EBuilder、Browser 和 Select 等支持按字段能力设置多选。共享选项可使用 `optionTemplate`;详细结构见 [表单字段定义参考](ref-form-fields.md)。
131
+
132
+ **开关(`Switch`)自动带固定选项「开启=1 / 关闭=0」**,不需要在 `fields.json` 里写 `fieldOptions`;主表、明细表与后续 `form add-field` / `form add-physical-field` 都会自动补上。
133
+
134
+ ### 关联字段
135
+
136
+ EBuilder 关联字段在创建时指定目标表单 `objId` 和显示字段:
137
+
138
+ ```json
139
+ {
140
+ "componentKey":"EBuilder",
141
+ "fieldName":"关联客户",
142
+ "sformId":"<目标表单objId>",
143
+ "dataTitle":"客户名称",
144
+ "displayColumns":["客户名称","客户类型"]
145
+ }
146
+ ```
147
+
148
+ `Flow` 的 `sformId` 同样指向目标流程绑定的表单 `objId`。原生关联对象和通用浏览类型的配置码表见 [表单字段定义参考](ref-form-fields.md);关联数据过滤和范围分别见 [EBuilder 过滤](guide-ebuilder-filter.md) 与 [关联浏览数据范围](guide-ebuilder-scope.md)。
149
+
150
+ **明细表里的 EBuilder 子字段用同一套键**:在 `DetailTable.formFields` 的字段对象里写 `sformId` / `dataTitle` / `displayColumns` 即可,建表时会一起绑定到目标表单;不写 `sformId` 会建成无关联的裸字段(命令会给出警告)。
151
+
152
+ 使用自定义浏览框时,在 `fields.json` 的 `Browser` / `RelateBrowser` 字段写 `"browserName":"浏览框准确名称"`;CLI 会从当前环境检索该名称并绑定。已有表单用 `form add-field ... Browser --browser-name "浏览框准确名称"`。具体字段示例见 [表单字段定义参考](ref-form-fields.md)。
153
+
154
+ ### 明细表与二级明细
155
+
156
+ 明细字段写入 `DetailTable.formFields`。二级明细关系配置在父明细表上,父明细每一行分别拥有对应的子明细数据:
157
+
158
+ ```json
159
+ [
160
+ {"componentKey":"DetailTable","fieldName":"任务明细","enableSubDetail":true,
161
+ "subDetailConfig":[{"subForm":"工时明细","subField":"父任务标识"}],"formFields":[
162
+ {"componentKey":"Text","fieldName":"任务名称"}
163
+ ]},
164
+ {"componentKey":"DetailTable","fieldName":"工时明细","formFields":[
165
+ {"componentKey":"Text","fieldName":"父任务标识"},
166
+ {"componentKey":"Number","fieldName":"工时","precision":2}
167
+ ]}
168
+ ]
169
+ ```
170
+
171
+ 父级行标识缺省使用行 ID;子级行标识必须为单行文本。多父级复用、多子级和多级嵌套的规则,以及已有表单的查询、增加、删除、启停命令见 [二级明细表配置](guide-form-sub-detail.md)。
172
+
173
+ 明细表的**描述默认是空**;需要时在 `DetailTable` 上写 `"describe":"说明文字"`,不写不会用明细名填充。
174
+
175
+ ### 表单结构与布局组件
176
+
177
+ 主表字段直接写在 `fields.json` 根数组中;明细表使用 `DetailTable` 配置,并通过 `formFields` 维护其字段。主表与明细表字段采用相同的字段类型和属性规则。
178
+
179
+ 布局初始化会根据表单结构生成相应的内部组件:
180
+
181
+ | 组件 | 在创建流程中的作用 |
182
+ | --- | --- |
183
+ | `DetailTable` | 定义明细表及其字段 |
184
+ | `DataTable` | 在布局中承载和展示明细表 |
185
+ | `Fold` | 承载字段分组和折叠区域 |
186
+ | `Placeholder` | 维护布局中的占位位置 |
187
+ | `EbuilderAppTag` | 维护 EB 应用相关的布局标签 |
188
+
189
+ 业务字段从字段类型码表中选择;以上结构与内部组件由明细表、分组和布局配置生成与维护。
190
+
191
+ ### 字段公式
192
+
193
+ 可在目标字段中写 `formula`,由创建流程完成公式创建和字段绑定:
194
+
195
+ ```json
196
+ {"componentKey":"Number","fieldName":"项目收益","formula":"{主表.已收款}-{主表.项目费用}"}
197
+ ```
198
+
199
+ 公式表达式、明细汇总和函数格式见 [字段公式函数参考](guide-form-formula-functions.md)。复杂编号属于建后配置,见 [表单复杂编号](guide-form-serial-mark.md)。
200
+
201
+ ## 执行创建
202
+
203
+ 需要还原图片或 XLSX 源样式时,可在普通创建完成后使用[源样式还原命令链](guide-form-layout-source.md),或同时传 `--layout-source @source.json --layout-spec @spec.json --layout-artifact-out artifact.json`。该入口先验证源文件,继续使用原字段创建链,最后在高级属性、公式和分组重排结束后保存精确布局。失败保留已有 objId/formId,重试只处理该对象,不重复建表。
204
+
205
+ ```bash
206
+ e10-cli form create <appId> "采购合同" --fields @fields.json --layout EXCEL
207
+ ```
208
+
209
+ 创建流程会依次完成表单主体、字段和明细、布局初始化、字段高级属性、关联关系、选项、公式、分组、基础查看权限及默认台账配置。传入 `--menu` 时同时添加台账菜单入口。
210
+
211
+ 记录命令返回的:
212
+
213
+ - `objId`:EB 表单业务对象 ID,多数 `form` 命令使用它。
214
+ - `formId`:底层表单 ID,布局和部分底层接口使用它。
215
+ - `listId`:默认台账 ID,通过 `form list-view` 查询。
216
+
217
+ ## 建成后配置
218
+
219
+ 按需求执行,未提出的配置不额外增加:
220
+
221
+ | 需求 | 命令或指南 |
222
+ |---|---|
223
+ | 字段中英文名称 | `form field-lang set` |
224
+ | 字段显隐、只读、必填联动 | [表单联动](guide-form-linkage.md) |
225
+ | 字段查重 | `form validate` |
226
+ | 表单和数据权限 | `form permission` |
227
+ | 默认台账改名、列、筛选和分组 | [表单视图](guide-form-view.md) |
228
+ | 表单及视图按钮 | [表单按钮](guide-form-button.md) |
229
+ | 关联页签 | [表单关联页签](guide-form-association.md) |
230
+ | 复杂编号 | [表单复杂编号](guide-form-serial-mark.md) |
231
+
232
+ 需求写成 `中文/English`(如 `项目/project`)时,先以中文名称创建字段,再设置多语言:
233
+
234
+ ```bash
235
+ e10-cli form field-lang set <objId> <appId> <fieldId> --zh "项目" --en "project"
236
+ ```
237
+
238
+ ## 完成核对
239
+
240
+ 使用与本次需求直接相关的读取命令核对即可:
241
+
242
+ ```bash
243
+ e10-cli form read <objId> --app-id <appId> --out fields-created.json
244
+ e10-cli form list-view <objId> <appId>
245
+ e10-cli form layout read <objId>
246
+ ```
247
+
248
+ 重点确认字段数量与类型、明细结构、分组和显示属性、布局类型、默认台账名称与 `listId`。需要菜单时再确认菜单入口。
249
+
250
+ `fields-created.json` 里的 `fieldName` **就是字段标题** —— 与设计器「字段管理」里看到的是同一个值,想核对标题建对没有看它即可。它为空就说明标题没写进去(`form add-field` 没给标题时会回落成字段名,所以正常不会空)。
251
+
252
+ ## 专题参考
253
+
254
+ - [表单字段定义参考](ref-form-fields.md):完整字段类型、属性、关联类型和 JSON 结构。
255
+ - [表单布局规划](guide-form-layout-planning.md):FLOW/EXCEL、布局样表、布局蓝图及建后调整。
256
+ - [表单复杂编号](guide-form-serial-mark.md):编号段、流水和代字配置。
257
+ - [字段公式函数参考](guide-form-formula-functions.md):公式表达式和函数。
258
+ - [表单视图](guide-form-view.md):默认台账、视图名称和列表配置。
@@ -85,14 +85,17 @@ e10-cli form permission archive card <workflowId> <appId> --set 1
85
85
  取值字段决定**用矩阵里的哪一列**去匹配当前用户,必需,且取值来源分两种:
86
86
 
87
87
  - **真矩阵**(`--matrix`):值字段自动取该矩阵的值字段配置;也可用 `--matrix-value 名称` 指定其中几个。
88
- - **e-Builder 表单**(`--eb-form`):取值字段是**系统值**体系,不是矩阵的值字段配置。
89
- 目前只有「创建者」可直接用名称指定;其余取值请用 `--matrix-value <id>:<名称>:<valueType>` 明写,
90
- 或用 `--matrix-value-raw '<JSON 数组>'` 整体透传(数组元素形状以设计器实际请求为准)。
88
+ - **e-Builder 表单**(`--eb-form`):候选来自**该表单自己的字段**(与设计器字段选择器一致):
89
+ - **创建者**(系统值,`valueType=system_creator`)
90
+ - **人员 / 部门 / 人员范围 / 人员条件 / 人员组织**类型的字段;其中人员字段(Employee)`valueType=resource`
91
+ - 可直接按字段名指定,如 `--matrix-value 负责人`;其余仍可用 `<id>:<名称>:<valueType>` 明写,
92
+ 或用 `--matrix-value-raw '<JSON 数组>'` 整体透传
91
93
 
92
94
  ### 矩阵相关的「条件」
93
95
 
94
96
  矩阵相关比另外三类多一层**条件**:拿矩阵自己的**条件列**去比「固定值」或「本表单字段」,只有命中的行才生效。
95
97
  落库是行报文里的 `matrixConditionData`(一棵条件树的 JSON 串)。
98
+ 真矩阵的条件列来自矩阵配置;**e-Builder 表单的条件列就是它自己的主表字段**(自动从字段表取)。
96
99
 
97
100
  ```bash
98
101
  # 一条:所属门店 等于 固定值
@@ -105,13 +108,30 @@ e10-cli form permission archive card <workflowId> <appId> --set 1
105
108
  --matrix-condition '{"column":"所属门店","func":"等于","value":"上海门店"}' \
106
109
  --matrix-condition '{"column":"所属门店","func":"不属于","value":"临时门店"}' \
107
110
  --matrix-condition-relation or
111
+
112
+ # e-Builder 表单当矩阵:负责人 不为空
113
+ e10-cli form permission archive add <objId> <appId> --workflow <workflowId> \
114
+ --target matrix --eb-form 项目任务 \
115
+ --matrix-value 负责人 \
116
+ --matrix-condition '{"column":"负责人","func":"不为空"}' \
117
+ --rights view
118
+
119
+ # e-Builder 表单当矩阵:所属项目 = 当前记录(「当前项目信息」)
120
+ e10-cli form permission archive add <objId> <appId> --workflow <workflowId> \
121
+ --target matrix --eb-form 项目任务 \
122
+ --matrix-value 负责人 \
123
+ --matrix-condition '{"column":"所属项目","func":"等于","field":"数据ID"}' \
124
+ --rights view
108
125
  ```
109
126
 
127
+ > 「当前记录」用本表单的系统字段 **数据ID**(`field:"数据ID"`,即 `id=5`)表示,不要写固定值。
128
+ > 关联列(Ebuilder)引用数据ID 是设计器实证的跨类型例外(关联列按字符串比)。
129
+
110
130
  | 参数 | 说明 |
111
131
  |---|---|
112
132
  | `--matrix-condition <json>` | 一条条件,**可重复**;也可 `@文件` 给一个数组。对象三件套:`column`(条件列的 id 或列名)+ `func` + 右值 |
113
133
  | `--matrix-condition-relation` | 条件之间的关系:`and`=所有(默认)/ `or`=任一 |
114
- | `--matrix-condition-comp-type` | 条件列的组件键。**列类型的组件键目前只实证了「部门」→`Department`**,其余类型(人员/分部/岗位/客户/项目/自定义浏览框)命令会报错要求显式给 |
134
+ | `--matrix-condition-comp-type` | 条件列的组件键。**仅真矩阵需要**(列类型的组件键目前只实证了「部门」→`Department`,其余类型会报错要求显式给);e-Builder 表单由字段类型自动取 |
115
135
  | `--matrix-condition-raw <json>` | 整棵树透传(不做校验),形状以设计器请求为准 |
116
136
 
117
137
  **右值三选一**:
@@ -125,6 +145,7 @@ e10-cli form permission archive card <workflowId> <appId> --set 1
125
145
  > ① **算子只能是「等于」**;② **字段类型必须与条件列一致** —— 部门列只能引用部门类型的字段,
126
146
  > 文本字段在设计器里根本选不到。所以「所属门店(部门)等于 [创建人部门]」成立,
127
147
  > 「所属门店(部门)等于 [名称(文本)]」和「所属门店 不等于 [创建人部门]」都会报错。
148
+ > 例外:关联列(Ebuilder)可以引用本表单的 **数据ID**(当前记录),用于「所属项目 = 当前项目信息」这类限定。
128
149
 
129
150
  算子只有界面下拉那 6 个:**等于 / 不等于 / 属于 / 不属于 / 为空 / 不为空**(`eq` / `neq` / `aggregate` / `unaggregate` / `empty` / `nempty`)。
130
151
  其中**只有「等于」是对着真机报文核实的**,其余 5 个是按同一族条件树的码表推的 —— 内容平台会原样存下、回读也一模一样,
@@ -132,7 +153,7 @@ e10-cli form permission archive card <workflowId> <appId> --set 1
132
153
 
133
154
  两条限制:
134
155
 
135
- - **`--eb-form` 不能配条件** —— e-Builder 表单当矩阵用时没有条件列,给了会直接报错。
156
+ - **e-Builder 表单也能配条件** —— 条件列取自该表单自己的主表字段,不需要 `--matrix-condition-comp-type`。
136
157
  - **右值不能引用明细表字段**(只支持主表字段)。
137
158
 
138
159
  台账那边的矩阵权限(`form list-permission --add-matrix`)**同一套参数与语义**。
@@ -143,10 +164,12 @@ e10-cli form permission archive card <workflowId> <appId> --set 1
143
164
 
144
165
  | 编号 | 别名 | 含义 |
145
166
  |---|---|---|
146
- | 5 | `view` / `read` | 归档查看 |
167
+ | 5 | `view` / `read` | 归档查看(**系统必选**) |
147
168
  | 6 | `edit` / `update` | 归档编辑 |
148
169
  | 7 | `delete` | 归档删除 |
149
170
 
171
+ > **归档查看是系统默认勾选、界面上不能取消的**。所以 `--rights` 只写 `edit delete` 时,命令会自动把 `view` 并进去(5,6,7),并在输出里提示。
172
+
150
173
  归档附件权限 `--file-rights`(与上面的查看/编辑/删除**互相独立**,是另一处勾选):
151
174
 
152
175
  | 编号 | 别名 | 含义 |