weaver-e10-builder 1.5.10 → 1.5.12

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 (352) hide show
  1. package/README.md +212 -189
  2. package/assets/image-style-observation.schema.json +1355 -0
  3. package/assets/layout-spec.schema.json +52 -0
  4. package/dist/commands/app.d.ts.map +1 -1
  5. package/dist/commands/app.js +159 -8
  6. package/dist/commands/app.js.map +1 -1
  7. package/dist/commands/designer-setters.d.ts.map +1 -1
  8. package/dist/commands/designer-setters.js +26 -4
  9. package/dist/commands/designer-setters.js.map +1 -1
  10. package/dist/commands/form-association-manage.d.ts.map +1 -1
  11. package/dist/commands/form-association-manage.js +3 -0
  12. package/dist/commands/form-association-manage.js.map +1 -1
  13. package/dist/commands/form-button-actions-cmd.d.ts +3 -0
  14. package/dist/commands/form-button-actions-cmd.d.ts.map +1 -0
  15. package/dist/commands/form-button-actions-cmd.js +309 -0
  16. package/dist/commands/form-button-actions-cmd.js.map +1 -0
  17. package/dist/commands/form-button-permission-cmd.d.ts +3 -0
  18. package/dist/commands/form-button-permission-cmd.d.ts.map +1 -0
  19. package/dist/commands/form-button-permission-cmd.js +132 -0
  20. package/dist/commands/form-button-permission-cmd.js.map +1 -0
  21. package/dist/commands/form-button-props-cmd.d.ts +3 -0
  22. package/dist/commands/form-button-props-cmd.d.ts.map +1 -0
  23. package/dist/commands/form-button-props-cmd.js +236 -0
  24. package/dist/commands/form-button-props-cmd.js.map +1 -0
  25. package/dist/commands/form-button.d.ts.map +1 -1
  26. package/dist/commands/form-button.js +82 -55
  27. package/dist/commands/form-button.js.map +1 -1
  28. package/dist/commands/form-field-linkage.d.ts +55 -0
  29. package/dist/commands/form-field-linkage.d.ts.map +1 -1
  30. package/dist/commands/form-field-linkage.js +1026 -12
  31. package/dist/commands/form-field-linkage.js.map +1 -1
  32. package/dist/commands/form-formula-linkage.d.ts +36 -0
  33. package/dist/commands/form-formula-linkage.d.ts.map +1 -1
  34. package/dist/commands/form-formula-linkage.js +256 -65
  35. package/dist/commands/form-formula-linkage.js.map +1 -1
  36. package/dist/commands/form-layout-restore.d.ts +3 -0
  37. package/dist/commands/form-layout-restore.d.ts.map +1 -0
  38. package/dist/commands/form-layout-restore.js +217 -0
  39. package/dist/commands/form-layout-restore.js.map +1 -0
  40. package/dist/commands/form-layout.d.ts.map +1 -1
  41. package/dist/commands/form-layout.js +11 -1
  42. package/dist/commands/form-layout.js.map +1 -1
  43. package/dist/commands/form-list-permission.d.ts.map +1 -1
  44. package/dist/commands/form-list-permission.js +29 -3
  45. package/dist/commands/form-list-permission.js.map +1 -1
  46. package/dist/commands/form-list-search-group.d.ts.map +1 -1
  47. package/dist/commands/form-list-search-group.js +66 -3
  48. package/dist/commands/form-list-search-group.js.map +1 -1
  49. package/dist/commands/form-list-utils.d.ts +14 -0
  50. package/dist/commands/form-list-utils.d.ts.map +1 -1
  51. package/dist/commands/form-list-utils.js +65 -4
  52. package/dist/commands/form-list-utils.js.map +1 -1
  53. package/dist/commands/form-message.d.ts.map +1 -1
  54. package/dist/commands/form-message.js +16 -4
  55. package/dist/commands/form-message.js.map +1 -1
  56. package/dist/commands/form-obj-meta.d.ts +12 -0
  57. package/dist/commands/form-obj-meta.d.ts.map +1 -0
  58. package/dist/commands/form-obj-meta.js +116 -0
  59. package/dist/commands/form-obj-meta.js.map +1 -0
  60. package/dist/commands/form-permission.d.ts +20 -0
  61. package/dist/commands/form-permission.d.ts.map +1 -1
  62. package/dist/commands/form-permission.js +69 -11
  63. package/dist/commands/form-permission.js.map +1 -1
  64. package/dist/commands/form-validate.d.ts.map +1 -1
  65. package/dist/commands/form-validate.js +167 -35
  66. package/dist/commands/form-validate.js.map +1 -1
  67. package/dist/commands/form.d.ts.map +1 -1
  68. package/dist/commands/form.js +26 -2
  69. package/dist/commands/form.js.map +1 -1
  70. package/dist/commands/menu-permission.d.ts.map +1 -1
  71. package/dist/commands/menu-permission.js +6 -7
  72. package/dist/commands/menu-permission.js.map +1 -1
  73. package/dist/commands/menu.d.ts.map +1 -1
  74. package/dist/commands/menu.js +68 -43
  75. package/dist/commands/menu.js.map +1 -1
  76. package/dist/commands/wf-form.d.ts.map +1 -1
  77. package/dist/commands/wf-form.js +269 -47
  78. package/dist/commands/wf-form.js.map +1 -1
  79. package/dist/commands/workflow-function-management.d.ts +5 -0
  80. package/dist/commands/workflow-function-management.d.ts.map +1 -0
  81. package/dist/commands/workflow-function-management.js +91 -0
  82. package/dist/commands/workflow-function-management.js.map +1 -0
  83. package/dist/commands/workflow-node-assign-flow.d.ts.map +1 -1
  84. package/dist/commands/workflow-node-assign-flow.js +1 -0
  85. package/dist/commands/workflow-node-assign-flow.js.map +1 -1
  86. package/dist/commands/workflow-node-sign.d.ts +0 -12
  87. package/dist/commands/workflow-node-sign.d.ts.map +1 -1
  88. package/dist/commands/workflow-node-sign.js +31 -102
  89. package/dist/commands/workflow-node-sign.js.map +1 -1
  90. package/dist/commands/workflow-opinion-settings.d.ts +5 -0
  91. package/dist/commands/workflow-opinion-settings.d.ts.map +1 -0
  92. package/dist/commands/workflow-opinion-settings.js +51 -0
  93. package/dist/commands/workflow-opinion-settings.js.map +1 -0
  94. package/dist/commands/workflow-subprocess.d.ts.map +1 -1
  95. package/dist/commands/workflow-subprocess.js +370 -20
  96. package/dist/commands/workflow-subprocess.js.map +1 -1
  97. package/dist/commands/workflow.d.ts.map +1 -1
  98. package/dist/commands/workflow.js +35 -61
  99. package/dist/commands/workflow.js.map +1 -1
  100. package/dist/core/client.d.ts +2 -1
  101. package/dist/core/client.d.ts.map +1 -1
  102. package/dist/core/client.js +4 -2
  103. package/dist/core/client.js.map +1 -1
  104. package/dist/index.js +6 -0
  105. package/dist/index.js.map +1 -1
  106. package/dist/services/actionflow/calendar_mapper.d.ts.map +1 -1
  107. package/dist/services/actionflow/calendar_mapper.js +64 -18
  108. package/dist/services/actionflow/calendar_mapper.js.map +1 -1
  109. package/dist/services/actionflow/component_registry.d.ts.map +1 -1
  110. package/dist/services/actionflow/component_registry.js +6 -0
  111. package/dist/services/actionflow/component_registry.js.map +1 -1
  112. package/dist/services/actionflow/components/document_actions.d.ts.map +1 -1
  113. package/dist/services/actionflow/components/document_actions.js +113 -4
  114. package/dist/services/actionflow/components/document_actions.js.map +1 -1
  115. package/dist/services/actionflow/components/eb_get_data_by_id.d.ts.map +1 -1
  116. package/dist/services/actionflow/components/eb_get_data_by_id.js +18 -1
  117. package/dist/services/actionflow/components/eb_get_data_by_id.js.map +1 -1
  118. package/dist/services/actionflow/components/index.d.ts.map +1 -1
  119. package/dist/services/actionflow/components/index.js +2 -1
  120. package/dist/services/actionflow/components/index.js.map +1 -1
  121. package/dist/services/actionflow/components/meeting_create.d.ts.map +1 -1
  122. package/dist/services/actionflow/components/meeting_create.js +5 -1
  123. package/dist/services/actionflow/components/meeting_create.js.map +1 -1
  124. package/dist/services/actionflow/components/schedule_create.d.ts.map +1 -1
  125. package/dist/services/actionflow/components/schedule_create.js +22 -6
  126. package/dist/services/actionflow/components/schedule_create.js.map +1 -1
  127. package/dist/services/actionflow/components/workflow_actions.d.ts +1 -0
  128. package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
  129. package/dist/services/actionflow/components/workflow_actions.js +44 -7
  130. package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
  131. package/dist/services/actionflow/document_source.d.ts +5 -0
  132. package/dist/services/actionflow/document_source.d.ts.map +1 -1
  133. package/dist/services/actionflow/document_source.js +16 -0
  134. package/dist/services/actionflow/document_source.js.map +1 -1
  135. package/dist/services/actionflow/formula_service.d.ts +7 -0
  136. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  137. package/dist/services/actionflow/formula_service.js +44 -8
  138. package/dist/services/actionflow/formula_service.js.map +1 -1
  139. package/dist/services/actionflow/preflight_service.d.ts +5 -0
  140. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  141. package/dist/services/actionflow/preflight_service.js +127 -2
  142. package/dist/services/actionflow/preflight_service.js.map +1 -1
  143. package/dist/services/actionflow/save_workflow_draft.d.ts +7 -0
  144. package/dist/services/actionflow/save_workflow_draft.d.ts.map +1 -1
  145. package/dist/services/actionflow/save_workflow_draft.js +1 -1
  146. package/dist/services/actionflow/save_workflow_draft.js.map +1 -1
  147. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  148. package/dist/services/actionflow/workflow_compiler.js +26 -0
  149. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  150. package/dist/services/app-publish.d.ts +25 -0
  151. package/dist/services/app-publish.d.ts.map +1 -1
  152. package/dist/services/app-publish.js +38 -0
  153. package/dist/services/app-publish.js.map +1 -1
  154. package/dist/services/app-range.d.ts +66 -0
  155. package/dist/services/app-range.d.ts.map +1 -0
  156. package/dist/services/app-range.js +137 -0
  157. package/dist/services/app-range.js.map +1 -0
  158. package/dist/services/form-association.d.ts +13 -0
  159. package/dist/services/form-association.d.ts.map +1 -1
  160. package/dist/services/form-association.js +42 -0
  161. package/dist/services/form-association.js.map +1 -1
  162. package/dist/services/form-button-action.d.ts +82 -0
  163. package/dist/services/form-button-action.d.ts.map +1 -1
  164. package/dist/services/form-button-action.js +194 -2
  165. package/dist/services/form-button-action.js.map +1 -1
  166. package/dist/services/form-button-condition.d.ts +45 -0
  167. package/dist/services/form-button-condition.d.ts.map +1 -0
  168. package/dist/services/form-button-condition.js +106 -0
  169. package/dist/services/form-button-condition.js.map +1 -0
  170. package/dist/services/form-button-context.d.ts +41 -0
  171. package/dist/services/form-button-context.d.ts.map +1 -0
  172. package/dist/services/form-button-context.js +54 -0
  173. package/dist/services/form-button-context.js.map +1 -0
  174. package/dist/services/form-button-logicflow.d.ts +30 -0
  175. package/dist/services/form-button-logicflow.d.ts.map +1 -0
  176. package/dist/services/form-button-logicflow.js +59 -0
  177. package/dist/services/form-button-logicflow.js.map +1 -0
  178. package/dist/services/form-button-org.d.ts +30 -0
  179. package/dist/services/form-button-org.d.ts.map +1 -0
  180. package/dist/services/form-button-org.js +80 -0
  181. package/dist/services/form-button-org.js.map +1 -0
  182. package/dist/services/form-button-permission.d.ts +65 -0
  183. package/dist/services/form-button-permission.d.ts.map +1 -0
  184. package/dist/services/form-button-permission.js +113 -0
  185. package/dist/services/form-button-permission.js.map +1 -0
  186. package/dist/services/form-button-position.d.ts +4 -18
  187. package/dist/services/form-button-position.d.ts.map +1 -1
  188. package/dist/services/form-button-position.js +4 -36
  189. package/dist/services/form-button-position.js.map +1 -1
  190. package/dist/services/form-button-props.d.ts +55 -0
  191. package/dist/services/form-button-props.d.ts.map +1 -0
  192. package/dist/services/form-button-props.js +90 -0
  193. package/dist/services/form-button-props.js.map +1 -0
  194. package/dist/services/form-button-save.d.ts +49 -0
  195. package/dist/services/form-button-save.d.ts.map +1 -0
  196. package/dist/services/form-button-save.js +54 -0
  197. package/dist/services/form-button-save.js.map +1 -0
  198. package/dist/services/form-formula-linkage.d.ts +120 -20
  199. package/dist/services/form-formula-linkage.d.ts.map +1 -1
  200. package/dist/services/form-formula-linkage.js +253 -39
  201. package/dist/services/form-formula-linkage.js.map +1 -1
  202. package/dist/services/form-layout-io.d.ts +18 -0
  203. package/dist/services/form-layout-io.d.ts.map +1 -0
  204. package/dist/services/form-layout-io.js +89 -0
  205. package/dist/services/form-layout-io.js.map +1 -0
  206. package/dist/services/form-layout-source/artifact.d.ts +8 -0
  207. package/dist/services/form-layout-source/artifact.d.ts.map +1 -0
  208. package/dist/services/form-layout-source/artifact.js +52 -0
  209. package/dist/services/form-layout-source/artifact.js.map +1 -0
  210. package/dist/services/form-layout-source/binding.d.ts +10 -0
  211. package/dist/services/form-layout-source/binding.d.ts.map +1 -0
  212. package/dist/services/form-layout-source/binding.js +43 -0
  213. package/dist/services/form-layout-source/binding.js.map +1 -0
  214. package/dist/services/form-layout-source/compile.d.ts +7 -0
  215. package/dist/services/form-layout-source/compile.d.ts.map +1 -0
  216. package/dist/services/form-layout-source/compile.js +262 -0
  217. package/dist/services/form-layout-source/compile.js.map +1 -0
  218. package/dist/services/form-layout-source/creation.d.ts +18 -0
  219. package/dist/services/form-layout-source/creation.d.ts.map +1 -0
  220. package/dist/services/form-layout-source/creation.js +42 -0
  221. package/dist/services/form-layout-source/creation.js.map +1 -0
  222. package/dist/services/form-layout-source/excel-extractor.d.ts +7 -0
  223. package/dist/services/form-layout-source/excel-extractor.d.ts.map +1 -0
  224. package/dist/services/form-layout-source/excel-extractor.js +342 -0
  225. package/dist/services/form-layout-source/excel-extractor.js.map +1 -0
  226. package/dist/services/form-layout-source/image-border.d.ts +9 -0
  227. package/dist/services/form-layout-source/image-border.d.ts.map +1 -0
  228. package/dist/services/form-layout-source/image-border.js +128 -0
  229. package/dist/services/form-layout-source/image-border.js.map +1 -0
  230. package/dist/services/form-layout-source/image-observation.d.ts +14 -0
  231. package/dist/services/form-layout-source/image-observation.d.ts.map +1 -0
  232. package/dist/services/form-layout-source/image-observation.js +90 -0
  233. package/dist/services/form-layout-source/image-observation.js.map +1 -0
  234. package/dist/services/form-layout-source/image-review.d.ts +32 -0
  235. package/dist/services/form-layout-source/image-review.d.ts.map +1 -0
  236. package/dist/services/form-layout-source/image-review.js +266 -0
  237. package/dist/services/form-layout-source/image-review.js.map +1 -0
  238. package/dist/services/form-layout-source/image-style.d.ts +16 -0
  239. package/dist/services/form-layout-source/image-style.d.ts.map +1 -0
  240. package/dist/services/form-layout-source/image-style.js +539 -0
  241. package/dist/services/form-layout-source/image-style.js.map +1 -0
  242. package/dist/services/form-layout-source/json.d.ts +3 -0
  243. package/dist/services/form-layout-source/json.d.ts.map +1 -0
  244. package/dist/services/form-layout-source/json.js +33 -0
  245. package/dist/services/form-layout-source/json.js.map +1 -0
  246. package/dist/services/form-layout-source/presentation.d.ts +23 -0
  247. package/dist/services/form-layout-source/presentation.d.ts.map +1 -0
  248. package/dist/services/form-layout-source/presentation.js +174 -0
  249. package/dist/services/form-layout-source/presentation.js.map +1 -0
  250. package/dist/services/form-layout-source/preview.d.ts +4 -0
  251. package/dist/services/form-layout-source/preview.d.ts.map +1 -0
  252. package/dist/services/form-layout-source/preview.js +49 -0
  253. package/dist/services/form-layout-source/preview.js.map +1 -0
  254. package/dist/services/form-layout-source/schema.d.ts +20 -0
  255. package/dist/services/form-layout-source/schema.d.ts.map +1 -0
  256. package/dist/services/form-layout-source/schema.js +149 -0
  257. package/dist/services/form-layout-source/schema.js.map +1 -0
  258. package/dist/services/form-layout-source/source-grid.d.ts +8 -0
  259. package/dist/services/form-layout-source/source-grid.d.ts.map +1 -0
  260. package/dist/services/form-layout-source/source-grid.js +61 -0
  261. package/dist/services/form-layout-source/source-grid.js.map +1 -0
  262. package/dist/services/form-layout-source/types.d.ts +242 -0
  263. package/dist/services/form-layout-source/types.d.ts.map +1 -0
  264. package/dist/services/form-layout-source/types.js +2 -0
  265. package/dist/services/form-layout-source/types.js.map +1 -0
  266. package/dist/services/form-layout-source/verify.d.ts +14 -0
  267. package/dist/services/form-layout-source/verify.d.ts.map +1 -0
  268. package/dist/services/form-layout-source/verify.js +226 -0
  269. package/dist/services/form-layout-source/verify.js.map +1 -0
  270. package/dist/services/form-list-search-group.d.ts +17 -2
  271. package/dist/services/form-list-search-group.d.ts.map +1 -1
  272. package/dist/services/form-list-search-group.js +29 -12
  273. package/dist/services/form-list-search-group.js.map +1 -1
  274. package/dist/services/form-list-search.d.ts.map +1 -1
  275. package/dist/services/form-list-search.js +4 -0
  276. package/dist/services/form-list-search.js.map +1 -1
  277. package/dist/services/form-list-stats.d.ts.map +1 -1
  278. package/dist/services/form-list-stats.js +9 -2
  279. package/dist/services/form-list-stats.js.map +1 -1
  280. package/dist/services/form-message.d.ts +26 -7
  281. package/dist/services/form-message.d.ts.map +1 -1
  282. package/dist/services/form-message.js +52 -5
  283. package/dist/services/form-message.js.map +1 -1
  284. package/dist/services/form-obj-meta.d.ts +72 -0
  285. package/dist/services/form-obj-meta.d.ts.map +1 -0
  286. package/dist/services/form-obj-meta.js +103 -0
  287. package/dist/services/form-obj-meta.js.map +1 -0
  288. package/dist/services/form-permission-archive.d.ts +9 -1
  289. package/dist/services/form-permission-archive.d.ts.map +1 -1
  290. package/dist/services/form-permission-archive.js +38 -22
  291. package/dist/services/form-permission-archive.js.map +1 -1
  292. package/dist/services/form-view-populate.d.ts.map +1 -1
  293. package/dist/services/form-view-populate.js +7 -0
  294. package/dist/services/form-view-populate.js.map +1 -1
  295. package/dist/services/icon-path.d.ts +70 -0
  296. package/dist/services/icon-path.d.ts.map +1 -0
  297. package/dist/services/icon-path.js +80 -0
  298. package/dist/services/icon-path.js.map +1 -0
  299. package/dist/services/matrix-condition.d.ts +161 -0
  300. package/dist/services/matrix-condition.d.ts.map +1 -0
  301. package/dist/services/matrix-condition.js +403 -0
  302. package/dist/services/matrix-condition.js.map +1 -0
  303. package/dist/services/menu-catalog.d.ts +33 -0
  304. package/dist/services/menu-catalog.d.ts.map +1 -1
  305. package/dist/services/menu-catalog.js +56 -0
  306. package/dist/services/menu-catalog.js.map +1 -1
  307. package/dist/services/permission-entity.d.ts +55 -0
  308. package/dist/services/permission-entity.d.ts.map +1 -0
  309. package/dist/services/permission-entity.js +79 -0
  310. package/dist/services/permission-entity.js.map +1 -0
  311. package/dist/services/validate-help.d.ts +25 -0
  312. package/dist/services/validate-help.d.ts.map +1 -0
  313. package/dist/services/validate-help.js +29 -0
  314. package/dist/services/validate-help.js.map +1 -0
  315. package/dist/services/workflow-assign-flow.d.ts.map +1 -1
  316. package/dist/services/workflow-assign-flow.js.map +1 -1
  317. package/dist/services/workflow-function-management.d.ts +123 -0
  318. package/dist/services/workflow-function-management.d.ts.map +1 -0
  319. package/dist/services/workflow-function-management.js +425 -0
  320. package/dist/services/workflow-function-management.js.map +1 -0
  321. package/dist/services/workflow-matrix-rule.d.ts +34 -0
  322. package/dist/services/workflow-matrix-rule.d.ts.map +1 -0
  323. package/dist/services/workflow-matrix-rule.js +94 -0
  324. package/dist/services/workflow-matrix-rule.js.map +1 -0
  325. package/dist/services/workflow-opinion-settings.d.ts +67 -0
  326. package/dist/services/workflow-opinion-settings.d.ts.map +1 -0
  327. package/dist/services/workflow-opinion-settings.js +328 -0
  328. package/dist/services/workflow-opinion-settings.js.map +1 -0
  329. package/package.json +3 -1
  330. package/skill-docs/SKILL.md +15 -6
  331. package/skill-docs/_catalog.md +4 -0
  332. package/skill-docs/actionflows/references/components/calendar/MeetingCreate.md +2 -0
  333. package/skill-docs/actionflows/references/components/document/DocumentSave.md +17 -17
  334. package/skill-docs/actionflows/references/components/workflow/ApproveCompletelyDelete.md +29 -0
  335. package/skill-docs/actionflows/references/components/workflow/ApproveDelete.md +2 -2
  336. package/skill-docs/assets/schemas/image-style-observation.schema.json +1355 -0
  337. package/skill-docs/references/common/guide-plan-template.md +3 -0
  338. package/skill-docs/references/common/ref-cli-commands.md +77 -26
  339. package/skill-docs/references/ebuilder-designer/guide-designer-components.md +9 -0
  340. package/skill-docs/references/form/guide-create-form.md +2 -0
  341. package/skill-docs/references/form/guide-field-linkage.md +140 -55
  342. package/skill-docs/references/form/guide-form-archive-permission.md +55 -2
  343. package/skill-docs/references/form/guide-form-association.md +13 -0
  344. package/skill-docs/references/form/guide-form-button.md +87 -0
  345. package/skill-docs/references/form/guide-form-layout-planning.md +6 -0
  346. package/skill-docs/references/form/guide-form-layout-source.md +366 -0
  347. package/skill-docs/references/form/guide-form-message.md +19 -2
  348. package/skill-docs/references/form/guide-form-view.md +24 -4
  349. package/skill-docs/references/form/guide-formula-linkage.md +86 -12
  350. package/skill-docs/references/workflow/guide-function-management.md +154 -0
  351. package/skill-docs/references/workflow/guide-opinion-settings.md +126 -0
  352. package/skill-docs/references/workflow/guide-workflow.md +22 -6
@@ -3,6 +3,83 @@ import { ApiClient } from '../core/client.js';
3
3
  // objId → formId:obj/getList 不含三方表单(专项应用),内部带 getInfoById 兜底。
4
4
  import { resolveFormId as resolveFormIdShared } from '../services/form-id.js';
5
5
  import { createMultilangLabel, resolveLabelText } from '../services/form-i18n-label.js';
6
+ import { renderValidateHelp, resolveHelpInput } from '../services/validate-help.js';
7
+ const MODULE = 'ebuilderform';
8
+ const PAGE = 100;
9
+ /** 翻页取全:固定 pageSize 会在规则数超过一页时静默漏显示。 */
10
+ async function fetchRules(client, baseUrl, formId) {
11
+ const rules = [];
12
+ for (let pageNo = 1;; pageNo++) {
13
+ // 路径是 /api/ebuilder/...;MODULE(ebuilderform)只是报文里的 module 值
14
+ const res = await client.post(`${baseUrl}/api/ebuilder/form/validate/pageFormDataValidate`, {
15
+ module: MODULE, formId, pageNo, pageSize: PAGE,
16
+ });
17
+ // 该接口不返回 status(只有 code),不能按 save 那套判
18
+ if (res?.code !== 200)
19
+ throw new Error(res?.msg || '查询查重规则失败');
20
+ const page = res?.data?.records || [];
21
+ rules.push(...page);
22
+ if (page.length < PAGE)
23
+ break;
24
+ }
25
+ return rules;
26
+ }
27
+ /** 主表 + 明细字段,作为查重字段候选。 */
28
+ async function loadFields(client, baseUrl, objId, formId, userId, tenantKey) {
29
+ const fieldsRes = await client.post(`${baseUrl}/api/ebuilder/form/dataset/v1/getFields`, {
30
+ objId, userid: userId, tenantKey, isReturnDetail: 'y',
31
+ });
32
+ const candidates = [];
33
+ for (const m of fieldsRes?.data?.mainFields || []) {
34
+ if (/^\d+$/.test(String(m.fieldId))) {
35
+ candidates.push({ fieldName: String(m.fieldName), fieldId: String(m.fieldId), subFormId: String(formId) });
36
+ }
37
+ }
38
+ for (const dt of fieldsRes?.data?.detailFields || []) {
39
+ for (const sf of dt.fields || []) {
40
+ if (/^\d+$/.test(String(sf.fieldId))) {
41
+ candidates.push({
42
+ fieldName: String(sf.fieldName), fieldId: String(sf.fieldId),
43
+ subFormId: String(sf.subFormId || dt.id || formId),
44
+ });
45
+ }
46
+ }
47
+ }
48
+ return candidates;
49
+ }
50
+ function pickFields(candidates, names) {
51
+ const out = [];
52
+ for (const name of names) {
53
+ const c = candidates.find((x) => x.fieldName === name || String(x.fieldId) === name);
54
+ if (!c) {
55
+ console.error(`未找到字段: ${name},可用: ${candidates.map((x) => x.fieldName).join(', ')}`);
56
+ process.exit(1);
57
+ }
58
+ out.push(c);
59
+ }
60
+ return out;
61
+ }
62
+ /** 读回里的 checkFields 只有 fieldId,没有 subFormId —— 按 fieldId 回候选表补齐。 */
63
+ function fieldsById(candidates, rule) {
64
+ const out = [];
65
+ for (const c of rule?.checkFields || []) {
66
+ const fieldId = String(c.fieldId ?? '');
67
+ const hit = candidates.find((x) => x.fieldId === fieldId);
68
+ if (!hit) {
69
+ console.error(`规则里的字段 ${c.fieldName || fieldId}(${fieldId})已不在当前表单中,请用 --fields 重新指定查重字段`);
70
+ process.exit(1);
71
+ }
72
+ out.push(hit);
73
+ }
74
+ if (!out.length) {
75
+ console.error('规则里没有查重字段,请用 --fields 指定');
76
+ process.exit(1);
77
+ }
78
+ return out;
79
+ }
80
+ function methodOf(rule) {
81
+ return rule?.treatmentMethod === 'REMINDER' ? '提醒' : '禁止提交';
82
+ }
6
83
  export function registerFormValidateCommands(form, program) {
7
84
  const val = form.command('validate').description('字段查重校验规则(重名校验/重复日期,多字段 AND)');
8
85
  val.command('list')
@@ -17,10 +94,7 @@ export function registerFormValidateCommands(form, program) {
17
94
  const client = new ApiClient(auth);
18
95
  const baseUrl = auth.getBaseUrl();
19
96
  const formId = await resolveFormId(client, baseUrl, appId, objId);
20
- const res = await client.post(`${baseUrl}/api/ebuilder/form/validate/pageFormDataValidate`, {
21
- module: 'ebuilderform', formId, pageNo: 1, pageSize: 100,
22
- });
23
- const rules = res?.data?.records || [];
97
+ const rules = await fetchRules(client, baseUrl, formId);
24
98
  if (opts.json) {
25
99
  console.log(JSON.stringify(rules, null, 2));
26
100
  return;
@@ -32,12 +106,11 @@ export function registerFormValidateCommands(form, program) {
32
106
  // helpContent 存的是标签 id,解回文本再显示;老规则(存的中文原文)原样显示
33
107
  const helpOf = new Map();
34
108
  await Promise.all(rules.map(async (r) => {
35
- helpOf.set(String(r.id), await resolveLabelText(client, baseUrl, r.helpContent, 'ebuilderform'));
109
+ helpOf.set(String(r.id), await resolveLabelText(client, baseUrl, r.helpContent, MODULE));
36
110
  }));
37
111
  for (const r of rules) {
38
- const method = r.treatmentMethod === 'REMINDER' ? '提醒' : '禁止提交';
39
112
  const fields = (r.checkFields || []).map((c) => c.fieldName).join(' + ');
40
- console.log(`[${r.id}] ${method} | ${fields} | ${helpOf.get(String(r.id)) || ''}`);
113
+ console.log(`[${r.id}] ${methodOf(r)} | ${fields} | ${helpOf.get(String(r.id)) || ''}`);
41
114
  }
42
115
  });
43
116
  val.command('add')
@@ -45,7 +118,7 @@ export function registerFormValidateCommands(form, program) {
45
118
  .argument('<objId>', '表单 objId')
46
119
  .argument('<appId>', '应用 ID')
47
120
  .argument('<fields...>', '查重字段名(可多个,如 "填报人" "工时日期")')
48
- .option('--help <text>', '重复时的提示内容(会建一条多语言标签,存的是标签 id)', '字段值不允许重复')
121
+ .option('--help <text>', '重复时的提示内容;可写 #[字段名]# 插入变量,或 @文件(会建一条多语言标签,存的是标签 id)', '字段值不允许重复')
49
122
  .option('--remind', '重复时仅提醒允许提交(缺省禁止提交 NOSUBMISSION)')
50
123
  .action(async (objId, appId, fieldNames, cmdOpts) => {
51
124
  const opts = program.opts();
@@ -55,34 +128,13 @@ export function registerFormValidateCommands(form, program) {
55
128
  const client = new ApiClient(auth);
56
129
  const baseUrl = auth.getBaseUrl();
57
130
  const formId = await resolveFormId(client, baseUrl, appId, objId);
58
- // 取字段(主表 + 明细),解析 fieldId/fieldName/subFormId
59
- const fieldsRes = await client.post(`${baseUrl}/api/ebuilder/form/dataset/v1/getFields`, {
60
- objId, userid: auth.userId, tenantKey: auth.tenantKey, isReturnDetail: 'y',
61
- });
62
- const candidates = [];
63
- for (const m of fieldsRes?.data?.mainFields || []) {
64
- if (/^\d+$/.test(String(m.fieldId)))
65
- candidates.push({ fieldName: m.fieldName, fieldId: String(m.fieldId), subFormId: String(formId) });
66
- }
67
- for (const dt of fieldsRes?.data?.detailFields || []) {
68
- for (const sf of dt.fields || []) {
69
- if (/^\d+$/.test(String(sf.fieldId)))
70
- candidates.push({ fieldName: sf.fieldName, fieldId: String(sf.fieldId), subFormId: String(sf.subFormId || dt.id || formId) });
71
- }
72
- }
73
- const checkFields = [];
74
- for (const name of fieldNames) {
75
- const c = candidates.find((x) => x.fieldName === name || String(x.fieldId) === name);
76
- if (!c) {
77
- console.error(`未找到字段: ${name}`);
78
- process.exit(1);
79
- }
80
- checkFields.push(c);
81
- }
131
+ const candidates = await loadFields(client, baseUrl, objId, formId, auth.userId, auth.tenantKey);
132
+ const checkFields = pickFields(candidates, fieldNames);
82
133
  // 提示语必须走多语言标签:直接传文本会被服务端拒(提示内容格式不正确。)
83
- const helpLabelId = await createMultilangLabel(client, baseUrl, String(cmdOpts.help || '字段值不允许重复'), 'ebuilderform');
134
+ const helpText = renderValidateHelp(resolveHelpInput(String(cmdOpts.help || '字段值不允许重复')), candidates);
135
+ const helpLabelId = await createMultilangLabel(client, baseUrl, helpText, MODULE);
84
136
  const payload = {
85
- module: 'ebuilderform', formId,
137
+ module: MODULE, formId,
86
138
  treatmentMethod: cmdOpts.remind ? 'REMINDER' : 'NOSUBMISSION',
87
139
  remindTime: 'SUB_REMIND', taggingColour: '#000000', subFieldCheckType: 'ALL_DATA',
88
140
  helpContent: helpLabelId,
@@ -96,6 +148,86 @@ export function registerFormValidateCommands(form, program) {
96
148
  const method = cmdOpts.remind ? '提醒' : '禁止提交';
97
149
  console.log(`已保存查重规则: ${fieldNames.join(' + ')}(${method})ruleId=${res?.data?.id || ''}`);
98
150
  });
151
+ val.command('update')
152
+ .description('修改查重规则(只改传入的项,其余保持原值)')
153
+ .argument('<objId>', '表单 objId')
154
+ .argument('<appId>', '应用 ID')
155
+ .argument('<ruleId>', '规则 ID(form validate list 查看)')
156
+ .option('--fields <names...>', '改查重字段(多个 AND;不给则沿用原字段)')
157
+ .option('--help <text>', '改提示内容;可写 #[字段名]# 插入变量,或 @文件(不给则沿用原提示)')
158
+ .option('--remind', '改成重复时仅提醒(允许提交)')
159
+ .option('--no-remind', '改成重复时禁止提交(NOSUBMISSION)')
160
+ .action(async (objId, appId, ruleId, cmdOpts) => {
161
+ const opts = program.opts();
162
+ const auth = await AuthSession.fromOptions(opts);
163
+ if (!auth)
164
+ process.exit(1);
165
+ const client = new ApiClient(auth);
166
+ const baseUrl = auth.getBaseUrl();
167
+ const formId = await resolveFormId(client, baseUrl, appId, objId);
168
+ if (cmdOpts.fields === undefined && cmdOpts.help === undefined && cmdOpts.remind === undefined) {
169
+ console.error('没有要修改的项(至少给 --fields / --help / --remind / --no-remind 之一)');
170
+ process.exit(1);
171
+ }
172
+ const rules = await fetchRules(client, baseUrl, formId);
173
+ const rule = rules.find((r) => String(r.id) === String(ruleId));
174
+ if (!rule) {
175
+ console.error(`规则不存在或不属于该表单: ${ruleId}(form validate list 查看可用规则)`);
176
+ process.exit(1);
177
+ }
178
+ const candidates = await loadFields(client, baseUrl, objId, formId, auth.userId, auth.tenantKey);
179
+ // checkFields 是整组替换:无论改不改字段,都要把完整一组带上
180
+ const checkFields = cmdOpts.fields !== undefined
181
+ ? pickFields(candidates, cmdOpts.fields)
182
+ : fieldsById(candidates, rule);
183
+ const treatmentMethod = cmdOpts.remind === undefined
184
+ ? (rule.treatmentMethod === 'REMINDER' ? 'REMINDER' : 'NOSUBMISSION')
185
+ : (cmdOpts.remind ? 'REMINDER' : 'NOSUBMISSION');
186
+ const helpContent = cmdOpts.help === undefined
187
+ ? rule.helpContent
188
+ : await createMultilangLabel(client, baseUrl, renderValidateHelp(resolveHelpInput(String(cmdOpts.help)), candidates), MODULE);
189
+ const payload = {
190
+ id: String(ruleId),
191
+ module: MODULE, formId,
192
+ treatmentMethod,
193
+ remindTime: rule.remindTime || 'SUB_REMIND',
194
+ taggingColour: rule.taggingColour || '#000000',
195
+ subFieldCheckType: rule.subFieldCheckType || 'ALL_DATA',
196
+ helpContent,
197
+ checkFields,
198
+ };
199
+ const res = await client.post(`${baseUrl}/api/ebuilder/form/validate/save`, payload);
200
+ if (res?.code !== 200 || !res?.status) {
201
+ console.error(`保存失败: ${res?.msg || '未知错误'}`);
202
+ process.exit(1);
203
+ }
204
+ // 回读校验:处理方式、查重字段集合、提示标签引用
205
+ const after = (await fetchRules(client, baseUrl, formId)).find((r) => String(r.id) === String(ruleId));
206
+ if (!after) {
207
+ console.error(`保存后回读不到规则 ${ruleId}`);
208
+ process.exit(1);
209
+ }
210
+ const wantFields = checkFields.map((f) => f.fieldId).sort().join(',');
211
+ const gotFields = (after.checkFields || []).map((c) => String(c.fieldId)).sort().join(',');
212
+ const diffs = [];
213
+ if (after.treatmentMethod !== treatmentMethod)
214
+ diffs.push(`处理方式 期望=${treatmentMethod} 实际=${after.treatmentMethod}`);
215
+ if (gotFields !== wantFields)
216
+ diffs.push(`查重字段 期望=${wantFields} 实际=${gotFields}`);
217
+ if (String(after.helpContent) !== String(helpContent))
218
+ diffs.push(`提示内容 期望=${helpContent} 实际=${after.helpContent}`);
219
+ if (diffs.length) {
220
+ console.error(`保存后回读不一致:${diffs.join('; ')}`);
221
+ process.exit(1);
222
+ }
223
+ const fieldNames = (after.checkFields || []).map((c) => c.fieldName);
224
+ if (opts.json) {
225
+ console.log(JSON.stringify({ success: true, ruleId: String(ruleId), fields: fieldNames, method: treatmentMethod }, null, 2));
226
+ }
227
+ else {
228
+ console.log(`已修改查重规则 [${ruleId}]:${fieldNames.join(' + ')}(${methodOf(after)})`);
229
+ }
230
+ });
99
231
  val.command('delete')
100
232
  .description('删除查重规则')
101
233
  .argument('<objId>', '表单 objId')
@@ -110,7 +242,7 @@ export function registerFormValidateCommands(form, program) {
110
242
  const baseUrl = auth.getBaseUrl();
111
243
  const formId = await resolveFormId(client, baseUrl, appId, objId);
112
244
  const res = await client.post(`${baseUrl}/api/ebuilder/form/validate/batchDelete`, {
113
- module: 'ebuilderform', formId, idList: [ruleId],
245
+ module: MODULE, formId, idList: [ruleId],
114
246
  });
115
247
  if (res?.code !== 200 || !res?.status) {
116
248
  console.error(`删除失败: ${res?.msg || '未知错误'}`);
@@ -1 +1 @@
1
- {"version":3,"file":"form-validate.js","sourceRoot":"","sources":["../../src/commands/form-validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-validate.js","sourceRoot":"","sources":["../../src/commands/form-validate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/commands/form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC,OAAO,EAAE,kBAAkB,EAAyD,MAAM,oCAAoC,CAAC;AAK/H;;;;;;GAMG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAgF9B,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CA2jG9D"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/commands/form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC,OAAO,EAAE,kBAAkB,EAAyD,MAAM,oCAAoC,CAAC;AAO/H;;;;;;GAMG;AACH,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAgF9B,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CA8kG9D"}
@@ -1,6 +1,7 @@
1
1
  import { writeFileSync, existsSync, readFileSync } from 'fs';
2
2
  import { AuthSession } from '../core/auth.js';
3
3
  import { ApiClient } from '../core/client.js';
4
+ import { parseLayoutJson } from '../services/form-layout-source/json.js';
4
5
  import { toColumnName, toTableName, resolveFieldKeys } from '../utils/column-name.js';
5
6
  import { createCustomPhysicalForm, applyInitialFieldsToNewForm, placeholderFromFormat, reapplyGroupLayout, queryFormStorageSetting } from '../services/form-create.js';
6
7
  import { getRichType, richIdUnits, BROWSER_KINDS } from '../services/rich-types.js';
@@ -22,6 +23,8 @@ import { FIELD_TYPE_CHOICES, canonComponentKey, assertFieldType, normalizeFieldD
22
23
  import { listFormTables, readFieldRecords, mapFieldsToTables } from '../services/form-physical-table.js';
23
24
  import { buildFormulaParameters, defaultReturnType } from '../services/formula-detail.js';
24
25
  import { registerOptionTemplateCommand } from './form-option-template.js';
26
+ import { registerFormObjMetaCommands } from './form-obj-meta.js';
27
+ import { prepareSourceLayoutInputs, restoreSourceLayoutAfterCreate } from '../services/form-layout-source/creation.js';
25
28
  /**
26
29
  * 字段类型归一 / 校验 / 校验清单已抽到 `services/form-field-validate.ts` ——
27
30
  * 「标准建表」与「专项建表」两个入口共用同一份,避免两处真相。
@@ -99,6 +102,7 @@ async function fetchFieldPageRecords(client, baseUrl, appId, formId, subFormId)
99
102
  export function registerFormCommands(program) {
100
103
  const form = program.command('form').description('表单管理');
101
104
  registerOptionTemplateCommand(form, program);
105
+ registerFormObjMetaCommands(form, program);
102
106
  form.command('read')
103
107
  .description('读取表单字段结构')
104
108
  .argument('<objId>', '表单 objId')
@@ -316,14 +320,18 @@ export function registerFormCommands(program) {
316
320
  + 'valueKey 须为数字、省略则平台生成)')
317
321
  .option('--menu', '建表后添加台账菜单(默认不加;漏加可用 `e10-cli menu add-table` 补)')
318
322
  .option('--layout <type>', '表单布局类型:FLOW(流式)/EXCEL(表格,缺省)。布局类型建表后不可切换', 'EXCEL')
323
+ .option('--layout-source <json>', 'extract 输出的源证据;搭配 layout-spec 和 layout-artifact-out')
324
+ .option('--layout-spec <json>', '字段位置描述;字段创建和归组结束后还原源样式')
325
+ .option('--layout-artifact-out <file>', '保存源布局编译产物及原生前置快照,用于验收和重试')
319
326
  .option('--table-name <name>', '自定义数据库表名。平台前缀(如 uf_)由 CLI 自动补,传 uf_xxx 或只传自定义部分都可以;'
320
327
  + '须字母开头、只含字母数字下划线。缺省按表单名拼音首字母 + 随机数生成')
321
328
  .action(async (appId, name, cmdOpts) => {
329
+ const sourceLayout = await prepareSourceLayoutInputs(cmdOpts);
322
330
  const opts = program.opts();
323
331
  const auth = await AuthSession.fromOptions(opts);
324
332
  if (!auth)
325
333
  process.exit(1);
326
- const client = new ApiClient(auth);
334
+ const client = new ApiClient(auth, 3, sourceLayout ? parseLayoutJson : undefined);
327
335
  const baseUrl = auth.getBaseUrl();
328
336
  const { randomUUID } = await import('crypto');
329
337
  // Fields are required — parse from file (must start with @)
@@ -1736,8 +1744,24 @@ export function registerFormCommands(program) {
1736
1744
  catch (e) {
1737
1745
  console.error(` 显示列兜底失败: ${e.message}(可用 \`e10-cli form table-view ensure ${objId} ${appId}\` 手动补加)`);
1738
1746
  }
1747
+ let layoutRestoration;
1748
+ if (sourceLayout) {
1749
+ try {
1750
+ // 独立单次提交客户端:不能让默认重试把结果未知的布局写入重复发送。
1751
+ layoutRestoration = await restoreSourceLayoutAfterCreate(new ApiClient(auth, 1, parseLayoutJson), baseUrl, { module: 'ebuilderform', formId, objId, appId, routeKind: 'default' }, sourceLayout);
1752
+ if (!layoutRestoration.saved || layoutRestoration.reportWriteError)
1753
+ process.exitCode = 1;
1754
+ }
1755
+ catch (e) {
1756
+ layoutRestoration = { saved: false, partial: true, error: e.message, artifactOut: sourceLayout.artifactOut };
1757
+ process.exitCode = 1;
1758
+ }
1759
+ console.error(layoutRestoration.saved ? ` 源布局结构回读通过,产物: ${sourceLayout.artifactOut}` : ` 表单 ${objId} 已创建,源布局还原未通过: ${layoutRestoration.error || '请查看差异报告'};重试只处理此已有表单`);
1760
+ if (layoutRestoration.reportWriteError)
1761
+ console.error(` 业务保存已回读通过,但报告落盘失败: ${layoutRestoration.reportWriteError}`);
1762
+ }
1739
1763
  if (opts.json) {
1740
- console.log(JSON.stringify({ objId, name, menuId, skippedSys }));
1764
+ console.log(JSON.stringify({ objId, name, menuId, skippedSys, ...(sourceLayout ? { formId, layoutRestoration } : {}) }));
1741
1765
  }
1742
1766
  else {
1743
1767
  console.log(`完成: ${objId}${skippedSys.length ? `(跳过系统字段重名: ${skippedSys.map((s) => s.name).join('、')})` : ''}`);