@ibiz-template/runtime 0.2.7 → 0.2.9

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 (191) hide show
  1. package/dist/index.esm.js +912 -327
  2. package/dist/index.system.min.js +1 -1
  3. package/dist/index.system.min.js.map +1 -1
  4. package/out/controller/common/control/md-control.controller.d.ts.map +1 -1
  5. package/out/controller/common/control/md-control.controller.js +21 -22
  6. package/out/controller/control/form/edit-form/edit-form.controller.d.ts.map +1 -1
  7. package/out/controller/control/form/edit-form/edit-form.controller.js +6 -0
  8. package/out/controller/control/form/form-detail/form-detail/form-detail.controller.d.ts +11 -11
  9. package/out/controller/control/form/form-detail/form-detail/form-detail.controller.d.ts.map +1 -1
  10. package/out/controller/control/form/form-detail/form-detail/form-detail.controller.js +22 -16
  11. package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.d.ts +1 -1
  12. package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.d.ts.map +1 -1
  13. package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.js +2 -2
  14. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-content-type.controller.js +4 -2
  15. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.d.ts +20 -0
  16. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.d.ts.map +1 -1
  17. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.js +57 -1
  18. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.d.ts +1 -1
  19. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.d.ts.map +1 -1
  20. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  21. package/out/controller/control/grid/grid/grid.controller.js +19 -36
  22. package/out/controller/control/index.d.ts +1 -0
  23. package/out/controller/control/index.d.ts.map +1 -1
  24. package/out/controller/control/index.js +1 -0
  25. package/out/controller/control/map/index.d.ts +3 -0
  26. package/out/controller/control/map/index.d.ts.map +1 -0
  27. package/out/controller/control/map/index.js +2 -0
  28. package/out/controller/control/map/map.controller.d.ts +45 -0
  29. package/out/controller/control/map/map.controller.d.ts.map +1 -0
  30. package/out/controller/control/map/map.controller.js +135 -0
  31. package/out/controller/control/map/map.service.d.ts +25 -0
  32. package/out/controller/control/map/map.service.d.ts.map +1 -0
  33. package/out/controller/control/map/map.service.js +55 -0
  34. package/out/controller/control/panel/panel/panel-item.controller.d.ts +3 -3
  35. package/out/controller/control/panel/panel/panel-item.controller.d.ts.map +1 -1
  36. package/out/controller/control/panel/panel/panel-item.controller.js +22 -16
  37. package/out/controller/control/panel/panel/panel.controller.d.ts.map +1 -1
  38. package/out/controller/control/panel/panel/panel.controller.js +4 -20
  39. package/out/controller/utils/data-file-util/data-file-util.d.ts +45 -0
  40. package/out/controller/utils/data-file-util/data-file-util.d.ts.map +1 -0
  41. package/out/controller/utils/data-file-util/data-file-util.js +121 -0
  42. package/out/controller/utils/index.d.ts +1 -0
  43. package/out/controller/utils/index.d.ts.map +1 -1
  44. package/out/controller/utils/index.js +1 -0
  45. package/out/global/global-util/global-util.d.ts +2 -2
  46. package/out/global/global-util/global-util.d.ts.map +1 -1
  47. package/out/interface/controller/controller/control/i-map.controller.d.ts +15 -0
  48. package/out/interface/controller/controller/control/i-map.controller.d.ts.map +1 -0
  49. package/out/interface/controller/controller/control/index.d.ts +1 -0
  50. package/out/interface/controller/controller/control/index.d.ts.map +1 -1
  51. package/out/interface/controller/controller/control/index.js +1 -0
  52. package/out/interface/controller/controller/control/panel-item/i-panel-data-container.controller.d.ts +1 -1
  53. package/out/interface/controller/controller/control/panel-item/i-panel-data-container.controller.d.ts.map +1 -1
  54. package/out/interface/controller/event/control/i-map.event.d.ts +54 -0
  55. package/out/interface/controller/event/control/i-map.event.d.ts.map +1 -0
  56. package/out/interface/controller/event/control/i-map.event.js +1 -0
  57. package/out/interface/controller/event/control/index.d.ts +1 -0
  58. package/out/interface/controller/event/control/index.d.ts.map +1 -1
  59. package/out/interface/controller/event/control/index.js +1 -0
  60. package/out/interface/controller/state/control/i-map.state.d.ts +132 -0
  61. package/out/interface/controller/state/control/i-map.state.d.ts.map +1 -0
  62. package/out/interface/controller/state/control/i-map.state.js +1 -0
  63. package/out/interface/controller/state/control/index.d.ts +1 -0
  64. package/out/interface/controller/state/control/index.d.ts.map +1 -1
  65. package/out/interface/controller/state/control/index.js +1 -0
  66. package/out/interface/index.d.ts +2 -1
  67. package/out/interface/index.d.ts.map +1 -1
  68. package/out/interface/index.js +2 -1
  69. package/out/interface/provider/i-ui-login-node.provider.d.ts +23 -0
  70. package/out/interface/provider/i-ui-login-node.provider.d.ts.map +1 -0
  71. package/out/interface/provider/i-ui-login-node.provider.js +1 -0
  72. package/out/interface/provider/index.d.ts +1 -0
  73. package/out/interface/provider/index.d.ts.map +1 -1
  74. package/out/interface/ui-login/i-ui-logic-context.d.ts +85 -0
  75. package/out/interface/ui-login/i-ui-logic-context.d.ts.map +1 -0
  76. package/out/interface/ui-login/i-ui-logic-context.js +1 -0
  77. package/out/interface/ui-login/index.d.ts +2 -0
  78. package/out/interface/ui-login/index.d.ts.map +1 -0
  79. package/out/interface/ui-login/index.js +1 -0
  80. package/out/interface/util/{i-export-excel/i-export-excel.d.ts → i-excel-util/i-excel-util.d.ts} +4 -4
  81. package/out/interface/util/i-excel-util/i-excel-util.d.ts.map +1 -0
  82. package/out/interface/util/i-excel-util/i-excel-util.js +1 -0
  83. package/out/interface/util/index.d.ts +1 -1
  84. package/out/interface/util/index.d.ts.map +1 -1
  85. package/out/model/panel/index.d.ts +1 -0
  86. package/out/model/panel/index.d.ts.map +1 -1
  87. package/out/model/panel/index.js +1 -0
  88. package/out/model/panel/panel-field.d.ts +11 -0
  89. package/out/model/panel/panel-field.d.ts.map +1 -0
  90. package/out/model/panel/panel-field.js +35 -0
  91. package/out/model/utils/util.d.ts +12 -1
  92. package/out/model/utils/util.d.ts.map +1 -1
  93. package/out/model/utils/util.js +18 -0
  94. package/out/register/helper/common-register.js +1 -1
  95. package/out/register/helper/index.d.ts +3 -2
  96. package/out/register/helper/index.d.ts.map +1 -1
  97. package/out/register/helper/index.js +3 -2
  98. package/out/register/helper/ui-logic-node-register.d.ts +25 -0
  99. package/out/register/helper/ui-logic-node-register.d.ts.map +1 -0
  100. package/out/register/helper/ui-logic-node-register.js +37 -0
  101. package/out/service/mqtt/mqtt.service.d.ts +2 -0
  102. package/out/service/mqtt/mqtt.service.d.ts.map +1 -1
  103. package/out/service/mqtt/mqtt.service.js +3 -0
  104. package/out/service/service/entity/method/de-action.d.ts.map +1 -1
  105. package/out/service/service/entity/method/de-action.js +3 -0
  106. package/out/service/service/entity/method/fetch.d.ts.map +1 -1
  107. package/out/service/service/entity/method/fetch.js +1 -1
  108. package/out/service/vo/index.d.ts +2 -0
  109. package/out/service/vo/index.d.ts.map +1 -1
  110. package/out/service/vo/index.js +2 -0
  111. package/out/service/vo/map-data/index.d.ts +2 -0
  112. package/out/service/vo/map-data/index.d.ts.map +1 -0
  113. package/out/service/vo/map-data/index.js +1 -0
  114. package/out/service/vo/map-data/map-data.d.ts +17 -0
  115. package/out/service/vo/map-data/map-data.d.ts.map +1 -0
  116. package/out/service/vo/map-data/map-data.js +87 -0
  117. package/out/service/vo/panel-data/index.d.ts +2 -0
  118. package/out/service/vo/panel-data/index.d.ts.map +1 -0
  119. package/out/service/vo/panel-data/index.js +1 -0
  120. package/out/service/vo/panel-data/panel-data.d.ts +21 -0
  121. package/out/service/vo/panel-data/panel-data.d.ts.map +1 -0
  122. package/out/service/vo/panel-data/panel-data.js +73 -0
  123. package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts.map +1 -1
  124. package/out/service/vo/tree-node-data/tree-data-set-node-data.js +6 -2
  125. package/out/ui-logic/ui-logic-context.d.ts +7 -2
  126. package/out/ui-logic/ui-logic-context.d.ts.map +1 -1
  127. package/out/ui-logic/ui-logic-context.js +5 -0
  128. package/out/ui-logic/ui-logic-node/index.d.ts +1 -0
  129. package/out/ui-logic/ui-logic-node/index.d.ts.map +1 -1
  130. package/out/ui-logic/ui-logic-node/index.js +1 -0
  131. package/out/ui-logic/ui-logic-node/pf-plugin-node/pf-plugin-node.d.ts +17 -0
  132. package/out/ui-logic/ui-logic-node/pf-plugin-node/pf-plugin-node.d.ts.map +1 -0
  133. package/out/ui-logic/ui-logic-node/pf-plugin-node/pf-plugin-node.js +19 -0
  134. package/out/ui-logic/ui-logic.d.ts.map +1 -1
  135. package/out/ui-logic/ui-logic.js +3 -1
  136. package/out/utils/script/script-function.d.ts.map +1 -1
  137. package/out/utils/script/script-function.js +7 -1
  138. package/package.json +4 -4
  139. package/src/controller/common/control/md-control.controller.ts +29 -23
  140. package/src/controller/control/form/edit-form/edit-form.controller.ts +6 -0
  141. package/src/controller/control/form/form-detail/form-detail/form-detail.controller.ts +35 -25
  142. package/src/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.ts +2 -2
  143. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-content-type.controller.ts +2 -2
  144. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.ts +66 -1
  145. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.ts +1 -1
  146. package/src/controller/control/grid/grid/grid.controller.ts +20 -36
  147. package/src/controller/control/index.ts +1 -0
  148. package/src/controller/control/map/index.ts +2 -0
  149. package/src/controller/control/map/map.controller.ts +163 -0
  150. package/src/controller/control/map/map.service.ts +79 -0
  151. package/src/controller/control/panel/panel/panel-item.controller.ts +27 -17
  152. package/src/controller/control/panel/panel/panel.controller.ts +4 -21
  153. package/src/controller/utils/data-file-util/data-file-util.ts +156 -0
  154. package/src/controller/utils/index.ts +1 -0
  155. package/src/global/global-util/global-util.ts +2 -2
  156. package/src/interface/controller/controller/control/i-map.controller.ts +15 -0
  157. package/src/interface/controller/controller/control/index.ts +1 -0
  158. package/src/interface/controller/controller/control/panel-item/i-panel-data-container.controller.ts +1 -1
  159. package/src/interface/controller/event/control/i-map.event.ts +48 -0
  160. package/src/interface/controller/event/control/index.ts +1 -0
  161. package/src/interface/controller/state/control/i-map.state.ts +148 -0
  162. package/src/interface/controller/state/control/index.ts +1 -0
  163. package/src/interface/index.ts +2 -1
  164. package/src/interface/provider/i-ui-login-node.provider.ts +23 -0
  165. package/src/interface/provider/index.ts +1 -0
  166. package/src/interface/ui-login/i-ui-logic-context.ts +95 -0
  167. package/src/interface/ui-login/index.ts +1 -0
  168. package/src/interface/util/{i-export-excel/i-export-excel.ts → i-excel-util/i-excel-util.ts} +3 -3
  169. package/src/interface/util/index.ts +1 -1
  170. package/src/model/panel/index.ts +1 -0
  171. package/src/model/panel/panel-field.ts +49 -0
  172. package/src/model/utils/util.ts +20 -0
  173. package/src/register/helper/common-register.ts +1 -1
  174. package/src/register/helper/index.ts +3 -2
  175. package/src/register/helper/ui-logic-node-register.ts +52 -0
  176. package/src/service/mqtt/mqtt.service.ts +3 -2
  177. package/src/service/service/entity/method/de-action.ts +4 -1
  178. package/src/service/service/entity/method/fetch.ts +7 -1
  179. package/src/service/vo/index.ts +2 -0
  180. package/src/service/vo/map-data/index.ts +1 -0
  181. package/src/service/vo/map-data/map-data.ts +123 -0
  182. package/src/service/vo/panel-data/index.ts +1 -0
  183. package/src/service/vo/panel-data/panel-data.ts +93 -0
  184. package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +6 -2
  185. package/src/ui-logic/ui-logic-context.ts +7 -2
  186. package/src/ui-logic/ui-logic-node/index.ts +1 -0
  187. package/src/ui-logic/ui-logic-node/pf-plugin-node/pf-plugin-node.ts +24 -0
  188. package/src/ui-logic/ui-logic.ts +3 -0
  189. package/src/utils/script/script-function.ts +6 -1
  190. package/out/interface/util/i-export-excel/i-export-excel.d.ts.map +0 -1
  191. /package/out/interface/{util/i-export-excel/i-export-excel.js → controller/controller/control/i-map.controller.js} +0 -0
@@ -0,0 +1,79 @@
1
+ import { HttpResponse, IHttpResponse } from '@ibiz-template/core';
2
+ import { ISysMap } from '@ibiz/model-core';
3
+ import { IMapData } from '../../../interface';
4
+ import { parseUserParams } from '../../../model';
5
+ import { MapData, MDControlService } from '../../../service';
6
+ import { convertNavData, ScriptFactory } from '../../../utils';
7
+
8
+ /**
9
+ * 地图部件服务
10
+ * @author lxm
11
+ * @date 2023-05-15 09:53:35
12
+ * @export
13
+ * @class GridService
14
+ * @extends {MDControlService<ISysMap>}
15
+ */
16
+ export class MapService extends MDControlService<ISysMap> {
17
+ async init(context?: IContext | undefined): Promise<void> {
18
+ await super.init(context);
19
+ }
20
+
21
+ /**
22
+ * 加载所有地图项的数据
23
+ * @author lxm
24
+ * @date 2023-10-30 06:27:32
25
+ * @param {IParams} context
26
+ * @param {IParams} [params={}]
27
+ * @return {*} {Promise<IHttpResponse<IMapData[]>>}
28
+ */
29
+ async fetchAll(
30
+ context: IContext,
31
+ params: IParams = {},
32
+ ): Promise<IHttpResponse<IMapData[]>> {
33
+ const allData: IMapData[] = [];
34
+ // 没有面板项返回空数组
35
+ if (this.model.sysMapItems?.length) {
36
+ const app = ibiz.hub.getApp(context.srfappid);
37
+ await Promise.all(
38
+ this.model.sysMapItems.map(async mapItem => {
39
+ const { appDataEntityId, appDEDataSetId, customCond } = mapItem;
40
+ const _context = context.clone();
41
+ const _params = { ...params };
42
+
43
+ if (customCond) {
44
+ const customParams = ScriptFactory.execSingleLine(
45
+ customCond,
46
+ ) as IData;
47
+ if (customParams) {
48
+ const { navigateContexts, navigateParams } =
49
+ parseUserParams(customParams);
50
+ if (navigateContexts) {
51
+ Object.assign(
52
+ _context,
53
+ convertNavData(navigateContexts, params, context),
54
+ );
55
+ }
56
+ if (navigateParams) {
57
+ Object.assign(
58
+ _params,
59
+ convertNavData(navigateContexts, params, context),
60
+ );
61
+ }
62
+ }
63
+ }
64
+
65
+ const res = (await app.deService.exec(
66
+ appDataEntityId!,
67
+ appDEDataSetId!,
68
+ _context,
69
+ _params,
70
+ )) as IHttpResponse<IData[]>;
71
+ if (res.data) {
72
+ allData.push(...res.data.map(item => new MapData(item, mapItem)));
73
+ }
74
+ }),
75
+ );
76
+ }
77
+ return new HttpResponse<IMapData[]>(allData, 200);
78
+ }
79
+ }
@@ -172,10 +172,10 @@ export class PanelItemController<T extends IPanelItem = IPanelItem>
172
172
  * @param {IData} data
173
173
  */
174
174
  calcItemDisabled(data: IData): void {
175
- let enable = !this.dynaLogicResult.disabled;
175
+ let { disabled } = this.dynaLogicResult;
176
176
 
177
177
  // 上层计算为启用时计算预定义项启用逻辑
178
- if (enable && this.panel.scheduler) {
178
+ if (disabled !== true && this.panel.scheduler) {
179
179
  const itemEnable = this.panel.scheduler.triggerItemEnable(
180
180
  this.model.id!,
181
181
  {
@@ -183,12 +183,14 @@ export class PanelItemController<T extends IPanelItem = IPanelItem>
183
183
  },
184
184
  );
185
185
  if (itemEnable !== undefined) {
186
- enable = itemEnable;
186
+ disabled = !itemEnable;
187
187
  }
188
188
  }
189
189
 
190
- // 修改state
191
- this.state.disabled = !enable;
190
+ // 有值的时候才会去修改state
191
+ if (disabled !== undefined) {
192
+ this.state.disabled = disabled;
193
+ }
192
194
  }
193
195
 
194
196
  /**
@@ -201,7 +203,7 @@ export class PanelItemController<T extends IPanelItem = IPanelItem>
201
203
  let { visible } = this.dynaLogicResult;
202
204
 
203
205
  // 上层计算为显示时计算预定义项显示逻辑
204
- if (visible && this.panel.scheduler) {
206
+ if (visible !== false && this.panel.scheduler) {
205
207
  const itemVIsible = this.panel.scheduler.triggerItemVisible(
206
208
  this.model.id!,
207
209
  {
@@ -213,8 +215,10 @@ export class PanelItemController<T extends IPanelItem = IPanelItem>
213
215
  }
214
216
  }
215
217
 
216
- // 修改state
217
- this.state.visible = visible;
218
+ // 有值的时候才会去修改state
219
+ if (visible !== undefined) {
220
+ this.state.visible = visible;
221
+ }
218
222
  }
219
223
 
220
224
  /**
@@ -224,10 +228,10 @@ export class PanelItemController<T extends IPanelItem = IPanelItem>
224
228
  * @param {IData} data
225
229
  */
226
230
  calcItemRequired(data: IData): void {
227
- let allowEmpty = !this.dynaLogicResult.required;
231
+ let { required } = this.dynaLogicResult;
228
232
 
229
233
  // 上层计算为启用时计算预定义项启用逻辑
230
- if (allowEmpty && this.panel.scheduler) {
234
+ if (required !== true && this.panel.scheduler) {
231
235
  const itemAllowEmpty = this.panel.scheduler.triggerItemBlank(
232
236
  this.model.id!,
233
237
  {
@@ -235,12 +239,14 @@ export class PanelItemController<T extends IPanelItem = IPanelItem>
235
239
  },
236
240
  );
237
241
  if (itemAllowEmpty !== undefined) {
238
- allowEmpty = itemAllowEmpty;
242
+ required = !itemAllowEmpty;
239
243
  }
240
244
  }
241
245
 
242
- // 修改state
243
- this.state.required = !allowEmpty;
246
+ // 有值的时候才会去修改state
247
+ if (required !== undefined) {
248
+ this.state.required = required;
249
+ }
244
250
  }
245
251
 
246
252
  /**
@@ -249,10 +255,14 @@ export class PanelItemController<T extends IPanelItem = IPanelItem>
249
255
  * @date 2023-09-21 03:36:37
250
256
  * @protected
251
257
  */
252
- protected dynaLogicResult = {
253
- visible: true,
254
- disabled: false,
255
- required: false,
258
+ protected dynaLogicResult: {
259
+ visible?: boolean;
260
+ disabled?: boolean;
261
+ required?: boolean;
262
+ } = {
263
+ visible: undefined,
264
+ disabled: undefined,
265
+ required: undefined,
256
266
  };
257
267
 
258
268
  /**
@@ -16,7 +16,9 @@ import {
16
16
  IControlProvider,
17
17
  IPanelItemContainerController,
18
18
  } from '../../../../interface';
19
+ import { getAllPanelField } from '../../../../model';
19
20
  import { getPanelItemProvider } from '../../../../register';
21
+ import { PanelData } from '../../../../service/vo';
20
22
  import { ControlController } from '../../../common';
21
23
  import { PanelNotifyState } from '../../../constant';
22
24
  import { ControllerEvent } from '../../../utils';
@@ -222,27 +224,8 @@ export class PanelController<
222
224
  * @memberof PanelController
223
225
  */
224
226
  convertData(data: IData): IData {
225
- // const map: IData = {};
226
- // // 绑定数据项和name不一致的映射到map里
227
- // this.model.panelFields.forEach(field => {
228
- // if (field.id !== field.dataFieldName) {
229
- // map[field.id] = field.dataFieldName;
230
- // }
231
- // });
232
-
233
- // return new Proxy(data, {
234
- // get(target, p, receiver) {
235
- // if (Reflect.ownKeys(map).includes(p)) {
236
- // return Reflect.get(target, map[p], receiver);
237
- // }
238
- // return Reflect.get(target, p, receiver);
239
- // },
240
- // set(target, p, value, receiver) {
241
- // Reflect.set(target, p, value, receiver);
242
- // return true;
243
- // },
244
- // });
245
- return data;
227
+ const fields = getAllPanelField(this.model);
228
+ return new PanelData(fields, data);
246
229
  }
247
230
 
248
231
  /**
@@ -0,0 +1,156 @@
1
+ import {
2
+ IPortalAsyncAction,
3
+ IPortalMessage,
4
+ RuntimeError,
5
+ } from '@ibiz-template/core';
6
+ import { IAppDataEntity } from '@ibiz/model-core';
7
+
8
+ // 异步导入URL
9
+ const asyncImportUrl = '/asyncimportdata2';
10
+
11
+ // 标准导入url
12
+ const importUrl = '/importdata2';
13
+
14
+ // 导入结果类型
15
+ export type ImportDataResult = {
16
+ total: number;
17
+ success: number;
18
+ message?: string;
19
+ };
20
+ // 导出结果类型
21
+ export type IExportDataResult = {
22
+ // 是否导出成功
23
+ ok: boolean;
24
+ // 导出文件地址 (后期异步导出可能会用到)
25
+ url?: string;
26
+ };
27
+
28
+ /**
29
+ * 监听异步作业
30
+ *
31
+ * @author zk
32
+ * @date 2023-10-31 03:10:31
33
+ * @param {string} id
34
+ * @return {*} {Promise<ImportDataResult>}
35
+ */
36
+ function listenAsyncAction(id: string): Promise<ImportDataResult> {
37
+ return new Promise(resolve => {
38
+ const callBack = (msg: IPortalMessage): void => {
39
+ // 兼容接口返回类型与实际返回类型不一致
40
+ const messageid = msg.messageid || (msg.data as IData).asyncacitonid;
41
+ if (
42
+ id === messageid &&
43
+ (msg.data as IPortalAsyncAction).actionstate === 30
44
+ ) {
45
+ // 返回结果是字符串, 需解析
46
+ try {
47
+ const result = JSON.parse(
48
+ (msg.data as IPortalAsyncAction).actionresult as string,
49
+ );
50
+ resolve(result as ImportDataResult);
51
+ } catch (error) {
52
+ throw new RuntimeError('解析数据发生错误');
53
+ } finally {
54
+ // 异步作业结束 取消订阅
55
+ ibiz.mc.command.asyncAction.off(callBack);
56
+ }
57
+ } else if ((msg.data as IPortalAsyncAction).actionstate === 40) {
58
+ resolve({
59
+ total: 0,
60
+ success: 0,
61
+ message: (msg.data as IPortalAsyncAction).actionresult as string,
62
+ });
63
+ // 异步作业结束 取消订阅
64
+ ibiz.mc.command.asyncAction.off(callBack);
65
+ }
66
+ };
67
+ ibiz.mc.command.asyncAction.on(callBack);
68
+ });
69
+ }
70
+
71
+ /**
72
+ * 异步作业导入方法
73
+ *
74
+ * @author zk
75
+ * @date 2023-10-31 02:10:06
76
+ * @export
77
+ * @param {File} file
78
+ * @param {IAppDataEntity} appDataEntity
79
+ * @return {*} {Promise<IData>}
80
+ */
81
+ export async function asyncImportData(
82
+ file: File,
83
+ appDataEntity: IAppDataEntity,
84
+ ): Promise<ImportDataResult> {
85
+ const data = new FormData();
86
+ data.append('file', file);
87
+ const url = `${appDataEntity.codeName2!.toLowerCase()}/${asyncImportUrl}`;
88
+ const res = await ibiz.net.request(url, {
89
+ method: 'post',
90
+ data,
91
+ headers: { 'Content-Type': 'multipart/form-data' },
92
+ });
93
+ return listenAsyncAction(res.data.asyncacitonid);
94
+ }
95
+
96
+ /**
97
+ * 标准导入方法
98
+ *
99
+ * @author zk
100
+ * @date 2023-10-31 02:10:29
101
+ * @export
102
+ * @param {File} file
103
+ * @param {IAppDataEntity} appDataEntity
104
+ * @return {*} {Promise<IData>}
105
+ */
106
+ export async function importData(
107
+ file: File,
108
+ appDataEntity: IAppDataEntity,
109
+ ): Promise<ImportDataResult> {
110
+ const data = new FormData();
111
+ data.append('file', file);
112
+ const url = `${appDataEntity.codeName2!.toLowerCase()}/${importUrl}`;
113
+ const res = await ibiz.net.request(url, {
114
+ method: 'post',
115
+ data,
116
+ headers: { 'Content-Type': 'multipart/form-data' },
117
+ });
118
+ // 错误情况 服务层会抛出异常
119
+ return res.data as ImportDataResult;
120
+ }
121
+
122
+ /**
123
+ * 标准导出方法
124
+ *
125
+ * @author zk
126
+ * @date 2023-10-31 09:10:13
127
+ * @export
128
+ * @param {string[]} header
129
+ * @param {IData[][]} data
130
+ * @param {string} fileName
131
+ * @return {*} {Promise<IExportDataResult>}
132
+ */
133
+ export async function exportData(
134
+ header: string[],
135
+ data: IData[][],
136
+ fileName: string,
137
+ ): Promise<IExportDataResult> {
138
+ if (!ibiz.util.getExcelUtil) {
139
+ throw new RuntimeError('ibiz.util.getExportExcel不存在');
140
+ }
141
+ const exportExcel = await ibiz.util.getExcelUtil();
142
+ if (!exportExcel) {
143
+ throw new RuntimeError('导出模块加载错误');
144
+ }
145
+ try {
146
+ exportExcel.exportJsonToExcel({
147
+ header, // 表头内容 数组格式
148
+ data, // 具体数据 这是个二维数组
149
+ filename: fileName, // 文件名称
150
+ autoWidth: true, // 单元格是否自适应
151
+ });
152
+ return { ok: true };
153
+ } catch (error) {
154
+ return { ok: false };
155
+ }
156
+ }
@@ -6,3 +6,4 @@ export * from './util/util';
6
6
  export * from './value-rule/value-rule';
7
7
  export * from './value-ex/value-ex';
8
8
  export * from './value-default/value-default';
9
+ export * from './data-file-util/data-file-util';
@@ -1,4 +1,4 @@
1
- import { IExportExcelUtil } from '../../interface';
1
+ import { IExcelUtil } from '../../interface';
2
2
  import {
3
3
  TextUtil,
4
4
  LayoutPanelUtil,
@@ -67,7 +67,7 @@ export class GlobalUtil {
67
67
  * @author lxm
68
68
  * @date 2023-08-24 10:47:06
69
69
  */
70
- getExportExcel?: () => Promise<IExportExcelUtil>;
70
+ getExcelUtil?: () => Promise<IExcelUtil>;
71
71
 
72
72
  /**
73
73
  * 显示应用级别的加载提示
@@ -0,0 +1,15 @@
1
+ import { ISysMap } from '@ibiz/model-core';
2
+ import { IMapEvent } from '../../event';
3
+ import { IMapState } from '../../state';
4
+ import { IMDControlController } from './i-md-control.controller';
5
+
6
+ /**
7
+ * 地图控制器
8
+ * @author lxm
9
+ * @date 2023-05-04 01:47:16
10
+ * @export
11
+ * @interface IChartController
12
+ * @extends {IMDControlController}
13
+ */
14
+ export interface IMapController
15
+ extends IMDControlController<ISysMap, IMapState, IMapEvent> {}
@@ -35,3 +35,4 @@ export * from './i-tree-grid.controller';
35
35
  export * from './i-tree-grid-ex.controller';
36
36
  export * from './i-medit-view-panel.controller';
37
37
  export * from './i-chart-exp-bar.controller';
38
+ export * from './i-map.controller';
@@ -25,5 +25,5 @@ export interface IPanelDataContainerController
25
25
  * @param {string} name 要设置的数据的属性名称
26
26
  * @param {unknown} value 要设置的值
27
27
  */
28
- setDataValue?(name: string, value: unknown): Promise<void>;
28
+ setDataValue(name: string, value: unknown): Promise<void>;
29
29
  }
@@ -0,0 +1,48 @@
1
+ import { EventBase } from '../argument';
2
+ import { IMDControlEvent } from './i-md-control.event';
3
+
4
+ /**
5
+ * 地图部件事件
6
+ *
7
+ * @author lxm
8
+ * @date 2022-08-30 16:08:43
9
+ * @export
10
+ * @interface IMDControlEvent
11
+ */
12
+ export interface IMapEvent extends IMDControlEvent {
13
+ /**
14
+ * 地图变更事件(下探,返回)
15
+ * @author lxm
16
+ * @date 2023-03-26 06:15:06
17
+ * @param {emitArgs} undefined
18
+ * @return {*} {Promise<void>}
19
+ */
20
+ onMapChange: {
21
+ event: EventBase & { areaCode: string | number };
22
+ emitArgs: { areaCode: string | number };
23
+ };
24
+
25
+ /**
26
+ * 地图区域点击事件
27
+ * @author lxm
28
+ * @date 2023-03-26 06:15:06
29
+ * @param {emitArgs} undefined
30
+ * @return {*} {Promise<void>}
31
+ */
32
+ onAreaClick: {
33
+ event: EventBase;
34
+ emitArgs: { data: IData[] };
35
+ };
36
+
37
+ /**
38
+ * 地图散点点击事件
39
+ * @author lxm
40
+ * @date 2023-03-26 06:15:06
41
+ * @param {emitArgs} undefined
42
+ * @return {*} {Promise<void>}
43
+ */
44
+ onPointClick: {
45
+ event: EventBase;
46
+ emitArgs: { data: IData[] };
47
+ };
48
+ }
@@ -31,3 +31,4 @@ export * from './i-tree-grid.event';
31
31
  export * from './i-tree-grid-ex.event';
32
32
  export * from './i-medit-view-panel.event';
33
33
  export * from './i-chart-exp-bar.event';
34
+ export * from './i-map.event';
@@ -0,0 +1,148 @@
1
+ import { IMDControlState } from './i-md-control.state';
2
+
3
+ /**
4
+ * 地图部件状态
5
+ * @author lxm
6
+ * @date 2023-05-22 02:18:43
7
+ * @export
8
+ * @interface IMapState
9
+ * @extends {IMDControlState}
10
+ */
11
+ export interface IMapState extends IMDControlState {
12
+ items: IMapData[];
13
+
14
+ /**
15
+ * 点的数据
16
+ * @author lxm
17
+ * @date 2023-10-31 09:48:54
18
+ * @type {IMapData[]}
19
+ */
20
+ pointData: IMapData[];
21
+
22
+ /**
23
+ * 区域的数据
24
+ * @author lxm
25
+ * @date 2023-10-31 09:49:02
26
+ * @type {IMapData[]}
27
+ */
28
+ areaData: IMapData[];
29
+
30
+ /**
31
+ * 区域编码是否是字符串
32
+ * @author lxm
33
+ * @date 2023-11-01 03:30:09
34
+ * @type {boolean}
35
+ */
36
+ strAreaCode: boolean;
37
+
38
+ /**
39
+ * 默认显示的区域代码
40
+ * @author lxm
41
+ * @date 2023-10-31 09:03:23
42
+ * @type {string}
43
+ */
44
+ defaultAreaCode: string | number;
45
+
46
+ /**
47
+ * 当前区域代码
48
+ * @author lxm
49
+ * @date 2023-10-31 09:03:23
50
+ * @type {string}
51
+ */
52
+ areaCode: string | number;
53
+
54
+ /**
55
+ * 地图json数据基础路径
56
+ * @author lxm
57
+ * @date 2023-11-01 03:37:19
58
+ * @type {string}
59
+ */
60
+ jsonBaseUrl?: string;
61
+ }
62
+
63
+ /**
64
+ * 地图数据格式
65
+ *
66
+ * @export
67
+ * @class ITreeNodeData
68
+ */
69
+ export interface IMapData {
70
+ /**
71
+ * 唯一标识
72
+ * @author lxm
73
+ * @date 2023-10-30 06:20:08
74
+ * @type {string}
75
+ */
76
+ _id: string;
77
+
78
+ /**
79
+ * 类型
80
+ * @author lxm
81
+ * @date 2023-10-30 06:20:14
82
+ * @type {('point' | 'area')}
83
+ */
84
+ _type: 'point' | 'area';
85
+
86
+ /**
87
+ * 地图项id
88
+ * @author lxm
89
+ * @date 2023-10-30 06:20:40
90
+ * @type {string}
91
+ */
92
+ _mapItemId: string;
93
+
94
+ /**
95
+ * 经度
96
+ * @author lxm
97
+ * @date 2023-10-30 09:25:34
98
+ * @type {string}
99
+ */
100
+ _longitude?: string;
101
+
102
+ /**
103
+ * 纬度
104
+ * @author lxm
105
+ * @date 2023-10-30 09:25:34
106
+ * @type {string}
107
+ */
108
+ _latitude?: string;
109
+
110
+ /**
111
+ * 区域标识
112
+ * @author lxm
113
+ * @date 2023-10-30 09:26:18
114
+ */
115
+ _areaCode?: string;
116
+
117
+ /**
118
+ * 提示信息
119
+ * @author lxm
120
+ * @date 2023-10-30 09:34:47
121
+ * @type {string}
122
+ */
123
+ _tooltip?: string;
124
+
125
+ /**
126
+ * 统计数据值
127
+ * @author lxm
128
+ * @date 2023-10-31 10:47:50
129
+ * @type {number}
130
+ */
131
+ _value?: number;
132
+
133
+ /**
134
+ * 文本值
135
+ * @author lxm
136
+ * @date 2023-10-31 10:47:50
137
+ * @type {number}
138
+ */
139
+ _text?: string;
140
+
141
+ /**
142
+ * 图标
143
+ * @author lxm
144
+ * @date 2023-10-31 10:47:50
145
+ * @type {number}
146
+ */
147
+ _symbol?: string;
148
+ }
@@ -37,3 +37,4 @@ export * from './i-tree-grid.state';
37
37
  export * from './i-tree-grid-ex.state';
38
38
  export * from './i-medit-view-panel.state';
39
39
  export * from './i-chart-exp-bar.state';
40
+ export * from './i-map.state';
@@ -1,5 +1,4 @@
1
1
  export * from './common';
2
- export * from './util';
3
2
  export * from './provider';
4
3
  export * from './register';
5
4
  export * from './controller';
@@ -8,3 +7,5 @@ export * from './engine';
8
7
  export * from './logic-scheduler';
9
8
  export * from './model';
10
9
  export * from './studio';
10
+ export * from './ui-login';
11
+ export * from './util';
@@ -0,0 +1,23 @@
1
+ import { IDEUIPFPluginLogic } from '@ibiz/model-core';
2
+ import { IUILogicContext } from '../ui-login';
3
+
4
+ /**
5
+ * 界面逻辑前端节点适配器
6
+ *
7
+ * @author chitanda
8
+ * @date 2023-11-01 17:11:16
9
+ * @export
10
+ * @interface IUILogicNodeProvider
11
+ */
12
+ export interface IUILogicNodeProvider {
13
+ /**
14
+ * 执行界面逻辑 节点
15
+ *
16
+ * @author chitanda
17
+ * @date 2023-11-01 18:11:17
18
+ * @param {IDEUIPFPluginLogic} model
19
+ * @param {IUILogicContext} ctx
20
+ * @return {*} {Promise<unknown>}
21
+ */
22
+ exec(model: IDEUIPFPluginLogic, ctx: IUILogicContext): Promise<unknown>;
23
+ }
@@ -9,3 +9,4 @@ export * from './i-form-detail.provider';
9
9
  export * from './i-editor.provider';
10
10
  export * from './i-portlet.provider';
11
11
  export { IAppCounterProvider } from './i-app-counter.provider';
12
+ export type { IUILogicNodeProvider } from './i-ui-login-node.provider';