aldehyde 0.2.474 → 0.2.476

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 (349) hide show
  1. package/lib/controls/action/utils.d.ts +1 -1
  2. package/lib/controls/entity-select/entity-select.d.ts +2 -2
  3. package/lib/controls/entity-select/entity-select.d.ts.map +1 -1
  4. package/lib/controls/entity-select/entity-select.js +16 -7
  5. package/lib/controls/entity-select/entity-select.js.map +1 -1
  6. package/lib/controls/entry-control.d.ts.map +1 -1
  7. package/lib/controls/entry-control.js +1 -0
  8. package/lib/controls/entry-control.js.map +1 -1
  9. package/lib/controls/select/index.d.ts.map +1 -1
  10. package/lib/controls/select/index.js +13 -7
  11. package/lib/controls/select/index.js.map +1 -1
  12. package/lib/controls/text/index.less +1 -0
  13. package/lib/controls/view-control.d.ts.map +1 -1
  14. package/lib/controls/view-control.js +1 -0
  15. package/lib/controls/view-control.js.map +1 -1
  16. package/lib/detail/button/edit-button.d.ts.map +1 -1
  17. package/lib/detail/button/edit-button.js +23 -11
  18. package/lib/detail/button/edit-button.js.map +1 -1
  19. package/lib/detail/button/view-button.d.ts.map +1 -1
  20. package/lib/detail/button/view-button.js +21 -10
  21. package/lib/detail/button/view-button.js.map +1 -1
  22. package/lib/draw-canvas-edit/components/asset-bar/index.d.ts.map +1 -0
  23. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/asset-bar/index.js +2 -1
  24. package/lib/draw-canvas-edit/components/asset-bar/index.js.map +1 -0
  25. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/main-header/index.d.ts +5 -0
  26. package/lib/draw-canvas-edit/components/main-header/index.d.ts.map +1 -0
  27. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/main-header/index.js +55 -15
  28. package/lib/draw-canvas-edit/components/main-header/index.js.map +1 -0
  29. package/lib/draw-canvas-edit/components/render/draws/bg-draw.d.ts +26 -0
  30. package/lib/draw-canvas-edit/components/render/draws/bg-draw.d.ts.map +1 -0
  31. package/lib/draw-canvas-edit/components/render/draws/bg-draw.js +135 -0
  32. package/lib/draw-canvas-edit/components/render/draws/bg-draw.js.map +1 -0
  33. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.d.ts +26 -0
  34. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.d.ts.map +1 -0
  35. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.js +293 -0
  36. package/lib/draw-canvas-edit/components/render/draws/contextmenu-draw.js.map +1 -0
  37. package/lib/draw-canvas-edit/components/render/draws/graph-draw.d.ts +30 -0
  38. package/lib/draw-canvas-edit/components/render/draws/graph-draw.d.ts.map +1 -0
  39. package/lib/draw-canvas-edit/components/render/draws/graph-draw.js +182 -0
  40. package/lib/draw-canvas-edit/components/render/draws/graph-draw.js.map +1 -0
  41. package/lib/draw-canvas-edit/components/render/draws/index.d.ts +8 -0
  42. package/lib/draw-canvas-edit/components/render/draws/index.d.ts.map +1 -0
  43. package/lib/draw-canvas-edit/components/render/draws/index.js +8 -0
  44. package/lib/draw-canvas-edit/components/render/draws/index.js.map +1 -0
  45. package/lib/draw-canvas-edit/components/render/draws/link-draw.d.ts +42 -0
  46. package/lib/draw-canvas-edit/components/render/draws/link-draw.d.ts.map +1 -0
  47. package/lib/draw-canvas-edit/components/render/draws/link-draw.js +1376 -0
  48. package/lib/draw-canvas-edit/components/render/draws/link-draw.js.map +1 -0
  49. package/lib/draw-canvas-edit/components/render/draws/preview-draw.d.ts +15 -0
  50. package/lib/draw-canvas-edit/components/render/draws/preview-draw.d.ts.map +1 -0
  51. package/lib/draw-canvas-edit/components/render/draws/preview-draw.js +245 -0
  52. package/lib/draw-canvas-edit/components/render/draws/preview-draw.js.map +1 -0
  53. package/lib/draw-canvas-edit/components/render/draws/ref-line-draw.d.ts +18 -0
  54. package/lib/draw-canvas-edit/components/render/draws/ref-line-draw.d.ts.map +1 -0
  55. package/lib/draw-canvas-edit/components/render/draws/ref-line-draw.js +59 -0
  56. package/lib/draw-canvas-edit/components/render/draws/ref-line-draw.js.map +1 -0
  57. package/lib/draw-canvas-edit/components/render/draws/ruler-draw.d.ts +12 -0
  58. package/lib/draw-canvas-edit/components/render/draws/ruler-draw.d.ts.map +1 -0
  59. package/lib/draw-canvas-edit/components/render/draws/ruler-draw.js +151 -0
  60. package/lib/draw-canvas-edit/components/render/draws/ruler-draw.js.map +1 -0
  61. package/lib/draw-canvas-edit/components/render/graphs/base-graph.d.ts +112 -0
  62. package/lib/draw-canvas-edit/components/render/graphs/base-graph.d.ts.map +1 -0
  63. package/lib/draw-canvas-edit/components/render/graphs/base-graph.js +199 -0
  64. package/lib/draw-canvas-edit/components/render/graphs/base-graph.js.map +1 -0
  65. package/lib/draw-canvas-edit/components/render/graphs/bezier.d.ts +80 -0
  66. package/lib/draw-canvas-edit/components/render/graphs/bezier.d.ts.map +1 -0
  67. package/lib/draw-canvas-edit/components/render/graphs/bezier.js +485 -0
  68. package/lib/draw-canvas-edit/components/render/graphs/bezier.js.map +1 -0
  69. package/lib/draw-canvas-edit/components/render/graphs/circle.d.ts +48 -0
  70. package/lib/draw-canvas-edit/components/render/graphs/circle.d.ts.map +1 -0
  71. package/lib/draw-canvas-edit/components/render/graphs/circle.js +735 -0
  72. package/lib/draw-canvas-edit/components/render/graphs/circle.js.map +1 -0
  73. package/lib/draw-canvas-edit/components/render/graphs/curve.d.ts +80 -0
  74. package/lib/draw-canvas-edit/components/render/graphs/curve.d.ts.map +1 -0
  75. package/lib/draw-canvas-edit/components/render/graphs/curve.js +451 -0
  76. package/lib/draw-canvas-edit/components/render/graphs/curve.js.map +1 -0
  77. package/lib/draw-canvas-edit/components/render/graphs/index.d.ts +7 -0
  78. package/lib/draw-canvas-edit/components/render/graphs/index.d.ts.map +1 -0
  79. package/lib/draw-canvas-edit/components/render/graphs/index.js +7 -0
  80. package/lib/draw-canvas-edit/components/render/graphs/index.js.map +1 -0
  81. package/lib/draw-canvas-edit/components/render/graphs/line.d.ts +80 -0
  82. package/lib/draw-canvas-edit/components/render/graphs/line.d.ts.map +1 -0
  83. package/lib/draw-canvas-edit/components/render/graphs/line.js +444 -0
  84. package/lib/draw-canvas-edit/components/render/graphs/line.js.map +1 -0
  85. package/lib/draw-canvas-edit/components/render/graphs/rect.d.ts +48 -0
  86. package/lib/draw-canvas-edit/components/render/graphs/rect.d.ts.map +1 -0
  87. package/lib/draw-canvas-edit/components/render/graphs/rect.js +716 -0
  88. package/lib/draw-canvas-edit/components/render/graphs/rect.js.map +1 -0
  89. package/lib/draw-canvas-edit/components/render/handlers/drag-handlers.d.ts +25 -0
  90. package/lib/draw-canvas-edit/components/render/handlers/drag-handlers.d.ts.map +1 -0
  91. package/lib/draw-canvas-edit/components/render/handlers/drag-handlers.js +67 -0
  92. package/lib/draw-canvas-edit/components/render/handlers/drag-handlers.js.map +1 -0
  93. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.d.ts +15 -0
  94. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.d.ts.map +1 -0
  95. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.js +146 -0
  96. package/lib/draw-canvas-edit/components/render/handlers/drag-outside-handlers.js.map +1 -0
  97. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.d.ts +28 -0
  98. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.d.ts.map +1 -0
  99. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.js +97 -0
  100. package/lib/draw-canvas-edit/components/render/handlers/graph-handlers.js.map +1 -0
  101. package/lib/draw-canvas-edit/components/render/handlers/index.d.ts +10 -0
  102. package/lib/draw-canvas-edit/components/render/handlers/index.d.ts.map +1 -0
  103. package/lib/draw-canvas-edit/components/render/handlers/index.js +10 -0
  104. package/lib/draw-canvas-edit/components/render/handlers/index.js.map +1 -0
  105. package/lib/draw-canvas-edit/components/render/handlers/key-move-handlers.d.ts +18 -0
  106. package/lib/draw-canvas-edit/components/render/handlers/key-move-handlers.d.ts.map +1 -0
  107. package/lib/draw-canvas-edit/components/render/handlers/key-move-handlers.js +51 -0
  108. package/lib/draw-canvas-edit/components/render/handlers/key-move-handlers.js.map +1 -0
  109. package/lib/draw-canvas-edit/components/render/handlers/link-handlers.d.ts +14 -0
  110. package/lib/draw-canvas-edit/components/render/handlers/link-handlers.d.ts.map +1 -0
  111. package/lib/draw-canvas-edit/components/render/handlers/link-handlers.js +42 -0
  112. package/lib/draw-canvas-edit/components/render/handlers/link-handlers.js.map +1 -0
  113. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.d.ts +62 -0
  114. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.d.ts.map +1 -0
  115. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.js +396 -0
  116. package/lib/draw-canvas-edit/components/render/handlers/selection-handlers.js.map +1 -0
  117. package/lib/draw-canvas-edit/components/render/handlers/shutcut-handlers.d.ts +13 -0
  118. package/lib/draw-canvas-edit/components/render/handlers/shutcut-handlers.d.ts.map +1 -0
  119. package/lib/draw-canvas-edit/components/render/handlers/shutcut-handlers.js +50 -0
  120. package/lib/draw-canvas-edit/components/render/handlers/shutcut-handlers.js.map +1 -0
  121. package/lib/draw-canvas-edit/components/render/handlers/text-handlers.d.ts +24 -0
  122. package/lib/draw-canvas-edit/components/render/handlers/text-handlers.d.ts.map +1 -0
  123. package/lib/draw-canvas-edit/components/render/handlers/text-handlers.js +82 -0
  124. package/lib/draw-canvas-edit/components/render/handlers/text-handlers.js.map +1 -0
  125. package/lib/draw-canvas-edit/components/render/handlers/zoom-handlers.d.ts +17 -0
  126. package/lib/draw-canvas-edit/components/render/handlers/zoom-handlers.d.ts.map +1 -0
  127. package/lib/draw-canvas-edit/components/render/handlers/zoom-handlers.js +55 -0
  128. package/lib/draw-canvas-edit/components/render/handlers/zoom-handlers.js.map +1 -0
  129. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/render/index.d.ts +11 -1
  130. package/lib/draw-canvas-edit/components/render/index.d.ts.map +1 -0
  131. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/render/index.js +42 -14
  132. package/lib/draw-canvas-edit/components/render/index.js.map +1 -0
  133. package/lib/draw-canvas-edit/components/render/tools/align-tool.d.ts +19 -0
  134. package/lib/draw-canvas-edit/components/render/tools/align-tool.d.ts.map +1 -0
  135. package/lib/draw-canvas-edit/components/render/tools/align-tool.js +84 -0
  136. package/lib/draw-canvas-edit/components/render/tools/align-tool.js.map +1 -0
  137. package/lib/draw-canvas-edit/components/render/tools/asset-tool.d.ts +12 -0
  138. package/lib/draw-canvas-edit/components/render/tools/asset-tool.d.ts.map +1 -0
  139. package/lib/draw-canvas-edit/components/render/tools/asset-tool.js +152 -0
  140. package/lib/draw-canvas-edit/components/render/tools/asset-tool.js.map +1 -0
  141. package/lib/draw-canvas-edit/components/render/tools/attract-tool.d.ts +36 -0
  142. package/lib/draw-canvas-edit/components/render/tools/attract-tool.d.ts.map +1 -0
  143. package/lib/draw-canvas-edit/components/render/tools/attract-tool.js +419 -0
  144. package/lib/draw-canvas-edit/components/render/tools/attract-tool.js.map +1 -0
  145. package/lib/draw-canvas-edit/components/render/tools/copy-tool.d.ts +20 -0
  146. package/lib/draw-canvas-edit/components/render/tools/copy-tool.d.ts.map +1 -0
  147. package/lib/draw-canvas-edit/components/render/tools/copy-tool.js +237 -0
  148. package/lib/draw-canvas-edit/components/render/tools/copy-tool.js.map +1 -0
  149. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.d.ts +43 -0
  150. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.d.ts.map +1 -0
  151. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.js +559 -0
  152. package/lib/draw-canvas-edit/components/render/tools/import-export-tool.js.map +1 -0
  153. package/lib/draw-canvas-edit/components/render/tools/index.d.ts +10 -0
  154. package/lib/draw-canvas-edit/components/render/tools/index.d.ts.map +1 -0
  155. package/lib/draw-canvas-edit/components/render/tools/index.js +10 -0
  156. package/lib/draw-canvas-edit/components/render/tools/index.js.map +1 -0
  157. package/lib/draw-canvas-edit/components/render/tools/link-tool.d.ts +15 -0
  158. package/lib/draw-canvas-edit/components/render/tools/link-tool.d.ts.map +1 -0
  159. package/lib/draw-canvas-edit/components/render/tools/link-tool.js +202 -0
  160. package/lib/draw-canvas-edit/components/render/tools/link-tool.js.map +1 -0
  161. package/lib/draw-canvas-edit/components/render/tools/position-tool.d.ts +11 -0
  162. package/lib/draw-canvas-edit/components/render/tools/position-tool.d.ts.map +1 -0
  163. package/lib/draw-canvas-edit/components/render/tools/position-tool.js +183 -0
  164. package/lib/draw-canvas-edit/components/render/tools/position-tool.js.map +1 -0
  165. package/lib/draw-canvas-edit/components/render/tools/selection-tool.d.ts +13 -0
  166. package/lib/draw-canvas-edit/components/render/tools/selection-tool.d.ts.map +1 -0
  167. package/lib/draw-canvas-edit/components/render/tools/selection-tool.js +116 -0
  168. package/lib/draw-canvas-edit/components/render/tools/selection-tool.js.map +1 -0
  169. package/lib/draw-canvas-edit/components/render/tools/z-index-tool.d.ts +18 -0
  170. package/lib/draw-canvas-edit/components/render/tools/z-index-tool.d.ts.map +1 -0
  171. package/lib/draw-canvas-edit/components/render/tools/z-index-tool.js +203 -0
  172. package/lib/draw-canvas-edit/components/render/tools/z-index-tool.js.map +1 -0
  173. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/render/types.d.ts +5 -1
  174. package/lib/draw-canvas-edit/components/render/types.d.ts.map +1 -0
  175. package/lib/draw-canvas-edit/components/render/types.js.map +1 -0
  176. package/lib/draw-canvas-edit/components/render/utils/a-star.d.ts +13 -0
  177. package/lib/draw-canvas-edit/components/render/utils/a-star.d.ts.map +1 -0
  178. package/lib/draw-canvas-edit/components/render/utils/a-star.js +101 -0
  179. package/lib/draw-canvas-edit/components/render/utils/a-star.js.map +1 -0
  180. package/lib/draw-canvas-edit/components/render/utils/bezier-scene-func.d.ts +3 -0
  181. package/lib/draw-canvas-edit/components/render/utils/bezier-scene-func.d.ts.map +1 -0
  182. package/lib/draw-canvas-edit/components/render/utils/bezier-scene-func.js +69 -0
  183. package/lib/draw-canvas-edit/components/render/utils/bezier-scene-func.js.map +1 -0
  184. package/lib/draw-canvas-edit/components/setting-form/imag-upload.d.ts +26 -0
  185. package/lib/draw-canvas-edit/components/setting-form/imag-upload.d.ts.map +1 -0
  186. package/lib/draw-canvas-edit/components/setting-form/imag-upload.js +83 -0
  187. package/lib/draw-canvas-edit/components/setting-form/imag-upload.js.map +1 -0
  188. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/setting-form/index.d.ts +1 -3
  189. package/lib/draw-canvas-edit/components/setting-form/index.d.ts.map +1 -0
  190. package/lib/{draw-canvas/edit → draw-canvas-edit}/components/setting-form/index.js +94 -16
  191. package/lib/draw-canvas-edit/components/setting-form/index.js.map +1 -0
  192. package/lib/draw-canvas-edit/constant.d.ts +7 -0
  193. package/lib/draw-canvas-edit/constant.d.ts.map +1 -0
  194. package/lib/draw-canvas-edit/constant.js +7 -0
  195. package/lib/draw-canvas-edit/constant.js.map +1 -0
  196. package/lib/draw-canvas-edit/index.d.ts +8 -0
  197. package/lib/draw-canvas-edit/index.d.ts.map +1 -0
  198. package/lib/{draw-canvas/edit → draw-canvas-edit}/index.js +63 -10
  199. package/lib/draw-canvas-edit/index.js.map +1 -0
  200. package/{src/aldehyde/draw-canvas/edit → lib/draw-canvas-edit}/index.less +17 -2
  201. package/lib/draw-canvas-view/index.d.ts +8 -0
  202. package/lib/draw-canvas-view/index.d.ts.map +1 -0
  203. package/lib/draw-canvas-view/index.js +50 -0
  204. package/lib/draw-canvas-view/index.js.map +1 -0
  205. package/lib/draw-canvas-view/index.less +60 -0
  206. package/lib/draw-canvas-view/view.d.ts +13 -0
  207. package/lib/draw-canvas-view/view.d.ts.map +1 -0
  208. package/lib/draw-canvas-view/view.js +208 -0
  209. package/lib/draw-canvas-view/view.js.map +1 -0
  210. package/lib/form/form-Item-group.d.ts.map +1 -1
  211. package/lib/form/form-Item-group.js +4 -4
  212. package/lib/form/form-Item-group.js.map +1 -1
  213. package/lib/lowcode-components/index.d.ts +2 -0
  214. package/lib/lowcode-components/index.d.ts.map +1 -1
  215. package/lib/lowcode-components/index.js +2 -1
  216. package/lib/lowcode-components/index.js.map +1 -1
  217. package/lib/lowcode-components/lowcode-view/component/assets.d.ts.map +1 -1
  218. package/lib/lowcode-components/lowcode-view/component/assets.js +8 -0
  219. package/lib/lowcode-components/lowcode-view/component/assets.js.map +1 -1
  220. package/lib/lowcode-components/radar-chart/index.d.ts +51 -0
  221. package/lib/lowcode-components/radar-chart/index.d.ts.map +1 -0
  222. package/lib/lowcode-components/radar-chart/index.js +276 -0
  223. package/lib/lowcode-components/radar-chart/index.js.map +1 -0
  224. package/lib/module/dtmpl-edit-card.d.ts.map +1 -1
  225. package/lib/module/dtmpl-edit-card.js +18 -1
  226. package/lib/module/dtmpl-edit-card.js.map +1 -1
  227. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  228. package/lib/module/dtmpl-edit-page.js +19 -2
  229. package/lib/module/dtmpl-edit-page.js.map +1 -1
  230. package/lib/routable/ltmpl-route.d.ts +2 -0
  231. package/lib/routable/ltmpl-route.d.ts.map +1 -1
  232. package/lib/routable/ltmpl-route.js +20 -4
  233. package/lib/routable/ltmpl-route.js.map +1 -1
  234. package/lib/table/act-table.d.ts +2 -0
  235. package/lib/table/act-table.d.ts.map +1 -1
  236. package/lib/table/act-table.js +4 -4
  237. package/lib/table/act-table.js.map +1 -1
  238. package/lib/table/column/column-builder.d.ts.map +1 -1
  239. package/lib/table/column/column-builder.js +23 -8
  240. package/lib/table/column/column-builder.js.map +1 -1
  241. package/lib/table/relation-table.d.ts +3 -0
  242. package/lib/table/relation-table.d.ts.map +1 -1
  243. package/lib/tmpl/control-type-supportor.d.ts.map +1 -1
  244. package/lib/tmpl/control-type-supportor.js +1 -0
  245. package/lib/tmpl/control-type-supportor.js.map +1 -1
  246. package/lib/tmpl/hcservice-v3.d.ts +2 -0
  247. package/lib/tmpl/hcservice-v3.d.ts.map +1 -1
  248. package/lib/tmpl/hcservice-v3.js +34 -0
  249. package/lib/tmpl/hcservice-v3.js.map +1 -1
  250. package/lib/tmpl/interface.d.ts +13 -1
  251. package/lib/tmpl/interface.d.ts.map +1 -1
  252. package/lib/tmpl/interface.js.map +1 -1
  253. package/lib/tmpl/tmpl-config-analysis.js +1 -1
  254. package/lib/tmpl/tmpl-config-analysis.js.map +1 -1
  255. package/lib/units/index.d.ts +2 -1
  256. package/lib/units/index.d.ts.map +1 -1
  257. package/lib/units/index.js +17 -3
  258. package/lib/units/index.js.map +1 -1
  259. package/package.json +4 -1
  260. package/src/aldehyde/controls/entity-select/entity-select.tsx +18 -8
  261. package/src/aldehyde/controls/entry-control.tsx +1 -0
  262. package/src/aldehyde/controls/select/index.tsx +7 -6
  263. package/src/aldehyde/controls/text/index.less +1 -0
  264. package/src/aldehyde/controls/view-control.tsx +1 -0
  265. package/src/aldehyde/detail/button/edit-button.tsx +21 -22
  266. package/src/aldehyde/detail/button/view-button.tsx +23 -21
  267. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/asset-bar/index.tsx +4 -2
  268. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/main-header/index.tsx +60 -14
  269. package/src/aldehyde/draw-canvas-edit/components/render/draws/bg-draw.ts +163 -0
  270. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/draws/preview-draw.ts +33 -15
  271. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/drag-outside-handlers.ts +19 -22
  272. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/selection-handlers.ts +38 -30
  273. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/index.ts +41 -9
  274. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/position-tool.ts +40 -58
  275. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/types.ts +5 -1
  276. package/src/aldehyde/draw-canvas-edit/components/setting-form/imag-upload.tsx +118 -0
  277. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/setting-form/index.tsx +111 -17
  278. package/src/aldehyde/draw-canvas-edit/constant.ts +6 -0
  279. package/{lib/draw-canvas/edit → src/aldehyde/draw-canvas-edit}/index.less +17 -2
  280. package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/index.tsx +84 -25
  281. package/src/aldehyde/draw-canvas-view/index.less +60 -0
  282. package/src/aldehyde/draw-canvas-view/index.tsx +48 -0
  283. package/src/aldehyde/draw-canvas-view/view.tsx +212 -0
  284. package/src/aldehyde/form/form-Item-group.tsx +4 -5
  285. package/src/aldehyde/lowcode-components/index.ts +4 -2
  286. package/src/aldehyde/lowcode-components/lowcode-view/component/assets.ts +8 -0
  287. package/src/aldehyde/lowcode-components/radar-chart/index.tsx +323 -0
  288. package/src/aldehyde/module/dtmpl-edit-card.tsx +18 -1
  289. package/src/aldehyde/module/dtmpl-edit-page.tsx +19 -2
  290. package/src/aldehyde/routable/ltmpl-route.tsx +39 -3
  291. package/src/aldehyde/table/act-table.tsx +7 -4
  292. package/src/aldehyde/table/column/column-builder.tsx +29 -9
  293. package/src/aldehyde/tmpl/control-type-supportor.tsx +1 -0
  294. package/src/aldehyde/tmpl/hcservice-v3.tsx +30 -0
  295. package/src/aldehyde/tmpl/interface.tsx +13 -1
  296. package/src/aldehyde/tmpl/tmpl-config-analysis.tsx +1 -1
  297. package/src/aldehyde/units/index.tsx +17 -4
  298. package/lib/draw-canvas/edit/components/asset-bar/index.d.ts.map +0 -1
  299. package/lib/draw-canvas/edit/components/asset-bar/index.js.map +0 -1
  300. package/lib/draw-canvas/edit/components/main-header/index.d.ts.map +0 -1
  301. package/lib/draw-canvas/edit/components/main-header/index.js.map +0 -1
  302. package/lib/draw-canvas/edit/components/render/index.d.ts.map +0 -1
  303. package/lib/draw-canvas/edit/components/render/index.js.map +0 -1
  304. package/lib/draw-canvas/edit/components/render/types.d.ts.map +0 -1
  305. package/lib/draw-canvas/edit/components/render/types.js.map +0 -1
  306. package/lib/draw-canvas/edit/components/setting-form/index.d.ts.map +0 -1
  307. package/lib/draw-canvas/edit/components/setting-form/index.js.map +0 -1
  308. package/lib/draw-canvas/edit/index.d.ts +0 -5
  309. package/lib/draw-canvas/edit/index.d.ts.map +0 -1
  310. package/lib/draw-canvas/edit/index.js.map +0 -1
  311. package/src/aldehyde/draw-canvas/edit/components/render/draws/bg-draw.ts +0 -98
  312. /package/lib/{draw-canvas/edit → draw-canvas-edit}/components/asset-bar/index.d.ts +0 -0
  313. /package/lib/{draw-canvas/edit → draw-canvas-edit}/components/asset-bar/index.less +0 -0
  314. /package/lib/{draw-canvas/edit → draw-canvas-edit}/components/main-header/index.less +0 -0
  315. /package/lib/{draw-canvas/edit → draw-canvas-edit}/components/render/types.js +0 -0
  316. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/asset-bar/index.less +0 -0
  317. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/main-header/index.less +0 -0
  318. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/draws/contextmenu-draw.ts +0 -0
  319. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/draws/graph-draw.ts +0 -0
  320. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/draws/index.ts +0 -0
  321. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/draws/link-draw.ts +0 -0
  322. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/draws/ref-line-draw.ts +0 -0
  323. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/draws/ruler-draw.ts +0 -0
  324. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/graphs/base-graph.ts +0 -0
  325. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/graphs/bezier.ts +0 -0
  326. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/graphs/circle.ts +0 -0
  327. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/graphs/curve.ts +0 -0
  328. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/graphs/index.ts +0 -0
  329. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/graphs/line.ts +0 -0
  330. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/graphs/rect.ts +0 -0
  331. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/drag-handlers.ts +0 -0
  332. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/graph-handlers.ts +0 -0
  333. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/index.ts +0 -0
  334. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/key-move-handlers.ts +0 -0
  335. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/link-handlers.ts +0 -0
  336. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/shutcut-handlers.ts +0 -0
  337. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/text-handlers.ts +0 -0
  338. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/handlers/zoom-handlers.ts +0 -0
  339. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/align-tool.ts +0 -0
  340. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/asset-tool.ts +0 -0
  341. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/attract-tool.ts +0 -0
  342. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/copy-tool.ts +0 -0
  343. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/import-export-tool.ts +0 -0
  344. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/index.ts +0 -0
  345. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/link-tool.ts +0 -0
  346. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/selection-tool.ts +0 -0
  347. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/tools/z-index-tool.ts +0 -0
  348. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/utils/a-star.ts +0 -0
  349. /package/src/aldehyde/{draw-canvas/edit → draw-canvas-edit}/components/render/utils/bezier-scene-func.ts +0 -0
@@ -82,6 +82,30 @@ export class SelectionHandlers implements Handler {
82
82
  * @param angle 旋转角度
83
83
  * @returns
84
84
  */
85
+
86
+ // 拖动时更新位置
87
+ private updateManualPointsByDrag(rect: { x: number; y: number }, transformerPos?: Konva.Vector2d, isAttract = false) {
88
+ const groups = this.render.transformer.nodes();
89
+ const points = groups.reduce((ps, group) => ps.concat(Array.isArray(group.getAttr('points')) ? group.getAttr('points') : []), [] as LinkDrawPoint[]);
90
+ const pairs = points.reduce((ps, point) => ps.concat(point.pairs ? point.pairs.filter((o) => !o.disabled) : []), [] as LinkDrawPair[]);
91
+ for (const pair of pairs) {
92
+ const fromGroup = groups.find((o) => o.id() === pair.from.groupId);
93
+ const toGroup = groups.find((o) => o.id() === pair.to.groupId);
94
+ if (fromGroup && toGroup) {
95
+ if (fromGroup.attrs.manualPointsMap && fromGroup.attrs.manualPointsMapBefore) {
96
+ let manualPoints = fromGroup.attrs.manualPointsMap[pair.id];
97
+ const manualPointsBefore = fromGroup.attrs.manualPointsMapBefore[pair.id];
98
+ if (Array.isArray(manualPoints) && Array.isArray(manualPointsBefore)) {
99
+ const offsetX = this.render.toStageValue((isAttract ? transformerPos.x : rect.x) - this.transformerMousedownPos.x);
100
+ const offsetY = this.render.toStageValue((isAttract ? transformerPos.y : rect.y) - this.transformerMousedownPos.y);
101
+ manualPoints = manualPointsBefore.map((o: ManualPoint) => ({ x: o.x + offsetX, y: o.y + offsetY }));
102
+ fromGroup.setAttr('manualPointsMap', { ...fromGroup.attrs.manualPointsMap, [pair.id]: manualPoints });
103
+ }
104
+ }
105
+ }
106
+ }
107
+ }
108
+
85
109
  rotatePoint(x: number, y: number, centerX: number, centerY: number, angle: number) {
86
110
  const radians = (angle * Math.PI) / 180; // 将角度转换为弧度
87
111
  // 计算旋转后的坐标
@@ -274,38 +298,22 @@ export class SelectionHandlers implements Handler {
274
298
  },
275
299
  dragmove: () => { // 拖动
276
300
  const rect = this.render.transformer.findOne('.back')!.getClientRect();
277
- const { pos: transformerPos, isAttract } = this.render.attractTool.attractTransformer(rect);
278
- if (isAttract) { // 磁吸偏移
279
- this.selectingNodesPositionByOffset({
280
- x: this.render.toStageValue(transformerPos.x - this.transformerMousedownPos.x),
281
- y: this.render.toStageValue(transformerPos.y - this.transformerMousedownPos.y)
282
- });
283
- }
284
- const groups = this.render.transformer.nodes(); // 拐点也需要移动
285
- const points = groups.reduce((ps, group) => ps.concat(Array.isArray(group.getAttr('points')) ? group.getAttr('points') : []), [] as LinkDrawPoint[]);
286
- const pairs = points.reduce((ps, point) => ps.concat(point.pairs ? point.pairs.filter((o) => !o.disabled) : []), [] as LinkDrawPair[]);
287
- for (const pair of pairs) {
288
- const fromGroup = groups.find((o) => o.id() === pair.from.groupId);
289
- const toGroup = groups.find((o) => o.id() === pair.to.groupId);
290
- if (fromGroup && toGroup) { // 必须成对移动才记录
291
- if (fromGroup.attrs.manualPointsMap && fromGroup.attrs.manualPointsMapBefore) {
292
- let manualPoints = fromGroup.attrs.manualPointsMap[pair.id];
293
- const manualPointsBefore = fromGroup.attrs.manualPointsMapBefore[pair.id];
294
- if (Array.isArray(manualPoints) && Array.isArray(manualPointsBefore)) {
295
- manualPoints = isAttract
296
- ? manualPointsBefore.map((o: ManualPoint) => ({
297
- x: o.x + this.render.toStageValue(transformerPos.x - this.transformerMousedownPos.x),
298
- y: o.y + this.render.toStageValue(transformerPos.y - this.transformerMousedownPos.y)
299
- }))
300
- : manualPointsBefore.map((o: ManualPoint) => ({
301
- x: o.x + this.render.toStageValue(rect.x - this.transformerMousedownPos.x),
302
- y: o.y + this.render.toStageValue(rect.y - this.transformerMousedownPos.y)
303
- }));
304
- fromGroup.setAttr('manualPointsMap', { ...fromGroup.attrs.manualPointsMap, [pair.id]: manualPoints });
305
- }
306
- }
301
+ // 磁吸控制:关闭时跳过磁吸逻辑,让 transformer 自由拖动
302
+ if (this.render.showAttract) {
303
+ const { pos: transformerPos, isAttract } = this.render.attractTool.attractTransformer(rect);
304
+ if (isAttract) { // 磁吸偏移
305
+ this.selectingNodesPositionByOffset({
306
+ x: this.render.toStageValue(transformerPos.x - this.transformerMousedownPos.x),
307
+ y: this.render.toStageValue(transformerPos.y - this.transformerMousedownPos.y)
308
+ });
307
309
  }
310
+ // 拐点磁吸偏移
311
+ this.updateManualPointsByDrag(rect, transformerPos, isAttract);
312
+ } else {
313
+ // 拐点跟随拖动偏移
314
+ this.updateManualPointsByDrag(rect, undefined, false);
308
315
  }
316
+ const groups = this.render.transformer.nodes();
309
317
  for (const group of groups) { // 更新坐标记录
310
318
  this.render.setAssetSettings(group, this.render.getAssetSettings(group), false);
311
319
  }
@@ -73,6 +73,8 @@ export class Render {
73
73
  historyIndex = -1;
74
74
  graphType: GraphType | undefined = undefined; // 画图类型
75
75
  texting = false; // 添加文字中
76
+ showGrid = true; // 显示网格
77
+ showAttract = true; // 显示磁吸
76
78
 
77
79
  // 事件发射器(替代 mitt)
78
80
  private emitter = new SimpleEventEmitter();
@@ -100,11 +102,9 @@ export class Render {
100
102
  this.groupTransformer.add(this.transformer);
101
103
  this.groupTransformer.add(this.selectRect);
102
104
  this.layerCover.add(this.groupTransformer);
103
- // 附加工具
104
- if (!this.config.readonly && this.config.showBg) {
105
- this.draws[BgDraw.name] = new BgDraw(this, this.layerFloor, {
106
- size: this.bgSize
107
- });
105
+
106
+ if (this.config.showBg) { // 背景
107
+ this.draws[BgDraw.name] = new BgDraw(this, this.layerFloor, { size: this.bgSize, showGrid: this.showGrid, readonly: this.config.readonly });
108
108
  }
109
109
 
110
110
  this.draws[LinkDraw.name] = new LinkDraw(this, this.layerCover, {
@@ -465,6 +465,17 @@ export class Render {
465
465
  document.body.style.cursor = this.texting ? 'text' : 'default';
466
466
  }
467
467
 
468
+ // 更改网格显示
469
+ changeShowGrid(show: boolean) {
470
+ this.showGrid = show;
471
+ (this.draws[BgDraw.name] as BgDraw)?.updateOption({ showGrid: show });
472
+ }
473
+
474
+ // 更改磁吸显示
475
+ changeShowAttract(show: boolean) {
476
+ this.showAttract = show;
477
+ }
478
+
468
479
  // 页面设置 默认值
469
480
  static PageSettingsDefault: PageSettings = {
470
481
  // 画布默认尺寸
@@ -489,6 +500,7 @@ export class Render {
489
500
  // 更新页面设置
490
501
  setPageSettings(settings: PageSettings, update = false) {
491
502
  this.stage.setAttr('pageSettings', settings);
503
+ this.emit('page-settings-change', settings);
492
504
  // 更新背景
493
505
  this.updateBackground();
494
506
  if (update) {
@@ -504,10 +516,6 @@ export class Render {
504
516
 
505
517
  // 更新背景
506
518
  updateBackground() {
507
- const background = this.getBackground();
508
- if (background) {
509
- background.fill(this.getPageSettings().background ?? 'transparent');
510
- }
511
519
  this.draws[BgDraw.name]?.draw();
512
520
  this.draws[GraphDraw.name]?.draw();
513
521
  this.draws[LinkDraw.name]?.draw();
@@ -697,6 +705,30 @@ export class Render {
697
705
  this.draws[PreviewDraw.name]?.draw();
698
706
  }
699
707
 
708
+ // 获取画布上所有素材节点及其配置
709
+ getAllAssets(): Array<{ id: string; assetType: AssetType; settings: AssetSettings }> {
710
+ const nodes = this.layer.getChildren((node) => !this.ignore(node));
711
+ return nodes.map((node) => ({
712
+ id: node.id(),
713
+ assetType: node.attrs.assetType as AssetType,
714
+ settings: this.getAssetSettings(node)
715
+ }));
716
+ }
717
+
718
+ // 根据节点 id 动态更新组件属性
719
+ updateAssetById(id: string, settings: Partial<AssetSettings>) {
720
+ const node = this.layer.findOne(`#${id}`);
721
+ if (!node) {
722
+ console.warn(`[Render.updateAssetById] 未找到节点 id=${id}`);
723
+ return;
724
+ }
725
+ // 合并现有设置与新设置
726
+ const currentSettings = this.getAssetSettings(node);
727
+ const mergedSettings: AssetSettings = { ...currentSettings, ...settings };
728
+ // 调用现有方法应用
729
+ this.setAssetSettings(node, mergedSettings, false);
730
+ }
731
+
700
732
  // 连接线设置 默认值
701
733
  static LinkSettingsDefault: LinkSettings = {
702
734
  stroke: '',
@@ -13,6 +13,7 @@ export class PositionTool {
13
13
 
14
14
  // 自适应大小
15
15
  positionFit() {
16
+ const { pageWidth, pageHeight } = this.render.getPageSettings();
16
17
  const children = [
17
18
  ...this.render.layer.getChildren(),
18
19
  ...this.render.layerCover.find('.link-line')
@@ -21,9 +22,7 @@ export class PositionTool {
21
22
  let minX = Infinity,
22
23
  maxX = -Infinity,
23
24
  minY = Infinity,
24
- maxY = -Infinity,
25
- minStartX = Infinity,
26
- minStartY = Infinity;
25
+ maxY = -Infinity;
27
26
 
28
27
  const stageState = this.render.getStageState();
29
28
  for (const node of children) {
@@ -34,64 +33,40 @@ export class PositionTool {
34
33
  width: this.render.toStageValue(rect.width),
35
34
  height: this.render.toStageValue(rect.height)
36
35
  }))(node.getClientRect());
37
- if (x < minX) {
38
- minX = x;
39
- }
40
- if (x + width > maxX) {
41
- maxX = x + width;
42
- }
43
- if (y < minY) {
44
- minY = y;
45
- }
46
- if (y + height > maxY) {
47
- maxY = y + height;
48
- }
49
-
50
- if (x < minStartX) {
51
- minStartX = x;
52
- }
53
- if (y < minStartY) {
54
- minStartY = y;
55
- }
36
+ if (x < minX) minX = x;
37
+ if (x + width > maxX) maxX = x + width;
38
+ if (y < minY) minY = y;
39
+ if (y + height > maxY) maxY = y + height;
56
40
  } else if (node instanceof Konva.Line && node.name() === 'link-line') {
57
41
  // 连线占用空间
58
42
  const points = node.points();
59
43
  for (let i = 0; i < points.length; i += 2) {
60
- const [x, y] = [points[i], points[i + 1]];
61
- if (x < minX) {
62
- minX = x - 1;
63
- }
64
- if (x > maxX) {
65
- maxX = x + 1;
66
- }
67
- if (y < minY) {
68
- minY = y - 1;
69
- }
70
- if (y > maxY) {
71
- maxY = y + 1;
72
- }
73
- if (x < minStartX) {
74
- minStartX = x - 1;
75
- }
76
- if (y < minStartY) {
77
- minStartY = y - 1;
78
- }
44
+ const [px, py] = [points[i], points[i + 1]];
45
+ if (px < minX) minX = px - 1;
46
+ if (px > maxX) maxX = px + 1;
47
+ if (py < minY) minY = py - 1;
48
+ if (py > maxY) maxY = py + 1;
79
49
  }
80
50
  }
81
51
  }
82
52
 
83
- minX === Infinity && (minX = (this.render.stage.width() - this.render.rulerSize) / 2);
84
- maxX === -Infinity && (maxX = minX);
85
- minY === Infinity && (minY = (this.render.stage.height() - this.render.rulerSize) / 2);
86
- maxY === -Infinity && (maxY = minY);
87
- minStartX === Infinity && minX;
88
- minStartY === Infinity && minY;
53
+ // 把画布区域也纳入计算范围(画布从 (0,0) (pageWidth, pageHeight)
54
+ if (0 < minX) minX = 0;
55
+ if (pageWidth > maxX) maxX = pageWidth;
56
+ if (0 < minY) minY = 0;
57
+ if (pageHeight > maxY) maxY = pageHeight;
58
+
59
+ // 没有素材时,以画布自身为准
60
+ if (minX === Infinity) minX = 0;
61
+ if (maxX === -Infinity) maxX = pageWidth;
62
+ if (minY === Infinity) minY = 0;
63
+ if (maxY === -Infinity) maxY = pageHeight;
89
64
 
90
- const assetSize = {
65
+ const contentSize = {
91
66
  width: maxX - minX,
92
67
  height: maxY - minY
93
68
  };
94
- const assetRate = assetSize.width / assetSize.height;
69
+ const contentRate = contentSize.width / contentSize.height;
95
70
 
96
71
  const viewSize = {
97
72
  width: this.render.stage.width() - (this.render.config.readonly ? 0 : this.render.rulerSize),
@@ -100,29 +75,36 @@ export class PositionTool {
100
75
  const viewRate = viewSize.width / viewSize.height;
101
76
  let scale = 1;
102
77
 
103
- if (viewRate > assetRate) {
104
- scale = viewSize.height / assetSize.height;
105
- } else if (viewRate < assetRate) {
106
- scale = viewSize.width / assetSize.width;
78
+ // 设置padding,避免边缘紧贴
79
+ const padding = 20;
80
+ const effectiveWidth = viewSize.width - padding * 2;
81
+ const effectiveHeight = viewSize.height - padding * 2;
82
+
83
+ if (viewRate > contentRate) { // 视口比内容更"扁",以高度为基准
84
+ scale = effectiveHeight / contentSize.height;
85
+ } else { // 视口比内容更"长",以宽度为基准
86
+ scale = effectiveWidth / contentSize.width;
107
87
  }
108
88
 
109
89
  scale = Math.max(0.2, scale);
110
90
  scale = Math.floor(scale * 100) / 100;
111
91
 
112
- if (assetSize.width <= viewSize.width && assetSize.height <= viewSize.height) {
113
- scale = 1;
114
- }
92
+ // 设置缩放比例最大为1(暂时隐藏)
93
+ // if (contentSize.width * scale <= viewSize.width && contentSize.height * scale <= viewSize.height) {
94
+ // scale = Math.min(1, scale);
95
+ // }
96
+
115
97
  this.render.stage.setAttrs({
116
98
  scale: { x: scale, y: scale },
117
99
  position: {
118
100
  x:
119
101
  (this.render.config.readonly ? 0 : this.render.rulerSize) -
120
102
  minX * scale +
121
- (viewSize.width - assetSize.width * scale) / 2,
103
+ (viewSize.width - contentSize.width * scale) / 2,
122
104
  y:
123
105
  (this.render.config.readonly ? 0 : this.render.rulerSize) -
124
106
  minY * scale +
125
- (viewSize.height - assetSize.height * scale) / 2
107
+ (viewSize.height - contentSize.height * scale) / 2
126
108
  }
127
109
  });
128
110
 
@@ -247,7 +247,11 @@ export interface PageSettings {
247
247
  pageWidth: number;
248
248
  pageHeight: number;
249
249
  // 样式设置
250
- background: string;
250
+ background?: string;
251
+ backgroundImg?: { // 背景图
252
+ src: string;
253
+ code: string;
254
+ };
251
255
  stroke: string;
252
256
  strokeWidth: number;
253
257
  fill: string;
@@ -0,0 +1,118 @@
1
+ import React, { useEffect, useState } from "react";
2
+ import { Upload as AntdUpLoad, UploadFile, message } from "antd";
3
+ import { RcFile } from "antd/es/upload";
4
+ import { PlusOutlined } from "@ant-design/icons";
5
+ import { HydrocarbonService, Superagent, ProgramConfig } from "../../../index";
6
+ import { fileUpload } from "../../constant";
7
+ import { useLocale } from "../../../locale/useLocale";
8
+
9
+ const { sourceId, serverKey } = fileUpload;
10
+
11
+ // 本地文件上传,处理url
12
+ const handleImgUrl = (basePath: string) => {
13
+ if (basePath.startsWith("http")) {
14
+ return basePath;
15
+ }
16
+ const url = encodeURI(ProgramConfig.joinPath(
17
+ ProgramConfig.joinPath(ProgramConfig.api(), "/v3/files"),
18
+ basePath
19
+ )) +
20
+ `?@token=${ProgramConfig.hydrocarbonToken()}&@programToken=${ProgramConfig.programCode(serverKey)}`;
21
+ return url;
22
+ }
23
+
24
+ const fileInfo = {
25
+ uid: '-1',
26
+ name: 'image.png',
27
+ status: 'done',
28
+ };
29
+
30
+ export interface CommonFilePath {
31
+ fileName?: string;
32
+ contentType?: string;//文件类型
33
+ path?: string;
34
+ iconPath?: string;
35
+ valid?: string;
36
+ baseType?: string;
37
+ basePath?: string;
38
+ };
39
+
40
+
41
+ export interface UploadProps {
42
+ accept?: string;
43
+ size?: number;
44
+ onChange?: (data: { src: string, code: string }) => void;
45
+ value?: { src: string, code: string };
46
+ recordCode?: string; // 当前画面关联数据code,用于图片命名区分
47
+ }
48
+
49
+ const ImageUpload: React.FC<UploadProps> = (props) => {
50
+ const { onChange, accept, size, recordCode, value } = props;
51
+ const [fileList, setFileList] = useState([]);
52
+ const [imgCode, setImgCode] = useState<string>(); // 本地图片code
53
+ const { translate } = useLocale();
54
+
55
+ useEffect(() => {
56
+ setFileList(value?.src ? [{ ...fileInfo, url: handleImgUrl(value?.src) }] : []);
57
+ setImgCode(value?.code);
58
+ }, [value]);
59
+
60
+ const beforeUpload = async (file: RcFile) => {
61
+ if (size && file.size > size * 1024 * 1024) {
62
+ message.warning(translate("${文件大小不能超过}") + `${size}M`);
63
+ return false;
64
+ }
65
+ return true;
66
+ }
67
+
68
+ const handleChange = async (info) => {
69
+ if (info.file.status == "done") {
70
+ const fileKey = info.file.response.fileKey;
71
+ const fileName = info.file.name;
72
+ const data = { valid: "new", fileKey, fileName };
73
+ const result = { 描述: `${recordCode || ""}-${fileName}`, 文件: JSON.stringify(data) };
74
+ const { code } = await HydrocarbonService.postMstrucDtmplData(serverKey, sourceId, result, message);
75
+ setImgCode(code);
76
+ const imgData = await HydrocarbonService.requestMstrucDtmplData(serverKey, sourceId, code, null);
77
+ const basePath = JSON.parse(imgData.fieldMap["文件"] || "{}").base?.path;
78
+ if (basePath) {
79
+ const url = handleImgUrl(basePath);
80
+ setFileList([{ ...info.file, url }]);
81
+ // onChange?.(url);
82
+ onChange?.({ src: url, code });
83
+ } else {
84
+ setFileList([...info.fileList]);
85
+ }
86
+ } else {
87
+ setFileList([...info.fileList]);
88
+ }
89
+ };
90
+
91
+ const handleDelete = async () => {
92
+ await HydrocarbonService.deleteByCode(serverKey, sourceId, [imgCode]);
93
+ setFileList([]);
94
+ onChange?.(null);
95
+ };
96
+
97
+ return (
98
+ <AntdUpLoad
99
+ action={(file) => HydrocarbonService.postFileAction(serverKey, file)}
100
+ headers={Superagent.getHeaderObj(serverKey)}
101
+ name={'file'}
102
+ beforeUpload={beforeUpload}
103
+ listType={'picture-card'}
104
+ fileList={fileList?.length ? fileList as Array<UploadFile> : undefined}
105
+ accept={accept}
106
+ onChange={handleChange}
107
+ onRemove={handleDelete}
108
+ onPreview={() => window.open(fileList[0].url)}
109
+ >
110
+ {fileList.length > 0 ? null : <div className={'upload-btn'}>
111
+ <PlusOutlined />
112
+ <div style={{ marginTop: 8 }}>{translate("${上传图片}")}</div>
113
+ </div>}
114
+ </AntdUpLoad>
115
+ )
116
+ };
117
+
118
+ export default ImageUpload;
@@ -1,12 +1,22 @@
1
1
  import React, { useEffect, useMemo, useState } from 'react';
2
- import { Form as AntdForm, Collapse } from "antd";
2
+ import { Form as AntdForm, Collapse, Row, Col } from "antd";
3
3
  import _ from "lodash";
4
- import FormItemGroup from "../../../../form/form-Item-group";
4
+ import FormItemGroup from "../../../form/form-Item-group";
5
+ import { FieldConfig } from "../../../tmpl/interface";
5
6
  import { PageSettings, AssetSettings, LinkSettings } from '../render/types';
6
7
  import type Konva from 'konva';
8
+ import { ProgramConfig } from "../../../index";
9
+ import { useLocale } from "../../../locale/useLocale";
10
+ import ImageUpload from "./imag-upload";
7
11
 
8
12
  const FormItem = AntdForm.Item;
9
13
 
14
+ // ID配置
15
+ const baseSetting = [{ title: "ID", id: "id", extControlType: "text", disabled: true, style: { width: "100%" } }];
16
+
17
+ // 数据源配置
18
+ const defDataSourceSetting = { title: "数据源", id: "dataSource", extControlType: "select", options: [], style: { width: "100%" } };
19
+
10
20
  // 坐标配置
11
21
  const positionSetting = {
12
22
  title: "坐标",
@@ -74,9 +84,9 @@ const defFormConfig = {
74
84
  groups: [
75
85
  {
76
86
  fields: [
77
- { title: "文本", id: "text", extControlType: "textarea", style: { width: "100%" } },
87
+ { title: "默认文本", id: "text", extControlType: "textarea", style: { width: "100%" } },
78
88
  { title: "文本颜色", id: "textFill", extControlType: "color", style: { width: "100%" } },
79
- { title: "字体大小", id: "fontSize", extControlType: "int", min: 1, style: { width: "100%" } },
89
+ { title: "字体大小", id: "fontSize", extControlType: "int", min: 1, style: { width: "100%" } }
80
90
  ]
81
91
  },
82
92
  positionSetting
@@ -93,50 +103,121 @@ interface Props {
93
103
  linkCurrent?: Konva.Line; // 当前选中连线
94
104
  linkSettings?: LinkSettings; // 当前选中连线配置
95
105
  onLinkSettingsChange: (s: LinkSettings) => void; // 更新当前选中连线配置
96
- formConfig?: { [key: string]: any }; // 表单配置
106
+ recordCode?: string; // 当前画面关联数据code
97
107
  }
98
108
 
99
109
  const Index = (props: Props) => {
100
- const { pageSettings, onPageSettingsChange, assetCurrent, assetSettings, onAssetSettingsChange, linkCurrent, linkSettings, onLinkSettingsChange, formConfig } = props;
110
+ const { pageSettings, onPageSettingsChange, assetCurrent, assetSettings, onAssetSettingsChange, linkCurrent, linkSettings, onLinkSettingsChange, recordCode } = props;
101
111
  const formData = assetCurrent ? assetSettings : (linkCurrent ? linkSettings : pageSettings);
102
112
  const [form] = AntdForm.useForm();
103
113
  const [formConfigs, setFormConfigs] = useState<{ [key: string]: any }>([]);
114
+ const { translate } = useLocale();
115
+
116
+ // 自定义表单项
117
+ const customFormItem = (items: { [key: string]: any }[], layout?: "vertical" | "horizontal") => {
118
+ const entryControls = items.map(item => {
119
+ const { extControlType } = item || {};
120
+ if (!extControlType) {
121
+ return null;
122
+ }
123
+ let entryControl;
124
+ switch (extControlType) {
125
+ case "picture":
126
+ entryControl = <ImageUpload recordCode={recordCode} />;
127
+ break;
128
+ default:
129
+ break;
130
+ }
131
+ if (!entryControl) {
132
+ return null;
133
+ }
134
+ const colSpan = item.colSpan || 2;
135
+ return <Col key={item.id} span={12 * colSpan} style={{ width: "stretch" }}>
136
+ <FormItem
137
+ layout={layout}
138
+ label={translate("${" + item.title + "}")}
139
+ noStyle={item.noStyle || false}
140
+ hidden={item.hidden}
141
+ name={item.id}
142
+ key={item.id}
143
+ labelCol={{ span: 24 }}
144
+ wrapperCol={{ span: 24 }}
145
+ tooltip={!item.tip ? undefined : item.tip}
146
+ style={{ margin: "4px 4px 12px" }}
147
+ >{entryControl}</FormItem>
148
+ </Col>;
149
+ }).filter(Boolean);
150
+ return <Row gutter={[16, 0]} key={1}>{entryControls}</Row>;
151
+ }
152
+
153
+ // 处理表单组件使用公共组件or自定义组件
154
+ const handleFormItemType = (fields: FieldConfig[], layout?: "vertical" | "horizontal") => {
155
+ const customTypes = ["picture"]; // 自定义组件类型
156
+ const temArr = fields?.reduce((total, item) => {
157
+ const isCustom = customTypes.includes(item.extControlType || "");
158
+ const lastItem = total[total.length - 1];
159
+ if (lastItem && ((lastItem.type === "custom" && isCustom) || (lastItem.type === "default" && !isCustom))) {
160
+ lastItem.fields.push(item);
161
+ total[total.length - 1] = lastItem;
162
+ } else {
163
+ total.push({ type: isCustom ? "custom" : "default", fields: [item] });
164
+ }
165
+ return total;
166
+ }, []) || [];
167
+ return temArr.map(item => item.type === "default" ? <FormItemGroup layout={layout} fields={item.fields || undefined} valueMap={undefined} /> : customFormItem(item.fields, layout));
168
+ }
104
169
 
105
170
  // FormItem渲染
106
171
  const renderFormItem = (item: { [key: string]: any }) => {
107
172
  if (item.groups) {
108
173
  return item.groups.map(r => {
109
174
  if (r?.isGroup) { // 表单分组显示
110
- return <FormItem label={r.title} layout='vertical' style={{ margin: "12px 0", paddingInline: "8px" }}>
111
- <FormItemGroup fields={r.fields || undefined} valueMap={undefined} />
175
+ return <FormItem label={r.title} layout='vertical' style={{ marginBottom: "12px", paddingInline: "4px" }}>
176
+ {handleFormItemType(r.fields)}
112
177
  </FormItem>;
113
178
  }
114
- return <FormItemGroup layout='vertical' fields={r.fields || undefined} valueMap={undefined} />;
179
+ return handleFormItemType(r.fields, "vertical");
115
180
  });
116
181
  }
117
- return <FormItemGroup layout='vertical' fields={item.fields || undefined} valueMap={undefined} />;
182
+ return handleFormItemType(item.fields, "vertical");
118
183
  }
119
184
 
120
185
  // 当前表单配置
121
186
  const currentFormConfig = useMemo(() => {
122
- let temFormConfig = formConfig || (linkCurrent ? defFormConfig["linkSetting"] : defFormConfig["pageSetting"]);
187
+ let temFormConfig: any = linkCurrent ? defFormConfig["linkSetting"] : defFormConfig["pageSetting"];
123
188
  if (assetCurrent) {
124
189
  const assetType = assetCurrent.getAttr("assetType");
125
190
  const graphType = assetCurrent.getAttr("graphType");
126
- temFormConfig = defFormConfig[assetType === "Text" ? "Text" : graphType] || temFormConfig;
191
+ const componentType = assetCurrent.getAttr("componentType"); // 组件类型-用于匹配表单等
192
+ temFormConfig = defFormConfig[assetType === "Text" ? "Text" : graphType];
193
+ if (!temFormConfig) { // 默认表单不存在配置则获取组件中的表单配置
194
+ const currentItem: any = ProgramConfig.get2DComponentByType(componentType);
195
+ const { config, dataSource, alterDataSources } = currentItem || {};
196
+ temFormConfig = JSON.parse(config || "[]");
197
+ if (dataSource || alterDataSources) { // 数据源配置
198
+ const temArr = [dataSource, ...(alterDataSources || [])].filter(Boolean).map(r => {
199
+ const [key, label] = r.split("@R@");
200
+ return { label, value: key };
201
+ });
202
+ const dataSourceSetting = { title: "数据", fields: [{ ...defDataSourceSetting, options: temArr, defValue: dataSource ? temArr[0]?.value : undefined }] };
203
+ temFormConfig = [dataSourceSetting, ...temFormConfig];
204
+ }
205
+ }
127
206
  }
128
207
  const configArr = temFormConfig.map(r => r.groups ? r.groups.map(i => i.fields) : r.fields).flat(Infinity);
129
208
  setFormConfigs(configArr);
130
209
  return temFormConfig;
131
- }, [formConfig, linkCurrent, assetCurrent]);
210
+ }, [assetCurrent, linkCurrent]);
132
211
 
212
+ // 表单渲染
133
213
  const fieldGroupList = () => {
214
+ const renderId = handleFormItemType(baseSetting, "vertical");
134
215
  const items = currentFormConfig?.map((item, index) => ({
135
216
  key: index,
136
217
  label: item.title,
137
- children: renderFormItem(item)
218
+ children: assetCurrent && item.title === "基本信息" ? [renderId, ...renderFormItem(item)] : renderFormItem(item)
138
219
  }));
139
- return <Collapse bordered={false} size="small" defaultActiveKey={0} items={items} />;
220
+ return <Collapse styles={{ body: { padding: "0px 16px" } }} bordered={false} size="small" defaultActiveKey={[0, 1]} items={items} />;
140
221
  };
141
222
 
142
223
  // 更新数据
@@ -161,12 +242,21 @@ const Index = (props: Props) => {
161
242
  onLinkSettingsChange({ ...linkSettings, ...temVal });
162
243
  return;
163
244
  }
245
+ // 画布背景图片颜色-只能设置一个
246
+ let background = pageSettings.background;
247
+ let backgroundImg = pageSettings.backgroundImg;
248
+ if (val.background || val.backgroundImg) {
249
+ background = null;
250
+ backgroundImg = null;
251
+ }
252
+ form.setFieldsValue({ background, backgroundImg, ...temVal });
164
253
  // 默认画布配置
165
- onPageSettingsChange({ ...pageSettings, ...temVal });
254
+ onPageSettingsChange({ ...pageSettings, background, backgroundImg, ...temVal });
166
255
  }
167
256
 
168
257
  // 表单数据实时回显更新
169
258
  const formSetFieldsValue = () => {
259
+ const nodeId = assetCurrent?.getAttr("id");
170
260
  const temVal = _.cloneDeep(formData);
171
261
  Object.keys(temVal).forEach((key) => { // 使用公共表单组件,转换指定类型值
172
262
  const extControlType = formConfigs.find((item: any) => item.id === key)?.extControlType;
@@ -175,7 +265,11 @@ const Index = (props: Props) => {
175
265
  return;
176
266
  }
177
267
  });
178
- form.setFieldsValue(temVal);
268
+ const dataSourceConfig = formConfigs.find((item: any) => item.id === "dataSource");
269
+ if (dataSourceConfig) { // 数据源-无配置设置默认值
270
+ temVal["dataSource"] = temVal["dataSource"] || dataSourceConfig.defValue;
271
+ }
272
+ form.setFieldsValue({ ...temVal, id: nodeId });
179
273
  }
180
274
 
181
275
  // 表单数据实时回显更新