@ibiz-template/runtime 0.1.28 → 0.1.29-dev.0

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 (212) hide show
  1. package/dist/index.esm.js +1205 -265
  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/controller/common/control/md-control.controller.d.ts.map +1 -1
  11. package/out/controller/common/control/md-control.controller.js +3 -0
  12. package/out/controller/common/view/view.controller.d.ts +23 -1
  13. package/out/controller/common/view/view.controller.d.ts.map +1 -1
  14. package/out/controller/common/view/view.controller.js +52 -0
  15. package/out/controller/control/dashboard/custom-dashboard.controller.d.ts +69 -0
  16. package/out/controller/control/dashboard/custom-dashboard.controller.d.ts.map +1 -0
  17. package/out/controller/control/dashboard/custom-dashboard.controller.js +85 -0
  18. package/out/controller/control/dashboard/index.d.ts +1 -0
  19. package/out/controller/control/dashboard/index.d.ts.map +1 -1
  20. package/out/controller/control/dashboard/index.js +1 -0
  21. package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.d.ts +15 -1
  22. package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.d.ts.map +1 -1
  23. package/out/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.js +26 -9
  24. package/out/controller/control/index.d.ts +2 -0
  25. package/out/controller/control/index.d.ts.map +1 -1
  26. package/out/controller/control/index.js +2 -0
  27. package/out/controller/control/tree-grid/index.d.ts +3 -0
  28. package/out/controller/control/tree-grid/index.d.ts.map +1 -0
  29. package/out/controller/control/tree-grid/index.js +2 -0
  30. package/out/controller/control/tree-grid/tree-grid.controller.d.ts +5 -0
  31. package/out/controller/control/tree-grid/tree-grid.controller.d.ts.map +1 -0
  32. package/out/controller/control/tree-grid/tree-grid.controller.js +3 -0
  33. package/out/controller/control/tree-grid/tree-grid.service.d.ts +13 -0
  34. package/out/controller/control/tree-grid/tree-grid.service.d.ts.map +1 -0
  35. package/out/controller/control/tree-grid/tree-grid.service.js +12 -0
  36. package/out/controller/control/tree-grid-ex/index.d.ts +3 -0
  37. package/out/controller/control/tree-grid-ex/index.d.ts.map +1 -0
  38. package/out/controller/control/tree-grid-ex/index.js +2 -0
  39. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts +134 -0
  40. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts.map +1 -0
  41. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.js +240 -0
  42. package/out/controller/control/tree-grid-ex/tree-grid-ex.service.d.ts +65 -0
  43. package/out/controller/control/tree-grid-ex/tree-grid-ex.service.d.ts.map +1 -0
  44. package/out/controller/control/tree-grid-ex/tree-grid-ex.service.js +143 -0
  45. package/out/controller/utils/event/controller-event.d.ts +7 -0
  46. package/out/controller/utils/event/controller-event.d.ts.map +1 -1
  47. package/out/controller/utils/event/controller-event.js +12 -0
  48. package/out/controller/utils/view-msg/index.d.ts +2 -0
  49. package/out/controller/utils/view-msg/index.d.ts.map +1 -0
  50. package/out/controller/utils/view-msg/index.js +1 -0
  51. package/out/controller/utils/view-msg/view-msg-controller.d.ts +69 -0
  52. package/out/controller/utils/view-msg/view-msg-controller.d.ts.map +1 -0
  53. package/out/controller/utils/view-msg/view-msg-controller.js +176 -0
  54. package/out/de-logic/de-logic-context.d.ts +8 -0
  55. package/out/de-logic/de-logic-context.d.ts.map +1 -1
  56. package/out/de-logic/de-logic-context.js +11 -0
  57. package/out/de-logic/de-logic-node/prepare-param-node/prepare-param-node.d.ts.map +1 -1
  58. package/out/de-logic/de-logic-node/prepare-param-node/prepare-param-node.js +5 -1
  59. package/out/de-logic/utils/handle-src-val.d.ts.map +1 -1
  60. package/out/de-logic/utils/handle-src-val.js +19 -8
  61. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts +9 -0
  62. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts.map +1 -1
  63. package/out/interface/common/i-app-service/i-app-service.d.ts +9 -0
  64. package/out/interface/common/i-app-service/i-app-service.d.ts.map +1 -1
  65. package/out/interface/controller/common/index.d.ts +1 -0
  66. package/out/interface/controller/common/index.d.ts.map +1 -1
  67. package/out/interface/controller/common/index.js +1 -0
  68. package/out/interface/controller/common/view-message/i-view-message.d.ts +39 -0
  69. package/out/interface/controller/common/view-message/i-view-message.d.ts.map +1 -0
  70. package/out/interface/controller/common/view-message/i-view-message.js +1 -0
  71. package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts +16 -0
  72. package/out/interface/controller/controller/control/i-tree-grid-ex.controller.d.ts.map +1 -0
  73. package/out/interface/controller/controller/control/i-tree-grid-ex.controller.js +1 -0
  74. package/out/interface/controller/controller/control/i-tree-grid.controller.d.ts +13 -0
  75. package/out/interface/controller/controller/control/i-tree-grid.controller.d.ts.map +1 -0
  76. package/out/interface/controller/controller/control/i-tree-grid.controller.js +1 -0
  77. package/out/interface/controller/controller/control/index.d.ts +2 -0
  78. package/out/interface/controller/controller/control/index.d.ts.map +1 -1
  79. package/out/interface/controller/controller/control/index.js +2 -0
  80. package/out/interface/controller/controller/control/portlet/i-portlet.controller.d.ts +7 -0
  81. package/out/interface/controller/controller/control/portlet/i-portlet.controller.d.ts.map +1 -1
  82. package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts +13 -0
  83. package/out/interface/controller/event/control/i-tree-grid-ex.event.d.ts.map +1 -0
  84. package/out/interface/controller/event/control/i-tree-grid-ex.event.js +1 -0
  85. package/out/interface/controller/event/control/i-tree-grid.event.d.ts +13 -0
  86. package/out/interface/controller/event/control/i-tree-grid.event.d.ts.map +1 -0
  87. package/out/interface/controller/event/control/i-tree-grid.event.js +1 -0
  88. package/out/interface/controller/event/control/index.d.ts +2 -0
  89. package/out/interface/controller/event/control/index.d.ts.map +1 -1
  90. package/out/interface/controller/event/control/index.js +2 -0
  91. package/out/interface/controller/event/view/i-tree-grid-ex-view.event.d.ts +12 -0
  92. package/out/interface/controller/event/view/i-tree-grid-ex-view.event.d.ts.map +1 -0
  93. package/out/interface/controller/event/view/i-tree-grid-ex-view.event.js +1 -0
  94. package/out/interface/controller/event/view/i-tree-grid-view.event.d.ts +12 -0
  95. package/out/interface/controller/event/view/i-tree-grid-view.event.d.ts.map +1 -0
  96. package/out/interface/controller/event/view/i-tree-grid-view.event.js +1 -0
  97. package/out/interface/controller/event/view/index.d.ts +2 -0
  98. package/out/interface/controller/event/view/index.d.ts.map +1 -1
  99. package/out/interface/controller/event/view/index.js +2 -0
  100. package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts +52 -0
  101. package/out/interface/controller/state/control/i-tree-grid-ex.state.d.ts.map +1 -0
  102. package/out/interface/controller/state/control/i-tree-grid-ex.state.js +1 -0
  103. package/out/interface/controller/state/control/i-tree-grid.state.d.ts +13 -0
  104. package/out/interface/controller/state/control/i-tree-grid.state.d.ts.map +1 -0
  105. package/out/interface/controller/state/control/i-tree-grid.state.js +1 -0
  106. package/out/interface/controller/state/control/index.d.ts +2 -0
  107. package/out/interface/controller/state/control/index.d.ts.map +1 -1
  108. package/out/interface/controller/state/control/index.js +2 -0
  109. package/out/interface/controller/state/view/i-tree-grid-ex-view.state.d.ts +13 -0
  110. package/out/interface/controller/state/view/i-tree-grid-ex-view.state.d.ts.map +1 -0
  111. package/out/interface/controller/state/view/i-tree-grid-ex-view.state.js +1 -0
  112. package/out/interface/controller/state/view/i-tree-grid-view.state.d.ts +13 -0
  113. package/out/interface/controller/state/view/i-tree-grid-view.state.d.ts.map +1 -0
  114. package/out/interface/controller/state/view/i-tree-grid-view.state.js +1 -0
  115. package/out/interface/controller/state/view/i-view.state.d.ts +10 -0
  116. package/out/interface/controller/state/view/i-view.state.d.ts.map +1 -1
  117. package/out/interface/controller/state/view/index.d.ts +2 -0
  118. package/out/interface/controller/state/view/index.d.ts.map +1 -1
  119. package/out/interface/controller/state/view/index.js +2 -0
  120. package/out/interface/provider/i-grid-column.provider.d.ts +2 -1
  121. package/out/interface/provider/i-grid-column.provider.d.ts.map +1 -1
  122. package/out/interface/service/service/i-app-de.service.d.ts +9 -0
  123. package/out/interface/service/service/i-app-de.service.d.ts.map +1 -1
  124. package/out/interface/service/service/i-config.service.d.ts +20 -0
  125. package/out/interface/service/service/i-config.service.d.ts.map +1 -0
  126. package/out/interface/service/service/i-config.service.js +1 -0
  127. package/out/interface/service/service/index.d.ts +1 -0
  128. package/out/interface/service/service/index.d.ts.map +1 -1
  129. package/out/service/app-data-entity/app-data-entity.d.ts +10 -0
  130. package/out/service/app-data-entity/app-data-entity.d.ts.map +1 -1
  131. package/out/service/app-data-entity/app-data-entity.js +40 -13
  132. package/out/service/service/config/config.service.d.ts +43 -0
  133. package/out/service/service/config/config.service.d.ts.map +1 -0
  134. package/out/service/service/config/config.service.js +54 -0
  135. package/out/service/service/entity/de.service.d.ts +9 -0
  136. package/out/service/service/entity/de.service.d.ts.map +1 -1
  137. package/out/service/service/entity/de.service.js +2 -0
  138. package/out/service/service/index.d.ts +1 -0
  139. package/out/service/service/index.d.ts.map +1 -1
  140. package/out/service/service/index.js +1 -0
  141. package/out/service/vo/control.vo.d.ts.map +1 -1
  142. package/out/service/vo/control.vo.js +1 -5
  143. package/out/ui-action/provider/backend-ui-action-provider.d.ts.map +1 -1
  144. package/out/ui-action/provider/backend-ui-action-provider.js +5 -2
  145. package/out/ui-action/provider/ui-action-provider-base.d.ts +12 -1
  146. package/out/ui-action/provider/ui-action-provider-base.d.ts.map +1 -1
  147. package/out/ui-action/provider/ui-action-provider-base.js +55 -5
  148. package/out/ui-logic/ui-logic-context.d.ts +8 -0
  149. package/out/ui-logic/ui-logic-context.d.ts.map +1 -1
  150. package/out/ui-logic/ui-logic-context.js +11 -0
  151. package/out/ui-logic/ui-logic-link/ui-logic-link.js +1 -1
  152. package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.d.ts.map +1 -1
  153. package/out/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.js +5 -1
  154. package/out/ui-logic/utils/handle-src-val.d.ts.map +1 -1
  155. package/out/ui-logic/utils/handle-src-val.js +17 -4
  156. package/package.json +2 -2
  157. package/src/app-hub.ts +17 -0
  158. package/src/application.ts +20 -1
  159. package/src/controller/common/control/md-control.controller.ts +3 -0
  160. package/src/controller/common/view/view.controller.ts +67 -0
  161. package/src/controller/control/dashboard/custom-dashboard.controller.ts +107 -0
  162. package/src/controller/control/dashboard/index.ts +1 -0
  163. package/src/controller/control/dashboard/portlet/portlet-part/portlet-part.controller.ts +32 -9
  164. package/src/controller/control/index.ts +2 -0
  165. package/src/controller/control/tree-grid/index.ts +2 -0
  166. package/src/controller/control/tree-grid/tree-grid.controller.ts +6 -0
  167. package/src/controller/control/tree-grid/tree-grid.service.ts +12 -0
  168. package/src/controller/control/tree-grid-ex/index.ts +2 -0
  169. package/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts +283 -0
  170. package/src/controller/control/tree-grid-ex/tree-grid-ex.service.ts +171 -0
  171. package/src/controller/utils/event/controller-event.ts +16 -0
  172. package/src/controller/utils/view-msg/index.ts +1 -0
  173. package/src/controller/utils/view-msg/view-msg-controller.ts +250 -0
  174. package/src/de-logic/de-logic-context.ts +12 -0
  175. package/src/de-logic/de-logic-node/prepare-param-node/prepare-param-node.ts +7 -1
  176. package/src/de-logic/utils/handle-src-val.ts +23 -10
  177. package/src/interface/common/i-app-hub-service/i-app-hub-service.ts +10 -0
  178. package/src/interface/common/i-app-service/i-app-service.ts +10 -0
  179. package/src/interface/controller/common/index.ts +1 -0
  180. package/src/interface/controller/common/view-message/i-view-message.ts +42 -0
  181. package/src/interface/controller/controller/control/i-tree-grid-ex.controller.ts +20 -0
  182. package/src/interface/controller/controller/control/i-tree-grid.controller.ts +12 -0
  183. package/src/interface/controller/controller/control/index.ts +2 -0
  184. package/src/interface/controller/controller/control/portlet/i-portlet.controller.ts +8 -0
  185. package/src/interface/controller/event/control/i-tree-grid-ex.event.ts +12 -0
  186. package/src/interface/controller/event/control/i-tree-grid.event.ts +12 -0
  187. package/src/interface/controller/event/control/index.ts +2 -0
  188. package/src/interface/controller/event/view/i-tree-grid-ex-view.event.ts +12 -0
  189. package/src/interface/controller/event/view/i-tree-grid-view.event.ts +12 -0
  190. package/src/interface/controller/event/view/index.ts +2 -0
  191. package/src/interface/controller/state/control/i-tree-grid-ex.state.ts +56 -0
  192. package/src/interface/controller/state/control/i-tree-grid.state.ts +12 -0
  193. package/src/interface/controller/state/control/index.ts +2 -0
  194. package/src/interface/controller/state/view/i-tree-grid-ex-view.state.ts +12 -0
  195. package/src/interface/controller/state/view/i-tree-grid-view.state.ts +12 -0
  196. package/src/interface/controller/state/view/i-view.state.ts +9 -0
  197. package/src/interface/controller/state/view/index.ts +2 -0
  198. package/src/interface/provider/i-grid-column.provider.ts +2 -1
  199. package/src/interface/service/service/i-app-de.service.ts +10 -0
  200. package/src/interface/service/service/i-config.service.ts +20 -0
  201. package/src/interface/service/service/index.ts +1 -0
  202. package/src/service/app-data-entity/app-data-entity.ts +44 -13
  203. package/src/service/service/config/config.service.ts +65 -0
  204. package/src/service/service/entity/de.service.ts +15 -0
  205. package/src/service/service/index.ts +1 -0
  206. package/src/service/vo/control.vo.ts +1 -6
  207. package/src/ui-action/provider/backend-ui-action-provider.ts +5 -2
  208. package/src/ui-action/provider/ui-action-provider-base.ts +68 -6
  209. package/src/ui-logic/ui-logic-context.ts +12 -0
  210. package/src/ui-logic/ui-logic-link/ui-logic-link.ts +1 -1
  211. package/src/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.ts +7 -1
  212. package/src/ui-logic/utils/handle-src-val.ts +20 -4
@@ -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;
@@ -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
  *
@@ -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';
@@ -0,0 +1,42 @@
1
+ import { IAppViewMsg } from '@ibiz/model-core';
2
+
3
+ export interface IViewMessage {
4
+ /**
5
+ * 位置
6
+ * @author lxm
7
+ * @date 2023-09-20 07:52:52
8
+ * @type {IPSAppViewMsg['position']}
9
+ */
10
+ position: IAppViewMsg['position'];
11
+
12
+ /**
13
+ * 消息类型
14
+ * @author lxm
15
+ * @date 2023-09-20 09:11:34
16
+ * @type {IAppViewMsg['messageType']}
17
+ */
18
+ messageType?: IAppViewMsg['messageType'];
19
+
20
+ /**
21
+ * 消息删除模式
22
+ * @author lxm
23
+ * @date 2023-09-20 09:11:35
24
+ * @type {IAppViewMsg['removeMode']}
25
+ */
26
+ removeMode?: IAppViewMsg['removeMode'];
27
+
28
+ /**
29
+ * 标题
30
+ * @author lxm
31
+ * @date 2023-09-20 02:26:33
32
+ * @type {string}
33
+ */
34
+ title?: string;
35
+ /**
36
+ * 消息内容
37
+ * @author lxm
38
+ * @date 2023-09-20 02:26:32
39
+ * @type {string}
40
+ */
41
+ message?: string;
42
+ }
@@ -0,0 +1,20 @@
1
+ import { IDETreeGrid } from '@ibiz/model-core';
2
+ import { ITreeGridExEvent } from '../../event';
3
+ import { ITreeGridExState } from '../../state';
4
+ import { IMDControlController } from './i-md-control.controller';
5
+
6
+ /**
7
+ * 树表格(增强)部件控制器
8
+ *
9
+ * @author zk
10
+ * @date 2023-09-21 11:09:17
11
+ * @export
12
+ * @interface ITreeGridController
13
+ * @extends {IMDControlController<IDETreeGrid, ITreeGridState, ITreeGridEvent>}
14
+ */
15
+ export interface ITreeGridExController
16
+ extends IMDControlController<
17
+ IDETreeGrid,
18
+ ITreeGridExState,
19
+ ITreeGridExEvent
20
+ > {}
@@ -0,0 +1,12 @@
1
+ import { IGridController } from './i-grid.controller';
2
+
3
+ /**
4
+ * 树表格部件控制器
5
+ *
6
+ * @author zk
7
+ * @date 2023-09-21 11:09:17
8
+ * @export
9
+ * @interface ITreeGridController
10
+ * @extends {IMDControlController<IDETreeGrid, ITreeGridState, ITreeGridEvent>}
11
+ */
12
+ export interface ITreeGridController extends IGridController {}
@@ -31,3 +31,5 @@ export * from './i-calendar.controller';
31
31
  export * from './i-calendar-exp-bar.controller';
32
32
  export * from './i-context-menu.controller';
33
33
  export * from './i-kanban.controller';
34
+ export * from './i-tree-grid.controller';
35
+ export * from './i-tree-grid-ex.controller';
@@ -42,4 +42,12 @@ export interface IPortletController {
42
42
  * @return {*} {Promise<void>}
43
43
  */
44
44
  dataChangeNotify(data: IData): Promise<void>;
45
+
46
+ /**
47
+ * 销毁方法
48
+ * @return {*}
49
+ * @author: zhujiamin
50
+ * @Date: 2023-09-22 16:55:47
51
+ */
52
+ destroyed(): Promise<void>;
45
53
  }
@@ -0,0 +1,12 @@
1
+ import { IMDControlEvent } from './i-md-control.event';
2
+
3
+ /**
4
+ * 树表格(增强)部件事件
5
+ *
6
+ * @author zk
7
+ * @date 2023-09-21 11:09:54
8
+ * @export
9
+ * @interface ITreeGridExEvent
10
+ * @extends {IMDControlEvent}
11
+ */
12
+ export interface ITreeGridExEvent extends IMDControlEvent {}
@@ -0,0 +1,12 @@
1
+ import { IGridEvent } from './i-grid.event';
2
+
3
+ /**
4
+ * 树表格部件事件
5
+ *
6
+ * @author zk
7
+ * @date 2023-09-21 11:09:54
8
+ * @export
9
+ * @interface ITreeGridEvent
10
+ * @extends {IMDControlEvent}
11
+ */
12
+ export interface ITreeGridEvent extends IGridEvent {}
@@ -27,3 +27,5 @@ export * from './i-drtab.event';
27
27
  export * from './i-calendar.event';
28
28
  export * from './i-calendar-exp-bar.event';
29
29
  export * from './i-context-menu.event';
30
+ export * from './i-tree-grid.event';
31
+ export * from './i-tree-grid-ex.event';
@@ -0,0 +1,12 @@
1
+ import { IMDViewEvent } from './i-md-view.event';
2
+
3
+ /**
4
+ * 树表格视图(增强)事件
5
+ *
6
+ * @author zk
7
+ * @date 2023-09-21 11:09:22
8
+ * @export
9
+ * @interface ITreeGridViewEvent
10
+ * @extends {IMDViewEvent}
11
+ */
12
+ export type ITreeGridExViewEvent = IMDViewEvent;
@@ -0,0 +1,12 @@
1
+ import { IMDViewEvent } from './i-md-view.event';
2
+
3
+ /**
4
+ * 树表格视图事件
5
+ *
6
+ * @author zk
7
+ * @date 2023-09-21 11:09:22
8
+ * @export
9
+ * @interface ITreeGridViewEvent
10
+ * @extends {IMDViewEvent}
11
+ */
12
+ export type ITreeGridViewEvent = IMDViewEvent;
@@ -37,3 +37,5 @@ export * from './i-calendar-view.event';
37
37
  export * from './i-calendar-exp-view.event';
38
38
  export * from './i-pickup-md-view.event';
39
39
  export * from './i-form-pickup-data-view.event';
40
+ export * from './i-tree-grid-view.event';
41
+ export * from './i-tree-grid-ex-view.event';
@@ -0,0 +1,56 @@
1
+ import { IColumnState } from './i-grid.state';
2
+ import { IMDControlState } from './i-md-control.state';
3
+ import { ITreeNodeData } from './i-tree.state';
4
+
5
+ /**
6
+ * 树表格(增强)部件状态
7
+ *
8
+ * @author zk
9
+ * @date 2023-09-21 11:09:01
10
+ * @export
11
+ * @interface ITreeGridExState
12
+ * @extends {IMDControlState}
13
+ */
14
+ export interface ITreeGridExState extends IMDControlState {
15
+ items: ITreeNodeData[];
16
+
17
+ /**
18
+ * 表格列状态数组
19
+ * 顺序就是列的排序
20
+ * @author zk
21
+ * @date 2023-09-21 02:09:57
22
+ * @type {IColumnState[]}
23
+ * @memberof ITreeGridState
24
+ */
25
+ columnStates: IColumnState[];
26
+
27
+ /**
28
+ * 树的根节点
29
+ *
30
+ * @author zk
31
+ * @date 2023-09-21 02:09:29
32
+ * @type {ITreeNodeData[]}
33
+ * @memberof ITreeGridState
34
+ */
35
+ rootNodes: ITreeNodeData[];
36
+
37
+ /**
38
+ * 外部提供的默认展开的节点集合
39
+ *
40
+ * @author zk
41
+ * @date 2023-09-21 02:09:48
42
+ * @type {string[]}
43
+ * @memberof ITreeGridState
44
+ */
45
+ defaultExpandedKeys: string[];
46
+
47
+ /**
48
+ * 实际默认展开节点集合
49
+ *
50
+ * @author zk
51
+ * @date 2023-09-21 02:09:42
52
+ * @type {string[]}
53
+ * @memberof ITreeGridState
54
+ */
55
+ expandedKeys: string[];
56
+ }
@@ -0,0 +1,12 @@
1
+ import { IGridState } from './i-grid.state';
2
+
3
+ /**
4
+ * 树表格部件状态
5
+ *
6
+ * @author zk
7
+ * @date 2023-09-21 11:09:01
8
+ * @export
9
+ * @interface ITreeGridState
10
+ * @extends {IMDControlState}
11
+ */
12
+ export interface ITreeGridState extends IGridState {}
@@ -33,3 +33,5 @@ export * from './i-calendar.state';
33
33
  export * from './i-calendar-exp-bar.state';
34
34
  export * from './i-context-menu.state';
35
35
  export * from './i-kanban.state';
36
+ export * from './i-tree-grid.state';
37
+ export * from './i-tree-grid-ex.state';
@@ -0,0 +1,12 @@
1
+ import { IMDViewState } from './i-md-view.state';
2
+
3
+ /**
4
+ * 树表格视图(增强)UI状态
5
+ *
6
+ * @author zk
7
+ * @date 2023-09-21 11:09:36
8
+ * @export
9
+ * @interface ITreeGridViewState
10
+ * @extends {IMDViewState}
11
+ */
12
+ export interface ITreeGridExViewState extends IMDViewState {}
@@ -0,0 +1,12 @@
1
+ import { IMDViewState } from './i-md-view.state';
2
+
3
+ /**
4
+ * 树表格视图UI状态
5
+ *
6
+ * @author zk
7
+ * @date 2023-09-21 11:09:36
8
+ * @export
9
+ * @interface ITreeGridViewState
10
+ * @extends {IMDViewState}
11
+ */
12
+ export interface ITreeGridViewState extends IMDViewState {}
@@ -1,4 +1,5 @@
1
1
  import { IViewSession } from '../../../studio';
2
+ import { IViewMessage } from '../../common';
2
3
  import { IControllerState } from '../common/i-controller.state';
3
4
 
4
5
  /**
@@ -40,4 +41,12 @@ export interface IViewState extends IControllerState, IViewSession {
40
41
  * @type {boolean}
41
42
  */
42
43
  closeOK?: boolean;
44
+
45
+ /**
46
+ * 视图消息数据
47
+ * @author lxm
48
+ * @date 2023-09-20 09:48:29
49
+ * @type {{ [p: string]: IViewMessage[] }}
50
+ */
51
+ viewMessages: { [p: string]: IViewMessage[] };
43
52
  }