@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
@@ -0,0 +1,171 @@
1
+ import { IHttpResponse } from '@ibiz-template/core';
2
+ import {
3
+ IDETreeDataSetNode,
4
+ IDETreeNode,
5
+ IDETreeNodeRS,
6
+ } from '@ibiz/model-core';
7
+ import { isArray } from 'qx-util';
8
+ import { ITreeNodeData } from '../../../interface';
9
+
10
+ import { ControlVO, TreeDataSetNodeData, UIMapField } from '../../../service';
11
+ import { TreeFetchOpts, TreeService } from '../tree/tree.service';
12
+
13
+ /**
14
+ * 树表格增强部件服务
15
+ *
16
+ * @author zk
17
+ * @date 2023-09-25 05:09:52
18
+ * @export
19
+ * @class TreeGridService
20
+ * @extends {TreeService}
21
+ */
22
+ export class TreeGridExService extends TreeService {
23
+ /**
24
+ * 表格列映射关系
25
+ *
26
+ * @author zk
27
+ * @date 2023-09-25 05:09:11
28
+ * @type {Map<string, Map<string, UIMapField>>}
29
+ * @memberof TreeGridService
30
+ */
31
+ multipleUiMap: Map<string, Map<string, UIMapField>> = new Map();
32
+
33
+ /**
34
+ * 初始化节点属性映射
35
+ *
36
+ * @author lxm
37
+ * @date 2022-08-31 18:08:37
38
+ */
39
+ initUIDataMap(): void {
40
+ super.initUIDataMap();
41
+ this.model.detreeNodes?.forEach((item: IDETreeNode) => {
42
+ const dataMap: Map<string, UIMapField> = new Map();
43
+ item.detreeNodeDataItems?.forEach(dataItem => {
44
+ const uiKey = dataItem.id!.toLowerCase();
45
+ const deField = dataItem.appDEFieldId!;
46
+ // 后台实体属性
47
+ const deFieldKey = deField.toLowerCase();
48
+ const mapField = new UIMapField(uiKey, deFieldKey, {
49
+ isOriginField: true,
50
+ dataType: dataItem.dataType,
51
+ });
52
+ dataMap.set(uiKey, mapField);
53
+ });
54
+ this.multipleUiMap.set(item.id!, dataMap);
55
+ });
56
+ }
57
+
58
+ /**
59
+ * 获取实体数据集数据
60
+ *
61
+ * @protected
62
+ * @param {TreeNodeRSModel} nodeRS
63
+ * @param {TreeFetchOpts} opts
64
+ * @returns {*}
65
+ * @memberof TreeService
66
+ */
67
+ protected async getDENodeDatas(
68
+ nodeModel: IDETreeDataSetNode,
69
+ nodeRS: IDETreeNodeRS | undefined,
70
+ parentNodeData: ITreeNodeData | undefined,
71
+ opts: TreeFetchOpts,
72
+ ): Promise<TreeDataSetNodeData[]> {
73
+ const { appDEDataSetId, appDataEntityId } = nodeModel;
74
+
75
+ // 处理查询参数,没有关系的时候不处理参数了
76
+ const { context, params, navContext, navParams } = nodeRS
77
+ ? this.getNodeRSFilterParams(nodeRS, parentNodeData, opts)
78
+ : {
79
+ context: opts.context,
80
+ params: opts.params,
81
+ navContext: {},
82
+ navParams: {},
83
+ };
84
+
85
+ // 设置查询长度
86
+ params.size = nodeModel.maxSize || 1000;
87
+ // 排序属性
88
+ if (nodeModel.sortAppDEFieldId && nodeModel.sortDir) {
89
+ Object.assign(params, {
90
+ sort: `${nodeModel.sortAppDEFieldId.toLowerCase()},${nodeModel.sortDir.toLowerCase()}`,
91
+ });
92
+ }
93
+
94
+ // 请求实体数据
95
+ const response = await this.app.deService.exec(
96
+ appDataEntityId!,
97
+ appDEDataSetId!,
98
+ context,
99
+ params,
100
+ );
101
+
102
+ if (response.data.length) {
103
+ const { data } = this.handleResponseForMultiple(response, nodeModel.id!);
104
+ const nodeDatas = data.map((item: ControlVO) => {
105
+ return new TreeDataSetNodeData(nodeModel, parentNodeData, {
106
+ data: item,
107
+ leaf: !!opts.leaf,
108
+ navContext,
109
+ navParams,
110
+ });
111
+ });
112
+ return nodeDatas;
113
+ }
114
+ return [];
115
+ }
116
+
117
+ /**
118
+ * 处理多数据源响应
119
+ *
120
+ * @author zk
121
+ * @date 2023-09-21 04:09:06
122
+ * @param {IHttpResponse} response
123
+ * @param {string} tag 多数据源dataUIMap标识
124
+ * @return {*} {IHttpResponse}
125
+ * @memberof TreeGridService
126
+ */
127
+ handleResponseForMultiple(
128
+ response: IHttpResponse,
129
+ tag: string,
130
+ ): IHttpResponse {
131
+ const res = super.handleResponse(response) as IHttpResponse<
132
+ IData[] | IData
133
+ >;
134
+ if (res.headers) {
135
+ if (res.headers['x-page']) {
136
+ res.page = Number(res.headers['x-page']);
137
+ }
138
+ if (res.headers['x-per-page']) {
139
+ res.size = Number(res.headers['x-per-page']);
140
+ }
141
+ if (res.headers['x-total']) {
142
+ res.total = Number(res.headers['x-total']);
143
+ }
144
+ }
145
+ if (res.ok) {
146
+ if (isArray(res.data)) {
147
+ res.data = (res.data as IData[]).map(item =>
148
+ this.toUIDataForMultiple(item, tag),
149
+ );
150
+ } else {
151
+ res.data = this.toUIDataForMultiple(res.data, tag);
152
+ }
153
+ }
154
+ return res;
155
+ }
156
+
157
+ /**
158
+ * 实体数据转ui数据
159
+ *
160
+ * @author zk
161
+ * @date 2023-09-21 06:09:06
162
+ * @param {IData} entityData 实体数据
163
+ * @param {string} tag 多数据源dataUIMap标识
164
+ * @return {*} {ControlVO}
165
+ * @memberof TreeGridService
166
+ */
167
+ toUIDataForMultiple(entityData: IData, tag: string): ControlVO {
168
+ const dataUIMap = this.multipleUiMap.get(tag);
169
+ return new ControlVO(entityData, dataUIMap);
170
+ }
171
+ }
@@ -97,6 +97,22 @@ export class ControllerEvent<E extends IComponentEvent = IComponentEvent> {
97
97
  this.evt.on(name as string, fn);
98
98
  }
99
99
 
100
+ /**
101
+ * 取消订阅指定事件
102
+ * @return {*}
103
+ * @author: zhujiamin
104
+ * @Date: 2023-09-22 17:45:07
105
+ */
106
+ off<K extends EventTypeKeyOf<E>>(
107
+ name: K,
108
+ fn: (event: EventTypeObjec<E>[K]['event']) => void | Promise<void>,
109
+ ): void {
110
+ if (this.isDestroyed) {
111
+ return;
112
+ }
113
+ this.evt.off(name as string, fn);
114
+ }
115
+
100
116
  /**
101
117
  * 订阅任意事件
102
118
  * @author lxm
@@ -0,0 +1 @@
1
+ export * from './view-msg-controller';
@@ -0,0 +1,250 @@
1
+ import { RuntimeError, RuntimeModelError } from '@ibiz-template/core';
2
+ import {
3
+ IAppDataEntity,
4
+ IAppDEDataSetViewMsg,
5
+ IAppViewMsg,
6
+ IAppViewMsgGroup,
7
+ IAppViewMsgGroupDetail,
8
+ } from '@ibiz/model-core';
9
+ import { isNil, mergeRight } from 'ramda';
10
+ import { IViewMessage } from '../../../interface';
11
+ import { findFieldById } from '../../../model';
12
+
13
+ export class ViewMsgController {
14
+ /**
15
+ * 视图消息组模型
16
+ * @author lxm
17
+ * @date 2023-09-22 05:37:24
18
+ * @type {IAppViewMsgGroup}
19
+ */
20
+ msgGroup!: IAppViewMsgGroup;
21
+
22
+ /**
23
+ * 视图消息map
24
+ * @author lxm
25
+ * @date 2023-09-22 05:38:03
26
+ */
27
+ viewMsgMap = new Map<string, IAppViewMsg>();
28
+
29
+ constructor(protected msgGroupId: string) {}
30
+
31
+ /**
32
+ * 初始化方法,从全局获取视图消息组和视图消息的模型
33
+ * @author lxm
34
+ * @date 2023-09-22 05:41:08
35
+ * @param {IContext} context
36
+ * @return {*} {Promise<void>}
37
+ */
38
+ async init(context: IContext): Promise<void> {
39
+ const appModel = ibiz.hub.getApp(context.srfappid).model;
40
+ const msgGroup = appModel.appViewMsgGroups?.find(
41
+ item => item.id === this.msgGroupId,
42
+ );
43
+ if (!msgGroup) {
44
+ throw new RuntimeError(`找不到视图消息组${this.msgGroupId}的模型`);
45
+ }
46
+ this.msgGroup = msgGroup;
47
+
48
+ const msgDetailsViewMsgIds = msgGroup.appViewMsgGroupDetails!.map(
49
+ item => item.appViewMsgId,
50
+ );
51
+ appModel.appViewMsgs?.forEach(item => {
52
+ const index = msgDetailsViewMsgIds.indexOf(item.id);
53
+ if (index !== -1) {
54
+ this.viewMsgMap.set(item.id!, item);
55
+ msgDetailsViewMsgIds.splice(index, 1);
56
+ }
57
+ });
58
+ if (msgDetailsViewMsgIds.length) {
59
+ throw new RuntimeError(
60
+ `没有找到${msgDetailsViewMsgIds.join(',')}视图消息模型`,
61
+ );
62
+ }
63
+ }
64
+
65
+ getDeFieldName(
66
+ appDataEntity: IAppDataEntity,
67
+ fieldId?: string,
68
+ ): string | undefined {
69
+ if (!fieldId) {
70
+ return;
71
+ }
72
+ return findFieldById(appDataEntity, fieldId)?.name?.toLowerCase();
73
+ }
74
+
75
+ /**
76
+ * 查询并获取指定实体的数据集数据
77
+ * @author lxm
78
+ * @date 2023-09-20 08:10:57
79
+ * @static
80
+ * @param {IPSAppDEDataSetViewMsg} msgModel
81
+ * @param {IParams} [context={}]
82
+ * @param {IParams} [params={}]
83
+ * @return {*} {Promise<IData[]>}
84
+ */
85
+ static async fetchDataSet(
86
+ msgModel: IAppDEDataSetViewMsg,
87
+ context: IContext,
88
+ params: IParams,
89
+ ): Promise<IData[]> {
90
+ const { appDataEntityId, appDEDataSetId } = msgModel;
91
+ if (!appDEDataSetId) {
92
+ throw new RuntimeModelError(msgModel, '未配置实体数据集');
93
+ }
94
+
95
+ // 查询数据
96
+ const res = await ibiz.hub
97
+ .getApp(context.srfappid)
98
+ .deService.exec(appDataEntityId!, appDEDataSetId, context, params);
99
+
100
+ if (res.data.length) {
101
+ return res.data as IData[];
102
+ }
103
+ return [];
104
+ }
105
+
106
+ /**
107
+ * 计算视图信息呈现数据
108
+ * @author lxm
109
+ * @date 2023-09-20 09:16:59
110
+ * @param {IContext} context
111
+ * @param {IParams} params
112
+ * @return {*} {IViewMessage[]}
113
+ */
114
+ async calcViewMessages(
115
+ context: IContext,
116
+ params: IParams,
117
+ ): Promise<IViewMessage[]> {
118
+ const details = this.msgGroup.appViewMsgGroupDetails;
119
+ const result: IViewMessage[] = [];
120
+ if (details?.length) {
121
+ await Promise.all(
122
+ details.map(async detail => {
123
+ const msgModel = this.viewMsgMap.get(detail.appViewMsgId!)!;
124
+ if (msgModel.dynamicMode === 1) {
125
+ // 动态
126
+ const msgs = await this.calcDynaMsgs(detail, context, params);
127
+ result.push(...msgs);
128
+ } else {
129
+ // 静态
130
+ const msgData = this.calcStaticMsg(detail);
131
+ result.push(msgData);
132
+ }
133
+ }),
134
+ );
135
+ }
136
+ return result;
137
+ }
138
+
139
+ /**
140
+ * 计算静态消息数据(或者动态的里面静态的配置)
141
+ * @author lxm
142
+ * @date 2023-09-20 09:46:45
143
+ * @protected
144
+ * @param {IPSAppViewMsgGroupDetail} detail
145
+ * @return {*} {IViewMessage}
146
+ */
147
+ protected calcStaticMsg(detail: IAppViewMsgGroupDetail): IViewMessage {
148
+ const { position: position1 } = detail;
149
+ const {
150
+ title,
151
+ message,
152
+ removeMode,
153
+ position: position2,
154
+ messageType,
155
+ } = this.viewMsgMap.get(detail.appViewMsgId!)!;
156
+ // detail里的位置优先
157
+ const position = position1 || position2;
158
+ return {
159
+ title,
160
+ message,
161
+ position,
162
+ messageType,
163
+ removeMode,
164
+ };
165
+ }
166
+
167
+ /**
168
+ * 计算动态视图消息数据
169
+ * @author lxm
170
+ * @date 2023-09-20 09:46:26
171
+ * @protected
172
+ * @param {IPSAppViewMsgGroupDetail} detail
173
+ * @param {IContext} context
174
+ * @param {IParams} params
175
+ * @return {*} {Promise<IViewMessage[]>}
176
+ */
177
+ protected async calcDynaMsgs(
178
+ detail: IAppViewMsgGroupDetail,
179
+ context: IContext,
180
+ params: IParams,
181
+ ): Promise<IViewMessage[]> {
182
+ const msgModel = this.viewMsgMap.get(
183
+ detail.appViewMsgId!,
184
+ ) as IAppDEDataSetViewMsg;
185
+
186
+ const {
187
+ appDataEntityId,
188
+ orderValueAppDEFieldId,
189
+ titleAppDEFieldId,
190
+ removeFlagAppDEFieldId,
191
+ msgTypeAppDEFieldId,
192
+ contentAppDEFieldId,
193
+ msgPosAppDEFieldId,
194
+ } = msgModel;
195
+ if (!appDataEntityId) {
196
+ throw new RuntimeModelError(msgModel, '未配置应用实体');
197
+ }
198
+
199
+ const entity = await ibiz.hub.getAppDataEntity(
200
+ appDataEntityId!,
201
+ context.srfappid,
202
+ );
203
+
204
+ // 排序属性
205
+ const fetchParams = { ...params };
206
+ const sortField = this.getDeFieldName(entity, orderValueAppDEFieldId);
207
+ if (sortField) {
208
+ fetchParams.sort = `${sortField},asc`;
209
+ }
210
+
211
+ const dataSet = await ViewMsgController.fetchDataSet(
212
+ msgModel,
213
+ context,
214
+ fetchParams,
215
+ );
216
+ if (!dataSet.length) {
217
+ return [];
218
+ }
219
+
220
+ const basicMsg = this.calcStaticMsg(detail); // 基础静态的消息
221
+ const titleField = this.getDeFieldName(entity, titleAppDEFieldId);
222
+ const positionField = this.getDeFieldName(entity, msgPosAppDEFieldId);
223
+ const messageField = this.getDeFieldName(entity, contentAppDEFieldId);
224
+ const typeField = this.getDeFieldName(entity, msgTypeAppDEFieldId);
225
+ const removeModeField = this.getDeFieldName(entity, removeFlagAppDEFieldId);
226
+
227
+ const deViewMessages: IViewMessage[] = dataSet.map(item => {
228
+ const message: Partial<IViewMessage> = {};
229
+ if (positionField && !isNil(item[positionField])) {
230
+ message.position = item[positionField];
231
+ }
232
+ if (titleField && !isNil(item[titleField])) {
233
+ message.title = item[titleField];
234
+ }
235
+ if (messageField && !isNil(item[messageField])) {
236
+ message.message = item[messageField];
237
+ }
238
+ if (typeField && !isNil(item[typeField])) {
239
+ message.messageType = item[typeField];
240
+ }
241
+ if (removeModeField && !isNil(item[removeModeField])) {
242
+ message.removeMode = item[removeModeField];
243
+ }
244
+ // 合并基础配置,如果后台没有值的用基础配置的默认值。
245
+ return mergeRight(basicMsg, message);
246
+ });
247
+
248
+ return deViewMessages;
249
+ }
250
+ }
@@ -114,4 +114,16 @@ export class DELogicContext {
114
114
  get: () => this.lastReturn,
115
115
  });
116
116
  }
117
+
118
+ /**
119
+ * 是否是实体参数变量(即后台数据对象)
120
+ * @author lxm
121
+ * @date 2023-09-22 03:40:30
122
+ * @param {string} paramId
123
+ * @return {*} {boolean}
124
+ */
125
+ isEntityParam(paramId: string): boolean {
126
+ const deLogicParams = this.deLogicParams.get(paramId);
127
+ return !!(deLogicParams && deLogicParams.model.entityParam);
128
+ }
117
129
  }
@@ -95,7 +95,13 @@ export class PrepareParamNode extends DELogicNode {
95
95
  ): void {
96
96
  const { dstFieldName, dstDELogicParamId } = nodeParam;
97
97
  // 目标参数
98
- const dstField = dstFieldName?.toLowerCase();
98
+ let dstField = dstFieldName;
99
+
100
+ // 实体参数对象转小写
101
+ if (ctx.isEntityParam(dstDELogicParamId!)) {
102
+ dstField = dstField?.toLowerCase();
103
+ }
104
+
99
105
  // 源参数
100
106
  const srcVal = handleSrcVal(ctx, nodeParam);
101
107
  if (dstField) {
@@ -1,5 +1,6 @@
1
1
  import { ModelError } from '@ibiz-template/core';
2
2
  import { clone } from 'ramda';
3
+ import { ScriptFactory } from '../../utils';
3
4
  import { DELogicContext } from '../de-logic-context';
4
5
 
5
6
  type SrcValParams = {
@@ -34,18 +35,21 @@ export function handleSrcVal(
34
35
  ctx: DELogicContext,
35
36
  srcValParams: SrcValParams,
36
37
  ): unknown {
37
- const { srcDELogicParamId, srcValueType, srcFieldName, srcValue } =
38
- srcValParams;
39
-
38
+ const { srcDELogicParamId, srcFieldName, srcValue } = srcValParams;
40
39
  // 没有源值类型就是逻辑参数
41
- if (!srcValParams.srcValueType) {
42
- srcValParams.srcValueType = 'SRCDLPARAM';
43
- }
40
+ const srcValueType = srcValParams.srcValueType || 'SRCDLPARAM';
41
+ // 取属性值
42
+ let srcField = srcFieldName;
43
+
44
44
  let value: unknown;
45
45
  switch (srcValueType) {
46
46
  // 源逻辑参数
47
47
  case 'SRCDLPARAM':
48
48
  value = ctx.params[srcDELogicParamId!];
49
+ // 如果是实体参数对象则转换成小写。
50
+ if (ctx.isEntityParam(srcDELogicParamId!)) {
51
+ srcField = srcField?.toLowerCase();
52
+ }
49
53
  break;
50
54
  // 空值类型
51
55
  case 'NULLVALUE':
@@ -74,11 +78,20 @@ export function handleSrcVal(
74
78
  throw new ModelError(srcValParams, `暂未支持源值类型${srcValueType}`);
75
79
  }
76
80
 
77
- // 取属性值
78
- const srcField = srcFieldName?.toLowerCase();
79
81
  if (value && srcField) {
80
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
81
- value = (value as any)[srcField];
82
+ try {
83
+ value = ScriptFactory.execScriptFn(
84
+ { srcValue: value },
85
+ `srcValue.${srcField}`,
86
+ {
87
+ singleRowReturn: true,
88
+ isAsync: false,
89
+ },
90
+ );
91
+ } catch (error) {
92
+ ibiz.log.error(`从源参数取属性${srcField}报错,源参数:`, value);
93
+ throw error;
94
+ }
82
95
  }
83
96
 
84
97
  return value;
@@ -1,5 +1,6 @@
1
1
  import { RuntimeModelError } from '@ibiz-template/core';
2
2
  import { IAppDEMultiDataView } from '@ibiz/model-core';
3
+ import { clone } from 'ramda';
3
4
  import { SysUIActionTag, ViewCallTag } from '../constant';
4
5
  import { ViewController } from '../controller';
5
6
  import {
@@ -262,13 +263,14 @@ export class MDViewEngine extends ViewEngineBase {
262
263
  throw new RuntimeModelError(this.view.model, `缺少newdata的视图逻辑`);
263
264
  }
264
265
 
265
- const context = this.view.context.clone();
266
+ const params = clone(this.view.params);
266
267
  if (copyMode) {
267
- context.srfcopymode = true;
268
+ params.srfcopymode = copyMode;
268
269
  }
270
+
269
271
  const result = await this.view.scheduler?.triggerCustom('newdata', {
270
- context,
271
- params: this.view.params,
272
+ context: this.view.context,
273
+ params,
272
274
  data,
273
275
  event,
274
276
  view: this.view,
@@ -5,6 +5,10 @@ import {
5
5
  HandlebarsUtil,
6
6
  RawValueUtil,
7
7
  } from '../../utils';
8
+ import {
9
+ DefaultErrorHandler,
10
+ ErrorHandlerCenter,
11
+ } from '../../utils/error-handler';
8
12
 
9
13
  /**
10
14
  * 全局工具方法或对象
@@ -47,6 +51,17 @@ export class GlobalUtil {
47
51
  */
48
52
  readonly rawValue = new RawValueUtil();
49
53
 
54
+ /**
55
+ * 错误处理中心
56
+ * @author lxm
57
+ * @date 2023-09-26 05:04:26
58
+ */
59
+ readonly error = new ErrorHandlerCenter();
60
+
61
+ constructor() {
62
+ this.error.register(new DefaultErrorHandler());
63
+ }
64
+
50
65
  /**
51
66
  * 获取导出Excel工具类对象
52
67
  * @author lxm
@@ -4,6 +4,7 @@ import { Convert } from '../../../hub';
4
4
  import { ModelLoaderProvider } from '../../provider';
5
5
  import { IAppConfigService } from '../i-app-config-service/i-app-config-service';
6
6
  import { IHubController } from '../../controller';
7
+ import { IConfigService } from '../../service';
7
8
 
8
9
  /**
9
10
  * 应用 hub 服务
@@ -32,6 +33,15 @@ export interface IAppHubService {
32
33
  */
33
34
  readonly controller: IHubController;
34
35
 
36
+ /**
37
+ * 基座级配置存储服务
38
+ *
39
+ * @author chitanda
40
+ * @date 2023-09-22 10:09:59
41
+ * @type {IConfigService}
42
+ */
43
+ configCache: IConfigService;
44
+
35
45
  /**
36
46
  * 默认应用首页视图
37
47
  *
@@ -4,6 +4,7 @@ import {
4
4
  CodeListService,
5
5
  DEServiceUtil,
6
6
  } from '../../../service';
7
+ import { IConfigService } from '../../service';
7
8
 
8
9
  /**
9
10
  * 应用服务
@@ -32,6 +33,15 @@ export interface IAppService {
32
33
  */
33
34
  readonly net: Net;
34
35
 
36
+ /**
37
+ * 应用级配置存储服务
38
+ *
39
+ * @author chitanda
40
+ * @date 2023-09-22 10:09:58
41
+ * @type {IConfigService}
42
+ */
43
+ readonly configCache: IConfigService;
44
+
35
45
  /**
36
46
  * 实体服务工具类
37
47
  *
@@ -0,0 +1,16 @@
1
+ /**
2
+ * 错误处理器接口
3
+ * @author lxm
4
+ * @date 2023-09-26 04:51:18
5
+ * @export
6
+ * @interface IErrorHandler
7
+ */
8
+ export interface IErrorHandler {
9
+ /**
10
+ * 处理错误,如果处理了该异常则返回true,后续处理器的就不会处理该异常
11
+ * @author lxm
12
+ * @date 2023-09-26 04:48:57
13
+ * @param {unknown} error
14
+ */
15
+ handle(error: unknown): boolean | undefined;
16
+ }
@@ -29,3 +29,4 @@ export type {
29
29
  IViewConfig,
30
30
  } from './i-app-view-config-service/i-app-view-config-service';
31
31
  export type { IOpenViewOptions } from './i-open-view-options/i-open-view-options';
32
+ export type { IErrorHandler } from './i-error-handler/i-error-handler';
@@ -1,3 +1,4 @@
1
1
  export * from './button-state';
2
2
  export * from './i-icon/i-icon';
3
3
  export * from './i-nav-view-msg/i-nav-view-msg';
4
+ export * from './view-message/i-view-message';