@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
package/dist/index.esm.js CHANGED
@@ -11453,23 +11453,26 @@ var Method = class {
11453
11453
  switch (requestMethod) {
11454
11454
  case "POST":
11455
11455
  res = await this.app.net.post(
11456
- "".concat(path2, "/").concat(methodName),
11456
+ this.mergeRequestPath(path2, methodName),
11457
11457
  notNilEmpty6(data) ? data : params
11458
11458
  );
11459
11459
  break;
11460
11460
  case "GET":
11461
- res = await this.app.net.get("".concat(path2, "/").concat(methodName), data || params);
11461
+ res = await this.app.net.get(
11462
+ this.mergeRequestPath(path2, methodName),
11463
+ data || params
11464
+ );
11462
11465
  break;
11463
11466
  case "PUT": {
11464
11467
  res = await this.app.net.put(
11465
- "".concat(path2, "/").concat(methodName),
11468
+ this.mergeRequestPath(path2, methodName),
11466
11469
  notNilEmpty6(data) ? data : params
11467
11470
  );
11468
11471
  break;
11469
11472
  }
11470
11473
  case "DELETE":
11471
11474
  res = await this.app.net.delete(
11472
- "".concat(path2, "/").concat(methodName),
11475
+ this.mergeRequestPath(path2, methodName),
11473
11476
  data || params
11474
11477
  );
11475
11478
  break;
@@ -11487,6 +11490,9 @@ var Method = class {
11487
11490
  }
11488
11491
  throw new RuntimeModelError7(this.method, "\u672A\u652F\u6301\u7684\u884C\u4E3A\u7C7B\u578B[".concat(actionType, "]"));
11489
11492
  }
11493
+ mergeRequestPath(path2, methodName) {
11494
+ return "".concat(path2, "/").concat(methodName);
11495
+ }
11490
11496
  /**
11491
11497
  * 根据上下文计算当前请求路径
11492
11498
  *
@@ -13069,6 +13075,13 @@ var FetchMethod = class extends Method {
13069
13075
  }
13070
13076
  };
13071
13077
 
13078
+ // src/service/service/entity/method/ac-fetch.ts
13079
+ var AcFetchMethod = class extends FetchMethod {
13080
+ mergeRequestPath(path2, methodName) {
13081
+ return "".concat(path2, "/ac/").concat(methodName, "?srfac=ac");
13082
+ }
13083
+ };
13084
+
13072
13085
  // src/service/service/entity/de.service.ts
13073
13086
  var DEService = class {
13074
13087
  /**
@@ -13109,14 +13122,16 @@ var DEService = class {
13109
13122
  * 获取实体服务方法实例
13110
13123
  *
13111
13124
  * @author chitanda
13112
- * @date 2022-10-10 14:10:53
13125
+ * @date 2023-10-12 17:10:10
13113
13126
  * @protected
13114
13127
  * @param {string} id
13128
+ * @param {boolean} [acMode=false]
13115
13129
  * @return {*} {Method}
13116
13130
  */
13117
- getMethod(id) {
13118
- if (this.methodMap.has(id)) {
13119
- return this.methodMap.get(id);
13131
+ getMethod(id, acMode = false) {
13132
+ const cacheId = acMode ? "ac-".concat(id) : id;
13133
+ if (this.methodMap.has(cacheId)) {
13134
+ return this.methodMap.get(cacheId);
13120
13135
  }
13121
13136
  const model = findModelChild(this.model.appDEMethods, id);
13122
13137
  let method = null;
@@ -13126,7 +13141,11 @@ var DEService = class {
13126
13141
  break;
13127
13142
  case "FETCH":
13128
13143
  case "FETCHTEMP":
13129
- method = new FetchMethod(this.model, model);
13144
+ if (acMode) {
13145
+ method = new AcFetchMethod(this.model, model);
13146
+ } else {
13147
+ method = new FetchMethod(this.model, model);
13148
+ }
13130
13149
  break;
13131
13150
  default:
13132
13151
  throw new ModelError13(
@@ -13134,7 +13153,7 @@ var DEService = class {
13134
13153
  "\u672A\u652F\u6301\u7684\u670D\u52A1\u65B9\u6CD5\u7C7B\u578B: ".concat(model.methodType)
13135
13154
  );
13136
13155
  }
13137
- this.methodMap.set(id, method);
13156
+ this.methodMap.set(cacheId, method);
13138
13157
  return method;
13139
13158
  }
13140
13159
  /**
@@ -13155,6 +13174,74 @@ var DEService = class {
13155
13174
  }
13156
13175
  throw new RuntimeError12("".concat(this.model.codeName, "\u672A\u652F\u6301\u300C").concat(id, "\u300D\u65B9\u6CD5"));
13157
13176
  }
13177
+ /**
13178
+ * 执行服务方法 ac 模式
13179
+ *
13180
+ * @author chitanda
13181
+ * @date 2022-09-13 19:09:55
13182
+ * @param {string} id 执行服务方法标识
13183
+ * @param {IParams} context
13184
+ * @param {IData} [params={}] 请求参数
13185
+ * @param {IParams} [params2={}] 查询参数
13186
+ * @return {*} {Promise<IHttpResponse>}
13187
+ */
13188
+ execAc(id, context, params, params2 = {}) {
13189
+ const method = this.getMethod(id, true);
13190
+ if (method) {
13191
+ return method.exec(context, params, params2);
13192
+ }
13193
+ throw new RuntimeError12("".concat(this.model.codeName, "\u672A\u652F\u6301\u300C").concat(id, "\u300D\u65B9\u6CD5"));
13194
+ }
13195
+ /**
13196
+ * 实体级别 AI 聊天会话
13197
+ *
13198
+ * @author chitanda
13199
+ * @date 2023-10-12 11:10:00
13200
+ * @param {IParams} context
13201
+ * @param {IParams} [params={}]
13202
+ * @param {FetchEventSourceInit} [options={}]
13203
+ * @return {*} {Promise<void>}
13204
+ */
13205
+ aiChatSse(onmessage, context, params = {}, data = {}) {
13206
+ const app = ibiz.hub.getApp(this.model.appId);
13207
+ const path2 = this.calcSsePath(context);
13208
+ return new Promise((resolve, reject) => {
13209
+ app.net.sse(
13210
+ "/".concat(path2),
13211
+ { srfactag: "AIChat", ...params },
13212
+ {
13213
+ headers: {
13214
+ "Content-Type": "application/json"
13215
+ },
13216
+ body: JSON.stringify(data),
13217
+ onmessage: (e) => {
13218
+ onmessage(e);
13219
+ },
13220
+ onclose: () => {
13221
+ resolve();
13222
+ },
13223
+ onerror: (e) => {
13224
+ reject(e);
13225
+ }
13226
+ }
13227
+ );
13228
+ });
13229
+ }
13230
+ /**
13231
+ * 计算请求路径
13232
+ *
13233
+ * @author chitanda
13234
+ * @date 2023-10-12 11:10:56
13235
+ * @protected
13236
+ * @param {IParams} context
13237
+ * @return {*} {string}
13238
+ */
13239
+ calcSsePath(context) {
13240
+ const srfkey = context[this.model.codeName.toLowerCase()];
13241
+ const curPath = "/".concat(this.model.codeName2.toLowerCase(), "/ssechatcompletion").concat(srfkey ? "/".concat(srfkey) : "");
13242
+ const resPath = calcResPath(context, this.model);
13243
+ return resPath + curPath;
13244
+ }
13158
13245
  };
13159
13246
 
13160
13247
  // src/service/vo/control.vo.ts
@@ -16180,6 +16267,7 @@ var ViewController = class extends BaseController {
16180
16267
  panel.evt.on("onControlEvent", (event) => {
16181
16268
  this.scheduler.triggerControlEvent(
16182
16269
  event.triggerControlName,
16270
+ event.triggerEventName,
16183
16271
  event.triggerEvent
16184
16272
  );
16185
16273
  });
@@ -16363,8 +16451,7 @@ var EditorController = class {
16363
16451
  if (navigateParams && data) {
16364
16452
  selfParams = convertNavData(navigateParams, data, params, context);
16365
16453
  }
16366
- const _params = { ...params, ...selfParams };
16367
- return { context: _context, params: _params };
16454
+ return { context: _context, params: selfParams };
16368
16455
  }
16369
16456
  /**
16370
16457
  * 字符串转对象、数组对象
@@ -16509,6 +16596,11 @@ var ControlController = class extends BaseController {
16509
16596
  this.handleControlParams();
16510
16597
  this.initControlScheduler(this.model.controlLogics);
16511
16598
  }
16599
+ async onMounted() {
16600
+ var _a;
16601
+ await super.onMounted();
16602
+ (_a = this.scheduler) == null ? void 0 : _a.startTimerTrigger();
16603
+ }
16512
16604
  async onDestroyed() {
16513
16605
  await super.onDestroyed();
16514
16606
  if (this.scheduler) {
@@ -16566,7 +16658,16 @@ var ControlController = class extends BaseController {
16566
16658
  handlerAbilityParams(args) {
16567
16659
  const context = this.context.clone();
16568
16660
  const params = { ...this.params };
16569
- const data = (args == null ? void 0 : args.data) || this.getData() || [];
16661
+ let data = this.getData() || [];
16662
+ if (args == null ? void 0 : args.data) {
16663
+ data = Array.isArray(args.data) ? args.data : [args.data];
16664
+ }
16665
+ if (args == null ? void 0 : args.context) {
16666
+ Object.assign(context, args.context);
16667
+ }
16668
+ if (args == null ? void 0 : args.viewParam) {
16669
+ Object.assign(params, args.viewParam);
16670
+ }
16570
16671
  return { context, params, data };
16571
16672
  }
16572
16673
  /**
@@ -16594,6 +16695,9 @@ var ControlController = class extends BaseController {
16594
16695
  * @memberof ControlController
16595
16696
  */
16596
16697
  handleControlParams() {
16698
+ if (!this.model.controlParam) {
16699
+ return;
16700
+ }
16597
16701
  const { ctrlParams } = this.model.controlParam;
16598
16702
  let params = {};
16599
16703
  if (notNilEmpty8(ctrlParams)) {
@@ -16799,7 +16903,7 @@ var MDControlController = class extends ControlController {
16799
16903
  this.state.curPage += 1;
16800
16904
  }
16801
16905
  const { context } = this.handlerAbilityParams(args);
16802
- const params = await this.getFetchParams(args == null ? void 0 : args.params);
16906
+ const params = await this.getFetchParams(args == null ? void 0 : args.viewParam);
16803
16907
  const res = await this.service.fetch(context, params);
16804
16908
  if (typeof res.total === "number") {
16805
16909
  this.state.total = res.total;
@@ -17294,7 +17398,7 @@ var CalendarController = class extends MDControlController {
17294
17398
  async load(args = {}) {
17295
17399
  const isInitialLoad = args.isInitialLoad === true;
17296
17400
  const { context } = this.handlerAbilityParams(args);
17297
- const params = await this.getFetchParams(args == null ? void 0 : args.params);
17401
+ const params = await this.getFetchParams(args == null ? void 0 : args.viewParam);
17298
17402
  await this.startLoading();
17299
17403
  let items;
17300
17404
  try {
@@ -18662,7 +18766,7 @@ var UILogicContext = class {
18662
18766
  import { RuntimeModelError as RuntimeModelError30 } from "@ibiz-template/core";
18663
18767
 
18664
18768
  // src/ui-logic/ui-logic-link/ui-logic-link.ts
18665
- import { ModelError as ModelError18 } from "@ibiz-template/core";
18769
+ import { ModelError as ModelError19 } from "@ibiz-template/core";
18666
18770
 
18667
18771
  // src/ui-logic/ui-logic-link/ui-logic-link-group-cond/ui-logic-link-group-cond.ts
18668
18772
  import { RuntimeModelError as RuntimeModelError29 } from "@ibiz-template/core";
@@ -18672,7 +18776,64 @@ var UILogicLinkCond = class {
18672
18776
  };
18673
18777
 
18674
18778
  // src/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.ts
18675
- import { ModelError as ModelError17, RuntimeModelError as RuntimeModelError28 } from "@ibiz-template/core";
18779
+ import { ModelError as ModelError18, RuntimeModelError as RuntimeModelError28 } from "@ibiz-template/core";
18780
+
18781
+ // src/ui-logic/utils/handle-src-val.ts
18782
+ import { ModelError as ModelError17 } from "@ibiz-template/core";
18783
+ import { clone as clone14 } from "ramda";
18784
+ function handleSrcVal2(ctx, srcValParams) {
18785
+ const { srcDEUILogicParamId, srcFieldName, srcValue } = srcValParams;
18786
+ const srcValueType = srcValParams.srcValueType || "SRCDLPARAM";
18787
+ let srcField = srcFieldName;
18788
+ let value;
18789
+ switch (srcValueType) {
18790
+ case "SRCDLPARAM":
18791
+ value = ctx.params[srcDEUILogicParamId];
18792
+ if (ctx.isEntityParam(srcDEUILogicParamId)) {
18793
+ srcField = srcField == null ? void 0 : srcField.toLowerCase();
18794
+ }
18795
+ break;
18796
+ case "NULLVALUE":
18797
+ return null;
18798
+ case "NONEVALUE":
18799
+ return void 0;
18800
+ case "SRCVALUE":
18801
+ return ibiz.util.rawValue.format(srcValue);
18802
+ case "WEBCONTEXT":
18803
+ case "VIEWPARAM":
18804
+ value = ctx.viewParams;
18805
+ break;
18806
+ case "APPLICATION":
18807
+ case "SESSION":
18808
+ case "APPDATA":
18809
+ case "DATACONTEXT":
18810
+ value = ctx.context;
18811
+ break;
18812
+ case "ENVPARAM":
18813
+ value = clone14(ibiz.env);
18814
+ break;
18815
+ default:
18816
+ throw new ModelError17(srcValParams, "\u6682\u672A\u652F\u6301\u6E90\u503C\u7C7B\u578B".concat(srcValueType));
18817
+ }
18818
+ if (value && srcField) {
18819
+ try {
18820
+ value = ScriptFactory.execScriptFn(
18821
+ { srcValue: value },
18822
+ "srcValue.".concat(srcField),
18823
+ {
18824
+ singleRowReturn: true,
18825
+ isAsync: false
18826
+ }
18827
+ );
18828
+ } catch (error) {
18829
+ ibiz.log.error("\u4ECE\u6E90\u53C2\u6570\u53D6\u5C5E\u6027".concat(srcField, "\u62A5\u9519\uFF0C\u6E90\u53C2\u6570\uFF1A"), value);
18830
+ throw error;
18831
+ }
18832
+ }
18833
+ return value;
18834
+ }
18835
+
18836
+ // src/ui-logic/ui-logic-link/ui-logic-link-single-cond/ui-logic-link-single-cond.ts
18676
18837
  var UILogicLinkSingleCond = class extends UILogicLinkCond {
18677
18838
  constructor(model) {
18678
18839
  super();
@@ -18703,7 +18864,10 @@ var UILogicLinkSingleCond = class extends UILogicLinkCond {
18703
18864
  * @return {*} {boolean}
18704
18865
  */
18705
18866
  test(ctx, context, data) {
18706
- const dst = ctx.params[this.dstParam];
18867
+ const dstVal = handleSrcVal2(ctx, {
18868
+ srcDEUILogicParamId: this.dstParam,
18869
+ srcFieldName: this.dstField
18870
+ });
18707
18871
  switch (this.type) {
18708
18872
  case "ENTITYFIELD": {
18709
18873
  if (!this.value) {
@@ -18713,7 +18877,7 @@ var UILogicLinkSingleCond = class extends UILogicLinkCond {
18713
18877
  );
18714
18878
  }
18715
18879
  const value = data[this.value] != null ? data[this.value] : context[this.value];
18716
- return testCond(dst[this.dstField], this.op, value);
18880
+ return testCond(dstVal, this.op, value);
18717
18881
  }
18718
18882
  case "SRCENTITYFIELD": {
18719
18883
  if (!this.value) {
@@ -18722,13 +18886,16 @@ var UILogicLinkSingleCond = class extends UILogicLinkCond {
18722
18886
  "\u5F53\u524D\u6761\u4EF6\u503C\u7C7B\u578B\u4E3A[\u6E90\u6570\u636E\u5BF9\u8C61\u5C5E\u6027],\u7F3A\u5C11\u914D\u7F6E\u6761\u4EF6\u503C"
18723
18887
  );
18724
18888
  }
18725
- const src = ctx.params[this.srcParam];
18726
- return testCond(dst[this.dstField], this.op, src[this.value]);
18889
+ const srcVal = handleSrcVal2(ctx, {
18890
+ srcDEUILogicParamId: this.srcParam,
18891
+ srcFieldName: this.value
18892
+ });
18893
+ return testCond(dstVal, this.op, srcVal);
18727
18894
  }
18728
18895
  case "CURTIME":
18729
- throw new ModelError17(this.model, "\u6682\u672A\u652F\u6301\u6761\u4EF6\u503C\u7C7B\u578B\u4E3A[\u5F53\u524D\u65F6\u95F4]");
18896
+ throw new ModelError18(this.model, "\u6682\u672A\u652F\u6301\u6761\u4EF6\u503C\u7C7B\u578B\u4E3A[\u5F53\u524D\u65F6\u95F4]");
18730
18897
  default:
18731
- return testCond(dst[this.dstField], this.op, this.value);
18898
+ return testCond(dstVal, this.op, this.value);
18732
18899
  }
18733
18900
  }
18734
18901
  };
@@ -18868,13 +19035,13 @@ var UILogicLink = class {
18868
19035
  case 1:
18869
19036
  return true;
18870
19037
  case 2:
18871
- throw new ModelError18(this.model, "\u672A\u652F\u6301\u7684\u903B\u8F91\u8FDE\u63A5\u7C7B\u578B: \u5F02\u6B65\u7ED3\u675F");
19038
+ throw new ModelError19(this.model, "\u672A\u652F\u6301\u7684\u903B\u8F91\u8FDE\u63A5\u7C7B\u578B: \u5F02\u6B65\u7ED3\u675F");
18872
19039
  case 3:
18873
- throw new ModelError18(this.model, "\u672A\u652F\u6301\u7684\u903B\u8F91\u8FDE\u63A5\u7C7B\u578B: \u5F02\u6B65\u62D2\u7EDD");
19040
+ throw new ModelError19(this.model, "\u672A\u652F\u6301\u7684\u903B\u8F91\u8FDE\u63A5\u7C7B\u578B: \u5F02\u6B65\u62D2\u7EDD");
18874
19041
  case 9:
18875
- throw new ModelError18(this.model, "\u672A\u652F\u6301\u7684\u903B\u8F91\u8FDE\u63A5\u7C7B\u578B: \u5F02\u5E38\u5904\u7406");
19042
+ throw new ModelError19(this.model, "\u672A\u652F\u6301\u7684\u903B\u8F91\u8FDE\u63A5\u7C7B\u578B: \u5F02\u5E38\u5904\u7406");
18876
19043
  default:
18877
- throw new ModelError18(this.model, "\u672A\u652F\u6301\u7684\u903B\u8F91\u8FDE\u63A5\u7C7B\u578B:".concat(linkMode));
19044
+ throw new ModelError19(this.model, "\u672A\u652F\u6301\u7684\u903B\u8F91\u8FDE\u63A5\u7C7B\u578B:".concat(linkMode));
18878
19045
  }
18879
19046
  }
18880
19047
  };
@@ -18958,7 +19125,7 @@ var StartNode2 = class extends UILogicNode {
18958
19125
  };
18959
19126
 
18960
19127
  // src/ui-logic/ui-logic-node/end-node/end-node.ts
18961
- import { ModelError as ModelError19 } from "@ibiz-template/core";
19128
+ import { ModelError as ModelError20 } from "@ibiz-template/core";
18962
19129
  var EndNode2 = class extends UILogicNode {
18963
19130
  async exec(ctx) {
18964
19131
  ctx.isEndNode = true;
@@ -18982,7 +19149,7 @@ var EndNode2 = class extends UILogicNode {
18982
19149
  case "LOGICPARAMFIELD":
18983
19150
  case "BREAK":
18984
19151
  default:
18985
- throw new ModelError19(
19152
+ throw new ModelError20(
18986
19153
  this.model,
18987
19154
  "\u6682\u672A\u652F\u6301\u7684\u7ED3\u675F\u8282\u70B9\u8FD4\u56DE\u503C\u7C7B\u578B: ".concat(returnType)
18988
19155
  );
@@ -18993,63 +19160,6 @@ var EndNode2 = class extends UILogicNode {
18993
19160
  // src/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.ts
18994
19161
  import { ModelError as ModelError21, RuntimeError as RuntimeError31 } from "@ibiz-template/core";
18995
19162
  import { clone as clone15 } from "ramda";
18996
-
18997
- // src/ui-logic/utils/handle-src-val.ts
18998
- import { ModelError as ModelError20 } from "@ibiz-template/core";
18999
- import { clone as clone14 } from "ramda";
19000
- function handleSrcVal2(ctx, srcValParams) {
19001
- const { srcDEUILogicParamId, srcFieldName, srcValue } = srcValParams;
19002
- const srcValueType = srcValParams.srcValueType || "SRCDLPARAM";
19003
- let srcField = srcFieldName;
19004
- let value;
19005
- switch (srcValueType) {
19006
- case "SRCDLPARAM":
19007
- value = ctx.params[srcDEUILogicParamId];
19008
- if (ctx.isEntityParam(srcDEUILogicParamId)) {
19009
- srcField = srcField == null ? void 0 : srcField.toLowerCase();
19010
- }
19011
- break;
19012
- case "NULLVALUE":
19013
- return null;
19014
- case "NONEVALUE":
19015
- return void 0;
19016
- case "SRCVALUE":
19017
- return ibiz.util.rawValue.format(srcValue);
19018
- case "WEBCONTEXT":
19019
- case "VIEWPARAM":
19020
- value = ctx.viewParams;
19021
- break;
19022
- case "APPLICATION":
19023
- case "SESSION":
19024
- case "APPDATA":
19025
- case "DATACONTEXT":
19026
- value = ctx.context;
19027
- break;
19028
- case "ENVPARAM":
19029
- value = clone14(ibiz.env);
19030
- break;
19031
- default:
19032
- throw new ModelError20(srcValParams, "\u6682\u672A\u652F\u6301\u6E90\u503C\u7C7B\u578B".concat(srcValueType));
19033
- }
19034
- if (value && srcField) {
19035
- try {
19036
- value = ScriptFactory.execScriptFn(
19037
- { srcValue: value },
19038
- "srcValue.".concat(srcField),
19039
- {
19040
- singleRowReturn: true,
19041
- isAsync: false
19042
- }
19043
- );
19044
- } catch (error) {
19045
- ibiz.log.error("\u4ECE\u6E90\u53C2\u6570\u53D6\u5C5E\u6027".concat(srcField, "\u62A5\u9519\uFF0C\u6E90\u53C2\u6570\uFF1A"), value);
19046
- throw error;
19047
- }
19048
- }
19049
- return value;
19050
- }
19051
-
19052
- // src/ui-logic/ui-logic-node/prepare-js-param-node/prepare-js-param-node.ts
19053
19163
  var PrepareJSParamNode = class extends UILogicNode {
19054
19164
  async exec(ctx) {
19055
19165
  const nodeParams = this.model.deuilogicNodeParams;
@@ -21006,6 +21116,7 @@ var DataViewControlController = class extends MDControlController {
21006
21116
  * @param {IData} data 选中的单条数据
21007
21117
  */
21008
21118
  async onRowClick(data) {
21119
+ var _a;
21009
21120
  super.onRowClick(data);
21010
21121
  const { groupAppDEFieldId } = this.model;
21011
21122
  if (groupAppDEFieldId) {
@@ -21023,19 +21134,20 @@ var DataViewControlController = class extends MDControlController {
21023
21134
  });
21024
21135
  if (this.state.singleSelect) {
21025
21136
  this.state.groups.forEach((group) => {
21137
+ var _a2, _b;
21026
21138
  let tempData = data;
21027
21139
  if (group.selectedData.indexOf(tempData) !== -1) {
21028
21140
  if (tempData && tempData instanceof ControlVO) {
21029
21141
  tempData = tempData.getOrigin();
21030
21142
  }
21031
21143
  if (tempData) {
21032
- group.groupActionGroupState.update(
21144
+ (_a2 = group.groupActionGroupState) == null ? void 0 : _a2.update(
21033
21145
  tempData,
21034
21146
  this.model.appDataEntityId
21035
21147
  );
21036
21148
  }
21037
21149
  } else {
21038
- group.groupActionGroupState.update(
21150
+ (_b = group.groupActionGroupState) == null ? void 0 : _b.update(
21039
21151
  void 0,
21040
21152
  this.model.appDataEntityId
21041
21153
  );
@@ -21046,7 +21158,7 @@ var DataViewControlController = class extends MDControlController {
21046
21158
  return group.children.indexOf(data) !== -1;
21047
21159
  });
21048
21160
  if (actionGroup) {
21049
- actionGroup.groupActionGroupState.update(
21161
+ (_a = actionGroup.groupActionGroupState) == null ? void 0 : _a.update(
21050
21162
  actionGroup.selectedData[0],
21051
21163
  this.model.appDataEntityId
21052
21164
  );
@@ -23704,15 +23816,15 @@ var EditFormController = class extends FormController {
23704
23816
  * @date 2023-08-25 02:45:11
23705
23817
  * @return {*} {Promise<IData>}
23706
23818
  */
23707
- async loadDraft() {
23708
- const queryParams = { ...this.params };
23819
+ async loadDraft(args) {
23820
+ const { context, params: queryParams } = this.handlerAbilityParams(args);
23709
23821
  const params = await this.getDraftParams();
23710
23822
  Object.assign(queryParams, params);
23711
23823
  let res;
23712
23824
  try {
23713
23825
  await this.startLoading();
23714
23826
  await this.evt.emit("onBeforeLoadDraft", { params: queryParams });
23715
- res = await this.service.getDraft(this.context, queryParams);
23827
+ res = await this.service.getDraft(context, queryParams);
23716
23828
  } catch (error) {
23717
23829
  await this.evt.emit("onLoadDraftError", void 0);
23718
23830
  this.actionNotification("GETDRAFTERROR", {
@@ -23781,7 +23893,7 @@ var EditFormController = class extends FormController {
23781
23893
  * @author lxm
23782
23894
  * @date 2022-08-19 14:08:50
23783
23895
  */
23784
- async load() {
23896
+ async load(args) {
23785
23897
  const copyMode = this.params.srfcopymode;
23786
23898
  if (copyMode) {
23787
23899
  return this.copy();
@@ -23793,12 +23905,13 @@ var EditFormController = class extends FormController {
23793
23905
  if (isLoadDraft) {
23794
23906
  return this.loadDraft();
23795
23907
  }
23796
- const queryParams = clone17(this.params);
23908
+ const { context, params } = this.handlerAbilityParams(args);
23909
+ const queryParams = clone17(params);
23797
23910
  let res;
23798
23911
  try {
23799
23912
  await this.startLoading();
23800
23913
  await this.evt.emit("onBeforeLoad", void 0);
23801
- res = await this.service.get(this.context, queryParams);
23914
+ res = await this.service.get(context, queryParams);
23802
23915
  } catch (error) {
23803
23916
  await this.evt.emit("onLoadError", void 0);
23804
23917
  this.actionNotification("GETERROR", {
@@ -23822,10 +23935,10 @@ var EditFormController = class extends FormController {
23822
23935
  * @author lxm
23823
23936
  * @date 2022-08-31 22:08:40
23824
23937
  */
23825
- async save() {
23938
+ async save(args) {
23826
23939
  if (this.state.processing) {
23827
- const data = await awaitTimeout(500, this.save.bind(this));
23828
- return data;
23940
+ const data2 = await awaitTimeout(500, this.save.bind(this));
23941
+ return data2;
23829
23942
  }
23830
23943
  const isValid = await this.validate();
23831
23944
  if (!isValid) {
@@ -23833,10 +23946,12 @@ var EditFormController = class extends FormController {
23833
23946
  }
23834
23947
  await this.startLoading();
23835
23948
  await this.evt.emit("onBeforeSave", void 0);
23836
- const isCreate = this.data.srfuf === 0 /* CREATE */;
23949
+ const { context, data } = this.handlerAbilityParams(args);
23950
+ const saveData = data[0];
23951
+ const isCreate = saveData.srfuf === 0 /* CREATE */;
23837
23952
  let res;
23838
23953
  try {
23839
- res = isCreate ? await this.service.create(this.context, this.data) : await this.service.update(this.context, this.data);
23954
+ res = isCreate ? await this.service.create(context, saveData) : await this.service.update(context, saveData);
23840
23955
  } catch (error) {
23841
23956
  await this.evt.emit("onSaveError", void 0);
23842
23957
  this.actionNotification("".concat(isCreate ? "CREATE" : "UPDATE", "ERROR"), {
@@ -23870,7 +23985,8 @@ var EditFormController = class extends FormController {
23870
23985
  * @date 2022-09-01 09:09:36
23871
23986
  * @returns {*}
23872
23987
  */
23873
- async remove() {
23988
+ async remove(args) {
23989
+ const { context, params } = this.handlerAbilityParams(args);
23874
23990
  let res;
23875
23991
  let ok = false;
23876
23992
  await this.evt.emit("onBeforeRemove", void 0);
@@ -23884,7 +24000,7 @@ var EditFormController = class extends FormController {
23884
24000
  }
23885
24001
  await this.startLoading();
23886
24002
  try {
23887
- res = await this.service.remove(this.context, this.params);
24003
+ res = await this.service.remove(context, params);
23888
24004
  } catch (error) {
23889
24005
  await this.evt.emit("onRemoveError", void 0);
23890
24006
  this.actionNotification("REMOVEERROR", {
@@ -23979,21 +24095,15 @@ var EditFormController = class extends FormController {
23979
24095
  * @param {IParams} [extraParams={}] 不走工作流启动视图时使用
23980
24096
  * @returns {*} {Promise<void>}
23981
24097
  */
23982
- async wfStart(extraParams = {}) {
24098
+ async wfStart(args) {
23983
24099
  const isValid = await this.validate();
23984
24100
  if (!isValid) {
23985
24101
  throw new RuntimeError42("\u8BF7\u68C0\u67E5\u8868\u5355\u586B\u5199\uFF01");
23986
24102
  }
23987
24103
  await this.startLoading();
24104
+ const { context, params } = this.handlerAbilityParams(args);
23988
24105
  try {
23989
- await this.service.wfStart(
23990
- this.context,
23991
- {
23992
- ...this.params,
23993
- ...extraParams
23994
- },
23995
- this.data
23996
- );
24106
+ await this.service.wfStart(context, params, this.data);
23997
24107
  } catch (error) {
23998
24108
  this.actionNotification("WFSTARTERROR", {
23999
24109
  error
@@ -24012,21 +24122,15 @@ var EditFormController = class extends FormController {
24012
24122
  * @param {IParams} [extraParams={}] 不走工作流操作视图时使用
24013
24123
  * @returns {*} {Promise<void>}
24014
24124
  */
24015
- async wfSubmit(extraParams = {}) {
24125
+ async wfSubmit(args) {
24016
24126
  const isValid = await this.validate();
24017
24127
  if (!isValid) {
24018
24128
  throw new RuntimeError42("\u8BF7\u68C0\u67E5\u8868\u5355\u586B\u5199\uFF01");
24019
24129
  }
24020
24130
  await this.startLoading();
24131
+ const { context, params } = this.handlerAbilityParams(args);
24021
24132
  try {
24022
- await this.service.wfSubmit(
24023
- this.context,
24024
- {
24025
- ...this.params,
24026
- ...extraParams
24027
- },
24028
- this.data
24029
- );
24133
+ await this.service.wfSubmit(context, params, this.data);
24030
24134
  } catch (error) {
24031
24135
  this.actionNotification("WFSUBMITERROR", {
24032
24136
  error
@@ -25822,7 +25926,7 @@ var GridController = class extends MDControlController {
25822
25926
  */
25823
25927
  async loadData(args) {
25824
25928
  const { context } = this.handlerAbilityParams(args);
25825
- const params = await this.getFetchParams(args == null ? void 0 : args.params);
25929
+ const params = await this.getFetchParams(args == null ? void 0 : args.viewParam);
25826
25930
  let res;
25827
25931
  await this.startLoading();
25828
25932
  try {
@@ -25881,7 +25985,7 @@ var GridController = class extends MDControlController {
25881
25985
  offset: (startPage - 1) * size,
25882
25986
  size: (endPage - startPage + 1) * size
25883
25987
  } : { size: 1e3, page: 0 };
25884
- data2 = await this.loadData({ params });
25988
+ data2 = await this.loadData({ viewParam: params });
25885
25989
  }
25886
25990
  if (type === "selectedRows") {
25887
25991
  data2 = this.getData();
@@ -26759,6 +26863,9 @@ var PanelController = class extends ControlController {
26759
26863
  */
26760
26864
  this.providers = {};
26761
26865
  }
26866
+ get _evt() {
26867
+ return this.evt;
26868
+ }
26762
26869
  /**
26763
26870
  * 面板数据
26764
26871
  *
@@ -26777,9 +26884,22 @@ var PanelController = class extends ControlController {
26777
26884
  setInputData(data) {
26778
26885
  this.inputData = data;
26779
26886
  }
26887
+ getData() {
26888
+ return [this.data];
26889
+ }
26780
26890
  async onCreated() {
26891
+ var _a;
26781
26892
  await super.onCreated();
26782
26893
  await this.initPanelItemControllers();
26894
+ if ((_a = this.scheduler) == null ? void 0 : _a.hasControlEventTrigger) {
26895
+ this._evt.on("onPanelItemEvent", (event) => {
26896
+ this.scheduler.triggerControlEvent(
26897
+ event.panelItemName,
26898
+ event.panelItemEventName,
26899
+ event
26900
+ );
26901
+ });
26902
+ }
26783
26903
  }
26784
26904
  async onMounted() {
26785
26905
  this.load();
@@ -26929,8 +27049,18 @@ var PanelController = class extends ControlController {
26929
27049
  // src/controller/control/panel/view-layout-panel/view-layout-panel.controller.ts
26930
27050
  var ViewLayoutPanelController = class extends PanelController {
26931
27051
  async onCreated() {
27052
+ var _a;
26932
27053
  this.preprocessModel();
26933
27054
  await super.onCreated();
27055
+ if ((_a = this.scheduler) == null ? void 0 : _a.hasControlEventTrigger) {
27056
+ this.evt.on("onControlEvent", (event) => {
27057
+ this.scheduler.triggerControlEvent(
27058
+ event.triggerControlName,
27059
+ event.triggerEventName,
27060
+ event.triggerEvent
27061
+ );
27062
+ });
27063
+ }
26934
27064
  }
26935
27065
  registerToCtx() {
26936
27066
  }
@@ -27300,6 +27430,17 @@ var PanelItemController = class {
27300
27430
  }
27301
27431
  }
27302
27432
  }
27433
+ /**
27434
+ * 点击事件
27435
+ * @author lxm
27436
+ * @date 2023-10-11 05:03:26
27437
+ */
27438
+ onClick() {
27439
+ this.panel.evt.emit("onPanelItemEvent", {
27440
+ panelItemName: this.model.id,
27441
+ panelItemEventName: "onClick"
27442
+ });
27443
+ }
27303
27444
  };
27304
27445
 
27305
27446
  // src/controller/control/pickup-view-panel/pickup-view-panel.controller.ts
@@ -30747,13 +30888,13 @@ var LogicScheduler = class {
30747
30888
  * @param {Partial<IUILogicParams>} executeParams 执行参数
30748
30889
  * @return {*} {(boolean | undefined)}
30749
30890
  */
30750
- triggerControlEvent(ctrlName, event) {
30891
+ triggerControlEvent(ctrlName, eventName, executeParams) {
30751
30892
  const matchParams = {
30752
30893
  ctrlName,
30753
- eventName: event.eventName,
30894
+ eventName,
30754
30895
  triggerType: "CTRLEVENT"
30755
30896
  };
30756
- this.triggerAndExecute(matchParams, event);
30897
+ this.triggerAndExecute(matchParams, executeParams);
30757
30898
  }
30758
30899
  };
30759
30900
 
@@ -30763,6 +30904,11 @@ var ControlLogicScheduler = class extends LogicScheduler {
30763
30904
  const filterLogics = logics.filter(
30764
30905
  (item) => item.triggerType !== "APPVIEWENGINE"
30765
30906
  );
30907
+ filterLogics.forEach((logic) => {
30908
+ if (logic.triggerType === "CTRLEVENT") {
30909
+ logic.ctrlName = logic.itemName;
30910
+ }
30911
+ });
30766
30912
  super(filterLogics);
30767
30913
  }
30768
30914
  };
@@ -31350,7 +31496,16 @@ var ControlEventTrigger = class extends LogicTrigger {
31350
31496
  }
31351
31497
  match(matchParams) {
31352
31498
  const superResult = super.match(matchParams);
31353
- return superResult && matchParams.ctrlName === this.logic.ctrlName && this.listenEventNames.includes(matchParams.eventName);
31499
+ return superResult && // 忽略大小写匹配
31500
+ matchParams.ctrlName.toLowerCase() === this.logic.ctrlName.toLowerCase() && this.listenEventNames.includes(matchParams.eventName);
31501
+ }
31502
+ };
31503
+
31504
+ // src/logic-scheduler/executor/app-ui-action-executor.ts
31505
+ var AppDEUIActionExecutor = class extends LogicExecutor {
31506
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31507
+ execute(executeParams) {
31508
+ UIActionUtil.execAndResolved(this.logic.appDEUIActionId, executeParams);
31354
31509
  }
31355
31510
  };
31356
31511
 
@@ -31401,6 +31556,10 @@ function installLogicSchedule() {
31401
31556
  "APPUILOGIC",
31402
31557
  (logic, scheduler) => new AppUILogicExecutor(logic, scheduler)
31403
31558
  );
31559
+ ibiz.scheduler.executorFactory.register(
31560
+ "APPDEUIACTION",
31561
+ (logic, scheduler) => new AppDEUIActionExecutor(logic, scheduler)
31562
+ );
31404
31563
  }
31405
31564
 
31406
31565
  // src/install.ts