@ibiz-template/runtime 0.1.6 → 0.1.7

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 (86) hide show
  1. package/dist/index.esm.js +198 -99
  2. package/dist/index.system.min.js +1 -1
  3. package/dist/index.system.min.js.map +1 -1
  4. package/out/command/app/open-app-view/open-app-view.d.ts +3 -3
  5. package/out/command/app/open-app-view/open-app-view.d.ts.map +1 -1
  6. package/out/command/app/open-app-view/open-app-view.js +4 -1
  7. package/out/controller/common/base.controller.js +1 -1
  8. package/out/controller/common/control/md-control.controller.js +1 -1
  9. package/out/controller/common/view/view.controller.d.ts.map +1 -1
  10. package/out/controller/common/view/view.controller.js +13 -3
  11. package/out/controller/ctx/ctx.d.ts.map +1 -1
  12. package/out/controller/ctx/ctx.js +1 -1
  13. package/out/interface/common/i-open-view-options/i-open-view-options.d.ts +38 -0
  14. package/out/interface/common/i-open-view-options/i-open-view-options.d.ts.map +1 -0
  15. package/out/interface/common/i-open-view-options/i-open-view-options.js +1 -0
  16. package/out/interface/common/index.d.ts +1 -0
  17. package/out/interface/common/index.d.ts.map +1 -1
  18. package/out/interface/logic-scheduler/i-scheduler-logic.d.ts +5 -3
  19. package/out/interface/logic-scheduler/i-scheduler-logic.d.ts.map +1 -1
  20. package/out/interface/logic-scheduler/i-trigger-match-params.d.ts +5 -0
  21. package/out/interface/logic-scheduler/i-trigger-match-params.d.ts.map +1 -1
  22. package/out/interface/util/i-confirm-util/i-confirm-util.d.ts +82 -0
  23. package/out/interface/util/i-confirm-util/i-confirm-util.d.ts.map +1 -0
  24. package/out/interface/util/i-confirm-util/i-confirm-util.js +1 -0
  25. package/out/interface/util/i-modal-util/i-modal-util.d.ts +8 -0
  26. package/out/interface/util/i-modal-util/i-modal-util.d.ts.map +1 -1
  27. package/out/interface/util/index.d.ts +1 -0
  28. package/out/interface/util/index.d.ts.map +1 -1
  29. package/out/logic-scheduler/index.d.ts.map +1 -1
  30. package/out/logic-scheduler/index.js +2 -0
  31. package/out/logic-scheduler/scheduler/logic-scheduler.d.ts +24 -1
  32. package/out/logic-scheduler/scheduler/logic-scheduler.d.ts.map +1 -1
  33. package/out/logic-scheduler/scheduler/logic-scheduler.js +39 -0
  34. package/out/logic-scheduler/trigger/control-event-trigger.d.ts +27 -0
  35. package/out/logic-scheduler/trigger/control-event-trigger.d.ts.map +1 -0
  36. package/out/logic-scheduler/trigger/control-event-trigger.js +33 -0
  37. package/out/logic-scheduler/trigger/view-event-trigger.d.ts +8 -0
  38. package/out/logic-scheduler/trigger/view-event-trigger.d.ts.map +1 -1
  39. package/out/logic-scheduler/trigger/view-event-trigger.js +8 -0
  40. package/out/service/dto/method.dto.d.ts.map +1 -1
  41. package/out/service/dto/method.dto.js +1 -15
  42. package/out/service/service/code-list/code-list.service.d.ts.map +1 -1
  43. package/out/service/service/code-list/code-list.service.js +5 -1
  44. package/out/types.d.ts +19 -1
  45. package/out/types.d.ts.map +1 -1
  46. package/out/ui-logic/ui-logic-node/bind-param-node/bind-param-node.d.ts +17 -0
  47. package/out/ui-logic/ui-logic-node/bind-param-node/bind-param-node.d.ts.map +1 -0
  48. package/out/ui-logic/ui-logic-node/bind-param-node/bind-param-node.js +22 -0
  49. package/out/ui-logic/ui-logic-node/index.d.ts +1 -0
  50. package/out/ui-logic/ui-logic-node/index.d.ts.map +1 -1
  51. package/out/ui-logic/ui-logic-node/index.js +1 -0
  52. package/out/ui-logic/ui-logic-param/ui-logic-param.d.ts.map +1 -1
  53. package/out/ui-logic/ui-logic-param/ui-logic-param.js +2 -2
  54. package/out/ui-logic/ui-logic.d.ts.map +1 -1
  55. package/out/ui-logic/ui-logic.js +5 -3
  56. package/out/ui-logic/utils/handle-src-val.d.ts.map +1 -1
  57. package/out/ui-logic/utils/handle-src-val.js +2 -4
  58. package/out/utils/open-redirect-view/open-redirect-view.d.ts +4 -4
  59. package/out/utils/open-redirect-view/open-redirect-view.d.ts.map +1 -1
  60. package/out/utils/open-redirect-view/open-redirect-view.js +10 -9
  61. package/package.json +3 -3
  62. package/src/command/app/open-app-view/open-app-view.ts +8 -5
  63. package/src/controller/common/base.controller.ts +1 -1
  64. package/src/controller/common/control/md-control.controller.ts +1 -1
  65. package/src/controller/common/view/view.controller.ts +16 -3
  66. package/src/controller/ctx/ctx.ts +1 -1
  67. package/src/interface/common/i-open-view-options/i-open-view-options.ts +40 -0
  68. package/src/interface/common/index.ts +1 -0
  69. package/src/interface/logic-scheduler/i-scheduler-logic.ts +6 -3
  70. package/src/interface/logic-scheduler/i-trigger-match-params.ts +6 -0
  71. package/src/interface/util/i-confirm-util/i-confirm-util.ts +82 -0
  72. package/src/interface/util/i-modal-util/i-modal-util.ts +8 -0
  73. package/src/interface/util/index.ts +1 -0
  74. package/src/logic-scheduler/index.ts +5 -0
  75. package/src/logic-scheduler/scheduler/logic-scheduler.ts +43 -0
  76. package/src/logic-scheduler/trigger/control-event-trigger.ts +45 -0
  77. package/src/logic-scheduler/trigger/view-event-trigger.ts +8 -0
  78. package/src/service/dto/method.dto.ts +1 -13
  79. package/src/service/service/code-list/code-list.service.ts +8 -1
  80. package/src/types.ts +21 -0
  81. package/src/ui-logic/ui-logic-node/bind-param-node/bind-param-node.ts +30 -0
  82. package/src/ui-logic/ui-logic-node/index.ts +1 -0
  83. package/src/ui-logic/ui-logic-param/ui-logic-param.ts +5 -2
  84. package/src/ui-logic/ui-logic.ts +5 -2
  85. package/src/ui-logic/utils/handle-src-val.ts +3 -6
  86. package/src/utils/open-redirect-view/open-redirect-view.ts +10 -8
@@ -1,6 +1,3 @@
1
- /* eslint-disable no-await-in-loop */
2
- import { clone } from 'ramda';
3
- import { isNilOrEmpty } from 'qx-util';
4
1
  import { ModelError } from '@ibiz-template/core';
5
2
  import { AppDataEntity } from '../app-data-entity/app-data-entity';
6
3
  import { findModelChild } from '../../model';
@@ -40,21 +37,11 @@ export class MethodDto {
40
37
  async get(context, data) {
41
38
  const params = {};
42
39
  // 拷贝数据
43
- const copyData = clone(data);
44
40
  for (let i = 0; i < this.fields.length; i++) {
45
41
  const field = this.fields[i];
46
42
  const key = field.codeName.toLowerCase();
47
43
  switch (field.type) {
48
44
  case 'SIMPLE': {
49
- const val = copyData[key];
50
- if (isNilOrEmpty(val)) {
51
- params[key] = null;
52
- }
53
- else {
54
- params[key] = val;
55
- }
56
- // 取值后删除
57
- delete copyData[key];
58
45
  break;
59
46
  }
60
47
  case 'DTOS': {
@@ -75,8 +62,7 @@ export class MethodDto {
75
62
  }
76
63
  }
77
64
  // 合并剩余参数
78
- Object.assign(params, copyData);
79
- return params;
65
+ return Object.assign(Object.assign({}, data), params);
80
66
  }
81
67
  /**
82
68
  * 设置本地 DTO 存储
@@ -1 +1 @@
1
- {"version":3,"file":"code-list.service.d.ts","sourceRoot":"","sources":["../../../../src/service/service/code-list/code-list.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;GAOG;AACH,qBAAa,eAAe;IAoBd,SAAS,CAAC,QAAQ,EAAE,YAAY;IAnB5C;;;;;OAKG;IACH,SAAS,CAAC,YAAY,4BAAmC;IAEzD;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,oBAAoB,CAAC,CAChE;gBAEU,QAAQ,EAAE,YAAY;IAE5C;;;;;;;OAOG;IACH,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE;IAc3D;;;;;;;;OAQG;IACH,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAMzC;;;;;;;;OAQG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIlD;;;;;;;;;OASG;IACH,SAAS,CAAC,iBAAiB,CACzB,SAAS,EAAE,SAAS,EAAE,EACtB,aAAa,EAAE,OAAO,GACrB,QAAQ,CAAC,YAAY,CAAC,EAAE;IAmB3B;;;;;;;;OAQG;cACa,kBAAkB,CAChC,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,OAAY,EACrB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,YAAY,EAAE,CAAC;IAa1B;;;;;;;;;OASG;IACG,GAAG,CACP,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,EACjB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;CAcpC"}
1
+ {"version":3,"file":"code-list.service.d.ts","sourceRoot":"","sources":["../../../../src/service/service/code-list/code-list.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;GAOG;AACH,qBAAa,eAAe;IAoBd,SAAS,CAAC,QAAQ,EAAE,YAAY;IAnB5C;;;;;OAKG;IACH,SAAS,CAAC,YAAY,4BAAmC;IAEzD;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,oBAAoB,CAAC,CAChE;gBAEU,QAAQ,EAAE,YAAY;IAE5C;;;;;;;OAOG;IACH,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE;IAc3D;;;;;;;;OAQG;IACH,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAMzC;;;;;;;;OAQG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIlD;;;;;;;;;OASG;IACH,SAAS,CAAC,iBAAiB,CACzB,SAAS,EAAE,SAAS,EAAE,EACtB,aAAa,EAAE,OAAO,GACrB,QAAQ,CAAC,YAAY,CAAC,EAAE;IA0B3B;;;;;;;;OAQG;cACa,kBAAkB,CAChC,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,OAAY,EACrB,MAAM,GAAE,OAAY,GACnB,OAAO,CAAC,YAAY,EAAE,CAAC;IAa1B;;;;;;;;;OASG;IACG,GAAG,CACP,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,OAAO,EACjB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC;CAcpC"}
@@ -89,8 +89,12 @@ export class CodeListService {
89
89
  return codeItems.map(codeItem => {
90
90
  var _a;
91
91
  // todo代码项其他属性,表单数据
92
+ let text = codeItem.text;
93
+ if (codeItem.textLanguageRes) {
94
+ text = ibiz.i18n.t(codeItem.textLanguageRes.lanResTag, codeItem.textLanguageRes.defaultContent);
95
+ }
92
96
  const _codeItem = {
93
- text: codeItem.text,
97
+ text,
94
98
  value: isValueNumber ? Number(codeItem.value) : codeItem.value,
95
99
  color: codeItem.color,
96
100
  id: codeItem.codeName,
package/out/types.d.ts CHANGED
@@ -1,6 +1,7 @@
1
+ import { I18n } from '@ibiz-template/core/src/interface';
1
2
  import { EngineFactory } from './engine';
2
3
  import { GlobalUtil } from './global';
3
- import { IMessageUtil, INotificationUtil, IOpenViewUtil, IModalUtil, ILoadingUtil, IPluginFactory, IOverlayController, IGlobalConfig, IAppHubService } from './interface';
4
+ import { IMessageUtil, INotificationUtil, IOpenViewUtil, IModalUtil, IConfirmUtil, ILoadingUtil, IPluginFactory, IOverlayController, IGlobalConfig, IAppHubService } from './interface';
4
5
  import { LogicSchedulerCenter } from './logic-scheduler';
5
6
  import { RegisterCenter } from './register/register-center';
6
7
  import { AuthService } from './service';
@@ -31,6 +32,15 @@ declare module '@ibiz-template/core' {
31
32
  * @type {IModalUtil}
32
33
  */
33
34
  modal: IModalUtil;
35
+ /**
36
+ * 确认框
37
+ *
38
+ * @description 需要用户确认收到提示消息时使用此工具
39
+ * @author chitanda
40
+ * @date 2022-08-17 16:08:10
41
+ * @type {IConfirmUtil}
42
+ */
43
+ confirm: IConfirmUtil;
34
44
  /**
35
45
  * 消息通知
36
46
  *
@@ -113,6 +123,14 @@ declare module '@ibiz-template/core' {
113
123
  * @type {GlobalUtil}
114
124
  */
115
125
  util: GlobalUtil;
126
+ /**
127
+ * 多语言
128
+ *
129
+ * @author chitanda
130
+ * @date 2023-08-11 16:08:15
131
+ * @type {I18n}
132
+ */
133
+ i18n: I18n;
116
134
  /**
117
135
  * 逻辑调度中心
118
136
  * @author lxm
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf;;;;;;WAMG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;WAMG;QACH,GAAG,EAAE,cAAc,CAAC;QAEpB;;;;;;;WAOG;QACH,KAAK,EAAE,UAAU,CAAC;QAElB;;;;;;;WAOG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;;WAOG;QACH,YAAY,EAAE,iBAAiB,CAAC;QAEhC;;;;;;;WAOG;QACH,QAAQ,EAAE,aAAa,CAAC;QAExB;;;;;;WAMG;QACH,OAAO,EAAE,kBAAkB,CAAC;QAE5B;;;;;;WAMG;QACH,MAAM,EAAE,cAAc,CAAC;QAEvB;;;;;;WAMG;QACH,QAAQ,EAAE,cAAc,CAAC;QAEzB;;;;;;WAMG;QACH,MAAM,EAAE,aAAa,CAAC;QAEtB;;;;;;WAMG;QACH,IAAI,EAAE,WAAW,CAAC;QAElB;;;;;WAKG;QACH,MAAM,EAAE,aAAa,CAAC;QAEtB;;;;;;WAMG;QACH,IAAI,EAAE,UAAU,CAAC;QAEjB;;;;;WAKG;QACH,SAAS,EAAE,oBAAoB,CAAC;KACjC;CACF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf;;;;;;WAMG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;WAMG;QACH,GAAG,EAAE,cAAc,CAAC;QAEpB;;;;;;;WAOG;QACH,KAAK,EAAE,UAAU,CAAC;QAElB;;;;;;;WAOG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;;WAOG;QACH,OAAO,EAAE,YAAY,CAAC;QAEtB;;;;;;;WAOG;QACH,YAAY,EAAE,iBAAiB,CAAC;QAEhC;;;;;;;WAOG;QACH,QAAQ,EAAE,aAAa,CAAC;QAExB;;;;;;WAMG;QACH,OAAO,EAAE,kBAAkB,CAAC;QAE5B;;;;;;WAMG;QACH,MAAM,EAAE,cAAc,CAAC;QAEvB;;;;;;WAMG;QACH,QAAQ,EAAE,cAAc,CAAC;QAEzB;;;;;;WAMG;QACH,MAAM,EAAE,aAAa,CAAC;QAEtB;;;;;;WAMG;QACH,IAAI,EAAE,WAAW,CAAC;QAElB;;;;;WAKG;QACH,MAAM,EAAE,aAAa,CAAC;QAEtB;;;;;;WAMG;QACH,IAAI,EAAE,UAAU,CAAC;QAEjB;;;;;;WAMG;QACH,IAAI,EAAE,IAAI,CAAC;QAEX;;;;;WAKG;QACH,SAAS,EAAE,oBAAoB,CAAC;KACjC;CACF"}
@@ -0,0 +1,17 @@
1
+ import { IDEUIBindParamLogic } from '@ibiz/model-core';
2
+ import { UILogicContext } from '../../ui-logic-context';
3
+ import { UILogicNode } from '../ui-logic-node';
4
+ /**
5
+ * 绑定参数
6
+ *
7
+ * @author lxm
8
+ * @date 2023-02-09 21:02:20
9
+ * @export
10
+ * @class BindParamNode
11
+ * @extends {UILogicNode}
12
+ */
13
+ export declare class BindParamNode extends UILogicNode {
14
+ model: IDEUIBindParamLogic;
15
+ exec(ctx: UILogicContext): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=bind-param-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bind-param-node.d.ts","sourceRoot":"","sources":["../../../../src/ui-logic/ui-logic-node/bind-param-node/bind-param-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,WAAW;IACpC,KAAK,EAAE,mBAAmB,CAAC;IAE7B,IAAI,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAW/C"}
@@ -0,0 +1,22 @@
1
+ import { RuntimeModelError } from '@ibiz-template/core';
2
+ import { handleSrcVal } from '../../utils';
3
+ import { UILogicNode } from '../ui-logic-node';
4
+ /**
5
+ * 绑定参数
6
+ *
7
+ * @author lxm
8
+ * @date 2023-02-09 21:02:20
9
+ * @export
10
+ * @class BindParamNode
11
+ * @extends {UILogicNode}
12
+ */
13
+ export class BindParamNode extends UILogicNode {
14
+ async exec(ctx) {
15
+ const { dstDEUILogicParamId, srcDEUILogicParamId } = this.model;
16
+ if (!dstDEUILogicParamId || !srcDEUILogicParamId) {
17
+ throw new RuntimeModelError(this.model, '缺少目标参数对象或者源参数对象配置');
18
+ }
19
+ const srcVal = handleSrcVal(ctx, this.model);
20
+ ctx.params[dstDEUILogicParamId] = srcVal;
21
+ }
22
+ }
@@ -5,4 +5,5 @@ export { EndNode } from './end-node/end-node';
5
5
  export { PrepareJSParamNode } from './prepare-js-param-node/prepare-js-param-node';
6
6
  export { UILogicNode } from './ui-logic-node';
7
7
  export { ViewCtrlInvokeNode } from './view-ctrl-invoke-node/view-ctrl-invoke-node';
8
+ export { BindParamNode } from './bind-param-node/bind-param-node';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui-logic/ui-logic-node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui-logic/ui-logic-node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC"}
@@ -5,3 +5,4 @@ export { EndNode } from './end-node/end-node';
5
5
  export { PrepareJSParamNode } from './prepare-js-param-node/prepare-js-param-node';
6
6
  export { UILogicNode } from './ui-logic-node';
7
7
  export { ViewCtrlInvokeNode } from './view-ctrl-invoke-node/view-ctrl-invoke-node';
8
+ export { BindParamNode } from './bind-param-node/bind-param-node';
@@ -1 +1 @@
1
- {"version":3,"file":"ui-logic-param.d.ts","sourceRoot":"","sources":["../../../src/ui-logic/ui-logic-param/ui-logic-param.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;GAOG;AACH,qBAAa,YAAY;IAQJ,KAAK,EAAE,eAAe;IAPzC;;;;;;OAMG;gBACgB,KAAK,EAAE,eAAe;IAEzC;;;;;;OAMG;IACH,IAAI,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IA6D/B;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;CAWjC"}
1
+ {"version":3,"file":"ui-logic-param.d.ts","sourceRoot":"","sources":["../../../src/ui-logic/ui-logic-param/ui-logic-param.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;GAOG;AACH,qBAAa,YAAY;IAQJ,KAAK,EAAE,eAAe;IAPzC;;;;;;OAMG;gBACgB,KAAK,EAAE,eAAe;IAEzC;;;;;;OAMG;IACH,IAAI,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAgE/B;;;;;OAKG;IACH,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;CAWjC"}
@@ -1,4 +1,4 @@
1
- import { ModelError, RuntimeError } from '@ibiz-template/core';
1
+ import { ModelError, RuntimeModelError } from '@ibiz-template/core';
2
2
  /**
3
3
  * 界面逻辑参数
4
4
  *
@@ -48,7 +48,7 @@ export class UILogicParam {
48
48
  ctx.params[tag] = control;
49
49
  }
50
50
  else {
51
- throw new RuntimeError(`没找到${m.codeName}指定部件对象`);
51
+ throw new RuntimeModelError(this.model, `视图逻辑初始化参数,未找到${m.codeName}指定部件对象`);
52
52
  }
53
53
  }
54
54
  else if (m.activeViewParam) {
@@ -1 +1 @@
1
- {"version":3,"file":"ui-logic.d.ts","sourceRoot":"","sources":["../../src/ui-logic/ui-logic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAML,WAAW,EAEZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D;;;;;;;GAOG;AACH,qBAAa,OAAO;IA2BN,SAAS,CAAC,KAAK,EAAE,UAAU;IA1BvC;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAa;IAEtD;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IAExD;;;;;OAKG;gBACmB,KAAK,EAAE,UAAU;IA0DvC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IASpD;;;;;;;;;OASG;IACG,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBxD;;;;;;;;;;;;;OAaG;cACa,QAAQ,CACtB,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC;CAiBjB"}
1
+ {"version":3,"file":"ui-logic.d.ts","sourceRoot":"","sources":["../../src/ui-logic/ui-logic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAOL,WAAW,EAEZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D;;;;;;;GAOG;AACH,qBAAa,OAAO;IA2BN,SAAS,CAAC,KAAK,EAAE,UAAU;IA1BvC;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAa;IAEtD;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IAExD;;;;;OAKG;gBACmB,KAAK,EAAE,UAAU;IA4DvC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IASpD;;;;;;;;;OASG;IACG,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBxD;;;;;;;;;;;;;OAaG;cACa,QAAQ,CACtB,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC;CAiBjB"}
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable no-await-in-loop */
2
2
  import { ModelError, RuntimeModelError } from '@ibiz-template/core';
3
3
  import { UILogicContext } from './ui-logic-context';
4
- import { DEActionNode, DEUIActionNode, EndNode, PrepareJSParamNode, StartNode, ViewCtrlInvokeNode, } from './ui-logic-node';
4
+ import { BindParamNode, DEActionNode, DEUIActionNode, EndNode, PrepareJSParamNode, StartNode, ViewCtrlInvokeNode, } from './ui-logic-node';
5
5
  import { UILogicParam } from './ui-logic-param/ui-logic-param';
6
6
  /**
7
7
  * 界面逻辑
@@ -61,12 +61,14 @@ export class UILogic {
61
61
  case 'PREPAREJSPARAM': // 准备参数
62
62
  logicNode = new PrepareJSParamNode(node);
63
63
  break;
64
- case 'RESETPARAM': // 重置参数
65
- case 'COPYPARAM': // 拷贝参数
66
64
  case 'BINDPARAM': // 绑定参数
65
+ logicNode = new BindParamNode(node);
66
+ break;
67
67
  case 'VIEWCTRLINVOKE': // 视图部件调用
68
68
  logicNode = new ViewCtrlInvokeNode(node);
69
69
  break;
70
+ case 'RESETPARAM': // 重置参数
71
+ case 'COPYPARAM': // 拷贝参数
70
72
  case 'VIEWCTRLFIREEVENT': // 视图部件事件触发
71
73
  case 'APPENDPARAM': // 附加到数组参数
72
74
  case 'SORTPARAM': // 排序数组参数
@@ -1 +1 @@
1
- {"version":3,"file":"handle-src-val.d.ts","sourceRoot":"","sources":["../../../src/ui-logic/utils/handle-src-val.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,KAAK,YAAY,GAAG;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,YAAY,GACzB,OAAO,CA+CT"}
1
+ {"version":3,"file":"handle-src-val.d.ts","sourceRoot":"","sources":["../../../src/ui-logic/utils/handle-src-val.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,KAAK,YAAY,GAAG;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,cAAc,EACnB,YAAY,EAAE,YAAY,GACzB,OAAO,CA4CT"}
@@ -10,11 +10,9 @@ import { clone } from 'ramda';
10
10
  * @return {*}
11
11
  */
12
12
  export function handleSrcVal(ctx, srcValParams) {
13
- const { srcDEUILogicParamId, srcValueType, srcFieldName, srcValue } = srcValParams;
13
+ const { srcDEUILogicParamId, srcFieldName, srcValue } = srcValParams;
14
14
  // 没有源值类型就是逻辑参数
15
- if (!srcValParams.srcValueType) {
16
- srcValParams.srcValueType = 'SRCDLPARAM';
17
- }
15
+ const srcValueType = srcValParams.srcValueType || 'SRCDLPARAM';
18
16
  let value;
19
17
  switch (srcValueType) {
20
18
  // 源逻辑参数
@@ -1,5 +1,5 @@
1
1
  import { IAppDERedirectView, IAppDataEntity, IAppRedirectView } from '@ibiz/model-core';
2
- import { IModalData } from '../../interface';
2
+ import { IModalData, IOpenViewOptions } from '../../interface';
3
3
  /**
4
4
  * 打开重定向视图
5
5
  *
@@ -12,7 +12,7 @@ import { IModalData } from '../../interface';
12
12
  * @param {IData} [data={}]
13
13
  * @return {*} {Promise<IModalData>}
14
14
  */
15
- export declare function openRedirectView(appView: IAppRedirectView, context: IContext, params?: IParams, data?: IData[]): Promise<IModalData>;
15
+ export declare function openRedirectView(appView: IAppRedirectView, context: IContext, params?: IParams, opts?: IOpenViewOptions): Promise<IModalData>;
16
16
  /**
17
17
  * 本地打开工作流重定向视图
18
18
  *
@@ -24,7 +24,7 @@ export declare function openRedirectView(appView: IAppRedirectView, context: ICo
24
24
  * @param {IContext} context
25
25
  * @param {string} linkUrl
26
26
  */
27
- export declare function toLocalOpenWFRedirectView(context: IContext, linkUrl: string): Promise<void>;
27
+ export declare function toLocalOpenWFRedirectView(context: IContext, linkUrl: string, opts?: IOpenViewOptions): Promise<void>;
28
28
  /**
29
29
  * 打开实体重定向视图
30
30
  *
@@ -37,7 +37,7 @@ export declare function toLocalOpenWFRedirectView(context: IContext, linkUrl: st
37
37
  * @param {IData[]} [data=[]]
38
38
  * @return {*} {Promise<IModalData>}
39
39
  */
40
- export declare function openDERedirectView(appView: IAppDERedirectView, context: IContext, params?: IParams, data?: IData[]): Promise<IModalData>;
40
+ export declare function openDERedirectView(appView: IAppDERedirectView, context: IContext, params?: IParams, opts?: IOpenViewOptions): Promise<IModalData>;
41
41
  /**
42
42
  * 计算重定向标识
43
43
  *
@@ -1 +1 @@
1
- {"version":3,"file":"open-redirect-view.d.ts","sourceRoot":"","sources":["../../../src/utils/open-redirect-view/open-redirect-view.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,QAAQ,EACjB,MAAM,GAAE,OAAY,EACpB,IAAI,GAAE,KAAK,EAAO,GACjB,OAAO,CAAC,UAAU,CAAC,CAOrB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAmDf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,QAAQ,EACjB,MAAM,GAAE,OAAY,EACpB,IAAI,GAAE,KAAK,EAAO,GACjB,OAAO,CAAC,UAAU,CAAC,CAyGrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,MAAM,CAAC,CA0CjB"}
1
+ {"version":3,"file":"open-redirect-view.d.ts","sourceRoot":"","sources":["../../../src/utils/open-redirect-view/open-redirect-view.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAK/D;;;;;;;;;;;GAWG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,QAAQ,EACjB,MAAM,GAAE,OAAY,EACpB,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAOrB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAoDf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,QAAQ,EACjB,MAAM,GAAE,OAAY,EACpB,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAyGrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,KAAK,GACV,OAAO,CAAC,MAAM,CAAC,CA0CjB"}
@@ -16,8 +16,8 @@ import { calcDeCodeNameById, findFieldById } from '../../model';
16
16
  * @param {IData} [data={}]
17
17
  * @return {*} {Promise<IModalData>}
18
18
  */
19
- export async function openRedirectView(appView, context, params = {}, data = []) {
20
- return openDERedirectView(appView, context, params, data);
19
+ export async function openRedirectView(appView, context, params = {}, opts = {}) {
20
+ return openDERedirectView(appView, context, params, opts);
21
21
  }
22
22
  /**
23
23
  * 本地打开工作流重定向视图
@@ -30,7 +30,7 @@ export async function openRedirectView(appView, context, params = {}, data = [])
30
30
  * @param {IContext} context
31
31
  * @param {string} linkUrl
32
32
  */
33
- export async function toLocalOpenWFRedirectView(context, linkUrl) {
33
+ export async function toLocalOpenWFRedirectView(context, linkUrl, opts = {}) {
34
34
  const i = linkUrl.lastIndexOf('?');
35
35
  const queryStr = decodeURIComponent(linkUrl.substring(i + 1, linkUrl.length));
36
36
  const params = qs.parse(queryStr, { delimiter: ';' });
@@ -65,7 +65,7 @@ export async function toLocalOpenWFRedirectView(context, linkUrl) {
65
65
  context.srfprocessinstanceid = params.srfprocessinstanceid;
66
66
  delete params.srfprocessinstanceid;
67
67
  }
68
- await ibiz.commands.execute(OpenAppViewCommand.TAG, deRdView.id, context, params);
68
+ await ibiz.commands.execute(OpenAppViewCommand.TAG, deRdView.id, context, params, opts);
69
69
  }
70
70
  /**
71
71
  * 打开实体重定向视图
@@ -79,7 +79,8 @@ export async function toLocalOpenWFRedirectView(context, linkUrl) {
79
79
  * @param {IData[]} [data=[]]
80
80
  * @return {*} {Promise<IModalData>}
81
81
  */
82
- export async function openDERedirectView(appView, context, params = {}, data = []) {
82
+ export async function openDERedirectView(appView, context, params = {}, opts = {}) {
83
+ var _a;
83
84
  // 计算重定向视图上下文参数转换
84
85
  const navContext = appView.appViewNavContexts || [];
85
86
  const navContextData = convertNavData(navContext, context, params);
@@ -91,7 +92,7 @@ export async function openDERedirectView(appView, context, params = {}, data = [
91
92
  // 重定向视图对应应用实体
92
93
  const entityId = appView.appDataEntityId;
93
94
  const key = calcDeCodeNameById(entityId);
94
- let curData = data[0] || {};
95
+ let curData = ((_a = opts.data) === null || _a === void 0 ? void 0 : _a[0]) || {};
95
96
  // 将数据主键转换到上下文当中
96
97
  context[key] = curData[key] || context[key] || params[key];
97
98
  // 实体重定向视图获取数据行为
@@ -125,7 +126,7 @@ export async function openDERedirectView(appView, context, params = {}, data = [
125
126
  });
126
127
  }
127
128
  if (linkUrl.startsWith('appredirectview?')) {
128
- await toLocalOpenWFRedirectView(context, linkUrl);
129
+ await toLocalOpenWFRedirectView(context, linkUrl, opts);
129
130
  return { ok: true, data: [] };
130
131
  }
131
132
  return { ok: false, data: [] };
@@ -151,7 +152,7 @@ export async function openDERedirectView(appView, context, params = {}, data = [
151
152
  if (refView) {
152
153
  const viewId = refView.refAppViewId;
153
154
  if (viewId) {
154
- const result = await ibiz.commands.execute(OpenAppViewCommand.TAG, viewId, context, params, { data: [curData] });
155
+ const result = await ibiz.commands.execute(OpenAppViewCommand.TAG, viewId, context, params, Object.assign(Object.assign({}, opts), { data: [curData] }));
155
156
  if (result) {
156
157
  return result;
157
158
  }
@@ -219,7 +220,7 @@ export async function calcDERdTag(entity, rdView, params, data) {
219
220
  }
220
221
  }
221
222
  if (notNilEmpty(typeValue)) {
222
- rdTag = `${defView}:${typeValue.toUpperCase()}`;
223
+ rdTag = `${defView}:${typeValue.toString().toUpperCase()}`;
223
224
  }
224
225
  else {
225
226
  rdTag = `${defView}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/runtime",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
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.6",
32
+ "@ibiz-template/core": "^0.1.7",
33
33
  "@ibiz/model-core": "^0.0.14",
34
34
  "@types/path-browserify": "^1.0.0",
35
35
  "@types/qs": "^6.9.7",
@@ -53,5 +53,5 @@
53
53
  "qx-util": "^0.4.8",
54
54
  "ramda": "^0.29.0"
55
55
  },
56
- "gitHead": "b140871c2a8700d063b3a6380f0eef5c02768822"
56
+ "gitHead": "5e283e6c4cfad7a27402a60f96d4f628bf1dbb1a"
57
57
  }
@@ -1,6 +1,6 @@
1
1
  import { ModelError, RuntimeError } from '@ibiz-template/core';
2
2
  import { IAppRedirectView } from '@ibiz/model-core';
3
- import { IModalData, IViewConfig } from '../../../interface';
3
+ import { IModalData, IOpenViewOptions, IViewConfig } from '../../../interface';
4
4
  import { calcDeCodeNameById } from '../../../model';
5
5
  import { openRedirectView } from '../../../utils';
6
6
 
@@ -34,7 +34,7 @@ export class OpenAppViewCommand {
34
34
  appViewId: string,
35
35
  context: IContext,
36
36
  params: IParams = {},
37
- opts: IData = {},
37
+ opts: IOpenViewOptions = {},
38
38
  ): Promise<IModalData | void> {
39
39
  const appView = await ibiz.hub.config.view.get(appViewId!);
40
40
  if (!appView) {
@@ -54,7 +54,7 @@ export class OpenAppViewCommand {
54
54
  fullViewModel as IAppRedirectView,
55
55
  context,
56
56
  params,
57
- opts.data,
57
+ opts,
58
58
  );
59
59
  }
60
60
  const { openMode = 'INDEXVIEWTAB' } = appView;
@@ -72,7 +72,7 @@ export class OpenAppViewCommand {
72
72
  case 'POPUPAPP':
73
73
  throw new ModelError(appView, '未支持的视图打开模式: POPUPAPP');
74
74
  case 'POPOVER':
75
- return this.openPopover(appView, opts.event, context, params);
75
+ return this.openPopover(appView, opts.event!, context, params);
76
76
  case 'DRAWER_LEFT':
77
77
  case 'DRAWER_RIGHT':
78
78
  case 'DRAWER_TOP':
@@ -135,10 +135,13 @@ export class OpenAppViewCommand {
135
135
  */
136
136
  protected async openPopover(
137
137
  appView: IViewConfig,
138
- event: MouseEvent,
138
+ event: MouseEvent | undefined,
139
139
  context: IContext,
140
140
  params: IParams = {},
141
141
  ): Promise<IModalData> {
142
+ if (!event) {
143
+ throw new RuntimeError('气泡打开缺少event');
144
+ }
142
145
  return ibiz.openView.popover(appView, event, context, params);
143
146
  }
144
147
 
@@ -200,7 +200,7 @@ export class BaseController<
200
200
  async destroyed(): Promise<void> {
201
201
  await this.onDestroyed();
202
202
  ibiz.log.debug(`${this.constructor.name}:${this.name} onDestroyed`);
203
- this._evt.emit('onDestroyed', undefined);
203
+ await this._evt.emit('onDestroyed', undefined);
204
204
  this.evt.destroy();
205
205
  }
206
206
 
@@ -189,7 +189,7 @@ export class MDControlController<
189
189
  if (!data?.length) {
190
190
  throw new RuntimeError('未选中数据');
191
191
  }
192
- const del = await ibiz.modal.confirm({
192
+ const del = await ibiz.confirm.error({
193
193
  title: '数据删除',
194
194
  desc: '确认删除数据?',
195
195
  });
@@ -252,9 +252,12 @@ export class ViewController<
252
252
  this.scheduler.defaultParamsCb = (): IUILogicParams => {
253
253
  return this.getEventArgs();
254
254
  };
255
- this.evt.onAll((_eventName, event) => {
256
- this.scheduler!.triggerViewEvent(event);
257
- });
255
+ if (this.scheduler.hasViewEventTrigger) {
256
+ // 监听视图事件触发视图事件触发器
257
+ this.evt.onAll((_eventName, event) => {
258
+ this.scheduler!.triggerViewEvent(event);
259
+ });
260
+ }
258
261
  }
259
262
 
260
263
  // 执行视图引擎的doCreated
@@ -380,5 +383,15 @@ export class ViewController<
380
383
  this.mountCounter.attend(this.layoutPanel!.model.name!);
381
384
  });
382
385
  }
386
+
387
+ if (this.scheduler?.hasControlEventTrigger) {
388
+ // 监听部件事件触发部件事件触发器
389
+ panel.evt.on('onControlEvent', event => {
390
+ this.scheduler!.triggerControlEvent(
391
+ event.triggerControlName,
392
+ event.triggerEvent,
393
+ );
394
+ });
395
+ }
383
396
  }
384
397
  }
@@ -48,7 +48,7 @@ export class CTX<V extends IViewController = IViewController> {
48
48
  * @date 2023-04-26 07:54:46
49
49
  * @protected
50
50
  */
51
- readonly evt = new QXEvent<CTXEvent>();
51
+ readonly evt = new QXEvent<CTXEvent>(3000);
52
52
 
53
53
  /**
54
54
  * 当前视图控制器集合(包含自身视图控制器,部件控制器,和下一层级的视图的控制器)
@@ -0,0 +1,40 @@
1
+ /**
2
+ * 打开视图额外参数
3
+ * @author lxm
4
+ * @date 2023-08-14 11:46:55
5
+ * @export
6
+ * @interface IOpenViewOptions
7
+ */
8
+ export interface IOpenViewOptions {
9
+ /**
10
+ * 打开方式
11
+ * @author lxm
12
+ * @date 2023-08-14 01:40:27
13
+ * @type {string}
14
+ */
15
+ openMode?: string;
16
+
17
+ /**
18
+ * 不等待路由打开
19
+ * @author lxm
20
+ * @date 2023-07-28 02:23:13
21
+ * @type {boolean}
22
+ */
23
+ noWaitRoute?: boolean;
24
+
25
+ /**
26
+ * 数据集合
27
+ * @author lxm
28
+ * @date 2023-08-14 01:40:14
29
+ * @type {IData[]}
30
+ */
31
+ data?: IData[];
32
+
33
+ /**
34
+ * 原生js事件
35
+ * @author lxm
36
+ * @date 2023-08-14 04:22:06
37
+ * @type {MouseEvent}
38
+ */
39
+ event?: MouseEvent;
40
+ }
@@ -28,3 +28,4 @@ export type {
28
28
  IAppViewConfigService,
29
29
  IViewConfig,
30
30
  } from './i-app-view-config-service/i-app-view-config-service';
31
+ export type { IOpenViewOptions } from './i-open-view-options/i-open-view-options';
@@ -88,21 +88,24 @@ export interface ISchedulerLogic {
88
88
  /**
89
89
  * 事件名称
90
90
  * @type {string}
91
- * 来源 getEventNames
92
91
  */
93
92
  eventNames?: string;
94
93
 
95
94
  /**
96
95
  * 事件参数
97
96
  * @type {string}
98
- * 来源 getEventArg
99
97
  */
100
98
  eventArg?: string;
101
99
 
102
100
  /**
103
101
  * 事件参数2
104
102
  * @type {string}
105
- * 来源 getEventArg2
106
103
  */
107
104
  eventArg2?: string;
105
+
106
+ /**
107
+ * 部件名称
108
+ * @type {string}
109
+ */
110
+ ctrlName?: string;
108
111
  }
@@ -22,4 +22,10 @@ export interface ITriggerMatchParams {
22
22
  * 来源 getEventNames
23
23
  */
24
24
  eventName?: string;
25
+
26
+ /**
27
+ * 部件名称
28
+ * @type {string}
29
+ */
30
+ ctrlName?: string;
25
31
  }