@ibiz-template/runtime 0.1.28 → 0.1.29

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 (285) hide show
  1. package/dist/index.esm.js +2201 -1084
  2. package/dist/index.system.min.js +1 -1
  3. package/dist/index.system.min.js.map +1 -1
  4. package/out/app-hub.d.ts +9 -0
  5. package/out/app-hub.d.ts.map +1 -1
  6. package/out/app-hub.js +4 -0
  7. package/out/application.d.ts +9 -1
  8. package/out/application.d.ts.map +1 -1
  9. package/out/application.js +2 -1
  10. package/out/command/app/open-app-view/open-app-view.d.ts +1 -1
  11. package/out/command/app/open-app-view/open-app-view.d.ts.map +1 -1
  12. package/out/command/app/open-app-view/open-app-view.js +16 -5
  13. package/out/controller/common/control/md-control.controller.d.ts.map +1 -1
  14. package/out/controller/common/control/md-control.controller.js +5 -1
  15. package/out/controller/common/view/view.controller.d.ts +23 -1
  16. package/out/controller/common/view/view.controller.d.ts.map +1 -1
  17. package/out/controller/common/view/view.controller.js +52 -0
  18. package/out/controller/control/dashboard/custom-dashboard.controller.d.ts +69 -0
  19. package/out/controller/control/dashboard/custom-dashboard.controller.d.ts.map +1 -0
  20. package/out/controller/control/dashboard/custom-dashboard.controller.js +85 -0
  21. package/out/controller/control/dashboard/dashboard.controller.d.ts.map +1 -1
  22. package/out/controller/control/dashboard/dashboard.controller.js +2 -6
  23. package/out/controller/control/dashboard/index.d.ts +1 -0
  24. package/out/controller/control/dashboard/index.d.ts.map +1 -1
  25. package/out/controller/control/dashboard/index.js +1 -0
  26. package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.d.ts +15 -1
  27. package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.d.ts.map +1 -1
  28. package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.js +26 -9
  29. package/out/controller/control/form/edit-form/edit-form.controller.d.ts +11 -2
  30. package/out/controller/control/form/edit-form/edit-form.controller.d.ts.map +1 -1
  31. package/out/controller/control/form/edit-form/edit-form.controller.js +56 -2
  32. package/out/controller/control/form/edit-form/edit-form.service.js +1 -1
  33. package/out/controller/control/form/form/form.controller.d.ts.map +1 -1
  34. package/out/controller/control/form/form/form.controller.js +2 -6
  35. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  36. package/out/controller/control/grid/grid/grid.controller.js +5 -10
  37. package/out/controller/control/index.d.ts +2 -0
  38. package/out/controller/control/index.d.ts.map +1 -1
  39. package/out/controller/control/index.js +2 -0
  40. package/out/controller/control/toolbar/toolbar.controllerr.d.ts.map +1 -1
  41. package/out/controller/control/toolbar/toolbar.controllerr.js +8 -8
  42. package/out/controller/control/tree/tree.service.d.ts.map +1 -1
  43. package/out/controller/control/tree/tree.service.js +6 -11
  44. package/out/controller/control/tree-grid/index.d.ts +3 -0
  45. package/out/controller/control/tree-grid/index.d.ts.map +1 -0
  46. package/out/controller/control/tree-grid/index.js +2 -0
  47. package/out/controller/control/tree-grid/tree-grid.controller.d.ts +5 -0
  48. package/out/controller/control/tree-grid/tree-grid.controller.d.ts.map +1 -0
  49. package/out/controller/control/tree-grid/tree-grid.controller.js +3 -0
  50. package/out/controller/control/tree-grid/tree-grid.service.d.ts +13 -0
  51. package/out/controller/control/tree-grid/tree-grid.service.d.ts.map +1 -0
  52. package/out/controller/control/tree-grid/tree-grid.service.js +12 -0
  53. package/out/controller/control/tree-grid-ex/index.d.ts +3 -0
  54. package/out/controller/control/tree-grid-ex/index.d.ts.map +1 -0
  55. package/out/controller/control/tree-grid-ex/index.js +2 -0
  56. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts +134 -0
  57. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts.map +1 -0
  58. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.js +240 -0
  59. package/out/controller/control/tree-grid-ex/tree-grid-ex.service.d.ts +65 -0
  60. package/out/controller/control/tree-grid-ex/tree-grid-ex.service.d.ts.map +1 -0
  61. package/out/controller/control/tree-grid-ex/tree-grid-ex.service.js +143 -0
  62. package/out/controller/utils/event/controller-event.d.ts +7 -0
  63. package/out/controller/utils/event/controller-event.d.ts.map +1 -1
  64. package/out/controller/utils/event/controller-event.js +12 -0
  65. package/out/controller/utils/view-msg/index.d.ts +2 -0
  66. package/out/controller/utils/view-msg/index.d.ts.map +1 -0
  67. package/out/controller/utils/view-msg/index.js +1 -0
  68. package/out/controller/utils/view-msg/view-msg-controller.d.ts +69 -0
  69. package/out/controller/utils/view-msg/view-msg-controller.d.ts.map +1 -0
  70. package/out/controller/utils/view-msg/view-msg-controller.js +176 -0
  71. package/out/de-logic/de-logic-context.d.ts +8 -0
  72. package/out/de-logic/de-logic-context.d.ts.map +1 -1
  73. package/out/de-logic/de-logic-context.js +11 -0
  74. package/out/de-logic/de-logic-node/prepare-param-node/prepare-param-node.d.ts.map +1 -1
  75. package/out/de-logic/de-logic-node/prepare-param-node/prepare-param-node.js +5 -1
  76. package/out/de-logic/utils/handle-src-val.d.ts.map +1 -1
  77. package/out/de-logic/utils/handle-src-val.js +19 -8
  78. package/out/engine/md-view.engine.d.ts.map +1 -1
  79. package/out/engine/md-view.engine.js +5 -4
  80. package/out/global/global-util/global-util.d.ts +8 -0
  81. package/out/global/global-util/global-util.d.ts.map +1 -1
  82. package/out/global/global-util/global-util.js +8 -0
  83. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts +9 -0
  84. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts.map +1 -1
  85. package/out/interface/common/i-app-service/i-app-service.d.ts +9 -0
  86. package/out/interface/common/i-app-service/i-app-service.d.ts.map +1 -1
  87. package/out/interface/common/i-error-handler/i-error-handler.d.ts +17 -0
  88. package/out/interface/common/i-error-handler/i-error-handler.d.ts.map +1 -0
  89. package/out/interface/common/i-error-handler/i-error-handler.js +1 -0
  90. package/out/interface/common/index.d.ts +1 -0
  91. package/out/interface/common/index.d.ts.map +1 -1
  92. package/out/interface/controller/common/index.d.ts +1 -0
  93. package/out/interface/controller/common/index.d.ts.map +1 -1
  94. package/out/interface/controller/common/index.js +1 -0
  95. package/out/interface/controller/common/view-message/i-view-message.d.ts +39 -0
  96. package/out/interface/controller/common/view-message/i-view-message.d.ts.map +1 -0
  97. package/out/interface/controller/common/view-message/i-view-message.js +1 -0
  98. package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts +16 -0
  99. package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts.map +1 -0
  100. package/out/interface/controller/controller/control/i-tree-grid-ex.controller.js +1 -0
  101. package/out/interface/controller/controller/control/i-tree-grid.controller.d.ts +13 -0
  102. package/out/interface/controller/controller/control/i-tree-grid.controller.d.ts.map +1 -0
  103. package/out/interface/controller/controller/control/i-tree-grid.controller.js +1 -0
  104. package/out/interface/controller/controller/control/index.d.ts +2 -0
  105. package/out/interface/controller/controller/control/index.d.ts.map +1 -1
  106. package/out/interface/controller/controller/control/index.js +2 -0
  107. package/out/interface/controller/controller/control/portlet/i-portlet.controller.d.ts +7 -0
  108. package/out/interface/controller/controller/control/portlet/i-portlet.controller.d.ts.map +1 -1
  109. package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts +13 -0
  110. package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts.map +1 -0
  111. package/out/interface/controller/event/control/i-tree-grid-ex.event.js +1 -0
  112. package/out/interface/controller/event/control/i-tree-grid.event.d.ts +13 -0
  113. package/out/interface/controller/event/control/i-tree-grid.event.d.ts.map +1 -0
  114. package/out/interface/controller/event/control/i-tree-grid.event.js +1 -0
  115. package/out/interface/controller/event/control/index.d.ts +2 -0
  116. package/out/interface/controller/event/control/index.d.ts.map +1 -1
  117. package/out/interface/controller/event/control/index.js +2 -0
  118. package/out/interface/controller/event/view/i-tree-grid-ex-view.event.d.ts +12 -0
  119. package/out/interface/controller/event/view/i-tree-grid-ex-view.event.d.ts.map +1 -0
  120. package/out/interface/controller/event/view/i-tree-grid-ex-view.event.js +1 -0
  121. package/out/interface/controller/event/view/i-tree-grid-view.event.d.ts +12 -0
  122. package/out/interface/controller/event/view/i-tree-grid-view.event.d.ts.map +1 -0
  123. package/out/interface/controller/event/view/i-tree-grid-view.event.js +1 -0
  124. package/out/interface/controller/event/view/index.d.ts +2 -0
  125. package/out/interface/controller/event/view/index.d.ts.map +1 -1
  126. package/out/interface/controller/event/view/index.js +2 -0
  127. package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts +52 -0
  128. package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts.map +1 -0
  129. package/out/interface/controller/state/control/i-tree-grid-ex.state.js +1 -0
  130. package/out/interface/controller/state/control/i-tree-grid.state.d.ts +13 -0
  131. package/out/interface/controller/state/control/i-tree-grid.state.d.ts.map +1 -0
  132. package/out/interface/controller/state/control/i-tree-grid.state.js +1 -0
  133. package/out/interface/controller/state/control/index.d.ts +2 -0
  134. package/out/interface/controller/state/control/index.d.ts.map +1 -1
  135. package/out/interface/controller/state/control/index.js +2 -0
  136. package/out/interface/controller/state/view/i-edit-view.state.d.ts +8 -0
  137. package/out/interface/controller/state/view/i-edit-view.state.d.ts.map +1 -1
  138. package/out/interface/controller/state/view/i-tree-grid-ex-view.state.d.ts +13 -0
  139. package/out/interface/controller/state/view/i-tree-grid-ex-view.state.d.ts.map +1 -0
  140. package/out/interface/controller/state/view/i-tree-grid-ex-view.state.js +1 -0
  141. package/out/interface/controller/state/view/i-tree-grid-view.state.d.ts +13 -0
  142. package/out/interface/controller/state/view/i-tree-grid-view.state.d.ts.map +1 -0
  143. package/out/interface/controller/state/view/i-tree-grid-view.state.js +1 -0
  144. package/out/interface/controller/state/view/i-view.state.d.ts +10 -0
  145. package/out/interface/controller/state/view/i-view.state.d.ts.map +1 -1
  146. package/out/interface/controller/state/view/index.d.ts +2 -0
  147. package/out/interface/controller/state/view/index.d.ts.map +1 -1
  148. package/out/interface/controller/state/view/index.js +2 -0
  149. package/out/interface/provider/i-grid-column.provider.d.ts +2 -1
  150. package/out/interface/provider/i-grid-column.provider.d.ts.map +1 -1
  151. package/out/interface/service/service/i-app-de.service.d.ts +9 -0
  152. package/out/interface/service/service/i-app-de.service.d.ts.map +1 -1
  153. package/out/interface/service/service/i-config.service.d.ts +20 -0
  154. package/out/interface/service/service/i-config.service.d.ts.map +1 -0
  155. package/out/interface/service/service/i-config.service.js +1 -0
  156. package/out/interface/service/service/index.d.ts +1 -0
  157. package/out/interface/service/service/index.d.ts.map +1 -1
  158. package/out/logic-scheduler/executor/app-ui-logic-executor.d.ts.map +1 -1
  159. package/out/logic-scheduler/executor/app-ui-logic-executor.js +10 -4
  160. package/out/logic-scheduler/trigger/item-dyna-logic-trigger.d.ts.map +1 -1
  161. package/out/logic-scheduler/trigger/item-dyna-logic-trigger.js +1 -4
  162. package/out/model/data-entity/data-entity.js +2 -2
  163. package/out/register/helper/control-register.d.ts.map +1 -1
  164. package/out/register/helper/control-register.js +6 -1
  165. package/out/service/app-data-entity/app-data-entity.d.ts +10 -0
  166. package/out/service/app-data-entity/app-data-entity.d.ts.map +1 -1
  167. package/out/service/app-data-entity/app-data-entity.js +40 -13
  168. package/out/service/service/config/config.service.d.ts +43 -0
  169. package/out/service/service/config/config.service.d.ts.map +1 -0
  170. package/out/service/service/config/config.service.js +54 -0
  171. package/out/service/service/entity/de.service.d.ts +9 -0
  172. package/out/service/service/entity/de.service.d.ts.map +1 -1
  173. package/out/service/service/entity/de.service.js +2 -0
  174. package/out/service/service/index.d.ts +1 -0
  175. package/out/service/service/index.d.ts.map +1 -1
  176. package/out/service/service/index.js +1 -0
  177. package/out/service/vo/control.vo.d.ts.map +1 -1
  178. package/out/service/vo/control.vo.js +1 -5
  179. package/out/ui-action/provider/backend-ui-action-provider.d.ts.map +1 -1
  180. package/out/ui-action/provider/backend-ui-action-provider.js +5 -2
  181. package/out/ui-action/provider/ui-action-provider-base.d.ts +12 -1
  182. package/out/ui-action/provider/ui-action-provider-base.d.ts.map +1 -1
  183. package/out/ui-action/provider/ui-action-provider-base.js +55 -5
  184. package/out/ui-logic/ui-logic-context.d.ts +8 -0
  185. package/out/ui-logic/ui-logic-context.d.ts.map +1 -1
  186. package/out/ui-logic/ui-logic-context.js +11 -0
  187. package/out/ui-logic/ui-logic-link/ui-logic-link.js +1 -1
  188. package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.d.ts.map +1 -1
  189. package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.js +5 -1
  190. package/out/ui-logic/utils/handle-src-val.d.ts.map +1 -1
  191. package/out/ui-logic/utils/handle-src-val.js +17 -4
  192. package/out/utils/error-handler/default-error-handler.d.ts +13 -0
  193. package/out/utils/error-handler/default-error-handler.d.ts.map +1 -0
  194. package/out/utils/error-handler/default-error-handler.js +36 -0
  195. package/out/utils/error-handler/error-handler-center.d.ts +41 -0
  196. package/out/utils/error-handler/error-handler-center.d.ts.map +1 -0
  197. package/out/utils/error-handler/error-handler-center.js +59 -0
  198. package/out/utils/error-handler/index.d.ts +3 -0
  199. package/out/utils/error-handler/index.d.ts.map +1 -0
  200. package/out/utils/error-handler/index.js +2 -0
  201. package/out/utils/index.d.ts +1 -0
  202. package/out/utils/index.d.ts.map +1 -1
  203. package/out/utils/index.js +1 -0
  204. package/out/utils/promise/promise.d.ts +15 -0
  205. package/out/utils/promise/promise.d.ts.map +1 -0
  206. package/out/utils/promise/promise.js +38 -0
  207. package/package.json +2 -2
  208. package/src/app-hub.ts +17 -0
  209. package/src/application.ts +20 -1
  210. package/src/command/app/open-app-view/open-app-view.ts +18 -5
  211. package/src/controller/common/control/md-control.controller.ts +5 -1
  212. package/src/controller/common/view/view.controller.ts +67 -0
  213. package/src/controller/control/dashboard/custom-dashboard.controller.ts +107 -0
  214. package/src/controller/control/dashboard/dashboard.controller.ts +2 -6
  215. package/src/controller/control/dashboard/index.ts +1 -0
  216. package/src/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.ts +32 -9
  217. package/src/controller/control/form/edit-form/edit-form.controller.ts +71 -3
  218. package/src/controller/control/form/edit-form/edit-form.service.ts +1 -1
  219. package/src/controller/control/form/form/form.controller.ts +2 -6
  220. package/src/controller/control/grid/grid/grid.controller.ts +5 -9
  221. package/src/controller/control/index.ts +2 -0
  222. package/src/controller/control/toolbar/toolbar.controllerr.ts +14 -8
  223. package/src/controller/control/tree/tree.service.ts +8 -9
  224. package/src/controller/control/tree-grid/index.ts +2 -0
  225. package/src/controller/control/tree-grid/tree-grid.controller.ts +6 -0
  226. package/src/controller/control/tree-grid/tree-grid.service.ts +12 -0
  227. package/src/controller/control/tree-grid-ex/index.ts +2 -0
  228. package/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts +283 -0
  229. package/src/controller/control/tree-grid-ex/tree-grid-ex.service.ts +171 -0
  230. package/src/controller/utils/event/controller-event.ts +16 -0
  231. package/src/controller/utils/view-msg/index.ts +1 -0
  232. package/src/controller/utils/view-msg/view-msg-controller.ts +250 -0
  233. package/src/de-logic/de-logic-context.ts +12 -0
  234. package/src/de-logic/de-logic-node/prepare-param-node/prepare-param-node.ts +7 -1
  235. package/src/de-logic/utils/handle-src-val.ts +23 -10
  236. package/src/engine/md-view.engine.ts +6 -4
  237. package/src/global/global-util/global-util.ts +15 -0
  238. package/src/interface/common/i-app-hub-service/i-app-hub-service.ts +10 -0
  239. package/src/interface/common/i-app-service/i-app-service.ts +10 -0
  240. package/src/interface/common/i-error-handler/i-error-handler.ts +16 -0
  241. package/src/interface/common/index.ts +1 -0
  242. package/src/interface/controller/common/index.ts +1 -0
  243. package/src/interface/controller/common/view-message/i-view-message.ts +42 -0
  244. package/src/interface/controller/controller/control/i-tree-grid-ex.controller.ts +20 -0
  245. package/src/interface/controller/controller/control/i-tree-grid.controller.ts +12 -0
  246. package/src/interface/controller/controller/control/index.ts +2 -0
  247. package/src/interface/controller/controller/control/portlet/i-portlet.controller.ts +8 -0
  248. package/src/interface/controller/event/control/i-tree-grid-ex.event.ts +12 -0
  249. package/src/interface/controller/event/control/i-tree-grid.event.ts +12 -0
  250. package/src/interface/controller/event/control/index.ts +2 -0
  251. package/src/interface/controller/event/view/i-tree-grid-ex-view.event.ts +12 -0
  252. package/src/interface/controller/event/view/i-tree-grid-view.event.ts +12 -0
  253. package/src/interface/controller/event/view/index.ts +2 -0
  254. package/src/interface/controller/state/control/i-tree-grid-ex.state.ts +56 -0
  255. package/src/interface/controller/state/control/i-tree-grid.state.ts +12 -0
  256. package/src/interface/controller/state/control/index.ts +2 -0
  257. package/src/interface/controller/state/view/i-edit-view.state.ts +10 -1
  258. package/src/interface/controller/state/view/i-tree-grid-ex-view.state.ts +12 -0
  259. package/src/interface/controller/state/view/i-tree-grid-view.state.ts +12 -0
  260. package/src/interface/controller/state/view/i-view.state.ts +9 -0
  261. package/src/interface/controller/state/view/index.ts +2 -0
  262. package/src/interface/provider/i-grid-column.provider.ts +2 -1
  263. package/src/interface/service/service/i-app-de.service.ts +10 -0
  264. package/src/interface/service/service/i-config.service.ts +20 -0
  265. package/src/interface/service/service/index.ts +1 -0
  266. package/src/logic-scheduler/executor/app-ui-logic-executor.ts +13 -4
  267. package/src/logic-scheduler/trigger/item-dyna-logic-trigger.ts +1 -4
  268. package/src/model/data-entity/data-entity.ts +2 -2
  269. package/src/register/helper/control-register.ts +6 -1
  270. package/src/service/app-data-entity/app-data-entity.ts +44 -13
  271. package/src/service/service/config/config.service.ts +65 -0
  272. package/src/service/service/entity/de.service.ts +15 -0
  273. package/src/service/service/index.ts +1 -0
  274. package/src/service/vo/control.vo.ts +1 -6
  275. package/src/ui-action/provider/backend-ui-action-provider.ts +5 -2
  276. package/src/ui-action/provider/ui-action-provider-base.ts +68 -6
  277. package/src/ui-logic/ui-logic-context.ts +12 -0
  278. package/src/ui-logic/ui-logic-link/ui-logic-link.ts +1 -1
  279. package/src/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.ts +7 -1
  280. package/src/ui-logic/utils/handle-src-val.ts +20 -4
  281. package/src/utils/error-handler/default-error-handler.ts +40 -0
  282. package/src/utils/error-handler/error-handler-center.ts +61 -0
  283. package/src/utils/error-handler/index.ts +2 -0
  284. package/src/utils/index.ts +1 -0
  285. package/src/utils/promise/promise.ts +41 -0
@@ -5,14 +5,18 @@ import {
5
5
  RuntimeError,
6
6
  mergeDefaultInLeft,
7
7
  } from '@ibiz-template/core';
8
- import { IDEEditForm } from '@ibiz/model-core';
8
+ import { IAppDEEditView, IDEEditForm } from '@ibiz/model-core';
9
9
  import { debounce } from 'lodash-es';
10
+ import { clone } from 'ramda';
10
11
  import {
11
12
  IEditFormState,
12
13
  IEditFormEvent,
13
14
  IEditFormController,
15
+ IViewController,
16
+ IEditViewState,
17
+ IEditViewEvent,
14
18
  } from '../../../../interface';
15
- import { hasDeCodeName } from '../../../../model';
19
+ import { calcDeCodeNameById, hasDeCodeName } from '../../../../model';
16
20
  import { Srfuf, ControlVO } from '../../../../service';
17
21
  import { ScriptFactory } from '../../../../utils';
18
22
  import { FormNotifyState } from '../../../constant';
@@ -40,6 +44,14 @@ export class EditFormController
40
44
  */
41
45
  service!: EditFormService;
42
46
 
47
+ get view(): IViewController<IAppDEEditView, IEditViewState, IEditViewEvent> {
48
+ return this.ctx.view as IViewController<
49
+ IAppDEEditView,
50
+ IEditViewState,
51
+ IEditViewEvent
52
+ >;
53
+ }
54
+
43
55
  /**
44
56
  * 初始化方法
45
57
  *
@@ -108,6 +120,57 @@ export class EditFormController
108
120
  return this.data;
109
121
  }
110
122
 
123
+ /**
124
+ * 拷贝模式加载数据
125
+ *
126
+ * @author chitanda
127
+ * @date 2023-09-26 19:09:21
128
+ * @return {*} {Promise<IData>}
129
+ */
130
+ protected async copy(): Promise<IData> {
131
+ const context = clone(this.context);
132
+ const queryParams: IParams = clone(this.params);
133
+
134
+ const appDataEntity = await ibiz.hub.getAppDataEntity(
135
+ this.model.appDataEntityId!,
136
+ );
137
+ const key = appDataEntity.keyAppDEFieldId;
138
+ if (key && this.params[key]) {
139
+ const deCodeName = calcDeCodeNameById(this.model.appDataEntityId!);
140
+ context[deCodeName] = this.params[key];
141
+ delete queryParams[key];
142
+ delete this.params[key];
143
+ delete queryParams.srfcopymode;
144
+ delete this.params.srfcopymode;
145
+ }
146
+
147
+ let res;
148
+ try {
149
+ await this.startLoading();
150
+ await this.evt.emit('onBeforeLoad', undefined);
151
+ res = await this.service.get(context, queryParams);
152
+ } catch (error) {
153
+ await this.evt.emit('onLoadError', undefined);
154
+ this.actionNotification('GETERROR', {
155
+ error: error as Error,
156
+ });
157
+ throw error;
158
+ } finally {
159
+ await this.endLoading();
160
+ }
161
+
162
+ res.data.$origin.srfsourcekey = undefined;
163
+
164
+ this.state.modified = false;
165
+ this.state.data = res.data;
166
+ this.formStateNotify(FormNotifyState.LOAD);
167
+
168
+ await this.evt.emit('onLoadSuccess', undefined);
169
+ this.actionNotification('GETSUCCESS');
170
+ this.state.isLoaded = true;
171
+ return this.data;
172
+ }
173
+
111
174
  /**
112
175
  * 部件加载数据行为
113
176
  *
@@ -115,6 +178,11 @@ export class EditFormController
115
178
  * @date 2022-08-19 14:08:50
116
179
  */
117
180
  async load(): Promise<IData> {
181
+ // 复制模式独立处理
182
+ const copyMode = this.params.srfcopymode;
183
+ if (copyMode) {
184
+ return this.copy();
185
+ }
118
186
  const isLoadDraft = !hasDeCodeName(
119
187
  this.context,
120
188
  this.model.appDataEntityId!,
@@ -124,7 +192,7 @@ export class EditFormController
124
192
  return this.loadDraft();
125
193
  }
126
194
 
127
- const queryParams = { ...this.params };
195
+ const queryParams = clone(this.params);
128
196
 
129
197
  let res;
130
198
  try {
@@ -285,7 +285,7 @@ export class EditFormService<
285
285
  }
286
286
  },
287
287
  {
288
- childrenFields: ['deformPages', 'deformDetails'],
288
+ childrenFields: ['deformPages', 'deformTabPages', 'deformDetails'],
289
289
  },
290
290
  );
291
291
  }
@@ -11,6 +11,7 @@ import {
11
11
  import { findChildFormDetails } from '../../../../model';
12
12
  import { getFormDetailProvider } from '../../../../register';
13
13
  import { ControlVO } from '../../../../service';
14
+ import { handleAllSettled } from '../../../../utils';
14
15
  import { ControlController } from '../../../common';
15
16
  import { FormNotifyState } from '../../../constant';
16
17
  import { ControllerEvent, isValueChange } from '../../../utils';
@@ -97,16 +98,11 @@ export abstract class FormController<
97
98
  */
98
99
  async dataChangeNotify(names: string[]): Promise<void> {
99
100
  // 通知所有成员项去处理成员项相关逻辑
100
- const values = await Promise.allSettled(
101
+ await handleAllSettled(
101
102
  Object.values(this.details).map(async detail => {
102
103
  return detail.dataChangeNotify(names);
103
104
  }),
104
105
  );
105
- const rejectedValue = values.find(item => item.status === 'rejected');
106
- if (rejectedValue) {
107
- ibiz.log.error('dataChangeNotify报错', values);
108
- throw (rejectedValue as PromiseRejectedResult).reason;
109
- }
110
106
  }
111
107
 
112
108
  /**
@@ -32,7 +32,7 @@ import { ControlVO, Srfuf } from '../../../../service';
32
32
  import { MDControlController } from '../../../common';
33
33
  import { GridNotifyState } from '../../../constant';
34
34
  import { getDefaultValue, isValueChange } from '../../../utils';
35
- import { ScriptFactory } from '../../../../utils';
35
+ import { handleAllSettled, ScriptFactory } from '../../../../utils';
36
36
 
37
37
  /**
38
38
  * 表格控制器
@@ -267,10 +267,11 @@ export class GridController
267
267
  ): Promise<ControlVO[]> {
268
268
  await super.afterLoad(args, items);
269
269
  // 每次表格刷新时通知表格属性列,加载代码表,避免动态代码表更新不及时
270
- await Promise.allSettled(
270
+ await handleAllSettled(
271
271
  Object.values(this.fieldColumns).map(async fieldColumn => {
272
272
  await fieldColumn.loadCodeList();
273
273
  }),
274
+ false,
274
275
  );
275
276
 
276
277
  // 生成表格row对象
@@ -536,7 +537,7 @@ export class GridController
536
537
  return;
537
538
  }
538
539
 
539
- Promise.allSettled(
540
+ await handleAllSettled(
540
541
  needSaveData.map(data => {
541
542
  return this.save(data);
542
543
  }),
@@ -695,16 +696,11 @@ export class GridController
695
696
  */
696
697
  async dataChangeNotify(row: GridRowState, names: string[]): Promise<void> {
697
698
  // 通知所有编辑项去处理编辑项相关逻辑
698
- const values = await Promise.allSettled(
699
+ await handleAllSettled(
699
700
  Object.values(this.editColumns).map(async column => {
700
701
  return column.dataChangeNotify(row, names);
701
702
  }),
702
703
  );
703
- const rejectedValue = values.find(item => item.status === 'rejected');
704
- if (rejectedValue) {
705
- ibiz.log.error('dataChangeNotify报错', values);
706
- throw (rejectedValue as PromiseRejectedResult).reason;
707
- }
708
704
  }
709
705
 
710
706
  /**
@@ -19,3 +19,5 @@ export * from './tree/index';
19
19
  export * from './wizard-panel/index';
20
20
  export * from './md-ctrl/index';
21
21
  export * from './kanban/index';
22
+ export * from './tree-grid-ex/index';
23
+ export * from './tree-grid/index';
@@ -124,7 +124,7 @@ export class ToolbarController<
124
124
  },
125
125
  { childrenFields: ['detoolbarItems'] },
126
126
  );
127
- await this.state.buttonsState.update();
127
+ await this.calcButtonState();
128
128
  }
129
129
 
130
130
  /**
@@ -164,7 +164,11 @@ export class ToolbarController<
164
164
  await this.state.buttonsState.update(_data, appDeId);
165
165
 
166
166
  // 计算菜单项逻辑的预置逻辑
167
- if (this.scheduler && _data) {
167
+ if (this.scheduler) {
168
+ const logicParams: IData = {};
169
+ if (_data) {
170
+ logicParams.data = [_data];
171
+ }
168
172
  // 遍历所有的项
169
173
  recursiveIterate(
170
174
  this.model,
@@ -172,9 +176,10 @@ export class ToolbarController<
172
176
  const itemState = this.state.buttonsState[item.id!] as IButtonState;
173
177
  // 计算项显示逻辑
174
178
  if (itemState.visible) {
175
- const dynaVisible = this.scheduler!.triggerItemVisible(item.id!, {
176
- data: [_data!],
177
- });
179
+ const dynaVisible = this.scheduler!.triggerItemVisible(
180
+ item.id!,
181
+ logicParams,
182
+ );
178
183
  if (dynaVisible !== undefined) {
179
184
  itemState.visible = dynaVisible;
180
185
  }
@@ -182,9 +187,10 @@ export class ToolbarController<
182
187
 
183
188
  // 计算项启用逻辑
184
189
  if (!itemState.disabled) {
185
- const dynaEnable = this.scheduler!.triggerItemEnable(item.id!, {
186
- data: [_data!],
187
- });
190
+ const dynaEnable = this.scheduler!.triggerItemEnable(
191
+ item.id!,
192
+ logicParams,
193
+ );
188
194
  if (dynaEnable !== undefined) {
189
195
  itemState.disabled = !dynaEnable;
190
196
  }
@@ -19,7 +19,7 @@ import {
19
19
  TreeDataSetNodeData,
20
20
  TreeCodeListNodeData,
21
21
  } from '../../../service';
22
- import { calcNavParams } from '../../../utils';
22
+ import { calcNavParams, handleAllSettled } from '../../../utils';
23
23
 
24
24
  export interface TreeFetchOpts {
25
25
  /**
@@ -104,7 +104,7 @@ export class TreeService extends MDControlService<IDETree> {
104
104
  if (childNodeRSs.length === 0) {
105
105
  return;
106
106
  }
107
- const results = await Promise.allSettled(
107
+ const results = await handleAllSettled(
108
108
  childNodeRSs.map(async childNodeRS => {
109
109
  const childNode = getTreeNode(
110
110
  this.model,
@@ -117,14 +117,11 @@ export class TreeService extends MDControlService<IDETree> {
117
117
  opts,
118
118
  );
119
119
  }),
120
+ false,
120
121
  );
121
122
 
122
123
  results.forEach(result => {
123
- if (result.status === 'fulfilled' && result.value) {
124
- childrenNodes.push(...result.value);
125
- } else if (result.status === 'rejected') {
126
- ibiz.log.error(result.reason);
127
- }
124
+ childrenNodes.push(...result);
128
125
  });
129
126
  }
130
127
  return childrenNodes;
@@ -352,9 +349,11 @@ export class TreeService extends MDControlService<IDETree> {
352
349
  // 设置查询长度
353
350
  params.size = nodeModel.maxSize || 1000;
354
351
  // 排序属性
355
- if (nodeModel.sortAppDEFieldId && nodeModel.sortDir) {
352
+ if (nodeModel.sortAppDEFieldId) {
356
353
  Object.assign(params, {
357
- sort: `${nodeModel.sortAppDEFieldId.toLowerCase()},${nodeModel.sortDir.toLowerCase()}`,
354
+ sort: `${nodeModel.sortAppDEFieldId.toLowerCase()},${
355
+ nodeModel.sortDir ? nodeModel.sortDir.toLowerCase() : 'asc'
356
+ }`,
358
357
  });
359
358
  }
360
359
 
@@ -0,0 +1,2 @@
1
+ export * from './tree-grid.controller';
2
+ export * from './tree-grid.service';
@@ -0,0 +1,6 @@
1
+ import { ITreeGridController } from '../../../interface';
2
+ import { GridController } from '../grid';
3
+
4
+ export class TreeGridController
5
+ extends GridController
6
+ implements ITreeGridController {}
@@ -0,0 +1,12 @@
1
+ import { GridService } from '../grid';
2
+
3
+ /**
4
+ * 树表格部件服务
5
+ *
6
+ * @author zk
7
+ * @date 2023-09-25 05:09:52
8
+ * @export
9
+ * @class TreeGridService
10
+ * @extends {TreeService}
11
+ */
12
+ export class TreeGridService extends GridService {}
@@ -0,0 +1,2 @@
1
+ export * from './tree-grid-ex.controller';
2
+ export * from './tree-grid-ex.service';
@@ -0,0 +1,283 @@
1
+ import { recursiveIterate } from '@ibiz-template/core';
2
+ import { IDETree, IDETreeColumn } from '@ibiz/model-core';
3
+ import {
4
+ MDCtrlLoadParams,
5
+ ITreeNodeData,
6
+ ITreeGridExController,
7
+ IGridColumnProvider,
8
+ ITreeGridExState,
9
+ ITreeGridExEvent,
10
+ } from '../../../interface';
11
+ import { getGridColumnProvider } from '../../../register';
12
+ import { MDControlController } from '../../common';
13
+ import {
14
+ GridColumnController,
15
+ GridFieldColumnController,
16
+ GridUAColumnController,
17
+ } from '../grid';
18
+ import { TreeGridExService } from './tree-grid-ex.service';
19
+
20
+ /**
21
+ * 树表格部件控制器
22
+ *
23
+ * @author zk
24
+ * @date 2023-09-21 06:09:46
25
+ * @export
26
+ * @class TreeGridExController
27
+ * @extends {MDControlController<IDETree, ITreeGridState, ITreeGridEvent>}
28
+ * @implements {ITreeGridExController}
29
+ */
30
+ export class TreeGridExController
31
+ extends MDControlController<IDETree, ITreeGridExState, ITreeGridExEvent>
32
+ implements ITreeGridExController
33
+ {
34
+ declare service: TreeGridExService;
35
+
36
+ /**
37
+ * 表格列的适配器
38
+ *
39
+ * @author zk
40
+ * @date 2023-09-21 06:09:04
41
+ * @type {{ [key: string]: IGridColumnProvider }}
42
+ * @memberof TreeGridExController
43
+ */
44
+ providers: { [key: string]: IGridColumnProvider } = {};
45
+
46
+ /**
47
+ * 所有表格列控制器集合
48
+ *
49
+ * @author zk
50
+ * @date 2023-09-21 06:09:10
51
+ * @type {{ [key: string]: GridColumnController }}
52
+ * @memberof TreeGridExController
53
+ */
54
+ columns: { [key: string]: GridColumnController } = {};
55
+
56
+ /**
57
+ * 所有表格属性列的控制器
58
+ *
59
+ * @author zk
60
+ * @date 2023-09-21 06:09:16
61
+ * @type {{ [key: string]: GridFieldColumnController }}
62
+ * @memberof TreeGridExController
63
+ */
64
+ fieldColumns: { [key: string]: GridFieldColumnController } = {};
65
+
66
+ /**
67
+ * 所有表格操作列的控制器
68
+ *
69
+ * @author zk
70
+ * @date 2023-09-21 06:09:21
71
+ * @type {{ [key: string]: GridUAColumnController }}
72
+ * @memberof TreeGridExController
73
+ */
74
+ uaColumns: { [key: string]: GridUAColumnController } = {};
75
+
76
+ protected initState(): void {
77
+ super.initState();
78
+ // 根节点初始化
79
+ this.state.size = 0;
80
+ this.state.columnStates = [];
81
+ this.state.defaultExpandedKeys = [];
82
+ }
83
+
84
+ protected async onCreated(): Promise<void> {
85
+ await super.onCreated();
86
+ this.service = new TreeGridExService(this.model);
87
+ await this.service.init(this.context);
88
+ this.initColumnStates();
89
+ await this.initGridColumns();
90
+ }
91
+
92
+ /**
93
+ * 初始化表格属性列,操作列,编辑项控制器
94
+ *
95
+ * @author zk
96
+ * @date 2023-09-21 06:09:28
97
+ * @protected
98
+ * @return {*} {Promise<void>}
99
+ * @memberof TreeGridExController
100
+ */
101
+ protected async initGridColumns(): Promise<void> {
102
+ if (this.model.detreeColumns) {
103
+ await Promise.all(
104
+ this.model.detreeColumns.map(async column =>
105
+ this.initColumnsController(column),
106
+ ),
107
+ );
108
+ }
109
+ }
110
+
111
+ /**
112
+ * 初始化表格属性列,操作列,编辑项控制器
113
+ *
114
+ * @author zk
115
+ * @date 2023-09-21 06:09:37
116
+ * @protected
117
+ * @param {IDETreeColumn} column
118
+ * @return {*} {Promise<void>}
119
+ * @memberof TreeGridExController
120
+ */
121
+ protected async initColumnsController(column: IDETreeColumn): Promise<void> {
122
+ // 初始化适配器
123
+ const provider = await getGridColumnProvider(column);
124
+ if (!provider) {
125
+ return;
126
+ }
127
+ this.providers[column.codeName!] = provider;
128
+
129
+ // 初始化表格列控制器
130
+ const controller = await provider.createController(column, this);
131
+ this.columns[column.codeName!] = controller as GridColumnController;
132
+ // 分类存放控制器
133
+ if (column.columnType === 'DEFGRIDCOLUMN') {
134
+ this.fieldColumns[column.codeName!] =
135
+ controller as GridFieldColumnController;
136
+ } else if (column.columnType === 'UAGRIDCOLUMN') {
137
+ this.uaColumns[column.codeName!] = controller as GridUAColumnController;
138
+ }
139
+ }
140
+
141
+ /**
142
+ * 初始化表格列状态
143
+ *
144
+ * @author zk
145
+ * @date 2023-09-21 06:09:43
146
+ * @protected
147
+ * @memberof TreeGridExController
148
+ */
149
+ protected initColumnStates(): void {
150
+ recursiveIterate(
151
+ this.model,
152
+ (column: IDETreeColumn) => {
153
+ if (column.columnType !== 'GROUPGRIDCOLUMN') {
154
+ this.state.columnStates.push({
155
+ key: column.codeName!,
156
+ caption: column.caption!,
157
+ hidden: !!column.hideDefault,
158
+ uaColumn: column.columnType === 'UAGRIDCOLUMN',
159
+ });
160
+ }
161
+ },
162
+ { childrenFields: ['detreeColumns'] },
163
+ );
164
+ this.calcColumnFixed();
165
+ }
166
+
167
+ /**
168
+ * 计算列的固定状态
169
+ *
170
+ * @author zk
171
+ * @date 2023-09-21 06:09:50
172
+ * @protected
173
+ * @memberof TreeGridExController
174
+ */
175
+ protected calcColumnFixed(): void {
176
+ const showColumns = this.state.columnStates.filter(
177
+ column => !column.hidden,
178
+ );
179
+ const allNum = showColumns.length;
180
+ showColumns.forEach((column, index) => {
181
+ if (column.uaColumn) {
182
+ column.fixed = index + 1 <= Math.floor(allNum / 2) ? 'left' : 'right';
183
+ } else {
184
+ column.fixed = 'right';
185
+ }
186
+ });
187
+ }
188
+
189
+ /**
190
+ * 树部件加载,从根节点开始重新加载
191
+ *
192
+ * @author zk
193
+ * @date 2023-09-21 06:09:56
194
+ * @param {MDCtrlLoadParams} [args={}]
195
+ * @return {*} {Promise<ITreeNodeData[]>}
196
+ * @memberof TreeGridExController
197
+ */
198
+ async load(args: MDCtrlLoadParams = {}): Promise<ITreeNodeData[]> {
199
+ const isInitialLoad = args.isInitialLoad === true;
200
+ const nodes = await this.loadNodes();
201
+ this.state.expandedKeys = this.calcExpandedKeys(nodes);
202
+ await this.afterLoad(args, nodes);
203
+ this.state.isLoaded = true;
204
+ await this.evt.emit('onLoadSuccess', {
205
+ isInitialLoad,
206
+ });
207
+
208
+ return nodes;
209
+ }
210
+
211
+ /**
212
+ * 加载子节点数据
213
+ *
214
+ * @author zk
215
+ * @date 2023-09-21 06:09:02
216
+ * @param {ITreeNodeData} [parentNode]
217
+ * @return {*} {Promise<ITreeNodeData[]>}
218
+ * @memberof TreeGridExController
219
+ */
220
+ async loadNodes(parentNode?: ITreeNodeData): Promise<ITreeNodeData[]> {
221
+ const params = await this.getFetchParams();
222
+ const hasQuery = !!params.query;
223
+ const defaultExpandedKeys = !parentNode
224
+ ? this.state.defaultExpandedKeys
225
+ : undefined;
226
+
227
+ // 请求服务获取子节点数据
228
+ await this.startLoading();
229
+ let nodes;
230
+ try {
231
+ nodes =
232
+ (await this.service.fetchChildNodes(parentNode, {
233
+ context: this.context.clone(),
234
+ params,
235
+ hasQuery,
236
+ defaultExpandedKeys,
237
+ })) || [];
238
+ } finally {
239
+ await this.endLoading();
240
+ }
241
+
242
+ // 有父节点绑定到父节点数据上,无父节点替换rootNodes
243
+ if (parentNode) {
244
+ parentNode.children = nodes;
245
+ } else {
246
+ this.state.rootNodes = nodes;
247
+ }
248
+
249
+ // 更新items
250
+ this.state.items = [];
251
+ recursiveIterate(
252
+ { children: this.state.rootNodes },
253
+ (node: ITreeNodeData) => {
254
+ this.state.items.push(node);
255
+ },
256
+ );
257
+
258
+ return nodes;
259
+ }
260
+
261
+ /**
262
+ * 计算展开节点集合
263
+ *
264
+ * @author zk
265
+ * @date 2023-09-21 06:09:07
266
+ * @param {ITreeNodeData[]} nodes
267
+ * @return {*} {string[]}
268
+ * @memberof TreeGridExController
269
+ */
270
+ protected calcExpandedKeys(nodes: ITreeNodeData[]): string[] {
271
+ let expandedKeys: string[] = [];
272
+ recursiveIterate({ children: nodes }, (node: ITreeNodeData) => {
273
+ if (node.children?.length) {
274
+ expandedKeys.push(node.id);
275
+ }
276
+ });
277
+ if (this.state.defaultExpandedKeys.length) {
278
+ expandedKeys.push(...this.state.defaultExpandedKeys);
279
+ expandedKeys = Array.from(new Set(expandedKeys));
280
+ }
281
+ return expandedKeys;
282
+ }
283
+ }