@ibiz-template/runtime 0.7.41-alpha.140 → 0.7.41-alpha.141

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 (77) hide show
  1. package/dist/index.esm.js +80 -24
  2. package/dist/index.system.min.js +1 -1
  3. package/out/config/global-config.d.ts.map +1 -1
  4. package/out/config/global-config.js +2 -0
  5. package/out/controller/common/control/control.controller.d.ts +1 -1
  6. package/out/controller/common/control/control.controller.d.ts.map +1 -1
  7. package/out/controller/common/control/control.controller.js +3 -3
  8. package/out/controller/common/control/md-control.controller.d.ts +1 -1
  9. package/out/controller/common/control/md-control.controller.d.ts.map +1 -1
  10. package/out/controller/common/control/md-control.controller.js +10 -1
  11. package/out/controller/common/view/view.controller.js +2 -2
  12. package/out/controller/control/data-view/data-view.controller.d.ts +7 -0
  13. package/out/controller/control/data-view/data-view.controller.d.ts.map +1 -1
  14. package/out/controller/control/data-view/data-view.controller.js +11 -0
  15. package/out/controller/control/form/edit-form/edit-form.controller.d.ts +1 -1
  16. package/out/controller/control/form/edit-form/edit-form.controller.d.ts.map +1 -1
  17. package/out/controller/control/form/edit-form/edit-form.controller.js +10 -1
  18. package/out/controller/control/form/form/form.controller.js +1 -1
  19. package/out/controller/control/gantt/gantt.controller.d.ts +1 -1
  20. package/out/controller/control/gantt/gantt.controller.d.ts.map +1 -1
  21. package/out/controller/control/gantt/gantt.controller.js +1 -1
  22. package/out/controller/control/list/list.controller.d.ts +7 -0
  23. package/out/controller/control/list/list.controller.d.ts.map +1 -1
  24. package/out/controller/control/list/list.controller.js +11 -0
  25. package/out/controller/control/medit-view-panel/medit-view-panel.controller.d.ts +1 -1
  26. package/out/controller/control/medit-view-panel/medit-view-panel.controller.d.ts.map +1 -1
  27. package/out/controller/control/medit-view-panel/medit-view-panel.controller.js +1 -1
  28. package/out/controller/control/panel/view-layout-panel/view-layout-panel.controller.js +2 -2
  29. package/out/controller/control/tree/tree.controller.d.ts +1 -1
  30. package/out/controller/control/tree/tree.controller.d.ts.map +1 -1
  31. package/out/controller/control/tree/tree.controller.js +10 -1
  32. package/out/engine/view-base.engine.d.ts +1 -1
  33. package/out/engine/view-base.engine.d.ts.map +1 -1
  34. package/out/engine/view-base.engine.js +1 -1
  35. package/out/interface/api/common/global-config/i-api-global-common-config.d.ts +17 -2
  36. package/out/interface/api/common/global-config/i-api-global-common-config.d.ts.map +1 -1
  37. package/out/interface/api/controller/control/i-api-data-view-control.controller.d.ts +1 -0
  38. package/out/interface/api/controller/control/i-api-data-view-control.controller.d.ts.map +1 -1
  39. package/out/interface/api/controller/control/i-api-list.controller.d.ts +1 -0
  40. package/out/interface/api/controller/control/i-api-list.controller.d.ts.map +1 -1
  41. package/out/interface/controller/event/argument/index.d.ts +1 -0
  42. package/out/interface/controller/event/argument/index.d.ts.map +1 -1
  43. package/out/interface/controller/event/argument/notify-refresh.event.d.ts +13 -0
  44. package/out/interface/controller/event/argument/notify-refresh.event.d.ts.map +1 -0
  45. package/out/interface/controller/event/argument/notify-refresh.event.js +1 -0
  46. package/out/interface/controller/event/control/i-form.event.d.ts +20 -2
  47. package/out/interface/controller/event/control/i-form.event.d.ts.map +1 -1
  48. package/out/interface/controller/event/control/i-md-control.event.d.ts +20 -2
  49. package/out/interface/controller/event/control/i-md-control.event.d.ts.map +1 -1
  50. package/out/logic-scheduler/scheduler/logic-scheduler.d.ts +3 -3
  51. package/out/logic-scheduler/scheduler/logic-scheduler.d.ts.map +1 -1
  52. package/out/logic-scheduler/scheduler/logic-scheduler.js +4 -4
  53. package/out/service/de-service-util.d.ts.map +1 -1
  54. package/out/service/de-service-util.js +7 -3
  55. package/package.json +2 -2
  56. package/src/config/global-config.ts +2 -0
  57. package/src/controller/common/control/control.controller.ts +3 -3
  58. package/src/controller/common/control/md-control.controller.ts +11 -1
  59. package/src/controller/common/view/view.controller.ts +2 -2
  60. package/src/controller/control/data-view/data-view.controller.ts +11 -0
  61. package/src/controller/control/form/edit-form/edit-form.controller.ts +11 -1
  62. package/src/controller/control/form/form/form.controller.ts +1 -1
  63. package/src/controller/control/gantt/gantt.controller.ts +1 -1
  64. package/src/controller/control/list/list.controller.ts +11 -0
  65. package/src/controller/control/medit-view-panel/medit-view-panel.controller.ts +1 -1
  66. package/src/controller/control/panel/view-layout-panel/view-layout-panel.controller.ts +2 -2
  67. package/src/controller/control/tree/tree.controller.ts +12 -1
  68. package/src/engine/view-base.engine.ts +1 -1
  69. package/src/interface/api/common/global-config/i-api-global-common-config.ts +19 -2
  70. package/src/interface/api/controller/control/i-api-data-view-control.controller.ts +1 -0
  71. package/src/interface/api/controller/control/i-api-list.controller.ts +1 -0
  72. package/src/interface/controller/event/argument/index.ts +1 -0
  73. package/src/interface/controller/event/argument/notify-refresh.event.ts +12 -0
  74. package/src/interface/controller/event/control/i-form.event.ts +20 -2
  75. package/src/interface/controller/event/control/i-md-control.event.ts +15 -2
  76. package/src/logic-scheduler/scheduler/logic-scheduler.ts +5 -5
  77. package/src/service/de-service-util.ts +13 -3
@@ -1,5 +1,5 @@
1
- import { PartialWithObject } from '@ibiz-template/core';
2
- import { EventBase, FormDataChangeEvent, FormDetailEvent } from '../argument';
1
+ import { IPortalMessage, PartialWithObject } from '@ibiz-template/core';
2
+ import { EventBase, FormDataChangeEvent, FormDetailEvent, NotifyRefreshEventCtx } from '../argument';
3
3
  import { IControlEvent } from './i-control.event';
4
4
  /**
5
5
  * @primary
@@ -69,5 +69,23 @@ export interface IFormEvent extends IControlEvent {
69
69
  event: FormDetailEvent;
70
70
  emitArgs: PartialWithObject<FormDetailEvent, EventBase>;
71
71
  };
72
+ /**
73
+ * @description 通知刷新
74
+ * @type {({
75
+ * event: EventBase & { data: IPortalMessage; args: NotifyRefreshEventCtx };
76
+ * emitArgs: { data: IPortalMessage; args: NotifyRefreshEventCtx };
77
+ * })}
78
+ * @memberof IFormEvent
79
+ */
80
+ onNotifyRefresh: {
81
+ event: EventBase & {
82
+ data: IPortalMessage;
83
+ args: NotifyRefreshEventCtx;
84
+ };
85
+ emitArgs: {
86
+ data: IPortalMessage;
87
+ args: NotifyRefreshEventCtx;
88
+ };
89
+ };
72
90
  }
73
91
  //# sourceMappingURL=i-form.event.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i-form.event.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/event/control/i-form.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C;;;;;;;OAOG;IACH,gBAAgB,EAAE;QAChB,KAAK,EAAE,mBAAmB,CAAC;QAC3B,QAAQ,EAAE,iBAAiB,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;KAC7D,CAAC;IAEF;;;;;;;OAOG;IACH,iBAAiB,EAAE;QACjB,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;KAC9B,CAAC;IAEF;;;;;;;OAOG;IACH,kBAAkB,EAAE;QAClB,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;OAOG;IACH,gBAAgB,EAAE;QAChB,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;OAOG;IACH,iBAAiB,EAAE;QACjB,KAAK,EAAE,eAAe,CAAC;QACvB,QAAQ,EAAE,iBAAiB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;KACzD,CAAC;CACH"}
1
+ {"version":3,"file":"i-form.event.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/event/control/i-form.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C;;;;;;;OAOG;IACH,gBAAgB,EAAE;QAChB,KAAK,EAAE,mBAAmB,CAAC;QAC3B,QAAQ,EAAE,iBAAiB,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;KAC7D,CAAC;IAEF;;;;;;;OAOG;IACH,iBAAiB,EAAE;QACjB,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;KAC9B,CAAC;IAEF;;;;;;;OAOG;IACH,kBAAkB,EAAE;QAClB,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;OAOG;IACH,gBAAgB,EAAE;QAChB,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;OAOG;IACH,iBAAiB,EAAE;QACjB,KAAK,EAAE,eAAe,CAAC;QACvB,QAAQ,EAAE,iBAAiB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;KACzD,CAAC;IAEF;;;;;;;OAOG;IACH,eAAe,EAAE;QACf,KAAK,EAAE,SAAS,GAAG;YAAE,IAAI,EAAE,cAAc,CAAC;YAAC,IAAI,EAAE,qBAAqB,CAAA;SAAE,CAAC;QACzE,QAAQ,EAAE;YAAE,IAAI,EAAE,cAAc,CAAC;YAAC,IAAI,EAAE,qBAAqB,CAAA;SAAE,CAAC;KACjE,CAAC;CACH"}
@@ -1,5 +1,5 @@
1
- import { PartialWithObject } from '@ibiz-template/core';
2
- import { EventBase, LoadEvent } from '../argument';
1
+ import { IPortalMessage, PartialWithObject } from '@ibiz-template/core';
2
+ import { EventBase, LoadEvent, NotifyRefreshEventCtx } from '../argument';
3
3
  import { IControlEvent } from './i-control.event';
4
4
  /**
5
5
  * 多数据部件事件
@@ -175,5 +175,23 @@ export interface IMDControlEvent extends IControlEvent {
175
175
  navData: IData;
176
176
  };
177
177
  };
178
+ /**
179
+ * @description 通知刷新
180
+ * @type {({
181
+ * event: EventBase & { data: IPortalMessage; args: NotifyRefreshEventCtx };
182
+ * emitArgs: { data: IPortalMessage; args: NotifyRefreshEventCtx };
183
+ * })}
184
+ * @memberof IMDControlEvent
185
+ */
186
+ onNotifyRefresh: {
187
+ event: EventBase & {
188
+ data: IPortalMessage;
189
+ args: NotifyRefreshEventCtx;
190
+ };
191
+ emitArgs: {
192
+ data: IPortalMessage;
193
+ args: NotifyRefreshEventCtx;
194
+ };
195
+ };
178
196
  }
179
197
  //# sourceMappingURL=i-md-control.event.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i-md-control.event.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/event/control/i-md-control.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD;;;;;;;;OAQG;IACH,QAAQ,EAAE;QACR,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE;YAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;SAAE,CAAC;KAC7D,CAAC;IAEF;;;;;;;;OAQG;IACH,iBAAiB,EAAE;QACjB,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE;YAAE,IAAI,EAAE,KAAK,EAAE,CAAA;SAAE,CAAC;KAC7B,CAAC;IAEF;;;;;;;;OAQG;IACH,YAAY,EAAE;QACZ,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;;OAQG;IACH,aAAa,EAAE;QACb,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;;OAQG;IACH,WAAW,EAAE;QACX,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;;OAQG;IACH,cAAc,EAAE;QACd,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;;OAQG;IACH,eAAe,EAAE;QACf,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;;OAQG;IACH,aAAa,EAAE;QACb,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;;OAQG;IACH,YAAY,EAAE;QACZ,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;KAC9B,CAAC;IAEF;;;;;;;;OAQG;IACH,aAAa,EAAE;QACb,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;KACnD,CAAC;IAEF;;;;;;;;OAQG;IACH,WAAW,EAAE;QACX,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;;OAQG;IACH,eAAe,EAAE;QACf,KAAK,EAAE,SAAS,GAAG;YAAE,OAAO,EAAE,KAAK,CAAA;SAAE,CAAC;QACtC,QAAQ,EAAE;YAAE,OAAO,EAAE,KAAK,CAAA;SAAE,CAAC;KAC9B,CAAC;CACH"}
1
+ {"version":3,"file":"i-md-control.event.d.ts","sourceRoot":"","sources":["../../../../../src/interface/controller/event/control/i-md-control.event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD;;;;;;;;OAQG;IACH,QAAQ,EAAE;QACR,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE;YAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;SAAE,CAAC;KAC7D,CAAC;IAEF;;;;;;;;OAQG;IACH,iBAAiB,EAAE;QACjB,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE;YAAE,IAAI,EAAE,KAAK,EAAE,CAAA;SAAE,CAAC;KAC7B,CAAC;IAEF;;;;;;;;OAQG;IACH,YAAY,EAAE;QACZ,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;;OAQG;IACH,aAAa,EAAE;QACb,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;;OAQG;IACH,WAAW,EAAE;QACX,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;;OAQG;IACH,cAAc,EAAE;QACd,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;;OAQG;IACH,eAAe,EAAE;QACf,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;;OAQG;IACH,aAAa,EAAE;QACb,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;;OAQG;IACH,YAAY,EAAE;QACZ,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;KAC9B,CAAC;IAEF;;;;;;;;OAQG;IACH,aAAa,EAAE;QACb,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;KACnD,CAAC;IAEF;;;;;;;;OAQG;IACH,WAAW,EAAE;QACX,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;IAEF;;;;;;;;OAQG;IACH,eAAe,EAAE;QACf,KAAK,EAAE,SAAS,GAAG;YAAE,OAAO,EAAE,KAAK,CAAA;SAAE,CAAC;QACtC,QAAQ,EAAE;YAAE,OAAO,EAAE,KAAK,CAAA;SAAE,CAAC;KAC9B,CAAC;IAEF;;;;;;;OAOG;IACH,eAAe,EAAE;QACf,KAAK,EAAE,SAAS,GAAG;YAAE,IAAI,EAAE,cAAc,CAAC;YAAC,IAAI,EAAE,qBAAqB,CAAA;SAAE,CAAC;QACzE,QAAQ,EAAE;YAAE,IAAI,EAAE,cAAc,CAAC;YAAC,IAAI,EAAE,qBAAqB,CAAA;SAAE,CAAC;KACjE,CAAC;CACH"}
@@ -152,12 +152,12 @@ export declare class LogicScheduler {
152
152
  */
153
153
  triggerControlEvent(ctrlName: string, eventName: string, executeParams?: Partial<IUILogicParams>): void;
154
154
  /**
155
- * @description 触发部件项事件
156
- * @param {string} ctrlItemName 部件项名称
155
+ * @description 触发部件事件
156
+ * @param {string} ctrlName 部件名称
157
157
  * @param {string} eventName 事件名称
158
158
  * @param {Partial<IUILogicParams>} [executeParams] 执行参数
159
159
  * @memberof LogicScheduler
160
160
  */
161
- triggerControlItemEvent(ctrlItemName: string, eventName: string, executeParams?: Partial<IUILogicParams>): Promise<void>;
161
+ asyncTriggerControlEvent(ctrlName: string, eventName: string, executeParams?: Partial<IUILogicParams>): Promise<void>;
162
162
  }
163
163
  //# sourceMappingURL=logic-scheduler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logic-scheduler.d.ts","sourceRoot":"","sources":["../../../src/logic-scheduler/scheduler/logic-scheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,MAAM,EAAE,eAAe,EAAE,CAAC;IAE1B,QAAQ,4BAAmC;IAE3C,SAAS,6BAAoC;IAE7C;;;;;OAKG;IACH,mBAAmB,EAAE,OAAO,CAAS;IAErC;;;;;OAKG;IACH,sBAAsB,EAAE,OAAO,CAAS;IAExC;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAS;gBAEjB,MAAM,EAAE,eAAe,EAAE,EAAE,aAAa,GAAE,MAAM,EAAO;IAmBnE;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAMf;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,cAAc,CAAC;IAEvC;;;;;;OAMG;IACH,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;IAQxE;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CACrB,KAAK,EAAE,eAAe,EACtB,aAAa,GAAE,MAAM,EAAO,GAC3B,YAAY;IAiBf;;;;;;;OAOG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,aAAa;IAI/D;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,GAAG,YAAY,EAAE;IAU5E;;;;;;;;OAQG;IACH,iBAAiB,CACf,WAAW,EAAE,mBAAmB,EAChC,aAAa,GAAE,OAAO,CAAC,cAAc,CAAM,GAE1C,GAAG,EAAE,GAAG,SAAS;IAcpB;;;;;;;;;OASG;IACH,SAAS,CAAC,oBAAoB,CAC5B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,aAAa,GAAG,YAAY,GAAG,WAAW,EACvD,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAQtB;;;;;;;OAOG;IACH,kBAAkB,CAChB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAItB;;;;;;;OAOG;IACH,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAItB;;;;;;;OAOG;IACH,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAItB;;;;OAIG;IACH,iBAAiB,IAAI,IAAI;IAKzB;;;;;;;OAOG;IAEH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,GAAG;IAStE;;;;;;;OAOG;IACH,mBAAmB,CACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GACtC,IAAI;IASP;;;;;;OAMG;IACG,uBAAuB,CAC3B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC;CASjB"}
1
+ {"version":3,"file":"logic-scheduler.d.ts","sourceRoot":"","sources":["../../../src/logic-scheduler/scheduler/logic-scheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,MAAM,EAAE,eAAe,EAAE,CAAC;IAE1B,QAAQ,4BAAmC;IAE3C,SAAS,6BAAoC;IAE7C;;;;;OAKG;IACH,mBAAmB,EAAE,OAAO,CAAS;IAErC;;;;;OAKG;IACH,sBAAsB,EAAE,OAAO,CAAS;IAExC;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAS;gBAEjB,MAAM,EAAE,eAAe,EAAE,EAAE,aAAa,GAAE,MAAM,EAAO;IAmBnE;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAMf;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,cAAc,CAAC;IAEvC;;;;;;OAMG;IACH,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;IAQxE;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CACrB,KAAK,EAAE,eAAe,EACtB,aAAa,GAAE,MAAM,EAAO,GAC3B,YAAY;IAiBf;;;;;;;OAOG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,aAAa;IAI/D;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,GAAG,YAAY,EAAE;IAU5E;;;;;;;;OAQG;IACH,iBAAiB,CACf,WAAW,EAAE,mBAAmB,EAChC,aAAa,GAAE,OAAO,CAAC,cAAc,CAAM,GAE1C,GAAG,EAAE,GAAG,SAAS;IAcpB;;;;;;;;;OASG;IACH,SAAS,CAAC,oBAAoB,CAC5B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,aAAa,GAAG,YAAY,GAAG,WAAW,EACvD,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAQtB;;;;;;;OAOG;IACH,kBAAkB,CAChB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAItB;;;;;;;OAOG;IACH,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAItB;;;;;;;OAOG;IACH,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAItB;;;;OAIG;IACH,iBAAiB,IAAI,IAAI;IAKzB;;;;;;;OAOG;IAEH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,GAAG;IAStE;;;;;;;OAOG;IACH,mBAAmB,CACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GACtC,IAAI;IASP;;;;;;OAMG;IACG,wBAAwB,CAC5B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC;CASjB"}
@@ -235,16 +235,16 @@ export class LogicScheduler {
235
235
  this.triggerAndExecute(matchParams, executeParams);
236
236
  }
237
237
  /**
238
- * @description 触发部件项事件
239
- * @param {string} ctrlItemName 部件项名称
238
+ * @description 触发部件事件
239
+ * @param {string} ctrlName 部件名称
240
240
  * @param {string} eventName 事件名称
241
241
  * @param {Partial<IUILogicParams>} [executeParams] 执行参数
242
242
  * @memberof LogicScheduler
243
243
  */
244
- async triggerControlItemEvent(ctrlItemName, eventName, executeParams) {
244
+ async asyncTriggerControlEvent(ctrlName, eventName, executeParams) {
245
245
  const matchParams = {
246
+ ctrlName,
246
247
  eventName,
247
- ctrlName: ctrlItemName,
248
248
  triggerType: 'CTRLEVENT',
249
249
  };
250
250
  const result = this.triggerAndExecute(matchParams, executeParams);
@@ -1 +1 @@
1
- {"version":3,"file":"de-service-util.d.ts","sourceRoot":"","sources":["../../src/service/de-service-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAgB,MAAM,qBAAqB,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAGtB;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,cAAc,KACxB,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B;;;;;;;GAOG;AACH,qBAAa,aAAc,YAAW,iBAAiB;IAiDzC,SAAS,CAAC,QAAQ,EAAE,YAAY;IAhD5C;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAa;IAErE;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAa;IAEzE;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CACxD;IAEZ;;;;;OAKG;IACH,SAAS,CAAC,eAAe,EAAE,GAAG,CAC5B,MAAM,EACN;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CACxC,CAAa;IAEd;;;;;;OAMG;gBACmB,QAAQ,EAAE,YAAY;IAK5C;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,oBAAoB,GAAG,IAAI;IAIpE;;;;OAIG;IACH,8BAA8B,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAwB/D;;;;;;;;OAQG;IACG,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAyCvE;;;;;;;;OAQG;IACG,qBAAqB,CACzB,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,CAAC;IAkBzB;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAc9B;;;;;OAKG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAY1C;;;;;;;OAOG;IACH,cAAc,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAWvC;;;;;;;;;OASG;IACH,kBAAkB,CAChB,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,MAAM,EAChB,aAAa,GAAE,MAAM,EAAO,GAC3B,IAAI;IAgCP;;;;;;;;;;OAUG;IACG,IAAI,CACR,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,EACjB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,SAAS,EACpC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,EAC7B,MAAM,CAAC,EAAE,KAAK,GACb,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IA2BhC;;;;;;;;;;;OAWG;IACG,wBAAwB,CAC5B,OAAO,EAAE,QAAQ,EACjB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,KAAK,CAAC;IAsCjB;;;;;OAKG;IACH,qBAAqB,CACnB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,KAAK,GAAG,OAAO,GAC1B,IAAI;IAaP;;;;;;OAMG;IACH,sBAAsB,CACpB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GACpC,IAAI;CAiBR"}
1
+ {"version":3,"file":"de-service-util.d.ts","sourceRoot":"","sources":["../../src/service/de-service-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAe,aAAa,EAAgB,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAGtB;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,cAAc,KACxB,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5B;;;;;;;GAOG;AACH,qBAAa,aAAc,YAAW,iBAAiB;IAiDzC,SAAS,CAAC,QAAQ,EAAE,YAAY;IAhD5C;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAa;IAErE;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAa;IAEzE;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CACxD;IAEZ;;;;;OAKG;IACH,SAAS,CAAC,eAAe,EAAE,GAAG,CAC5B,MAAM,EACN;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CACxC,CAAa;IAEd;;;;;;OAMG;gBACmB,QAAQ,EAAE,YAAY;IAK5C;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,oBAAoB,GAAG,IAAI;IAIpE;;;;OAIG;IACH,8BAA8B,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAwB/D;;;;;;;;OAQG;IACG,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA8CvE;;;;;;;;OAQG;IACG,qBAAqB,CACzB,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,CAAC;IAkBzB;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAc9B;;;;;OAKG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAY1C;;;;;;;OAOG;IACH,cAAc,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAWvC;;;;;;;;;OASG;IACH,kBAAkB,CAChB,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,MAAM,EAChB,aAAa,GAAE,MAAM,EAAO,GAC3B,IAAI;IAgCP;;;;;;;;;;OAUG;IACG,IAAI,CACR,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,QAAQ,EACjB,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,SAAS,EACpC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,EAC7B,MAAM,CAAC,EAAE,KAAK,GACb,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAgChC;;;;;;;;;;;OAWG;IACG,wBAAwB,CAC5B,OAAO,EAAE,QAAQ,EACjB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,KAAK,CAAC;IAsCjB;;;;;OAKG;IACH,qBAAqB,CACnB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,KAAK,GAAG,OAAO,GAC1B,IAAI;IAaP;;;;;;OAMG;IACH,sBAAsB,CACpB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GACpC,IAAI;CAiBR"}
@@ -1,4 +1,4 @@
1
- import { RuntimeError } from '@ibiz-template/core';
1
+ import { IBizContext, RuntimeError } from '@ibiz-template/core';
2
2
  import { DEService } from './service';
3
3
  /**
4
4
  * 应用服务工具类
@@ -99,7 +99,9 @@ export class DEServiceUtil {
99
99
  // 优先处理开启应用实体服务映射情况
100
100
  const { targetApp, targetAppDataEntityId } = await this.computeAppDEMappingParam(context, id);
101
101
  if (targetApp && targetAppDataEntityId) {
102
- const targetService = await targetApp.deService.getService(context, targetAppDataEntityId);
102
+ // 映射场景下需将 srfappid 切换为目标应用,否则 createServiceInstance 会用源应用 appId 查找实体模型
103
+ const tempContext = IBizContext.create({ srfappid: targetApp.appId }, Object.assign({}, context));
104
+ const targetService = await targetApp.deService.getService(tempContext, targetAppDataEntityId);
103
105
  // 订阅服务方法处理状态
104
106
  targetService.methodProcesser.on(this.handleMethodProcessStateChange);
105
107
  return targetService;
@@ -261,7 +263,9 @@ export class DEServiceUtil {
261
263
  // 优先处理开启应用实体服务映射情况
262
264
  const { targetApp, targetAppDataEntityId } = await this.computeAppDEMappingParam(context, appDataEntityId);
263
265
  if (targetApp && targetAppDataEntityId) {
264
- const result = await targetApp.deService.exec(targetAppDataEntityId, methodName, context, params, params2, header);
266
+ // 映射场景下需将 srfappid 切换为目标应用,否则 createServiceInstance 会用源应用 appId 查找实体模型
267
+ const tempContext = IBizContext.create({ srfappid: targetApp.appId }, Object.assign({}, context));
268
+ const result = await targetApp.deService.exec(targetAppDataEntityId, methodName, tempContext, params, params2, header);
265
269
  return result;
266
270
  }
267
271
  // 标准逻辑
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/runtime",
3
- "version": "0.7.41-alpha.140",
3
+ "version": "0.7.41-alpha.141",
4
4
  "description": "运行时逻辑库",
5
5
  "type": "module",
6
6
  "main": "out/index.js",
@@ -70,5 +70,5 @@
70
70
  "qx-util": "^0.4.8",
71
71
  "ramda": "^0.29.0"
72
72
  },
73
- "gitHead": "29a5a4315ab5fc1780030f02bc6ceaa8af60738c"
73
+ "gitHead": "819aca6fd5a31cfeccd9940a3bb866537bce6026"
74
74
  }
@@ -142,6 +142,8 @@ export class GlobalConfig implements IGlobalConfig {
142
142
  asyncImport: false,
143
143
  aiTopicStorageMode: 'DEFAULT',
144
144
  aiInputPlaceholder: '',
145
+ aiMinimizeContainerId: undefined,
146
+ showScrollTo: 'none',
145
147
  };
146
148
 
147
149
  // 全局分页流布局配置
@@ -243,8 +243,8 @@ export class ControlController<
243
243
 
244
244
  // 监听部件所有事件触发部件逻辑
245
245
  if (this.scheduler?.hasControlEventTrigger) {
246
- this._evt.onAll((eventName, event) => {
247
- this.scheduler!.triggerControlEvent(
246
+ this._evt.onAll(async (eventName, event) => {
247
+ await this.scheduler!.asyncTriggerControlEvent(
248
248
  event.targetName,
249
249
  event.eventName,
250
250
  event,
@@ -604,7 +604,7 @@ export class ControlController<
604
604
  * @protected
605
605
  * @param {IPortalMessage} msg
606
606
  */
607
- protected onDEDataChange(msg: IPortalMessage): void {
607
+ protected async onDEDataChange(msg: IPortalMessage): Promise<void> {
608
608
  ibiz.log.debug('onDEDataChange', msg);
609
609
  }
610
610
 
@@ -25,6 +25,7 @@ import {
25
25
  IToolbarController,
26
26
  IMDControlController,
27
27
  IApiExportParams,
28
+ NotifyRefreshEventCtx,
28
29
  } from '../../../interface';
29
30
  import { calcDeCodeNameById } from '../../../model';
30
31
  import { MDControlService, Srfuf } from '../../../service';
@@ -926,7 +927,7 @@ export class MDControlController<
926
927
  * @param {IPortalMessage} msg
927
928
  * @return {*} {void}
928
929
  */
929
- protected onDEDataChange(msg: IPortalMessage): void {
930
+ protected async onDEDataChange(msg: IPortalMessage): Promise<void> {
930
931
  // msg.triggerKey 不为空,且与当前控制器的triggerKey一致时,则不处理
931
932
  if (!isNil(msg.triggerKey) && msg.triggerKey === this.triggerKey) {
932
933
  return;
@@ -971,6 +972,15 @@ export class MDControlController<
971
972
  }
972
973
 
973
974
  if (isRefresh) {
975
+ // 触发onNotifyRefresh事件,基于eventCtx.allowNext进行拦截
976
+ const eventCtx: NotifyRefreshEventCtx = {};
977
+ await this._evt.emit('onNotifyRefresh', {
978
+ data: msg,
979
+ args: eventCtx,
980
+ });
981
+ if (eventCtx.allowNext === false) {
982
+ return;
983
+ }
974
984
  this.refresh();
975
985
  }
976
986
  }
@@ -726,8 +726,8 @@ export class ViewController<
726
726
 
727
727
  if (this.scheduler?.hasControlEventTrigger) {
728
728
  // 监听部件事件触发部件事件触发器
729
- panel.evt.on('onControlEvent', event => {
730
- this.scheduler!.triggerControlEvent(
729
+ panel.evt.on('onControlEvent', async event => {
730
+ await this.scheduler!.asyncTriggerControlEvent(
731
731
  event.triggerControlName,
732
732
  event.triggerEventName,
733
733
  event.triggerEvent,
@@ -122,6 +122,17 @@ export class DataViewControlController<
122
122
  return this.enableGroup && this.controlParams.showgroupanchor === 'true';
123
123
  }
124
124
 
125
+ /**
126
+ * @description 显示滚动组件
127
+ * @readonly
128
+ * @type {('top' | 'bottom' | 'auto' | 'none')}
129
+ * @memberof DataViewControlController
130
+ */
131
+ get showScrollTo(): 'top' | 'bottom' | 'auto' | 'none' {
132
+ if (this.controlParams.showscrollto) return this.controlParams.showscrollto;
133
+ return ibiz.config.common.showScrollTo;
134
+ }
135
+
125
136
  /**
126
137
  * 初始化State
127
138
  *
@@ -26,6 +26,7 @@ import {
26
26
  IDataAbilityParams,
27
27
  FormSaveParams,
28
28
  IApiChangeTracker,
29
+ NotifyRefreshEventCtx,
29
30
  } from '../../../../interface';
30
31
  import {
31
32
  calcDeCodeNameById,
@@ -826,7 +827,7 @@ export class EditFormController
826
827
  * @param {IPortalMessage} msg
827
828
  * @return {*} {void}
828
829
  */
829
- protected onDEDataChange(msg: IPortalMessage): void {
830
+ protected async onDEDataChange(msg: IPortalMessage): Promise<void> {
830
831
  const { appDataEntityId } = this.model;
831
832
  // 表单只关心更新
832
833
  if (msg.subtype !== 'OBJECTUPDATED' || !appDataEntityId) return;
@@ -853,6 +854,15 @@ export class EditFormController
853
854
  data.srfkey === this.data.srfkey;
854
855
 
855
856
  if (isReload) {
857
+ // 触发onNotifyRefresh事件,基于eventCtx.allowNext进行拦截
858
+ const eventCtx: NotifyRefreshEventCtx = {};
859
+ await this._evt.emit('onNotifyRefresh', {
860
+ data: msg,
861
+ args: eventCtx,
862
+ });
863
+ if (eventCtx.allowNext === false) {
864
+ return;
865
+ }
856
866
  this.doNextActive(
857
867
  async () => {
858
868
  if (!this.ctx.isDestroyed) {
@@ -340,7 +340,7 @@ export abstract class FormController<
340
340
  // 监听表单成员事件,触发对应部件逻辑
341
341
  this._evt.on('onFormDetailEvent', async event => {
342
342
  if (this.state.formIsDestroyed) return;
343
- await this.scheduler?.triggerControlItemEvent(
343
+ await this.scheduler?.asyncTriggerControlEvent(
344
344
  event.formDetailName,
345
345
  event.formDetailEventName,
346
346
  event,
@@ -664,7 +664,7 @@ export class GanttController
664
664
  }
665
665
  }
666
666
 
667
- protected onDEDataChange(msg: IPortalMessage): void {}
667
+ protected async onDEDataChange(msg: IPortalMessage): Promise<void> {}
668
668
 
669
669
  /**
670
670
  * @description 切换折叠,tag=指定分组标识(不传则全部),expand=目标状态(不传则反转)
@@ -72,6 +72,17 @@ export class ListController
72
72
  return this.model.enableRowEditGroup === true;
73
73
  }
74
74
 
75
+ /**
76
+ * @description 显示滚动到组件
77
+ * @readonly
78
+ * @type {('top' | 'bottom' | 'auto' | 'none')}
79
+ * @memberof ListController
80
+ */
81
+ get showScrollTo(): 'top' | 'bottom' | 'auto' | 'none' {
82
+ if (this.controlParams.showscrollto) return this.controlParams.showscrollto;
83
+ return ibiz.config.common.showScrollTo;
84
+ }
85
+
75
86
  protected initState(): void {
76
87
  super.initState();
77
88
  this.state.noSort = this.model.noSort === true;
@@ -337,7 +337,7 @@ export class MEditViewPanelController
337
337
  * @param {IPortalMessage} _msg
338
338
  * @memberof MEditViewPanelController
339
339
  */
340
- protected onDEDataChange(_msg: IPortalMessage): void {
340
+ protected async onDEDataChange(_msg: IPortalMessage): Promise<void> {
341
341
  ibiz.log.debug(
342
342
  ibiz.i18n.t('runtime.controller.control.meditViewPanel.ignoreDataChange'),
343
343
  );
@@ -33,8 +33,8 @@ export class ViewLayoutPanelController
33
33
 
34
34
  if (this.scheduler?.hasControlEventTrigger) {
35
35
  // 监听部件事件触发部件事件触发器
36
- this.evt.on('onControlEvent', event => {
37
- this.scheduler!.triggerControlEvent(
36
+ this.evt.on('onControlEvent', async event => {
37
+ await this.scheduler!.asyncTriggerControlEvent(
38
38
  event.triggerControlName,
39
39
  event.triggerEventName,
40
40
  event.triggerEvent,
@@ -29,6 +29,7 @@ import {
29
29
  MDCtrlLoadParams,
30
30
  IApiNewTreeNodeParams,
31
31
  ITreeNodeProvider,
32
+ NotifyRefreshEventCtx,
32
33
  } from '../../../interface';
33
34
  import { UIActionUtil } from '../../../ui-action';
34
35
  import { MDControlController } from '../../common';
@@ -1300,7 +1301,7 @@ export class TreeController<
1300
1301
  * @param {IPortalMessage} msg
1301
1302
  * @return {*} {void}
1302
1303
  */
1303
- protected onDEDataChange(msg: IPortalMessage): void {
1304
+ protected async onDEDataChange(msg: IPortalMessage): Promise<void> {
1304
1305
  // msg.triggerKey 不为空,且与当前控制器的triggerKey一致时,则不处理
1305
1306
  if (!isNil(msg.triggerKey) && msg.triggerKey === this.triggerKey) {
1306
1307
  return;
@@ -1325,6 +1326,16 @@ export class TreeController<
1325
1326
  return;
1326
1327
  }
1327
1328
 
1329
+ // 触发onNotifyRefresh事件,基于eventCtx.allowNext进行拦截
1330
+ const eventCtx: NotifyRefreshEventCtx = {};
1331
+ await this._evt.emit('onNotifyRefresh', {
1332
+ data: msg,
1333
+ args: eventCtx,
1334
+ });
1335
+ if (eventCtx.allowNext === false) {
1336
+ return;
1337
+ }
1338
+
1328
1339
  this.doNextActive(
1329
1340
  () => !this.ctx.isDestroyed && this.refreshNodeChildren(findNode, true),
1330
1341
  {
@@ -550,7 +550,7 @@ export class ViewEngineBase implements IViewEngine {
550
550
  * @protected
551
551
  * @param {IPortalMessage} msg
552
552
  */
553
- protected onDEDataChange(msg: IPortalMessage): void {
553
+ protected async onDEDataChange(msg: IPortalMessage): Promise<void> {
554
554
  ibiz.log.debug('onDEDataChange', msg);
555
555
  }
556
556
 
@@ -319,8 +319,25 @@ export interface IApiGlobalCommonConfig {
319
319
 
320
320
  /**
321
321
  * @description AI输入框空白占位
322
- * @type {''}
322
+ * @type {string}
323
+ * @memberof IApiGlobalCommonConfig
324
+ */
325
+ aiInputPlaceholder: string;
326
+
327
+ /**
328
+ * @description ai最小化容器ID
329
+ * @type {string | undefined}
330
+ * @platform web
331
+ * @memberof IApiGlobalCommonConfig
332
+ */
333
+ aiMinimizeContainerId: string | undefined;
334
+
335
+ /**
336
+ * @description 显示滚动到组件,目前仅pc端列表和卡片部件支持
337
+ * @default none
338
+ * @platform web
339
+ * @type {('top' | 'bottom' | 'auto' | 'none')}
323
340
  * @memberof IApiGlobalCommonConfig
324
341
  */
325
- aiInputPlaceholder: '';
342
+ showScrollTo: 'top' | 'bottom' | 'auto' | 'none';
326
343
  }
@@ -14,6 +14,7 @@ import { IApiMDControlController } from './i-api-md-control.controller';
14
14
  * @ctrlparams {"name":"mdctrlrefreshmode","title":"刷新模式","defaultvalue":"'cache'","parameterType":"'nocache' | 'cache'","description":"多数据部件刷新模式,当值为 'cache',部件刷新时保留选中数据;当值为 'nocache',部件刷新时清空选中数据","effectPlatform":"web"}
15
15
  * @ctrlparams {"name":"batchtoolbarmode","title":"批操作工具栏显示模式","parameterType":"'default' | 'multiple'","defaultvalue":"'default'","description":"批操作工具栏显示模式,值为 'default' 时表示存在选择数据就显示批操作工具栏,值为 'multiple' 时表示选择至少2条数据才显示批操作工具栏","effectPlatform":"web"}
16
16
  * @ctrlparams {"name":"paginationmode","title":"分页显示模式","defaultvalue":"'default'","parameterType":"'default'|'simple'","description":"表格分页显示模式,当值为 default 时,显示完整的分页组件,值为 simple 时,显示简略版的分页组件,仅包含总条数,当前页,上一页和下一页","effectPlatform":"web"}
17
+ * @ctrlparams {"name":"showscrollto","title":"显示滚动到组件","defaultvalue":"'none'","parameterType":"'top' | 'bottom' | 'auto' | 'none'","description":"显示滚动组件,top:回到顶部,bottom:回到底部,auto:自动处理回到顶部/底部,none:无滚动组件","effectPlatform":"web"}
17
18
  * @template T
18
19
  * @template S
19
20
  */
@@ -15,6 +15,7 @@ import { IApiMDControlController } from './i-api-md-control.controller';
15
15
  * @ctrlparams {"name":"mdctrlrefreshmode","title":"刷新模式","defaultvalue":"'cache'","parameterType":"'nocache' | 'cache'","description":"多数据部件刷新模式,当值为 'cache',部件刷新时保留选中数据;当值为 'nocache',部件刷新时清空选中数据","effectPlatform":"web"}
16
16
  * @ctrlparams {"name":"batchtoolbarmode","title":"批操作工具栏显示模式","parameterType":"'default' | 'multiple'","defaultvalue":"'default'","description":"批操作工具栏显示模式,值为 'default' 时表示存在选择数据就显示批操作工具栏,值为 'multiple' 时表示选择至少2条数据才显示批操作工具栏","effectPlatform":"web"}
17
17
  * @ctrlparams {"name":"paginationmode","title":"分页显示模式","defaultvalue":"'default'","parameterType":"'default'|'simple'","description":"表格分页显示模式,当值为 default 时,显示完整的分页组件,值为 simple 时,显示简略版的分页组件,仅包含总条数,当前页,上一页和下一页","effectPlatform":"web"}
18
+ * @ctrlparams {"name":"showscrollto","title":"显示滚动组件","defaultvalue":"'none'","parameterType":"'top' | 'bottom' | 'auto' | 'none'","description":"显示滚动组件,top:回到顶部,bottom:回到底部,auto:自动处理回到顶部/底部,none:无滚动组件","effectPlatform":"web"}
18
19
  * @template T
19
20
  * @template S
20
21
  */
@@ -21,3 +21,4 @@ export {
21
21
  PanelDataContainerEventName,
22
22
  } from './panel-data-container.event';
23
23
  export type { BeforeSearchEventCtx } from './before-search.event';
24
+ export type { NotifyRefreshEventCtx } from './notify-refresh.event';
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @description 通知刷新事件上下文
3
+ * @export
4
+ * @interface NotifyRefreshEventCtx
5
+ */
6
+ export interface NotifyRefreshEventCtx {
7
+ /**
8
+ * 是否允许执行后续逻辑
9
+ * 监听器可设置为 false 以阻止执行后续逻辑
10
+ */
11
+ allowNext?: boolean;
12
+ }
@@ -1,5 +1,10 @@
1
- import { PartialWithObject } from '@ibiz-template/core';
2
- import { EventBase, FormDataChangeEvent, FormDetailEvent } from '../argument';
1
+ import { IPortalMessage, PartialWithObject } from '@ibiz-template/core';
2
+ import {
3
+ EventBase,
4
+ FormDataChangeEvent,
5
+ FormDetailEvent,
6
+ NotifyRefreshEventCtx,
7
+ } from '../argument';
3
8
  import { IControlEvent } from './i-control.event';
4
9
 
5
10
  /**
@@ -74,4 +79,17 @@ export interface IFormEvent extends IControlEvent {
74
79
  event: FormDetailEvent;
75
80
  emitArgs: PartialWithObject<FormDetailEvent, EventBase>;
76
81
  };
82
+
83
+ /**
84
+ * @description 通知刷新
85
+ * @type {({
86
+ * event: EventBase & { data: IPortalMessage; args: NotifyRefreshEventCtx };
87
+ * emitArgs: { data: IPortalMessage; args: NotifyRefreshEventCtx };
88
+ * })}
89
+ * @memberof IFormEvent
90
+ */
91
+ onNotifyRefresh: {
92
+ event: EventBase & { data: IPortalMessage; args: NotifyRefreshEventCtx };
93
+ emitArgs: { data: IPortalMessage; args: NotifyRefreshEventCtx };
94
+ };
77
95
  }
@@ -1,5 +1,5 @@
1
- import { PartialWithObject } from '@ibiz-template/core';
2
- import { EventBase, LoadEvent } from '../argument';
1
+ import { IPortalMessage, PartialWithObject } from '@ibiz-template/core';
2
+ import { EventBase, LoadEvent, NotifyRefreshEventCtx } from '../argument';
3
3
  import { IControlEvent } from './i-control.event';
4
4
 
5
5
  /**
@@ -178,4 +178,17 @@ export interface IMDControlEvent extends IControlEvent {
178
178
  event: EventBase & { navData: IData };
179
179
  emitArgs: { navData: IData };
180
180
  };
181
+
182
+ /**
183
+ * @description 通知刷新
184
+ * @type {({
185
+ * event: EventBase & { data: IPortalMessage; args: NotifyRefreshEventCtx };
186
+ * emitArgs: { data: IPortalMessage; args: NotifyRefreshEventCtx };
187
+ * })}
188
+ * @memberof IMDControlEvent
189
+ */
190
+ onNotifyRefresh: {
191
+ event: EventBase & { data: IPortalMessage; args: NotifyRefreshEventCtx };
192
+ emitArgs: { data: IPortalMessage; args: NotifyRefreshEventCtx };
193
+ };
181
194
  }
@@ -298,20 +298,20 @@ export class LogicScheduler {
298
298
  }
299
299
 
300
300
  /**
301
- * @description 触发部件项事件
302
- * @param {string} ctrlItemName 部件项名称
301
+ * @description 触发部件事件
302
+ * @param {string} ctrlName 部件名称
303
303
  * @param {string} eventName 事件名称
304
304
  * @param {Partial<IUILogicParams>} [executeParams] 执行参数
305
305
  * @memberof LogicScheduler
306
306
  */
307
- async triggerControlItemEvent(
308
- ctrlItemName: string,
307
+ async asyncTriggerControlEvent(
308
+ ctrlName: string,
309
309
  eventName: string,
310
310
  executeParams?: Partial<IUILogicParams>,
311
311
  ): Promise<void> {
312
312
  const matchParams = {
313
+ ctrlName,
313
314
  eventName,
314
- ctrlName: ctrlItemName,
315
315
  triggerType: 'CTRLEVENT',
316
316
  } as const;
317
317
  const result = this.triggerAndExecute(matchParams, executeParams);
@@ -1,5 +1,5 @@
1
1
  import { IAppDataEntity, IApplication } from '@ibiz/model-core';
2
- import { IHttpResponse, RuntimeError } from '@ibiz-template/core';
2
+ import { IBizContext, IHttpResponse, RuntimeError } from '@ibiz-template/core';
3
3
  import {
4
4
  IApiDEServiceUtil,
5
5
  IAppDEService,
@@ -132,8 +132,13 @@ export class DEServiceUtil implements IApiDEServiceUtil {
132
132
  const { targetApp, targetAppDataEntityId } =
133
133
  await this.computeAppDEMappingParam(context, id);
134
134
  if (targetApp && targetAppDataEntityId) {
135
+ // 映射场景下需将 srfappid 切换为目标应用,否则 createServiceInstance 会用源应用 appId 查找实体模型
136
+ const tempContext = IBizContext.create(
137
+ { srfappid: targetApp.appId },
138
+ { ...context },
139
+ );
135
140
  const targetService = await targetApp.deService.getService(
136
- context,
141
+ tempContext,
137
142
  targetAppDataEntityId,
138
143
  );
139
144
  // 订阅服务方法处理状态
@@ -327,10 +332,15 @@ export class DEServiceUtil implements IApiDEServiceUtil {
327
332
  const { targetApp, targetAppDataEntityId } =
328
333
  await this.computeAppDEMappingParam(context, appDataEntityId);
329
334
  if (targetApp && targetAppDataEntityId) {
335
+ // 映射场景下需将 srfappid 切换为目标应用,否则 createServiceInstance 会用源应用 appId 查找实体模型
336
+ const tempContext = IBizContext.create(
337
+ { srfappid: targetApp.appId },
338
+ { ...context },
339
+ );
330
340
  const result = await targetApp.deService.exec(
331
341
  targetAppDataEntityId,
332
342
  methodName,
333
- context,
343
+ tempContext,
334
344
  params,
335
345
  params2,
336
346
  header,