@ibiz-template/runtime 0.4.16 → 0.4.17-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 (247) hide show
  1. package/dist/index.esm.js +477 -355
  2. package/dist/index.system.min.js +2 -2
  3. package/out/app-hub.d.ts +8 -0
  4. package/out/app-hub.d.ts.map +1 -1
  5. package/out/app-hub.js +13 -0
  6. package/out/controller/common/base.controller.d.ts +1 -0
  7. package/out/controller/common/base.controller.d.ts.map +1 -1
  8. package/out/controller/common/base.controller.js +2 -0
  9. package/out/controller/common/view/view.controller.d.ts.map +1 -1
  10. package/out/controller/common/view/view.controller.js +9 -3
  11. package/out/controller/common/view/wf-step-trace-view.controller.d.ts.map +1 -1
  12. package/out/controller/common/view/wf-step-trace-view.controller.js +3 -2
  13. package/out/controller/control/calendar/calendar.service.d.ts +3 -3
  14. package/out/controller/control/calendar/calendar.service.d.ts.map +1 -1
  15. package/out/controller/control/calendar/calendar.service.js +2 -2
  16. package/out/controller/control/form/edit-form/edit-form.service.d.ts +18 -18
  17. package/out/controller/control/form/edit-form/edit-form.service.d.ts.map +1 -1
  18. package/out/controller/control/form/edit-form/edit-form.service.js +11 -11
  19. package/out/controller/control/form/form/form.service.d.ts +2 -2
  20. package/out/controller/control/form/form/form.service.d.ts.map +1 -1
  21. package/out/controller/control/form/form/form.service.js +1 -1
  22. package/out/controller/control/form/search-form/search-form.service.d.ts +2 -2
  23. package/out/controller/control/form/search-form/search-form.service.d.ts.map +1 -1
  24. package/out/controller/control/form/search-form/search-form.service.js +1 -1
  25. package/out/controller/control/gantt/gantt.controller.d.ts.map +1 -1
  26. package/out/controller/control/gantt/gantt.controller.js +1 -0
  27. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  28. package/out/controller/control/grid/grid/grid.controller.js +1 -1
  29. package/out/controller/control/grid/grid/grid.service.d.ts +2 -2
  30. package/out/controller/control/grid/grid/grid.service.d.ts.map +1 -1
  31. package/out/controller/control/grid/grid/grid.service.js +2 -2
  32. package/out/controller/control/kanban/kanban.service.d.ts +2 -2
  33. package/out/controller/control/kanban/kanban.service.d.ts.map +1 -1
  34. package/out/controller/control/kanban/kanban.service.js +1 -1
  35. package/out/controller/control/map/map.service.d.ts +1 -1
  36. package/out/controller/control/map/map.service.js +1 -1
  37. package/out/controller/control/report-panel/report-panel.service.d.ts +2 -2
  38. package/out/controller/control/report-panel/report-panel.service.d.ts.map +1 -1
  39. package/out/controller/control/report-panel/report-panel.service.js +1 -1
  40. package/out/controller/control/tree/tree.service.d.ts +2 -2
  41. package/out/controller/control/tree/tree.service.d.ts.map +1 -1
  42. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts.map +1 -1
  43. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.js +1 -0
  44. package/out/controller/control/wizard-panel/wizard-panel.service.d.ts +4 -4
  45. package/out/controller/control/wizard-panel/wizard-panel.service.d.ts.map +1 -1
  46. package/out/controller/control/wizard-panel/wizard-panel.service.js +2 -2
  47. package/out/controller/utils/value-default/value-default.d.ts +1 -1
  48. package/out/controller/utils/value-default/value-default.d.ts.map +1 -1
  49. package/out/de-logic/de-logic-context.d.ts +5 -5
  50. package/out/de-logic/de-logic-context.d.ts.map +1 -1
  51. package/out/de-logic/de-logic-context.js +1 -1
  52. package/out/de-logic/de-logic-link/de-logic-link-group-cond/de-logic-link-group-cond.d.ts +2 -2
  53. package/out/de-logic/de-logic-link/de-logic-link-group-cond/de-logic-link-group-cond.d.ts.map +1 -1
  54. package/out/de-logic/de-logic-link/de-logic-link-group-cond/de-logic-link-group-cond.js +1 -1
  55. package/out/de-logic/de-logic-link/de-logic-link-single-cond/de-logic-link-single-cond.d.ts +2 -2
  56. package/out/de-logic/de-logic-link/de-logic-link-single-cond/de-logic-link-single-cond.d.ts.map +1 -1
  57. package/out/de-logic/de-logic-link/de-logic-link-single-cond/de-logic-link-single-cond.js +1 -1
  58. package/out/de-logic/de-logic-link/de-logic-link.d.ts +1 -1
  59. package/out/de-logic/de-logic-link/de-logic-link.js +1 -1
  60. package/out/de-logic/de-logic-node/de-logic-node.d.ts +1 -1
  61. package/out/de-logic/de-logic-param/de-logic-param.d.ts +1 -1
  62. package/out/de-logic/de-logic-param/de-logic-param.js +1 -1
  63. package/out/de-logic/de-logic.d.ts +3 -3
  64. package/out/de-logic/de-logic.d.ts.map +1 -1
  65. package/out/de-logic/de-logic.js +2 -2
  66. package/out/de-logic/index.d.ts +8 -8
  67. package/out/de-logic/index.d.ts.map +1 -1
  68. package/out/de-logic/index.js +5 -5
  69. package/out/install.d.ts.map +1 -1
  70. package/out/install.js +3 -0
  71. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts +8 -0
  72. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts.map +1 -1
  73. package/out/interface/common/i-data-ability-params/i-data-ability-params.d.ts +1 -1
  74. package/out/interface/common/i-data-ability-params/i-data-ability-params.d.ts.map +1 -1
  75. package/out/interface/controller/controller/i.controller.d.ts +8 -0
  76. package/out/interface/controller/controller/i.controller.d.ts.map +1 -1
  77. package/out/interface/provider/i-de-method.provider.d.ts +10 -1
  78. package/out/interface/provider/i-de-method.provider.d.ts.map +1 -1
  79. package/out/interface/provider/i-grid-column.provider.d.ts +2 -2
  80. package/out/interface/provider/i-grid-column.provider.d.ts.map +1 -1
  81. package/out/interface/service/service/i-app-de.service.d.ts +49 -43
  82. package/out/interface/service/service/i-app-de.service.d.ts.map +1 -1
  83. package/out/interface/service/service/i-file.service.d.ts +2 -2
  84. package/out/interface/service/service/i-file.service.d.ts.map +1 -1
  85. package/out/interface/service/service/i-wf.service.d.ts +12 -12
  86. package/out/interface/service/service/i-wf.service.d.ts.map +1 -1
  87. package/out/register/helper/grid-column-register.d.ts +2 -2
  88. package/out/register/helper/grid-column-register.d.ts.map +1 -1
  89. package/out/register/helper/grid-column-register.js +0 -14
  90. package/out/service/de-service-util.d.ts +26 -13
  91. package/out/service/de-service-util.d.ts.map +1 -1
  92. package/out/service/de-service-util.js +45 -16
  93. package/out/service/dto/method.dto.d.ts +20 -8
  94. package/out/service/dto/method.dto.d.ts.map +1 -1
  95. package/out/service/dto/method.dto.js +33 -15
  96. package/out/service/service/authority/authority.service.d.ts +1 -1
  97. package/out/service/service/authority/authority.service.js +1 -1
  98. package/out/service/service/code-list/code-list.service.d.ts +3 -3
  99. package/out/service/service/code-list/code-list.service.d.ts.map +1 -1
  100. package/out/service/service/code-list/code-list.service.js +2 -2
  101. package/out/service/service/control/control.service.d.ts +2 -2
  102. package/out/service/service/control/control.service.d.ts.map +1 -1
  103. package/out/service/service/control/control.service.js +1 -1
  104. package/out/service/service/control/md-control.service.d.ts +13 -13
  105. package/out/service/service/control/md-control.service.d.ts.map +1 -1
  106. package/out/service/service/control/md-control.service.js +7 -7
  107. package/out/service/service/counter/counter.service.d.ts +3 -3
  108. package/out/service/service/counter/counter.service.d.ts.map +1 -1
  109. package/out/service/service/counter/counter.service.js +1 -1
  110. package/out/service/service/entity/de.service.d.ts +46 -28
  111. package/out/service/service/entity/de.service.d.ts.map +1 -1
  112. package/out/service/service/entity/de.service.js +35 -71
  113. package/out/service/service/entity/method/de-action.d.ts +23 -33
  114. package/out/service/service/entity/method/de-action.d.ts.map +1 -1
  115. package/out/service/service/entity/method/de-action.js +18 -35
  116. package/out/service/service/entity/method/fetch.d.ts +3 -4
  117. package/out/service/service/entity/method/fetch.d.ts.map +1 -1
  118. package/out/service/service/entity/method/fetch.js +3 -8
  119. package/out/service/service/entity/method/method-input.d.ts +10 -5
  120. package/out/service/service/entity/method/method-input.d.ts.map +1 -1
  121. package/out/service/service/entity/method/method-input.js +9 -8
  122. package/out/service/service/entity/method/method-renturn.d.ts +10 -7
  123. package/out/service/service/entity/method/method-renturn.d.ts.map +1 -1
  124. package/out/service/service/entity/method/method-renturn.js +9 -9
  125. package/out/service/service/entity/method/method.d.ts +11 -27
  126. package/out/service/service/entity/method/method.d.ts.map +1 -1
  127. package/out/service/service/entity/method/method.js +9 -21
  128. package/out/service/service/entity/method/provider/de-action-de-method.provider.d.ts +2 -2
  129. package/out/service/service/entity/method/provider/de-action-de-method.provider.d.ts.map +1 -1
  130. package/out/service/service/entity/method/provider/de-action-de-method.provider.js +2 -2
  131. package/out/service/service/entity/method/provider/fetch-de-method.provider.d.ts +2 -2
  132. package/out/service/service/entity/method/provider/fetch-de-method.provider.d.ts.map +1 -1
  133. package/out/service/service/entity/method/provider/fetch-de-method.provider.js +3 -3
  134. package/out/service/service/file/file.service.d.ts +2 -2
  135. package/out/service/service/file/file.service.d.ts.map +1 -1
  136. package/out/service/service/file/file.service.js +1 -1
  137. package/out/service/service/work-flow/work-flow.service.d.ts +28 -28
  138. package/out/service/service/work-flow/work-flow.service.d.ts.map +1 -1
  139. package/out/service/service/work-flow/work-flow.service.js +15 -15
  140. package/out/service/utils/app-counter/app-counter.d.ts +7 -7
  141. package/out/service/utils/app-counter/app-counter.d.ts.map +1 -1
  142. package/out/service/utils/app-counter/app-counter.js +3 -3
  143. package/out/service/utils/app-counter/app-de-counter.d.ts +2 -2
  144. package/out/service/utils/app-counter/app-de-counter.d.ts.map +1 -1
  145. package/out/service/utils/app-counter/app-de-counter.js +1 -1
  146. package/out/service/utils/de-cache/de-cache.d.ts +44 -39
  147. package/out/service/utils/de-cache/de-cache.d.ts.map +1 -1
  148. package/out/service/utils/de-cache/de-cache.js +115 -75
  149. package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts +2 -2
  150. package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts.map +1 -1
  151. package/out/service/utils/dynamic-code-list/dynamic-code-list.js +2 -2
  152. package/out/service/utils/res-path/res-path.d.ts +4 -4
  153. package/out/service/utils/res-path/res-path.d.ts.map +1 -1
  154. package/out/service/utils/res-path/res-path.js +2 -2
  155. package/out/service/utils/search-filter/search-filter.d.ts +2 -2
  156. package/out/service/utils/search-filter/search-filter.d.ts.map +1 -1
  157. package/out/service/utils/service-exist-util/service-exist-util.d.ts +2 -2
  158. package/out/service/utils/service-exist-util/service-exist-util.d.ts.map +1 -1
  159. package/out/service/utils/service-exist-util/service-exist-util.js +1 -1
  160. package/out/types.d.ts +9 -0
  161. package/out/types.d.ts.map +1 -1
  162. package/out/ui-logic/ui-logic-param/ui-logic-param.js +1 -1
  163. package/out/utils/index.d.ts +2 -0
  164. package/out/utils/index.d.ts.map +1 -1
  165. package/out/utils/index.js +2 -0
  166. package/out/utils/nav-params/calc-nav-params.d.ts +2 -2
  167. package/out/utils/nav-params/calc-nav-params.d.ts.map +1 -1
  168. package/out/utils/nav-params/calc-nav-params.js +1 -1
  169. package/out/utils/open-redirect-view/open-redirect-view.js +1 -1
  170. package/out/utils/ui-domain/ui-domain.d.ts +35 -0
  171. package/out/utils/ui-domain/ui-domain.d.ts.map +1 -0
  172. package/out/utils/ui-domain/ui-domain.js +42 -0
  173. package/out/utils/ui-domain-manager/ui-domain-manager.d.ts +47 -0
  174. package/out/utils/ui-domain-manager/ui-domain-manager.d.ts.map +1 -0
  175. package/out/utils/ui-domain-manager/ui-domain-manager.js +62 -0
  176. package/package.json +3 -3
  177. package/src/app-hub.ts +14 -0
  178. package/src/controller/common/base.controller.ts +3 -0
  179. package/src/controller/common/view/view.controller.ts +9 -3
  180. package/src/controller/common/view/wf-step-trace-view.controller.ts +4 -2
  181. package/src/controller/control/calendar/calendar.service.ts +4 -4
  182. package/src/controller/control/form/edit-form/edit-form.service.ts +23 -18
  183. package/src/controller/control/form/form/form.service.ts +2 -2
  184. package/src/controller/control/form/search-form/search-form.service.ts +2 -2
  185. package/src/controller/control/gantt/gantt.controller.ts +2 -1
  186. package/src/controller/control/grid/grid/grid.controller.ts +1 -0
  187. package/src/controller/control/grid/grid/grid.service.ts +3 -2
  188. package/src/controller/control/kanban/kanban.service.ts +2 -2
  189. package/src/controller/control/map/map.service.ts +1 -1
  190. package/src/controller/control/report-panel/report-panel.service.ts +2 -2
  191. package/src/controller/control/tree/tree.service.ts +2 -2
  192. package/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts +2 -1
  193. package/src/controller/control/wizard-panel/wizard-panel.service.ts +4 -4
  194. package/src/controller/utils/value-default/value-default.ts +1 -1
  195. package/src/de-logic/de-logic-context.ts +5 -5
  196. package/src/de-logic/de-logic-link/de-logic-link-group-cond/de-logic-link-group-cond.ts +2 -2
  197. package/src/de-logic/de-logic-link/de-logic-link-single-cond/de-logic-link-single-cond.ts +2 -2
  198. package/src/de-logic/de-logic-link/de-logic-link.ts +1 -1
  199. package/src/de-logic/de-logic-node/de-logic-node.ts +1 -1
  200. package/src/de-logic/de-logic-param/de-logic-param.ts +1 -1
  201. package/src/de-logic/de-logic.ts +3 -3
  202. package/src/de-logic/index.ts +10 -10
  203. package/src/install.ts +3 -0
  204. package/src/interface/common/i-app-hub-service/i-app-hub-service.ts +9 -0
  205. package/src/interface/common/i-data-ability-params/i-data-ability-params.ts +1 -1
  206. package/src/interface/controller/controller/i.controller.ts +9 -0
  207. package/src/interface/provider/i-de-method.provider.ts +10 -0
  208. package/src/interface/provider/i-grid-column.provider.ts +2 -7
  209. package/src/interface/service/service/i-app-de.service.ts +51 -44
  210. package/src/interface/service/service/i-file.service.ts +2 -2
  211. package/src/interface/service/service/i-wf.service.ts +12 -12
  212. package/src/register/helper/grid-column-register.ts +2 -17
  213. package/src/service/de-service-util.ts +59 -27
  214. package/src/service/dto/method.dto.ts +39 -19
  215. package/src/service/service/authority/authority.service.ts +1 -1
  216. package/src/service/service/code-list/code-list.service.ts +3 -3
  217. package/src/service/service/control/control.service.ts +2 -2
  218. package/src/service/service/control/md-control.service.ts +16 -13
  219. package/src/service/service/counter/counter.service.ts +3 -3
  220. package/src/service/service/entity/de.service.ts +57 -89
  221. package/src/service/service/entity/method/de-action.ts +29 -47
  222. package/src/service/service/entity/method/fetch.ts +5 -11
  223. package/src/service/service/entity/method/method-input.ts +10 -9
  224. package/src/service/service/entity/method/method-renturn.ts +10 -11
  225. package/src/service/service/entity/method/method.ts +12 -35
  226. package/src/service/service/entity/method/provider/de-action-de-method.provider.ts +4 -2
  227. package/src/service/service/entity/method/provider/fetch-de-method.provider.ts +4 -2
  228. package/src/service/service/file/file.service.ts +2 -2
  229. package/src/service/service/work-flow/work-flow.service.ts +30 -30
  230. package/src/service/utils/app-counter/app-counter.ts +7 -7
  231. package/src/service/utils/app-counter/app-de-counter.ts +2 -2
  232. package/src/service/utils/de-cache/de-cache.ts +124 -85
  233. package/src/service/utils/dynamic-code-list/dynamic-code-list.ts +2 -5
  234. package/src/service/utils/res-path/res-path.ts +4 -4
  235. package/src/service/utils/search-filter/search-filter.ts +2 -2
  236. package/src/service/utils/service-exist-util/service-exist-util.ts +2 -2
  237. package/src/types.ts +10 -0
  238. package/src/ui-logic/ui-logic-param/ui-logic-param.ts +1 -1
  239. package/src/utils/index.ts +2 -0
  240. package/src/utils/nav-params/calc-nav-params.ts +2 -2
  241. package/src/utils/open-redirect-view/open-redirect-view.ts +1 -1
  242. package/src/utils/ui-domain/ui-domain.ts +52 -0
  243. package/src/utils/ui-domain-manager/ui-domain-manager.ts +64 -0
  244. package/out/service/service/entity/util/util.d.ts +0 -13
  245. package/out/service/service/entity/util/util.d.ts.map +0 -1
  246. package/out/service/service/entity/util/util.js +0 -14
  247. package/src/service/service/entity/util/util.ts +0 -18
@@ -7,7 +7,7 @@ import {
7
7
  import { ModelError } from '@ibiz-template/core';
8
8
  import { AppDataEntity } from '../app-data-entity/app-data-entity';
9
9
  import { findModelChild } from '../../model';
10
- import { IAppService } from '../../interface';
10
+ import { IAppDEService, IAppService, IDataEntity } from '../../interface';
11
11
 
12
12
  interface listMap {
13
13
  [key: number]: IData;
@@ -29,6 +29,7 @@ export class MethodDto {
29
29
  protected dtoMap: Map<string, MethodDto> = new Map();
30
30
 
31
31
  constructor(
32
+ protected service: IAppDEService,
32
33
  protected entity: IAppDataEntity,
33
34
  protected isLocalMode?: boolean,
34
35
  protected dto?: IAppDEMethodDTO,
@@ -41,6 +42,19 @@ export class MethodDto {
41
42
  }
42
43
  }
43
44
 
45
+ /**
46
+ * 查找本地 DTO 存储数据
47
+ *
48
+ * @author chitanda
49
+ * @date 2023-12-22 14:12:19
50
+ * @param {IContext} context
51
+ * @param {IParams} [params]
52
+ * @return {*} {IDataEntity[]}
53
+ */
54
+ select(context: IContext, params?: IParams): IDataEntity[] {
55
+ return this.service.local.select(context, params);
56
+ }
57
+
44
58
  /**
45
59
  * 转换数组成ListMap
46
60
  *
@@ -75,11 +89,11 @@ export class MethodDto {
75
89
  *
76
90
  * @author chitanda
77
91
  * @date 2022-10-10 23:10:33
78
- * @param {IParams} context
92
+ * @param {IContext} context
79
93
  * @param {IData} data
80
94
  * @return {*} {Promise<IData>}
81
95
  */
82
- async get(context: IParams, data: IData): Promise<IData> {
96
+ async get(context: IContext, data: IData): Promise<IData> {
83
97
  const params: IData = {};
84
98
  // 拷贝数据
85
99
  for (let i = 0; i < this.fields.length; i++) {
@@ -107,13 +121,13 @@ export class MethodDto {
107
121
  if (!field.refAppDataEntityId) {
108
122
  break;
109
123
  }
110
- const dto = await this.getFieldDto(field);
111
- const service = await this.app!.deService.getService(
112
- field.refAppDataEntityId!,
113
- );
114
- const items = await service.selectLocal(context, {
115
- // srfpkey: data[this.entity.keyAppDEFieldId!],
116
- });
124
+ const dto = await this.getFieldDto(context, field);
125
+ // 子数据过滤参数
126
+ const filterParams: IParams = {};
127
+ if (field.refPickupAppDEFieldId) {
128
+ filterParams[field.refPickupAppDEFieldId!] = data.srfkey;
129
+ }
130
+ const items = await dto.select(context, filterParams);
117
131
  if (items) {
118
132
  const arr = [];
119
133
  for (let j = 0; j < items.length; j++) {
@@ -140,14 +154,13 @@ export class MethodDto {
140
154
  *
141
155
  * @author chitanda
142
156
  * @date 2022-10-10 23:10:50
143
- * @param {IParams} context
157
+ * @param {IContext} context
144
158
  * @param {IData[]} data
145
159
  * @return {*} {Promise<AppDataEntity[]>}
146
160
  */
147
- async sets(context: IParams, data: IData[]): Promise<AppDataEntity[]> {
148
- const service = await this.app!.deService.getService(this.entity.id!);
161
+ async sets(context: IContext, data: IData[]): Promise<AppDataEntity[]> {
149
162
  if (this.isLocalMode) {
150
- service.local.clear(context);
163
+ this.service.local.clear();
151
164
  }
152
165
  return Promise.all(
153
166
  data.map(async datum => {
@@ -162,13 +175,14 @@ export class MethodDto {
162
175
  if (!field.refAppDataEntityId) {
163
176
  return;
164
177
  }
165
- const dto = await this.getFieldDto(field);
178
+ const dto = await this.getFieldDto(context, field);
166
179
  const items: IData[] = datum[key];
167
180
  if (items) {
168
181
  const pKey = datum[this.entity.keyAppDEFieldId!];
169
182
  // 特殊处理,在子包内设置父对象标识
170
183
  items.forEach(item => {
171
184
  item.srfpkey = pKey;
185
+ item[field.refPickupAppDEFieldId!] = pKey;
172
186
  });
173
187
  await dto.sets(context, items);
174
188
  } else {
@@ -181,7 +195,7 @@ export class MethodDto {
181
195
  }
182
196
  const entityData = new AppDataEntity(this.entity, datum);
183
197
  if (this.isLocalMode) {
184
- await service.local.add(context, entityData);
198
+ await this.service.local.add(context, entityData);
185
199
  }
186
200
  return entityData;
187
201
  }),
@@ -192,12 +206,16 @@ export class MethodDto {
192
206
  * 获取子属性 DTO
193
207
  *
194
208
  * @author chitanda
195
- * @date 2022-10-17 16:10:47
209
+ * @date 2023-12-22 13:12:06
196
210
  * @protected
211
+ * @param {IContext} context
197
212
  * @param {IAppDEMethodDTOField} field
198
213
  * @return {*} {Promise<MethodDto>}
199
214
  */
200
- protected async getFieldDto(field: IAppDEMethodDTOField): Promise<MethodDto> {
215
+ protected async getFieldDto(
216
+ context: IContext,
217
+ field: IAppDEMethodDTOField,
218
+ ): Promise<MethodDto> {
201
219
  if (this.dtoMap.has(field.codeName!)) {
202
220
  return this.dtoMap.get(field.codeName!)!;
203
221
  }
@@ -209,7 +227,9 @@ export class MethodDto {
209
227
  entity.appDEMethodDTOs || [],
210
228
  field.refAppDEMethodDTOId!,
211
229
  )!;
212
- const dto = new MethodDto(entity, true, methodDto);
230
+ const service = await this.app!.deService.getService(context, entity.id!);
231
+ service.isLocalMode = true;
232
+ const dto = new MethodDto(service, entity, true, methodDto);
213
233
  this.dtoMap.set(field.codeName!, dto);
214
234
  return dto;
215
235
  }
@@ -82,7 +82,7 @@ export class AuthorityService {
82
82
  * @author chitanda
83
83
  * @date 2022-12-23 10:12:24
84
84
  * @param {string} id 实体标识
85
- * @param {IParams} [context] 上下文,用于计算模型所属沙箱环境
85
+ * @param {IContext} [context] 上下文,用于计算模型所属沙箱环境
86
86
  * @return {*} {Promise<IAppDEService>}
87
87
  */
88
88
  async getService(id: string): Promise<IAppDeAuthorityService> {
@@ -146,7 +146,7 @@ export class CodeListService {
146
146
  */
147
147
  protected async getDynamicCodeList(
148
148
  codeList: IAppCodeList,
149
- context: IParams = {},
149
+ context: IContext,
150
150
  params: IParams = {},
151
151
  ): Promise<CodeListItem[]> {
152
152
  let dynamicCache: DynamicCodeListCache;
@@ -167,13 +167,13 @@ export class CodeListService {
167
167
  * @author chitanda
168
168
  * @date 2022-08-25 15:08:45
169
169
  * @param {string} tag
170
- * @param {IParams} [context]
170
+ * @param {IContext} [context]
171
171
  * @param {IParams} [params]
172
172
  * @return {*} {Promise<CodeListItem[]>}
173
173
  */
174
174
  async get(
175
175
  tag: string,
176
- context?: IParams,
176
+ context: IContext,
177
177
  params?: IParams,
178
178
  ): Promise<readonly CodeListItem[]> {
179
179
  const codeList = this.allCodeLists.get(tag);
@@ -62,13 +62,13 @@ export class ControlService<T extends IControl = IControl> {
62
62
  * @author lxm
63
63
  * @date 2022-08-31 17:08:41
64
64
  * @param {string} methodName 方法名
65
- * @param {IParams} context 上下文
65
+ * @param {IContext} context 上下文
66
66
  * @param {IParams} [params={}] 视图参数或数据
67
67
  * @returns {*} {Promise<IHttpResponse>}
68
68
  */
69
69
  async exec(
70
70
  methodName: string,
71
- context: IParams,
71
+ context: IContext,
72
72
  data?: IData,
73
73
  params?: IParams,
74
74
  ): Promise<IHttpResponse> {
@@ -12,12 +12,12 @@ export class MDControlService<
12
12
  *
13
13
  * @author lxm
14
14
  * @date 2022-08-31 17:08:41
15
- * @param {IParams} context 上下文
15
+ * @param {IContext} context 上下文
16
16
  * @param {IParams} [params={}] 视图参数
17
17
  * @returns {*} {Promise<IHttpResponse>}
18
18
  */
19
19
  async fetch(
20
- context: IParams,
20
+ context: IContext,
21
21
  params: IParams = {},
22
22
  ): Promise<IHttpResponse<ControlVO[]>> {
23
23
  const fetchAction =
@@ -32,12 +32,12 @@ export class MDControlService<
32
32
  *
33
33
  * @author lxm
34
34
  * @date 2022-08-31 17:08:41
35
- * @param {IParams} context 上下文
35
+ * @param {IContext} context 上下文
36
36
  * @param {IParams} [params={}] 视图参数
37
37
  * @returns {*} {Promise<IHttpResponse>}
38
38
  */
39
39
  async get(
40
- context: IParams,
40
+ context: IContext,
41
41
  params: IParams = {},
42
42
  ): Promise<IHttpResponse<ControlVO>> {
43
43
  const getAction = this.model.getControlAction?.appDEMethodId || 'get';
@@ -51,12 +51,12 @@ export class MDControlService<
51
51
  *
52
52
  * @author lxm
53
53
  * @date 2022-08-31 17:08:41
54
- * @param {IParams} context 上下文
54
+ * @param {IContext} context 上下文
55
55
  * @param {IParams} [params={}] 视图参数
56
56
  * @returns {*} {Promise<IHttpResponse>}
57
57
  */
58
58
  async getDraft(
59
- context: IParams,
59
+ context: IContext,
60
60
  params: IParams = {},
61
61
  ): Promise<IHttpResponse<ControlVO>> {
62
62
  const getDraftAction =
@@ -71,11 +71,14 @@ export class MDControlService<
71
71
  *
72
72
  * @author lxm
73
73
  * @date 2022-09-07 19:09:48
74
- * @param {IParams} context 上下文
74
+ * @param {IContext} context 上下文
75
75
  * @param {IParams} [params={}] 视图参数
76
76
  * @returns {*}
77
77
  */
78
- async remove(context: IParams, params: IParams = {}): Promise<IHttpResponse> {
78
+ async remove(
79
+ context: IContext,
80
+ params: IParams = {},
81
+ ): Promise<IHttpResponse> {
79
82
  const removeAction =
80
83
  this.model.removeControlAction?.appDEMethodId || 'remove';
81
84
  const res = await this.exec(removeAction, context, undefined, params);
@@ -87,12 +90,12 @@ export class MDControlService<
87
90
  *
88
91
  * @author lxm
89
92
  * @date 2022-09-07 19:09:11
90
- * @param {IParams} context 上下文
93
+ * @param {IContext} context 上下文
91
94
  * @param {ControlVO} data 数据
92
95
  * @returns {*}
93
96
  */
94
97
  async create(
95
- context: IParams,
98
+ context: IContext,
96
99
  data: ControlVO,
97
100
  ): Promise<IHttpResponse<ControlVO>> {
98
101
  const createAction =
@@ -107,12 +110,12 @@ export class MDControlService<
107
110
  *
108
111
  * @author lxm
109
112
  * @date 2022-09-07 19:09:11
110
- * @param {IParams} context 上下文
113
+ * @param {IContext} context 上下文
111
114
  * @param {ControlVO} data 数据
112
115
  * @returns {*}
113
116
  */
114
117
  async update(
115
- context: IParams,
118
+ context: IContext,
116
119
  data: ControlVO,
117
120
  ): Promise<IHttpResponse<ControlVO>> {
118
121
  const updateAction =
@@ -152,7 +155,7 @@ export class MDControlService<
152
155
  * @author lxm
153
156
  * @date 2022-11-25 14:11:09
154
157
  * @param {IPSDEDataExport} dataExport 导出模型
155
- * @param {IParams} context 上下文
158
+ * @param {IContext} context 上下文
156
159
  * @param {IParams} [params={}] 请求参数
157
160
  * @returns {*} {Promise<IHttpResponse>}
158
161
  */
@@ -34,7 +34,7 @@ export class CounterService {
34
34
  */
35
35
  static async getCounter(
36
36
  model: IAppCounter,
37
- context?: IParams,
37
+ context?: IContext,
38
38
  params?: IParams,
39
39
  ): Promise<AppCounter> {
40
40
  const id = model.id!;
@@ -59,13 +59,13 @@ export class CounterService {
59
59
  * @date 2022-10-26 20:10:20
60
60
  * @static
61
61
  * @param {IAppCounterRef} model
62
- * @param {IParams} context
62
+ * @param {IContext} context
63
63
  * @param {IParams} params
64
64
  * @return {*} {Promise<AppCounter>}
65
65
  */
66
66
  static async getCounterByRef(
67
67
  model: IAppCounterRef,
68
- context?: IParams,
68
+ context?: IContext,
69
69
  params?: IParams,
70
70
  ): Promise<AppCounter> {
71
71
  const { appCounter } = model;
@@ -5,8 +5,6 @@ import {
5
5
  ModelError,
6
6
  RuntimeError,
7
7
  } from '@ibiz-template/core';
8
- import { equals, isEmpty, where } from 'ramda';
9
- import { ascSort } from 'qx-util';
10
8
  import { DECache, calcResPath } from '../../utils';
11
9
  import { WorkFlowService } from '../work-flow/work-flow.service';
12
10
  import { Method } from './method/method';
@@ -72,13 +70,26 @@ export class DEService implements IAppDEService {
72
70
  readonly local: DECache;
73
71
 
74
72
  /**
75
- * Creates an instance of EntityService.
73
+ * 是否为本地模式(临时数据模式)服务
76
74
  *
77
75
  * @author chitanda
78
- * @date 2022-08-24 18:08:44
79
- * @param {IAppDataEntity} model 应用实体模型
76
+ * @date 2023-12-22 16:12:13
77
+ * @type {boolean}
80
78
  */
81
- constructor(protected model: IAppDataEntity) {
79
+ isLocalMode: boolean = false;
80
+
81
+ /**
82
+ * Creates an instance of DEService.
83
+ *
84
+ * @author chitanda
85
+ * @date 2023-12-22 13:12:21
86
+ * @param {string} srfSessionId 当前实体会话标识
87
+ * @param {IAppDataEntity} model 实体模型
88
+ */
89
+ constructor(
90
+ protected srfSessionId: string,
91
+ protected model: IAppDataEntity,
92
+ ) {
82
93
  this.local = new DECache(model);
83
94
  this.configCache = new ConfigService(
84
95
  model.appId!,
@@ -114,7 +125,10 @@ export class DEService implements IAppDEService {
114
125
  if (!provider) {
115
126
  throw new ModelError(model, `未支持的服务方法类型: ${model.methodType}`);
116
127
  }
117
- const method: Method = provider.create(this.model, model, { acMode });
128
+ const method: Method = provider.create(this, this.model, model, {
129
+ acMode,
130
+ localMode: this.isLocalMode,
131
+ });
118
132
  this.methodMap.set(cacheId, method);
119
133
  return method;
120
134
  }
@@ -125,14 +139,14 @@ export class DEService implements IAppDEService {
125
139
  * @author chitanda
126
140
  * @date 2022-09-13 19:09:55
127
141
  * @param {string} id 执行服务方法标识
128
- * @param {IParams} context
142
+ * @param {IContext} context
129
143
  * @param {IData} [params={}] 请求参数
130
144
  * @param {IParams} [params2={}] 查询参数
131
145
  * @return {*} {Promise<IHttpResponse>}
132
146
  */
133
147
  async exec(
134
148
  id: string,
135
- context: IParams,
149
+ context: IContext,
136
150
  params?: IData | IData[],
137
151
  params2?: IParams,
138
152
  ): Promise<IHttpResponse> {
@@ -144,7 +158,7 @@ export class DEService implements IAppDEService {
144
158
  }
145
159
 
146
160
  getDraft(
147
- context: IParams,
161
+ context: IContext,
148
162
  params?: IData | IData[],
149
163
  params2?: IParams,
150
164
  ): Promise<IHttpResponse<IData>> {
@@ -152,7 +166,7 @@ export class DEService implements IAppDEService {
152
166
  }
153
167
 
154
168
  create(
155
- context: IParams,
169
+ context: IContext,
156
170
  params?: IData | IData[],
157
171
  params2?: IParams,
158
172
  ): Promise<IHttpResponse<IData>> {
@@ -160,7 +174,7 @@ export class DEService implements IAppDEService {
160
174
  }
161
175
 
162
176
  get(
163
- context: IParams,
177
+ context: IContext,
164
178
  params?: IData | IData[],
165
179
  params2?: IParams,
166
180
  ): Promise<IHttpResponse<IData>> {
@@ -168,7 +182,7 @@ export class DEService implements IAppDEService {
168
182
  }
169
183
 
170
184
  update(
171
- context: IParams,
185
+ context: IContext,
172
186
  params?: IData | IData[],
173
187
  params2?: IParams,
174
188
  ): Promise<IHttpResponse<IData>> {
@@ -176,7 +190,7 @@ export class DEService implements IAppDEService {
176
190
  }
177
191
 
178
192
  remove(
179
- context: IParams,
193
+ context: IContext,
180
194
  params?: IData | IData[],
181
195
  params2?: IParams,
182
196
  ): Promise<IHttpResponse<IData>> {
@@ -184,7 +198,7 @@ export class DEService implements IAppDEService {
184
198
  }
185
199
 
186
200
  fetchDefault(
187
- context: IParams,
201
+ context: IContext,
188
202
  params?: IData | IData[],
189
203
  params2?: IParams,
190
204
  ): Promise<IHttpResponse<IData>> {
@@ -192,7 +206,7 @@ export class DEService implements IAppDEService {
192
206
  }
193
207
 
194
208
  getDraftTemp(
195
- context: IParams,
209
+ context: IContext,
196
210
  params?: IData | IData[],
197
211
  params2?: IParams,
198
212
  ): Promise<IHttpResponse<IData>> {
@@ -200,7 +214,7 @@ export class DEService implements IAppDEService {
200
214
  }
201
215
 
202
216
  createTemp(
203
- context: IParams,
217
+ context: IContext,
204
218
  params?: IData | IData[],
205
219
  params2?: IParams,
206
220
  ): Promise<IHttpResponse<IData>> {
@@ -208,7 +222,7 @@ export class DEService implements IAppDEService {
208
222
  }
209
223
 
210
224
  getTemp(
211
- context: IParams,
225
+ context: IContext,
212
226
  params?: IData | IData[],
213
227
  params2?: IParams,
214
228
  ): Promise<IHttpResponse<IData>> {
@@ -216,7 +230,7 @@ export class DEService implements IAppDEService {
216
230
  }
217
231
 
218
232
  updateTemp(
219
- context: IParams,
233
+ context: IContext,
220
234
  params?: IData | IData[],
221
235
  params2?: IParams,
222
236
  ): Promise<IHttpResponse<IData>> {
@@ -224,7 +238,7 @@ export class DEService implements IAppDEService {
224
238
  }
225
239
 
226
240
  removeTemp(
227
- context: IParams,
241
+ context: IContext,
228
242
  params?: IData | IData[],
229
243
  params2?: IParams,
230
244
  ): Promise<IHttpResponse<IData>> {
@@ -232,7 +246,7 @@ export class DEService implements IAppDEService {
232
246
  }
233
247
 
234
248
  fetchTempDefault(
235
- context: IParams,
249
+ context: IContext,
236
250
  params?: IData | IData[],
237
251
  params2?: IParams,
238
252
  ): Promise<IHttpResponse<IData>> {
@@ -242,72 +256,15 @@ export class DEService implements IAppDEService {
242
256
  /**
243
257
  * 查询本地数据,根据属性
244
258
  *
245
- * @param {IParams} context
259
+ * @param {IContext} context
246
260
  * @param {IParams} params 根据多实体属性查找,例:{ name: '张三', age: 18, parent: null }
247
261
  * @return {*} {Promise<IDataEntity[]>}
248
262
  */
249
263
  async selectLocal(
250
- context: IParams,
264
+ context: IContext,
251
265
  params: IParams = {},
252
266
  ): Promise<IDataEntity[]> {
253
- let items: IDataEntity[] = this.local.getList(context);
254
- items = ascSort(items, 'srfordervalue');
255
- // 查询数据条件集
256
- const data: IData = {};
257
- // if (notNilEmpty(context)) {
258
- // const map = this.entity.majorKeyMap;
259
- // if (map) {
260
- // for (const key in map) {
261
- // if (Object.prototype.hasOwnProperty.call(map, key)) {
262
- // const val = map[key];
263
- // if (notNilEmpty(context[key])) {
264
- // data[val] = equals(context[key]);
265
- // }
266
- // }
267
- // }
268
- // }
269
- // }
270
- const nullData: Record<string, unknown> = {};
271
- const undefinedData: Record<string, unknown> = {};
272
- const emptyData: Record<string, unknown> = {};
273
- if (params.srfkey) {
274
- data.srfkey = equals(params.srfkey);
275
- delete params.srfkey;
276
- }
277
- for (const key in params) {
278
- if (Object.prototype.hasOwnProperty.call(params, key)) {
279
- const val = params[key];
280
- if (val == null) {
281
- nullData[key] = equals(null);
282
- undefinedData[key] = equals(undefined);
283
- emptyData[key] = equals('');
284
- } else {
285
- data[key] = equals(val);
286
- }
287
- }
288
- }
289
- if (!isEmpty(data)) {
290
- // 返回柯里化函数,用于判断数据是否满足要求
291
- const pred = where(data);
292
- const nullPred = where(nullData);
293
- const undefinedPred = where(undefinedData);
294
- const emptyPred = where(emptyData);
295
- items = items.filter(obj => {
296
- if (isEmpty(nullData)) {
297
- if (pred(obj)) {
298
- return true;
299
- }
300
- } else if (
301
- pred(obj) &&
302
- (nullPred(obj) || undefinedPred(obj) || emptyPred(obj))
303
- ) {
304
- return true;
305
- }
306
- return false;
307
- });
308
- }
309
- const list = items.map(obj => obj.clone());
310
- return list;
267
+ return this.local.select(context, params);
311
268
  }
312
269
 
313
270
  /**
@@ -316,14 +273,14 @@ export class DEService implements IAppDEService {
316
273
  * @author chitanda
317
274
  * @date 2022-09-13 19:09:55
318
275
  * @param {string} id 执行服务方法标识
319
- * @param {IParams} context
276
+ * @param {IContext} context
320
277
  * @param {IData} [params={}] 请求参数
321
278
  * @param {IParams} [params2={}] 查询参数
322
279
  * @return {*} {Promise<IHttpResponse>}
323
280
  */
324
281
  async execAc(
325
282
  id: string,
326
- context: IParams,
283
+ context: IContext,
327
284
  params?: IData | IData[],
328
285
  params2: IParams = {},
329
286
  ): Promise<IHttpResponse> {
@@ -340,14 +297,14 @@ export class DEService implements IAppDEService {
340
297
  * @author chitanda
341
298
  * @date 2023-10-16 16:10:16
342
299
  * @param {(data: IPortalAsyncAction) => void} onmessage
343
- * @param {IParams} context
300
+ * @param {IContext} context
344
301
  * @param {IParams} [params={}]
345
302
  * @param {IData} [data={}]
346
303
  * @return {*} {Promise<void>}
347
304
  */
348
305
  aiChatSse(
349
306
  onmessage: (data: IPortalAsyncAction) => void,
350
- context: IParams,
307
+ context: IContext,
351
308
  params: IParams = {},
352
309
  data: IData = {},
353
310
  ): Promise<void> {
@@ -384,13 +341,13 @@ export class DEService implements IAppDEService {
384
341
  *
385
342
  * @author chitanda
386
343
  * @date 2023-10-26 14:10:58
387
- * @param {IParams} context
344
+ * @param {IContext} context
388
345
  * @param {IParams} [params={}]
389
346
  * @param {IData} [data={}]
390
347
  * @return {*} {Promise<IHttpResponse>}
391
348
  */
392
349
  aiChatHistory(
393
- context: IParams,
350
+ context: IContext,
394
351
  params: IParams = {},
395
352
  data: IData = {},
396
353
  ): Promise<IHttpResponse> {
@@ -405,12 +362,12 @@ export class DEService implements IAppDEService {
405
362
  * @author chitanda
406
363
  * @date 2023-10-26 14:10:25
407
364
  * @protected
408
- * @param {IParams} context
365
+ * @param {IContext} context
409
366
  * @param {boolean} [isHistories=false]
410
367
  * @return {*} {string}
411
368
  */
412
369
  protected calcSsePath(
413
- context: IParams,
370
+ context: IContext,
414
371
  isHistories: boolean = false,
415
372
  ): string {
416
373
  const srfkey = context[this.model.codeName!.toLowerCase()];
@@ -420,4 +377,15 @@ export class DEService implements IAppDEService {
420
377
  const resPath = calcResPath(context, this.model);
421
378
  return resPath + curPath;
422
379
  }
380
+
381
+ /**
382
+ * 服务实例销毁
383
+ *
384
+ * @author chitanda
385
+ * @date 2023-12-22 14:12:11
386
+ * @return {*} {Promise<void>}
387
+ */
388
+ async destroy(): Promise<void> {
389
+ this.local.clear();
390
+ }
423
391
  }