@ibiz-template/runtime 0.4.9 → 0.4.11

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 (104) hide show
  1. package/dist/index.esm.js +847 -211
  2. package/dist/index.system.min.js +2 -2
  3. package/out/controller/control/form/edit-form/edit-form.controller.d.ts.map +1 -1
  4. package/out/controller/control/form/edit-form/edit-form.controller.js +27 -16
  5. package/out/controller/control/form/form-detail/form-druipart/form-druipart.controller.d.ts +1 -1
  6. package/out/controller/control/form/form-detail/form-druipart/form-druipart.controller.js +1 -1
  7. package/out/controller/control/form/form-detail/form-item/form-item.controller.d.ts +8 -0
  8. package/out/controller/control/form/form-detail/form-item/form-item.controller.d.ts.map +1 -1
  9. package/out/controller/control/form/form-detail/form-item/form-item.controller.js +14 -0
  10. package/out/controller/control/gantt/gantt.controller.d.ts +55 -1
  11. package/out/controller/control/gantt/gantt.controller.d.ts.map +1 -1
  12. package/out/controller/control/gantt/gantt.controller.js +150 -0
  13. package/out/controller/control/gantt/gantt.service.d.ts +69 -6
  14. package/out/controller/control/gantt/gantt.service.d.ts.map +1 -1
  15. package/out/controller/control/gantt/gantt.service.js +196 -5
  16. package/out/controller/control/wizard-panel/wizard-panel.controller.d.ts +8 -1
  17. package/out/controller/control/wizard-panel/wizard-panel.controller.d.ts.map +1 -1
  18. package/out/controller/control/wizard-panel/wizard-panel.controller.js +22 -7
  19. package/out/interface/controller/controller/control/i-drbar.controller.d.ts +7 -0
  20. package/out/interface/controller/controller/control/i-drbar.controller.d.ts.map +1 -1
  21. package/out/interface/controller/event/view/i-de-index-view.event.d.ts +12 -0
  22. package/out/interface/controller/event/view/i-de-index-view.event.d.ts.map +1 -0
  23. package/out/interface/controller/event/view/i-de-index-view.event.js +1 -0
  24. package/out/interface/controller/event/view/index.d.ts +1 -0
  25. package/out/interface/controller/event/view/index.d.ts.map +1 -1
  26. package/out/interface/controller/event/view/index.js +1 -0
  27. package/out/interface/controller/state/control/i-drbar.state.d.ts +28 -7
  28. package/out/interface/controller/state/control/i-drbar.state.d.ts.map +1 -1
  29. package/out/interface/controller/state/control/i-gantt.state.d.ts +94 -3
  30. package/out/interface/controller/state/control/i-gantt.state.d.ts.map +1 -1
  31. package/out/interface/controller/state/view/i-de-index-view.state.d.ts +19 -0
  32. package/out/interface/controller/state/view/i-de-index-view.state.d.ts.map +1 -0
  33. package/out/interface/controller/state/view/i-de-index-view.state.js +1 -0
  34. package/out/interface/controller/state/view/i-edit-view2.state.d.ts +8 -0
  35. package/out/interface/controller/state/view/i-edit-view2.state.d.ts.map +1 -1
  36. package/out/interface/controller/state/view/index.d.ts +1 -0
  37. package/out/interface/controller/state/view/index.d.ts.map +1 -1
  38. package/out/interface/controller/state/view/index.js +1 -0
  39. package/out/interface/service/service/i-auth.service.d.ts +8 -0
  40. package/out/interface/service/service/i-auth.service.d.ts.map +1 -1
  41. package/out/register/helper/ui-action-register.d.ts.map +1 -1
  42. package/out/register/helper/ui-action-register.js +6 -1
  43. package/out/service/service/auth/v7-auth.service.d.ts +1 -0
  44. package/out/service/service/auth/v7-auth.service.d.ts.map +1 -1
  45. package/out/service/service/auth/v7-auth.service.js +23 -3
  46. package/out/service/service/entity/de.service.d.ts.map +1 -1
  47. package/out/service/service/entity/de.service.js +1 -8
  48. package/out/service/service/entity/method/de-action.d.ts.map +1 -1
  49. package/out/service/service/entity/method/de-action.js +5 -5
  50. package/out/service/utils/de-cache/de-cache.d.ts +19 -0
  51. package/out/service/utils/de-cache/de-cache.d.ts.map +1 -1
  52. package/out/service/utils/de-cache/de-cache.js +54 -4
  53. package/out/service/vo/gantt-node-data/gantt-code-list-node-data.d.ts +19 -0
  54. package/out/service/vo/gantt-node-data/gantt-code-list-node-data.d.ts.map +1 -0
  55. package/out/service/vo/gantt-node-data/gantt-code-list-node-data.js +14 -0
  56. package/out/service/vo/gantt-node-data/gantt-data-set-node-data.d.ts +19 -0
  57. package/out/service/vo/gantt-node-data/gantt-data-set-node-data.d.ts.map +1 -0
  58. package/out/service/vo/gantt-node-data/gantt-data-set-node-data.js +14 -0
  59. package/out/service/vo/gantt-node-data/gantt-node-data-util.d.ts +9 -0
  60. package/out/service/vo/gantt-node-data/gantt-node-data-util.d.ts.map +1 -0
  61. package/out/service/vo/gantt-node-data/gantt-node-data-util.js +19 -0
  62. package/out/service/vo/gantt-node-data/gantt-static-node-data.d.ts +17 -0
  63. package/out/service/vo/gantt-node-data/gantt-static-node-data.d.ts.map +1 -0
  64. package/out/service/vo/gantt-node-data/gantt-static-node-data.js +13 -0
  65. package/out/service/vo/gantt-node-data/index.d.ts +4 -0
  66. package/out/service/vo/gantt-node-data/index.d.ts.map +1 -0
  67. package/out/service/vo/gantt-node-data/index.js +3 -0
  68. package/out/service/vo/index.d.ts +1 -0
  69. package/out/service/vo/index.d.ts.map +1 -1
  70. package/out/service/vo/index.js +1 -0
  71. package/out/ui-action/provider/index.d.ts.map +1 -1
  72. package/out/ui-action/provider/index.js +4 -0
  73. package/out/ui-action/provider/loginout-ui-action-provider.d.ts +16 -0
  74. package/out/ui-action/provider/loginout-ui-action-provider.d.ts.map +1 -0
  75. package/out/ui-action/provider/loginout-ui-action-provider.js +25 -0
  76. package/package.json +5 -5
  77. package/src/controller/control/form/edit-form/edit-form.controller.ts +48 -32
  78. package/src/controller/control/form/form-detail/form-druipart/form-druipart.controller.ts +1 -1
  79. package/src/controller/control/form/form-detail/form-item/form-item.controller.ts +15 -0
  80. package/src/controller/control/gantt/gantt.controller.ts +179 -1
  81. package/src/controller/control/gantt/gantt.service.ts +305 -6
  82. package/src/controller/control/wizard-panel/wizard-panel.controller.ts +27 -7
  83. package/src/interface/controller/controller/control/i-drbar.controller.ts +8 -0
  84. package/src/interface/controller/event/view/i-de-index-view.event.ts +12 -0
  85. package/src/interface/controller/event/view/index.ts +1 -0
  86. package/src/interface/controller/state/control/i-drbar.state.ts +32 -8
  87. package/src/interface/controller/state/control/i-gantt.state.ts +106 -4
  88. package/src/interface/controller/state/view/i-de-index-view.state.ts +19 -0
  89. package/src/interface/controller/state/view/i-edit-view2.state.ts +10 -1
  90. package/src/interface/controller/state/view/index.ts +1 -0
  91. package/src/interface/service/service/i-auth.service.ts +9 -0
  92. package/src/register/helper/ui-action-register.ts +7 -1
  93. package/src/service/service/auth/v7-auth.service.ts +30 -3
  94. package/src/service/service/entity/de.service.ts +2 -1
  95. package/src/service/service/entity/method/de-action.ts +5 -4
  96. package/src/service/utils/de-cache/de-cache.ts +64 -3
  97. package/src/service/vo/gantt-node-data/gantt-code-list-node-data.ts +68 -0
  98. package/src/service/vo/gantt-node-data/gantt-data-set-node-data.ts +68 -0
  99. package/src/service/vo/gantt-node-data/gantt-node-data-util.ts +26 -0
  100. package/src/service/vo/gantt-node-data/gantt-static-node-data.ts +50 -0
  101. package/src/service/vo/gantt-node-data/index.ts +3 -0
  102. package/src/service/vo/index.ts +1 -0
  103. package/src/ui-action/provider/index.ts +4 -0
  104. package/src/ui-action/provider/loginout-ui-action-provider.ts +31 -0
@@ -1,3 +1,4 @@
1
+ import { IAppDataEntity } from '@ibiz/model-core';
1
2
  import { IDataEntity } from '../../../interface';
2
3
  /**
3
4
  * 实体缓存工具类
@@ -8,6 +9,17 @@ import { IDataEntity } from '../../../interface';
8
9
  * @class DECache
9
10
  */
10
11
  export declare class DECache {
12
+ protected entity: IAppDataEntity;
13
+ /**
14
+ * 是否是联合主键
15
+ * @author lxm
16
+ * @date 2023-12-12 02:47:18
17
+ * @readonly
18
+ * @protected
19
+ * @type {boolean}
20
+ */
21
+ protected get isUnionKey(): boolean;
22
+ constructor(entity: IAppDataEntity);
11
23
  /**
12
24
  * 数据缓存
13
25
  *
@@ -155,5 +167,12 @@ export declare class DECache {
155
167
  * @return {*} {Map<string, IDataEntity>}
156
168
  */
157
169
  private getCacheByTag;
170
+ /**
171
+ * 根据联合键值计算主键并赋值
172
+ * @author lxm
173
+ * @date 2023-12-12 03:06:30
174
+ * @param {(IDataEntity | IDataEntity[])} data 需要计算的数据或数据集合
175
+ */
176
+ protected calcUnionKey(data: IDataEntity): void;
158
177
  }
159
178
  //# sourceMappingURL=de-cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"de-cache.d.ts","sourceRoot":"","sources":["../../../../src/service/utils/de-cache/de-cache.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;;;;GAOG;AACH,qBAAa,OAAO;IAClB;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAa;IAErE;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IASrD;;;;;;;OAOG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAMxD;;;;;;;OAOG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAMnD;;;;;;;OAOG;IACH,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI;IAiB9D;;;;;;;OAOG;IACH,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAazD;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI;IAoBjE;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAmB5D;;;;;;;;OAQG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE;IAsBrE;;;;;;;;OAQG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE;IA2BrE;;;;;;;;OAQG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IA4B1D;;;;;;;;OAQG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAMpD;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,EAAE;IAexC;;;;;;;OAOG;IACH,YAAY,CAAC,MAAM,GAAE,OAAY,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO;IAgB9D;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAO7B;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;CAOtB"}
1
+ {"version":3,"file":"de-cache.d.ts","sourceRoot":"","sources":["../../../../src/service/utils/de-cache/de-cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD;;;;;;;GAOG;AACH,qBAAa,OAAO;IAaN,SAAS,CAAC,MAAM,EAAE,cAAc;IAZ5C;;;;;;;OAOG;IACH,SAAS,KAAK,UAAU,IAAI,OAAO,CAElC;gBAEqB,MAAM,EAAE,cAAc;IAE5C;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAa;IAErE;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IASrD;;;;;;;OAOG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAMxD;;;;;;;OAOG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAMnD;;;;;;;OAOG;IACH,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI;IA2B9D;;;;;;;OAOG;IACH,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAazD;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI;IAgCjE;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAmB5D;;;;;;;;OAQG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE;IAsBrE;;;;;;;;OAQG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE;IA2BrE;;;;;;;;OAQG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IA4B1D;;;;;;;;OAQG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAMpD;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,EAAE;IAexC;;;;;;;OAOG;IACH,YAAY,CAAC,MAAM,GAAE,OAAY,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO;IAgB9D;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAO7B;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAQrB;;;;;OAKG;IACH,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;CAehD"}
@@ -1,6 +1,8 @@
1
1
  import { where, equals, clone, isNil, isEmpty } from 'ramda';
2
2
  import { createUUID } from 'qx-util';
3
+ import { RuntimeError } from '@ibiz-template/core';
3
4
  import { isExistSessionId, isExistSrfKey, } from '../service-exist-util/service-exist-util';
5
+ import { findModelChild } from '../../../model';
4
6
  /**
5
7
  * 实体缓存工具类
6
8
  *
@@ -10,7 +12,20 @@ import { isExistSessionId, isExistSrfKey, } from '../service-exist-util/service-
10
12
  * @class DECache
11
13
  */
12
14
  export class DECache {
13
- constructor() {
15
+ /**
16
+ * 是否是联合主键
17
+ * @author lxm
18
+ * @date 2023-12-12 02:47:18
19
+ * @readonly
20
+ * @protected
21
+ * @type {boolean}
22
+ */
23
+ get isUnionKey() {
24
+ var _a;
25
+ return !!((_a = this.entity.unionKeyValueAppDEFieldIds) === null || _a === void 0 ? void 0 : _a.length);
26
+ }
27
+ constructor(entity) {
28
+ this.entity = entity;
14
29
  /**
15
30
  * 数据缓存
16
31
  *
@@ -71,6 +86,13 @@ export class DECache {
71
86
  * @memberof EntityCache
72
87
  */
73
88
  add(context, entity) {
89
+ // 联合主键相关数据处理
90
+ if (this.isUnionKey) {
91
+ this.calcUnionKey(entity);
92
+ if (this.checkData(context, entity.srfkey)) {
93
+ throw new RuntimeError(`新建联合主键数据失败,已有主键为${entity.srfkey}的数据`);
94
+ }
95
+ }
74
96
  try {
75
97
  isExistSessionId('add', context);
76
98
  if (isNil(entity.srfkey) || isEmpty(entity.srfkey)) {
@@ -117,16 +139,25 @@ export class DECache {
117
139
  * @memberof EntityCache
118
140
  */
119
141
  update(context, entity) {
142
+ const oldKey = entity.srfkey;
143
+ // 联合主键相关数据处理
144
+ if (this.isUnionKey) {
145
+ this.calcUnionKey(entity);
146
+ // 主键改变的时候,检测变更之后的主键是否已经存在
147
+ if (oldKey !== entity.srfkey && this.checkData(context, entity.srfkey)) {
148
+ throw new RuntimeError(`更新联合主键数据失败,已有主键为${entity.srfkey}的数据`);
149
+ }
150
+ }
120
151
  try {
121
152
  isExistSessionId('update', context);
122
153
  isExistSrfKey('update', entity);
123
154
  entity.srftempdate = new Date().getTime();
124
155
  const map = this.getCacheByTag(context);
125
- const data = map.get(entity.srfkey);
156
+ const data = map.get(oldKey);
126
157
  if (data) {
127
158
  data.assign(entity);
128
- map.set(entity.srfkey, data);
129
- ibiz.log.warn('update', entity.srfkey, entity);
159
+ map.set(oldKey, data);
160
+ ibiz.log.warn('update', oldKey, entity);
130
161
  return clone(data);
131
162
  }
132
163
  throw new Error('数据不存在,无法更新!');
@@ -353,4 +384,23 @@ export class DECache {
353
384
  }
354
385
  return this.cacheMap.get(tag);
355
386
  }
387
+ /**
388
+ * 根据联合键值计算主键并赋值
389
+ * @author lxm
390
+ * @date 2023-12-12 03:06:30
391
+ * @param {(IDataEntity | IDataEntity[])} data 需要计算的数据或数据集合
392
+ */
393
+ calcUnionKey(data) {
394
+ const unionKeys = this.entity.unionKeyValueAppDEFieldIds.map(id => {
395
+ const appField = findModelChild(this.entity.appDEFields || [], id);
396
+ return appField.codeName.toLowerCase();
397
+ });
398
+ const unionValues = unionKeys.map(key => {
399
+ if (isNil(data[key])) {
400
+ throw new RuntimeError(`联合键值计算异常,${key}属性为空值!`);
401
+ }
402
+ return data[key];
403
+ });
404
+ data.srfkey = unionValues.join('');
405
+ }
356
406
  }
@@ -0,0 +1,19 @@
1
+ import { IDEGantt, IDETreeDataSetNode } from '@ibiz/model-core';
2
+ import { CodeListItem, IGanttNodeData } from '../../../interface';
3
+ import { TreeCodeListNodeData } from '../tree-node-data';
4
+ export declare class GanttCodeListNodeData extends TreeCodeListNodeData implements IGanttNodeData {
5
+ sndataIteValue: string;
6
+ beginDataItemValue: string;
7
+ endDataItemValue: string;
8
+ prevDataItemValue: string | number;
9
+ finishDataItemValue: string | number;
10
+ totalDataItemValue: string | number;
11
+ children?: IGanttNodeData[] | undefined;
12
+ constructor(model: IDEGantt, nodeModel: IDETreeDataSetNode, parentNodeData: IGanttNodeData | undefined, opts: {
13
+ data: CodeListItem;
14
+ leaf: boolean;
15
+ navContext?: IParams;
16
+ navParams?: IParams;
17
+ });
18
+ }
19
+ //# sourceMappingURL=gantt-code-list-node-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gantt-code-list-node-data.d.ts","sourceRoot":"","sources":["../../../../src/service/vo/gantt-node-data/gantt-code-list-node-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD,qBAAa,qBACX,SAAQ,oBACR,YAAW,cAAc;IAEzB,cAAc,EAAE,MAAM,CAAC;IAEvB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,gBAAgB,EAAE,MAAM,CAAC;IAEzB,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEnC,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAAC;IAErC,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEpC,QAAQ,CAAC,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;gBAGtC,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,kBAAkB,EAC7B,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY,CAAC;QACnB,IAAI,EAAE,OAAO,CAAC;QACd,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;CAmCJ"}
@@ -0,0 +1,14 @@
1
+ import { TreeCodeListNodeData } from '../tree-node-data';
2
+ import { calcDataItemValue } from './gantt-node-data-util';
3
+ export class GanttCodeListNodeData extends TreeCodeListNodeData {
4
+ constructor(model, nodeModel, parentNodeData, opts) {
5
+ super(nodeModel, parentNodeData, opts);
6
+ const { data } = opts;
7
+ this.sndataIteValue = calcDataItemValue(model.sndataItemName, nodeModel, data);
8
+ this.beginDataItemValue = calcDataItemValue(model.beginDataItemName, nodeModel, data);
9
+ this.endDataItemValue = calcDataItemValue(model.endDataItemName, nodeModel, data);
10
+ this.prevDataItemValue = calcDataItemValue(model.prevDataItemName, nodeModel, data);
11
+ this.finishDataItemValue = calcDataItemValue(model.finishDataItemName, nodeModel, data);
12
+ this.totalDataItemValue = calcDataItemValue(model.totalDataItemName, nodeModel, data);
13
+ }
14
+ }
@@ -0,0 +1,19 @@
1
+ import { IDEGantt, IDETreeDataSetNode } from '@ibiz/model-core';
2
+ import { IGanttNodeData } from '../../../interface';
3
+ import { TreeDataSetNodeData } from '../tree-node-data';
4
+ export declare class GanttDataSetNodeData extends TreeDataSetNodeData implements IGanttNodeData {
5
+ sndataIteValue: string;
6
+ beginDataItemValue: string;
7
+ endDataItemValue: string;
8
+ prevDataItemValue: string | number;
9
+ finishDataItemValue: string | number;
10
+ totalDataItemValue: string | number;
11
+ children?: IGanttNodeData[] | undefined;
12
+ constructor(model: IDEGantt, nodeModel: IDETreeDataSetNode, parentNodeData: IGanttNodeData | undefined, opts: {
13
+ data: IData;
14
+ leaf: boolean;
15
+ navContext?: IParams;
16
+ navParams?: IParams;
17
+ });
18
+ }
19
+ //# sourceMappingURL=gantt-data-set-node-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gantt-data-set-node-data.d.ts","sourceRoot":"","sources":["../../../../src/service/vo/gantt-node-data/gantt-data-set-node-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,qBAAa,oBACX,SAAQ,mBACR,YAAW,cAAc;IAEzB,cAAc,EAAE,MAAM,CAAC;IAEvB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,gBAAgB,EAAE,MAAM,CAAC;IAEzB,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEnC,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAAC;IAErC,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEpC,QAAQ,CAAC,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;gBAGtC,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,kBAAkB,EAC7B,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,IAAI,EAAE;QACJ,IAAI,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,OAAO,CAAC;QACd,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;CAmCJ"}
@@ -0,0 +1,14 @@
1
+ import { TreeDataSetNodeData } from '../tree-node-data';
2
+ import { calcDataItemValue } from './gantt-node-data-util';
3
+ export class GanttDataSetNodeData extends TreeDataSetNodeData {
4
+ constructor(model, nodeModel, parentNodeData, opts) {
5
+ super(nodeModel, parentNodeData, opts);
6
+ const { data } = opts;
7
+ this.sndataIteValue = calcDataItemValue(model.sndataItemName, nodeModel, data);
8
+ this.beginDataItemValue = calcDataItemValue(model.beginDataItemName, nodeModel, data);
9
+ this.endDataItemValue = calcDataItemValue(model.endDataItemName, nodeModel, data);
10
+ this.prevDataItemValue = calcDataItemValue(model.prevDataItemName, nodeModel, data);
11
+ this.finishDataItemValue = calcDataItemValue(model.finishDataItemName, nodeModel, data);
12
+ this.totalDataItemValue = calcDataItemValue(model.totalDataItemName, nodeModel, data);
13
+ }
14
+ }
@@ -0,0 +1,9 @@
1
+ import { IDETreeNode } from '@ibiz/model-core';
2
+ /**
3
+ * 计算数据项
4
+ * @param nodeModel
5
+ * @param fieldCodeName
6
+ * @returns
7
+ */
8
+ export declare const calcDataItemValue: (fieldCodeName: string | undefined, nodeModel: IDETreeNode, data?: IData) => string;
9
+ //# sourceMappingURL=gantt-node-data-util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gantt-node-data-util.d.ts","sourceRoot":"","sources":["../../../../src/service/vo/gantt-node-data/gantt-node-data-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAuB,MAAM,kBAAkB,CAAC;AAEpE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,kBACb,MAAM,GAAG,SAAS,aACtB,WAAW,SAChB,KAAK,KACV,MAaF,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 计算数据项
3
+ * @param nodeModel
4
+ * @param fieldCodeName
5
+ * @returns
6
+ */
7
+ export const calcDataItemValue = (fieldCodeName, nodeModel, data = {}) => {
8
+ let result = '';
9
+ if (!fieldCodeName || !nodeModel.detreeNodeDataItems) {
10
+ return result;
11
+ }
12
+ const targetTreeNodeDataItem = nodeModel.detreeNodeDataItems.find((nodeDataItem) => {
13
+ return nodeDataItem.id === fieldCodeName;
14
+ });
15
+ if (targetTreeNodeDataItem && targetTreeNodeDataItem.appDEFieldId) {
16
+ result = data[targetTreeNodeDataItem.appDEFieldId];
17
+ }
18
+ return result;
19
+ };
@@ -0,0 +1,17 @@
1
+ import { IDEGantt, IDETreeNode } from '@ibiz/model-core';
2
+ import { IGanttNodeData } from '../../../interface';
3
+ import { TreeStaticNodeData } from '../tree-node-data';
4
+ export declare class GanttStaticNodeData extends TreeStaticNodeData implements IGanttNodeData {
5
+ sndataIteValue: string;
6
+ beginDataItemValue: string;
7
+ endDataItemValue: string;
8
+ prevDataItemValue: string | number;
9
+ finishDataItemValue: string | number;
10
+ totalDataItemValue: string | number;
11
+ children?: IGanttNodeData[] | undefined;
12
+ constructor(model: IDEGantt, nodeModel: IDETreeNode, parentNodeData: IGanttNodeData | undefined, opts: {
13
+ parentValueLevel?: number;
14
+ leaf: boolean;
15
+ });
16
+ }
17
+ //# sourceMappingURL=gantt-static-node-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gantt-static-node-data.d.ts","sourceRoot":"","sources":["../../../../src/service/vo/gantt-node-data/gantt-static-node-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAGvD,qBAAa,mBACX,SAAQ,kBACR,YAAW,cAAc;IAEzB,cAAc,EAAE,MAAM,CAAC;IAEvB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,gBAAgB,EAAE,MAAM,CAAC;IAEzB,iBAAiB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEnC,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAAC;IAErC,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IAEpC,QAAQ,CAAC,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;gBAGtC,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,WAAW,EACtB,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,IAAI,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE;CAsBrD"}
@@ -0,0 +1,13 @@
1
+ import { TreeStaticNodeData } from '../tree-node-data';
2
+ import { calcDataItemValue } from './gantt-node-data-util';
3
+ export class GanttStaticNodeData extends TreeStaticNodeData {
4
+ constructor(model, nodeModel, parentNodeData, opts) {
5
+ super(nodeModel, parentNodeData, opts);
6
+ this.sndataIteValue = calcDataItemValue(model.sndataItemName, nodeModel);
7
+ this.beginDataItemValue = calcDataItemValue(model.beginDataItemName, nodeModel);
8
+ this.endDataItemValue = calcDataItemValue(model.endDataItemName, nodeModel);
9
+ this.prevDataItemValue = calcDataItemValue(model.prevDataItemName, nodeModel);
10
+ this.finishDataItemValue = calcDataItemValue(model.finishDataItemName, nodeModel);
11
+ this.totalDataItemValue = calcDataItemValue(model.totalDataItemName, nodeModel);
12
+ }
13
+ }
@@ -0,0 +1,4 @@
1
+ export { GanttStaticNodeData } from './gantt-static-node-data';
2
+ export { GanttDataSetNodeData } from './gantt-data-set-node-data';
3
+ export { GanttCodeListNodeData } from './gantt-code-list-node-data';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/service/vo/gantt-node-data/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { GanttStaticNodeData } from './gantt-static-node-data';
2
+ export { GanttDataSetNodeData } from './gantt-data-set-node-data';
3
+ export { GanttCodeListNodeData } from './gantt-code-list-node-data';
@@ -5,4 +5,5 @@ export * from './calendar-item-data';
5
5
  export * from './map-data';
6
6
  export * from './panel-data';
7
7
  export * from './chart-data';
8
+ export * from './gantt-node-data';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/vo/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/vo/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC"}
@@ -5,3 +5,4 @@ export * from './calendar-item-data';
5
5
  export * from './map-data';
6
6
  export * from './panel-data';
7
7
  export * from './chart-data';
8
+ export * from './gantt-node-data';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui-action/provider/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAkB7C;AAED,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,GACrB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui-action/provider/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAqB7C;AAED,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,GACrB,CAAC"}
@@ -4,6 +4,7 @@ import { SysUIActionProvider } from './sys-ui-action-provider';
4
4
  import { FrontUIActionProvider } from './front-ui-action-provider';
5
5
  import { WFWithdrawUIActionProvider } from './wf-withdraw-ui-action-provider';
6
6
  import { UIActionProviderBase } from './ui-action-provider-base';
7
+ import { LoginOutUIActionProvider } from './loginout-ui-action-provider';
7
8
  /**
8
9
  * 预置默认的界面行为适配器
9
10
  *
@@ -25,5 +26,8 @@ export function presetUIActionProvider() {
25
26
  // 工作流撤回
26
27
  const wfWithdrawUIActionProvider = new WFWithdrawUIActionProvider();
27
28
  registerUIActionProvider('DEUIACTION_WFWithdraw', () => wfWithdrawUIActionProvider);
29
+ // 预置登出界面行为适配器
30
+ const loginOutUIActionProvider = new LoginOutUIActionProvider();
31
+ registerUIActionProvider('SYS_Logout', () => loginOutUIActionProvider);
28
32
  }
29
33
  export { FrontUIActionProvider, SysUIActionProvider, BackendUIActionProvider, WFWithdrawUIActionProvider, UIActionProviderBase, };
@@ -0,0 +1,16 @@
1
+ import { IAppDEUIAction } from '@ibiz/model-core';
2
+ import { IUIActionResult, IUILogicParams } from '../../interface';
3
+ import { UIActionProviderBase } from './ui-action-provider-base';
4
+ /**
5
+ * 系统登出界面行为适配器
6
+ *
7
+ * @author zk
8
+ * @date 2023-12-11 07:12:49
9
+ * @export
10
+ * @class LoginOutUIActionProvider
11
+ * @extends {UIActionProviderBase}
12
+ */
13
+ export declare class LoginOutUIActionProvider extends UIActionProviderBase {
14
+ execAction(_action: IAppDEUIAction, _params: IUILogicParams): Promise<IUIActionResult>;
15
+ }
16
+ //# sourceMappingURL=loginout-ui-action-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loginout-ui-action-provider.d.ts","sourceRoot":"","sources":["../../../src/ui-action/provider/loginout-ui-action-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;;;GAQG;AACH,qBAAa,wBAAyB,SAAQ,oBAAoB;IAC1D,UAAU,CACd,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,eAAe,CAAC;CAa5B"}
@@ -0,0 +1,25 @@
1
+ import { UIActionProviderBase } from './ui-action-provider-base';
2
+ /**
3
+ * 系统登出界面行为适配器
4
+ *
5
+ * @author zk
6
+ * @date 2023-12-11 07:12:49
7
+ * @export
8
+ * @class LoginOutUIActionProvider
9
+ * @extends {UIActionProviderBase}
10
+ */
11
+ export class LoginOutUIActionProvider extends UIActionProviderBase {
12
+ async execAction(_action, _params) {
13
+ const confirm = await ibiz.confirm.info({
14
+ title: '确认退出登录',
15
+ desc: '您确定要退出登录吗?退出后您将无法继续访问已登录状态的功能和信息,请确保您已保存所有未完成的操作。',
16
+ });
17
+ if (confirm) {
18
+ const bol = await ibiz.auth.logout();
19
+ if (bol) {
20
+ window.location.reload();
21
+ }
22
+ }
23
+ return {};
24
+ }
25
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/runtime",
3
- "version": "0.4.9",
3
+ "version": "0.4.11",
4
4
  "description": "控制器包",
5
5
  "type": "module",
6
6
  "main": "out/index.js",
@@ -29,8 +29,8 @@
29
29
  "author": "chitanda",
30
30
  "license": "MIT",
31
31
  "devDependencies": {
32
- "@ibiz-template/core": "^0.4.9",
33
- "@ibiz/model-core": "^0.0.26",
32
+ "@ibiz-template/core": "^0.4.11",
33
+ "@ibiz/model-core": "^0.0.27",
34
34
  "@types/path-browserify": "^1.0.2",
35
35
  "@types/qs": "^6.9.10",
36
36
  "@types/systemjs": "^6.13.5",
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "peerDependencies": {
49
49
  "@ibiz-template/core": "^0.4.0",
50
- "@ibiz/model-core": "^0.0.26",
50
+ "@ibiz/model-core": "^0.0.27",
51
51
  "async-validator": "^4.2.5",
52
52
  "dayjs": "^1.11.7",
53
53
  "echarts": "^5.4.3",
@@ -59,5 +59,5 @@
59
59
  "qx-util": "^0.4.8",
60
60
  "ramda": "^0.29.0"
61
61
  },
62
- "gitHead": "aed61e1dc8d1cf0f56bbed55cfe70d6ea0f5cc58"
62
+ "gitHead": "b2512a91986d2e5fea22610a8148ab8f405ecb4e"
63
63
  }
@@ -392,41 +392,57 @@ export class EditFormController
392
392
  throw new RuntimeError(`没找到${formItemUpdateId}表单项更新`);
393
393
  }
394
394
 
395
- const { appDEMethodId, defiupdateDetails, customCode, scriptCode } =
396
- formItemUpdate;
395
+ const {
396
+ appDEMethodId,
397
+ defiupdateDetails,
398
+ customCode,
399
+ scriptCode,
400
+ showBusyIndicator,
401
+ } = formItemUpdate;
397
402
  const updateItems = defiupdateDetails?.map(item => item.id!);
398
403
 
399
- let updateData: IData; // 要修改的数据
400
- if (customCode && scriptCode) {
401
- // 脚本模式获取修改数据
402
- updateData = ScriptFactory.execScriptFn(
403
- {
404
- ...this.getEventArgs(),
405
- data: this.data,
406
- },
407
- scriptCode,
408
- {
409
- isAsync: false,
410
- },
411
- ) as IData;
412
- } else {
413
- // 后台服务获取修改数据
414
- const params = { ...this.params, ...this.data.getOrigin() };
415
- const res = await this.service.updateFormItem(
416
- appDEMethodId!,
417
- this.context,
418
- params,
419
- );
420
- updateData = res.data;
421
- }
404
+ try {
405
+ if (showBusyIndicator) {
406
+ this.startLoading();
407
+ }
408
+ let updateData: IData; // 要修改的数据
409
+ if (customCode && scriptCode) {
410
+ // 脚本模式获取修改数据
411
+ updateData = ScriptFactory.execScriptFn(
412
+ {
413
+ ...this.getEventArgs(),
414
+ data: this.data,
415
+ },
416
+ scriptCode,
417
+ {
418
+ isAsync: false,
419
+ },
420
+ ) as IData;
421
+ } else {
422
+ // 后台服务获取修改数据
423
+ const params = { ...this.params, ...this.data.getOrigin() };
424
+ const res = await this.service.updateFormItem(
425
+ appDEMethodId!,
426
+ this.context,
427
+ params,
428
+ );
429
+ updateData = res.data;
430
+ }
422
431
 
423
- // 修改表单项更新的值
424
- if (updateData && updateItems?.length) {
425
- await Promise.all(
426
- updateItems.map(itemName =>
427
- this.setDataValue(itemName, updateData[itemName]),
428
- ),
429
- );
432
+ // 修改表单项更新的值
433
+ if (updateData && updateItems?.length) {
434
+ await Promise.all(
435
+ updateItems.map(itemName =>
436
+ this.setDataValue(itemName, updateData[itemName]),
437
+ ),
438
+ );
439
+ }
440
+
441
+ await awaitTimeout(2000);
442
+ } finally {
443
+ if (showBusyIndicator) {
444
+ this.endLoading();
445
+ }
430
446
  }
431
447
  }
432
448
 
@@ -53,7 +53,7 @@ export class FormDRUIPartController extends FormDetailController<IDEFormDRUIPart
53
53
  refreshItems: string[] = ['srfkey'];
54
54
 
55
55
  /**
56
- * 参数项名称
56
+ * 参数项名称(这个模型暂不使用,相关场景可以通过配置导航参数实现)
57
57
  *
58
58
  * @author lxm
59
59
  * @date 2022-09-15 19:09:36
@@ -106,6 +106,21 @@ export class FormItemController
106
106
  return undefined;
107
107
  }
108
108
 
109
+ /**
110
+ * 标签标题
111
+ * @author lxm
112
+ * @date 2023-12-12 09:48:21
113
+ * @readonly
114
+ * @type {(string | undefined)}
115
+ */
116
+ get labelCaption(): string | undefined {
117
+ const { captionItemName } = this.model;
118
+ if (captionItemName) {
119
+ return this.data[captionItemName];
120
+ }
121
+ return this.model.caption;
122
+ }
123
+
109
124
  /**
110
125
  * Creates an instance of FormItemController.
111
126
  *