@ibiz-template/runtime 0.1.33 → 0.1.34

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 (105) hide show
  1. package/dist/index.esm.js +285 -126
  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/control.controller.d.ts +1 -0
  5. package/out/controller/common/control/control.controller.d.ts.map +1 -1
  6. package/out/controller/common/control/control.controller.js +21 -1
  7. package/out/controller/common/control/md-control.controller.js +1 -1
  8. package/out/controller/common/editor/editor.controller.d.ts.map +1 -1
  9. package/out/controller/common/editor/editor.controller.js +1 -2
  10. package/out/controller/common/view/view.controller.d.ts.map +1 -1
  11. package/out/controller/common/view/view.controller.js +2 -1
  12. package/out/controller/control/calendar/calendar.controller.js +1 -1
  13. package/out/controller/control/data-view/data-view.controller.js +5 -3
  14. package/out/controller/control/form/edit-form/edit-form.controller.d.ts +7 -7
  15. package/out/controller/control/form/edit-form/edit-form.controller.d.ts.map +1 -1
  16. package/out/controller/control/form/edit-form/edit-form.controller.js +22 -16
  17. package/out/controller/control/grid/grid/grid.controller.js +2 -2
  18. package/out/controller/control/panel/panel/panel-item.controller.d.ts +6 -0
  19. package/out/controller/control/panel/panel/panel-item.controller.d.ts.map +1 -1
  20. package/out/controller/control/panel/panel/panel-item.controller.js +11 -0
  21. package/out/controller/control/panel/panel/panel.controller.d.ts +3 -0
  22. package/out/controller/control/panel/panel/panel.controller.d.ts.map +1 -1
  23. package/out/controller/control/panel/panel/panel.controller.js +13 -0
  24. package/out/controller/control/panel/view-layout-panel/view-layout-panel.controller.d.ts.map +1 -1
  25. package/out/controller/control/panel/view-layout-panel/view-layout-panel.controller.js +7 -0
  26. package/out/interface/common/i-data-ability-params/i-data-ability-params.d.ts +4 -4
  27. package/out/interface/common/i-data-ability-params/i-data-ability-params.d.ts.map +1 -1
  28. package/out/interface/common/i-float-window-options/i-float-window-options.d.ts +75 -0
  29. package/out/interface/common/i-float-window-options/i-float-window-options.d.ts.map +1 -0
  30. package/out/interface/common/i-float-window-options/i-float-window-options.js +1 -0
  31. package/out/interface/common/index.d.ts +1 -0
  32. package/out/interface/common/index.d.ts.map +1 -1
  33. package/out/interface/controller/controller/control/i-control.controller.d.ts +1 -1
  34. package/out/interface/controller/controller/control/i-edit-form.controller.d.ts +6 -5
  35. package/out/interface/controller/controller/control/i-edit-form.controller.d.ts.map +1 -1
  36. package/out/interface/controller/controller/i.controller.d.ts +1 -1
  37. package/out/interface/controller/event/argument/index.d.ts +1 -0
  38. package/out/interface/controller/event/argument/index.d.ts.map +1 -1
  39. package/out/interface/controller/event/argument/panel-item.event.d.ts +26 -0
  40. package/out/interface/controller/event/argument/panel-item.event.d.ts.map +1 -0
  41. package/out/interface/controller/event/argument/panel-item.event.js +1 -0
  42. package/out/interface/controller/event/control/i-panel.event.d.ts +12 -1
  43. package/out/interface/controller/event/control/i-panel.event.d.ts.map +1 -1
  44. package/out/interface/logic-scheduler/i-scheduler-logic.d.ts +7 -0
  45. package/out/interface/logic-scheduler/i-scheduler-logic.d.ts.map +1 -1
  46. package/out/interface/service/service/i-app-de.service.d.ts +24 -0
  47. package/out/interface/service/service/i-app-de.service.d.ts.map +1 -1
  48. package/out/interface/util/i-overlay-controller/i-overlay-controller.d.ts +24 -1
  49. package/out/interface/util/i-overlay-controller/i-overlay-controller.d.ts.map +1 -1
  50. package/out/logic-scheduler/executor/app-ui-action-executor.d.ts +15 -0
  51. package/out/logic-scheduler/executor/app-ui-action-executor.d.ts.map +1 -0
  52. package/out/logic-scheduler/executor/app-ui-action-executor.js +16 -0
  53. package/out/logic-scheduler/index.d.ts.map +1 -1
  54. package/out/logic-scheduler/index.js +6 -0
  55. package/out/logic-scheduler/scheduler/control-logic-scheduler.d.ts.map +1 -1
  56. package/out/logic-scheduler/scheduler/control-logic-scheduler.js +6 -0
  57. package/out/logic-scheduler/scheduler/logic-scheduler.d.ts +2 -2
  58. package/out/logic-scheduler/scheduler/logic-scheduler.d.ts.map +1 -1
  59. package/out/logic-scheduler/scheduler/logic-scheduler.js +3 -3
  60. package/out/logic-scheduler/trigger/control-event-trigger.d.ts.map +1 -1
  61. package/out/logic-scheduler/trigger/control-event-trigger.js +3 -1
  62. package/out/service/service/entity/de.service.d.ts +36 -2
  63. package/out/service/service/entity/de.service.d.ts.map +1 -1
  64. package/out/service/service/entity/de.service.js +79 -7
  65. package/out/service/service/entity/method/ac-fetch.d.ts +14 -0
  66. package/out/service/service/entity/method/ac-fetch.d.ts.map +1 -0
  67. package/out/service/service/entity/method/ac-fetch.js +15 -0
  68. package/out/service/service/entity/method/method.d.ts +1 -0
  69. package/out/service/service/entity/method/method.d.ts.map +1 -1
  70. package/out/service/service/entity/method/method.js +7 -4
  71. package/out/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.d.ts.map +1 -1
  72. package/out/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.js +12 -5
  73. package/package.json +3 -3
  74. package/src/controller/common/control/control.controller.ts +25 -1
  75. package/src/controller/common/control/md-control.controller.ts +1 -1
  76. package/src/controller/common/editor/editor.controller.ts +1 -2
  77. package/src/controller/common/view/view.controller.ts +2 -0
  78. package/src/controller/control/calendar/calendar.controller.ts +1 -1
  79. package/src/controller/control/data-view/data-view.controller.ts +3 -3
  80. package/src/controller/control/form/edit-form/edit-form.controller.ts +27 -30
  81. package/src/controller/control/grid/grid/grid.controller.ts +2 -2
  82. package/src/controller/control/panel/panel/panel-item.controller.ts +12 -0
  83. package/src/controller/control/panel/panel/panel.controller.ts +20 -0
  84. package/src/controller/control/panel/view-layout-panel/view-layout-panel.controller.ts +11 -0
  85. package/src/interface/common/i-data-ability-params/i-data-ability-params.ts +4 -4
  86. package/src/interface/common/i-float-window-options/i-float-window-options.ts +74 -0
  87. package/src/interface/common/index.ts +1 -0
  88. package/src/interface/controller/controller/control/i-control.controller.ts +1 -1
  89. package/src/interface/controller/controller/control/i-edit-form.controller.ts +6 -5
  90. package/src/interface/controller/controller/i.controller.ts +1 -1
  91. package/src/interface/controller/event/argument/index.ts +1 -0
  92. package/src/interface/controller/event/argument/panel-item.event.ts +27 -0
  93. package/src/interface/controller/event/control/i-panel.event.ts +13 -1
  94. package/src/interface/logic-scheduler/i-scheduler-logic.ts +8 -0
  95. package/src/interface/service/service/i-app-de.service.ts +36 -0
  96. package/src/interface/util/i-overlay-controller/i-overlay-controller.ts +39 -1
  97. package/src/logic-scheduler/executor/app-ui-action-executor.ts +20 -0
  98. package/src/logic-scheduler/index.ts +12 -0
  99. package/src/logic-scheduler/scheduler/control-logic-scheduler.ts +6 -0
  100. package/src/logic-scheduler/scheduler/logic-scheduler.ts +7 -4
  101. package/src/logic-scheduler/trigger/control-event-trigger.ts +3 -1
  102. package/src/service/service/entity/de.service.ts +97 -7
  103. package/src/service/service/entity/method/ac-fetch.ts +16 -0
  104. package/src/service/service/entity/method/method.ts +11 -4
  105. package/src/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.ts +12 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ac-fetch.d.ts","sourceRoot":"","sources":["../../../../../src/service/service/entity/method/ac-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAC5C,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;CAGrE"}
@@ -0,0 +1,15 @@
1
+ import { FetchMethod } from './fetch';
2
+ /**
3
+ * ac 模式下的数据集获取请求
4
+ *
5
+ * @author chitanda
6
+ * @date 2023-10-12 17:10:03
7
+ * @export
8
+ * @class AcFetchMethod
9
+ * @extends {FetchMethod}
10
+ */
11
+ export class AcFetchMethod extends FetchMethod {
12
+ mergeRequestPath(path, methodName) {
13
+ return `${path}/ac/${methodName}?srfac=ac`;
14
+ }
15
+ }
@@ -77,6 +77,7 @@ export declare abstract class Method {
77
77
  * @return {*} {Promise<HttpResponse<any>>}
78
78
  */
79
79
  protected request(path: string, context: IParams, data?: IData, params?: IParams): Promise<HttpResponse<any>>;
80
+ protected mergeRequestPath(path: string, methodName: string): string;
80
81
  /**
81
82
  * 根据上下文计算当前请求路径
82
83
  *
@@ -1 +1 @@
1
- {"version":3,"file":"method.d.ts","sourceRoot":"","sources":["../../../../../src/service/service/entity/method/method.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAqB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;;;;GAOG;AACH,8BAAsB,MAAM;IA2CxB,SAAS,CAAC,MAAM,EAAE,cAAc;IAChC,SAAS,CAAC,MAAM,EAAE,YAAY;IA3ChC,SAAS,CAAC,GAAG,EAAG,WAAW,CAAC;IAE5B;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAG,WAAW,CAAC;IAE9B;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAG,YAAY,CAAC;IAEhC;;;;;;;OAOG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IAElC;;;;;;;;OAQG;gBAES,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,YAAY;IAOhC;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,CACX,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,KAAK,EACd,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,YAAY,CAAC;IAExB;;;;;;;;;;;OAWG;cACa,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,OAAO,GAEf,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IA2C7B;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAM5C;;;;;;;OAOG;cACa,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAOpD;;;;;;;;OAQG;IACH,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW;CAM/D"}
1
+ {"version":3,"file":"method.d.ts","sourceRoot":"","sources":["../../../../../src/service/service/entity/method/method.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAqB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;;;;GAOG;AACH,8BAAsB,MAAM;IA2CxB,SAAS,CAAC,MAAM,EAAE,cAAc;IAChC,SAAS,CAAC,MAAM,EAAE,YAAY;IA3ChC,SAAS,CAAC,GAAG,EAAG,WAAW,CAAC;IAE5B;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAG,WAAW,CAAC;IAE9B;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAG,YAAY,CAAC;IAEhC;;;;;;;OAOG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IAElC;;;;;;;;OAQG;gBAES,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,YAAY;IAOhC;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,CACX,OAAO,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,KAAK,EACd,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,YAAY,CAAC;IAExB;;;;;;;;;;;OAWG;cACa,OAAO,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,OAAO,GAEf,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IA8C7B,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAIpE;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAM5C;;;;;;;OAOG;cACa,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAOpD;;;;;;;;OAQG;IACH,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW;CAM/D"}
@@ -49,17 +49,17 @@ export class Method {
49
49
  let res = null;
50
50
  switch (requestMethod) {
51
51
  case 'POST':
52
- res = await this.app.net.post(`${path}/${methodName}`, notNilEmpty(data) ? data : params);
52
+ res = await this.app.net.post(this.mergeRequestPath(path, methodName), notNilEmpty(data) ? data : params);
53
53
  break;
54
54
  case 'GET':
55
- res = await this.app.net.get(`${path}/${methodName}`, data || params);
55
+ res = await this.app.net.get(this.mergeRequestPath(path, methodName), data || params);
56
56
  break;
57
57
  case 'PUT': {
58
- res = await this.app.net.put(`${path}/${methodName}`, notNilEmpty(data) ? data : params);
58
+ res = await this.app.net.put(this.mergeRequestPath(path, methodName), notNilEmpty(data) ? data : params);
59
59
  break;
60
60
  }
61
61
  case 'DELETE':
62
- res = await this.app.net.delete(`${path}/${methodName}`, data || params);
62
+ res = await this.app.net.delete(this.mergeRequestPath(path, methodName), data || params);
63
63
  break;
64
64
  default:
65
65
  if (requestMethod) {
@@ -73,6 +73,9 @@ export class Method {
73
73
  }
74
74
  throw new RuntimeModelError(this.method, `未支持的行为类型[${actionType}]`);
75
75
  }
76
+ mergeRequestPath(path, methodName) {
77
+ return `${path}/${methodName}`;
78
+ }
76
79
  /**
77
80
  * 根据上下文计算当前请求路径
78
81
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ui-logic-link-single-cond.d.ts","sourceRoot":"","sources":["../../../../src/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;IAmCrC,KAAK,EAAE,sBAAsB;IAlChD;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;gBAEkB,KAAK,EAAE,sBAAsB;IAMhD;;;;;;;;;OASG;IACH,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO;CAgCnE"}
1
+ {"version":3,"file":"ui-logic-link-single-cond.d.ts","sourceRoot":"","sources":["../../../../src/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;IAmCrC,KAAK,EAAE,sBAAsB;IAlChD;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,MAAM,GAAG,SAAS,CAE7B;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;gBAEkB,KAAK,EAAE,sBAAsB;IAMhD;;;;;;;;;OASG;IACH,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO;CAsCnE"}
@@ -1,5 +1,6 @@
1
1
  import { ModelError, RuntimeModelError } from '@ibiz-template/core';
2
2
  import { testCond } from '../../../utils';
3
+ import { handleSrcVal } from '../../utils';
3
4
  import { UILogicLinkCond } from '../ui-logic-link-cond/ui-logic-link-cond';
4
5
  /**
5
6
  * 界面逻辑连接条件项
@@ -40,7 +41,10 @@ export class UILogicLinkSingleCond extends UILogicLinkCond {
40
41
  * @return {*} {boolean}
41
42
  */
42
43
  test(ctx, context, data) {
43
- const dst = ctx.params[this.dstParam];
44
+ const dstVal = handleSrcVal(ctx, {
45
+ srcDEUILogicParamId: this.dstParam,
46
+ srcFieldName: this.dstField,
47
+ });
44
48
  switch (this.type) {
45
49
  case 'ENTITYFIELD': {
46
50
  if (!this.value) {
@@ -48,20 +52,23 @@ export class UILogicLinkSingleCond extends UILogicLinkCond {
48
52
  }
49
53
  // 数据对象属性
50
54
  const value = data[this.value] != null ? data[this.value] : context[this.value];
51
- return testCond(dst[this.dstField], this.op, value);
55
+ return testCond(dstVal, this.op, value);
52
56
  }
53
57
  case 'SRCENTITYFIELD': {
54
58
  if (!this.value) {
55
59
  throw new RuntimeModelError(this.model, '当前条件值类型为[源数据对象属性],缺少配置条件值');
56
60
  }
57
61
  // 源数据对象属性
58
- const src = ctx.params[this.srcParam];
59
- return testCond(dst[this.dstField], this.op, src[this.value]);
62
+ const srcVal = handleSrcVal(ctx, {
63
+ srcDEUILogicParamId: this.srcParam,
64
+ srcFieldName: this.value,
65
+ });
66
+ return testCond(dstVal, this.op, srcVal);
60
67
  }
61
68
  case 'CURTIME': // 当前时间
62
69
  throw new ModelError(this.model, `暂未支持条件值类型为[当前时间]`);
63
70
  default: // 直接使用目标对象参数属性和值做对比
64
- return testCond(dst[this.dstField], this.op, this.value);
71
+ return testCond(dstVal, this.op, this.value);
65
72
  }
66
73
  }
67
74
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/runtime",
3
- "version": "0.1.33",
3
+ "version": "0.1.34",
4
4
  "description": "控制器包",
5
5
  "type": "module",
6
6
  "main": "out/index.js",
@@ -29,7 +29,7 @@
29
29
  "author": "chitanda",
30
30
  "license": "MIT",
31
31
  "devDependencies": {
32
- "@ibiz-template/core": "^0.1.33",
32
+ "@ibiz-template/core": "^0.1.34",
33
33
  "@ibiz/model-core": "^0.0.19",
34
34
  "@types/path-browserify": "^1.0.0",
35
35
  "@types/qs": "^6.9.8",
@@ -57,5 +57,5 @@
57
57
  "qx-util": "^0.4.8",
58
58
  "ramda": "^0.29.0"
59
59
  },
60
- "gitHead": "769acca4bc7229f5d27f57e803a9f1d3ea7172ac"
60
+ "gitHead": "6b6ab37103623fbc1994241b511829a2013a72c0"
61
61
  }
@@ -147,6 +147,13 @@ export class ControlController<
147
147
  this.initControlScheduler(this.model.controlLogics);
148
148
  }
149
149
 
150
+ protected async onMounted(): Promise<void> {
151
+ await super.onMounted();
152
+
153
+ // 启动定时器触发
154
+ this.scheduler?.startTimerTrigger();
155
+ }
156
+
150
157
  protected async onDestroyed(): Promise<void> {
151
158
  await super.onDestroyed();
152
159
  if (this.scheduler) {
@@ -213,7 +220,21 @@ export class ControlController<
213
220
  } {
214
221
  const context = this.context.clone();
215
222
  const params = { ...this.params };
216
- const data = args?.data || this.getData() || [];
223
+
224
+ let data = this.getData() || [];
225
+ if (args?.data) {
226
+ data = Array.isArray(args.data) ? args.data : [args.data];
227
+ }
228
+
229
+ // 合并附加上下文
230
+ if (args?.context) {
231
+ Object.assign(context, args.context);
232
+ }
233
+
234
+ // 合并附加视图参数
235
+ if (args?.viewParam) {
236
+ Object.assign(params, args.viewParam);
237
+ }
217
238
  return { context, params, data };
218
239
  }
219
240
 
@@ -243,6 +264,9 @@ export class ControlController<
243
264
  * @memberof ControlController
244
265
  */
245
266
  protected handleControlParams(): void {
267
+ if (!this.model.controlParam) {
268
+ return;
269
+ }
246
270
  const { ctrlParams } = this.model.controlParam!;
247
271
  let params = {};
248
272
  if (notNilEmpty(ctrlParams)) {
@@ -198,7 +198,7 @@ export class MDControlController<
198
198
 
199
199
  // *查询参数处理
200
200
  const { context } = this.handlerAbilityParams(args);
201
- const params = await this.getFetchParams(args?.params);
201
+ const params = await this.getFetchParams(args?.viewParam);
202
202
 
203
203
  const res = await this.service.fetch(context, params);
204
204
  // 更新分页数据总条数
@@ -164,8 +164,7 @@ export class EditorController<T extends IEditor = IEditor>
164
164
  if (navigateParams && data) {
165
165
  selfParams = convertNavData(navigateParams!, data, params, context);
166
166
  }
167
- const _params: IParams = { ...params, ...selfParams };
168
- return { context: _context, params: _params };
167
+ return { context: _context, params: selfParams };
169
168
  }
170
169
 
171
170
  /**
@@ -265,6 +265,7 @@ export class ViewController<
265
265
  // 初始化计时器服务
266
266
  await this.initCounters();
267
267
 
268
+ // 初始化视图逻辑调度器
268
269
  const appViewLogics = getViewLogics(this.model);
269
270
  if (appViewLogics.length) {
270
271
  this.scheduler = ibiz.scheduler.createViewScheduler(appViewLogics);
@@ -414,6 +415,7 @@ export class ViewController<
414
415
  panel.evt.on('onControlEvent', event => {
415
416
  this.scheduler!.triggerControlEvent(
416
417
  event.triggerControlName,
418
+ event.triggerEventName,
417
419
  event.triggerEvent,
418
420
  );
419
421
  });
@@ -76,7 +76,7 @@ export class CalendarController
76
76
  const isInitialLoad = args.isInitialLoad === true;
77
77
  // *查询参数处理
78
78
  const { context } = this.handlerAbilityParams(args);
79
- const params = await this.getFetchParams(args?.params);
79
+ const params = await this.getFetchParams(args?.viewParam);
80
80
  // *发起请求
81
81
  await this.startLoading();
82
82
  let items;
@@ -155,13 +155,13 @@ export class DataViewControlController<
155
155
  tempData = tempData.getOrigin();
156
156
  }
157
157
  if (tempData) {
158
- group.groupActionGroupState!.update(
158
+ group.groupActionGroupState?.update(
159
159
  tempData,
160
160
  this.model.appDataEntityId!,
161
161
  );
162
162
  }
163
163
  } else {
164
- group.groupActionGroupState!.update(
164
+ group.groupActionGroupState?.update(
165
165
  undefined,
166
166
  this.model.appDataEntityId!,
167
167
  );
@@ -173,7 +173,7 @@ export class DataViewControlController<
173
173
  return group.children.indexOf(data) !== -1;
174
174
  });
175
175
  if (actionGroup) {
176
- actionGroup.groupActionGroupState!.update(
176
+ actionGroup.groupActionGroupState?.update(
177
177
  actionGroup.selectedData![0],
178
178
  this.model.appDataEntityId!,
179
179
  );
@@ -15,6 +15,7 @@ import {
15
15
  IViewController,
16
16
  IEditViewState,
17
17
  IEditViewEvent,
18
+ IDataAbilityParams,
18
19
  } from '../../../../interface';
19
20
  import { calcDeCodeNameById, hasDeCodeName } from '../../../../model';
20
21
  import { Srfuf, ControlVO } from '../../../../service';
@@ -87,8 +88,8 @@ export class EditFormController
87
88
  * @date 2023-08-25 02:45:11
88
89
  * @return {*} {Promise<IData>}
89
90
  */
90
- async loadDraft(): Promise<IData> {
91
- const queryParams = { ...this.params };
91
+ async loadDraft(args?: IDataAbilityParams): Promise<IData> {
92
+ const { context, params: queryParams } = this.handlerAbilityParams(args);
92
93
  // 新建默认值给到graft接口,接口会回来
93
94
  const params = await this.getDraftParams(); // 新建默认值
94
95
  Object.assign(queryParams, params);
@@ -97,7 +98,7 @@ export class EditFormController
97
98
  try {
98
99
  await this.startLoading();
99
100
  await this.evt.emit('onBeforeLoadDraft', { params: queryParams });
100
- res = await this.service.getDraft(this.context, queryParams);
101
+ res = await this.service.getDraft(context, queryParams);
101
102
  } catch (error) {
102
103
  await this.evt.emit('onLoadDraftError', undefined);
103
104
  this.actionNotification('GETDRAFTERROR', {
@@ -177,7 +178,7 @@ export class EditFormController
177
178
  * @author lxm
178
179
  * @date 2022-08-19 14:08:50
179
180
  */
180
- async load(): Promise<IData> {
181
+ async load(args?: IDataAbilityParams): Promise<IData> {
181
182
  // 复制模式独立处理
182
183
  const copyMode = this.params.srfcopymode;
183
184
  if (copyMode) {
@@ -192,13 +193,15 @@ export class EditFormController
192
193
  return this.loadDraft();
193
194
  }
194
195
 
195
- const queryParams = clone(this.params);
196
+ const { context, params } = this.handlerAbilityParams(args);
197
+
198
+ const queryParams = clone(params);
196
199
 
197
200
  let res;
198
201
  try {
199
202
  await this.startLoading();
200
203
  await this.evt.emit('onBeforeLoad', undefined);
201
- res = await this.service.get(this.context, queryParams);
204
+ res = await this.service.get(context, queryParams);
202
205
  } catch (error) {
203
206
  await this.evt.emit('onLoadError', undefined);
204
207
  this.actionNotification('GETERROR', {
@@ -225,7 +228,7 @@ export class EditFormController
225
228
  * @author lxm
226
229
  * @date 2022-08-31 22:08:40
227
230
  */
228
- async save(): Promise<IData> {
231
+ async save(args?: IDataAbilityParams): Promise<IData> {
229
232
  // 如果数据正在处理中,则延迟保存
230
233
  if (this.state.processing) {
231
234
  const data = await awaitTimeout(500, this.save.bind(this));
@@ -238,12 +241,16 @@ export class EditFormController
238
241
  }
239
242
  await this.startLoading();
240
243
  await this.evt.emit('onBeforeSave', undefined);
241
- const isCreate = this.data.srfuf === Srfuf.CREATE;
244
+
245
+ const { context, data } = this.handlerAbilityParams(args);
246
+ const saveData = data[0];
247
+
248
+ const isCreate = saveData.srfuf === Srfuf.CREATE;
242
249
  let res;
243
250
  try {
244
251
  res = isCreate
245
- ? await this.service.create(this.context, this.data)
246
- : await this.service.update(this.context, this.data);
252
+ ? await this.service.create(context, saveData)
253
+ : await this.service.update(context, saveData);
247
254
  } catch (error) {
248
255
  await this.evt.emit('onSaveError', undefined);
249
256
  this.actionNotification(`${isCreate ? 'CREATE' : 'UPDATE'}ERROR`, {
@@ -279,7 +286,8 @@ export class EditFormController
279
286
  * @date 2022-09-01 09:09:36
280
287
  * @returns {*}
281
288
  */
282
- async remove(): Promise<boolean> {
289
+ async remove(args?: IDataAbilityParams): Promise<boolean> {
290
+ const { context, params } = this.handlerAbilityParams(args);
283
291
  // 新建数据清空数据
284
292
  let res: IHttpResponse | undefined;
285
293
  let ok: boolean = false;
@@ -296,7 +304,7 @@ export class EditFormController
296
304
  }
297
305
  await this.startLoading();
298
306
  try {
299
- res = await this.service.remove(this.context, this.params);
307
+ res = await this.service.remove(context, params);
300
308
  } catch (error) {
301
309
  await this.evt.emit('onRemoveError', undefined);
302
310
  this.actionNotification('REMOVEERROR', {
@@ -406,21 +414,15 @@ export class EditFormController
406
414
  * @param {IParams} [extraParams={}] 不走工作流启动视图时使用
407
415
  * @returns {*} {Promise<void>}
408
416
  */
409
- async wfStart(extraParams: IParams = {}): Promise<void> {
417
+ async wfStart(args?: IDataAbilityParams): Promise<void> {
410
418
  const isValid = await this.validate();
411
419
  if (!isValid) {
412
420
  throw new RuntimeError('请检查表单填写!');
413
421
  }
414
422
  await this.startLoading();
423
+ const { context, params } = this.handlerAbilityParams(args);
415
424
  try {
416
- await this.service.wfStart(
417
- this.context,
418
- {
419
- ...this.params,
420
- ...extraParams,
421
- },
422
- this.data,
423
- );
425
+ await this.service.wfStart(context, params, this.data);
424
426
  } catch (error) {
425
427
  this.actionNotification('WFSTARTERROR', {
426
428
  error: error as Error,
@@ -440,21 +442,16 @@ export class EditFormController
440
442
  * @param {IParams} [extraParams={}] 不走工作流操作视图时使用
441
443
  * @returns {*} {Promise<void>}
442
444
  */
443
- async wfSubmit(extraParams: IParams = {}): Promise<void> {
445
+ async wfSubmit(args?: IDataAbilityParams): Promise<void> {
444
446
  const isValid = await this.validate();
445
447
  if (!isValid) {
446
448
  throw new RuntimeError('请检查表单填写!');
447
449
  }
450
+
448
451
  await this.startLoading();
452
+ const { context, params } = this.handlerAbilityParams(args);
449
453
  try {
450
- await this.service.wfSubmit(
451
- this.context,
452
- {
453
- ...this.params,
454
- ...extraParams,
455
- },
456
- this.data,
457
- );
454
+ await this.service.wfSubmit(context, params, this.data);
458
455
  } catch (error) {
459
456
  this.actionNotification('WFSUBMITERROR', {
460
457
  error: error as Error,
@@ -893,7 +893,7 @@ export class GridController
893
893
  async loadData(args: MDCtrlLoadParams): Promise<ControlVO[]> {
894
894
  // *查询参数处理
895
895
  const { context } = this.handlerAbilityParams(args);
896
- const params = await this.getFetchParams(args?.params);
896
+ const params = await this.getFetchParams(args?.viewParam);
897
897
  let res;
898
898
  // *发起请求
899
899
  await this.startLoading();
@@ -959,7 +959,7 @@ export class GridController
959
959
  size: (endPage - startPage + 1) * size,
960
960
  }
961
961
  : { size: 1000, page: 0 };
962
- data = await this.loadData({ params });
962
+ data = await this.loadData({ viewParam: params });
963
963
  }
964
964
  if (type === 'selectedRows') {
965
965
  data = this.getData();
@@ -341,4 +341,16 @@ export class PanelItemController<T extends IPanelItem = IPanelItem>
341
341
  }
342
342
  }
343
343
  }
344
+
345
+ /**
346
+ * 点击事件
347
+ * @author lxm
348
+ * @date 2023-10-11 05:03:26
349
+ */
350
+ onClick(): void {
351
+ this.panel.evt.emit('onPanelItemEvent', {
352
+ panelItemName: this.model.id!,
353
+ panelItemEventName: 'onClick',
354
+ });
355
+ }
344
356
  }
@@ -19,6 +19,7 @@ import {
19
19
  import { getPanelItemProvider } from '../../../../register';
20
20
  import { ControlController } from '../../../common';
21
21
  import { PanelNotifyState } from '../../../constant';
22
+ import { ControllerEvent } from '../../../utils';
22
23
 
23
24
  /**
24
25
  * 面板部件控制器
@@ -37,6 +38,10 @@ export class PanelController<
37
38
  extends ControlController<T, S, E>
38
39
  implements IPanelController<T, S, E>
39
40
  {
41
+ protected get _evt(): ControllerEvent<IPanelEvent> {
42
+ return this.evt;
43
+ }
44
+
40
45
  /**
41
46
  * 所有面板成员的控制器
42
47
  *
@@ -86,9 +91,24 @@ export class PanelController<
86
91
  this.inputData = data;
87
92
  }
88
93
 
94
+ getData(): IData[] {
95
+ return [this.data];
96
+ }
97
+
89
98
  protected async onCreated(): Promise<void> {
90
99
  await super.onCreated();
91
100
  await this.initPanelItemControllers();
101
+
102
+ if (this.scheduler?.hasControlEventTrigger) {
103
+ // 监听部件事件触发部件事件触发器
104
+ this._evt.on('onPanelItemEvent', event => {
105
+ this.scheduler!.triggerControlEvent(
106
+ event.panelItemName,
107
+ event.panelItemEventName,
108
+ event,
109
+ );
110
+ });
111
+ }
92
112
  }
93
113
 
94
114
  protected async onMounted(): Promise<void> {
@@ -30,6 +30,17 @@ export class ViewLayoutPanelController
30
30
  protected async onCreated(): Promise<void> {
31
31
  this.preprocessModel();
32
32
  await super.onCreated();
33
+
34
+ if (this.scheduler?.hasControlEventTrigger) {
35
+ // 监听部件事件触发部件事件触发器
36
+ this.evt.on('onControlEvent', event => {
37
+ this.scheduler!.triggerControlEvent(
38
+ event.triggerControlName,
39
+ event.triggerEventName,
40
+ event.triggerEvent,
41
+ );
42
+ });
43
+ }
33
44
  }
34
45
 
35
46
  protected registerToCtx(): void {
@@ -10,9 +10,9 @@ export interface IDataAbilityParams {
10
10
  * 当前这次操作附加的上下文参数
11
11
  * @author lxm
12
12
  * @date 2023-03-21 05:53:33
13
- * @type {IContext}
13
+ * @type {IParams}
14
14
  */
15
- context?: IContext;
15
+ context?: IParams;
16
16
 
17
17
  /**
18
18
  * 当前这次操作附加的视图参数
@@ -20,7 +20,7 @@ export interface IDataAbilityParams {
20
20
  * @date 2023-03-21 05:54:23
21
21
  * @type {IParams}
22
22
  */
23
- params?: IParams;
23
+ viewParam?: IParams;
24
24
 
25
25
  /**
26
26
  * 执行能力使用的数据集合
@@ -29,5 +29,5 @@ export interface IDataAbilityParams {
29
29
  * @date 2023-03-21 05:54:33
30
30
  * @type {IData[]}
31
31
  */
32
- data?: IData[];
32
+ data?: IData[] | IData;
33
33
  }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * 全局悬浮窗口配置项
3
+ *
4
+ * @author chitanda
5
+ * @date 2023-10-11 21:10:18
6
+ * @export
7
+ * @interface IFloatWindowOptions
8
+ */
9
+ export interface IFloatWindowOptions {
10
+ /**
11
+ * 初始宽度,单位 px
12
+ *
13
+ * @author chitanda
14
+ * @date 2023-10-11 21:10:10
15
+ * @type {number}
16
+ */
17
+ width?: number;
18
+ /**
19
+ * 初始高度,单位 px
20
+ *
21
+ * @author chitanda
22
+ * @date 2023-10-11 21:10:19
23
+ * @type {number}
24
+ */
25
+ height?: number;
26
+ /**
27
+ * 最小宽度,单位 px
28
+ *
29
+ * @author chitanda
30
+ * @date 2023-10-11 22:10:18
31
+ * @type {number}
32
+ */
33
+ minWidth?: number;
34
+ /**
35
+ * 最小高度,单位 px
36
+ *
37
+ * @author chitanda
38
+ * @date 2023-10-11 22:10:25
39
+ * @type {number}
40
+ */
41
+ minHeight?: number;
42
+ /**
43
+ * 初始 x 坐标,单位 px
44
+ *
45
+ * @author chitanda
46
+ * @date 2023-10-11 21:10:29
47
+ * @type {number}
48
+ */
49
+ x?: number;
50
+ /**
51
+ * 初始 y 坐标,单位 px
52
+ *
53
+ * @author chitanda
54
+ * @date 2023-10-11 21:10:38
55
+ * @type {number}
56
+ */
57
+ y?: number;
58
+ /**
59
+ * 附加样式,用于自定义样式
60
+ *
61
+ * @author chitanda
62
+ * @date 2023-10-11 21:10:22
63
+ * @type {string}
64
+ */
65
+ windowClass?: string;
66
+ /**
67
+ * 是否默认全屏
68
+ *
69
+ * @author chitanda
70
+ * @date 2023-10-11 21:10:49
71
+ * @type {boolean}
72
+ */
73
+ fullscreen?: boolean;
74
+ }
@@ -30,3 +30,4 @@ export type {
30
30
  } from './i-app-view-config-service/i-app-view-config-service';
31
31
  export type { IOpenViewOptions } from './i-open-view-options/i-open-view-options';
32
32
  export type { IErrorHandler } from './i-error-handler/i-error-handler';
33
+ export type { IFloatWindowOptions } from './i-float-window-options/i-float-window-options';
@@ -27,7 +27,7 @@ export interface IControlController<
27
27
  view: IViewController;
28
28
 
29
29
  /**
30
- * 部件布局面板
30
+ * 部件布局面板控制器
31
31
  * @author lxm
32
32
  * @date 2023-07-31 08:54:08
33
33
  * @type {IViewLayoutPanelController}