@ibiz-template/runtime 0.2.8 → 0.2.9

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 (136) hide show
  1. package/dist/index.esm.js +619 -305
  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/md-control.controller.d.ts.map +1 -1
  5. package/out/controller/common/control/md-control.controller.js +16 -21
  6. package/out/controller/control/form/form-detail/form-detail/form-detail.controller.d.ts +11 -11
  7. package/out/controller/control/form/form-detail/form-detail/form-detail.controller.d.ts.map +1 -1
  8. package/out/controller/control/form/form-detail/form-detail/form-detail.controller.js +22 -16
  9. package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.d.ts +1 -1
  10. package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.d.ts.map +1 -1
  11. package/out/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.js +2 -2
  12. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-content-type.controller.js +4 -2
  13. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.d.ts +20 -0
  14. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.d.ts.map +1 -1
  15. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.js +57 -1
  16. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.d.ts +1 -1
  17. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.d.ts.map +1 -1
  18. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  19. package/out/controller/control/grid/grid/grid.controller.js +19 -32
  20. package/out/controller/control/map/map.controller.d.ts +6 -0
  21. package/out/controller/control/map/map.controller.d.ts.map +1 -1
  22. package/out/controller/control/map/map.controller.js +35 -1
  23. package/out/controller/control/panel/panel/panel.controller.d.ts.map +1 -1
  24. package/out/controller/control/panel/panel/panel.controller.js +4 -20
  25. package/out/controller/utils/data-file-util/data-file-util.d.ts +45 -0
  26. package/out/controller/utils/data-file-util/data-file-util.d.ts.map +1 -0
  27. package/out/controller/utils/data-file-util/data-file-util.js +121 -0
  28. package/out/controller/utils/index.d.ts +1 -0
  29. package/out/controller/utils/index.d.ts.map +1 -1
  30. package/out/controller/utils/index.js +1 -0
  31. package/out/global/global-util/global-util.d.ts +2 -2
  32. package/out/global/global-util/global-util.d.ts.map +1 -1
  33. package/out/interface/controller/controller/control/panel-item/i-panel-data-container.controller.d.ts +1 -1
  34. package/out/interface/controller/controller/control/panel-item/i-panel-data-container.controller.d.ts.map +1 -1
  35. package/out/interface/controller/state/control/i-map.state.d.ts +21 -0
  36. package/out/interface/controller/state/control/i-map.state.d.ts.map +1 -1
  37. package/out/interface/index.d.ts +2 -1
  38. package/out/interface/index.d.ts.map +1 -1
  39. package/out/interface/index.js +2 -1
  40. package/out/interface/provider/i-ui-login-node.provider.d.ts +23 -0
  41. package/out/interface/provider/i-ui-login-node.provider.d.ts.map +1 -0
  42. package/out/interface/provider/index.d.ts +1 -0
  43. package/out/interface/provider/index.d.ts.map +1 -1
  44. package/out/interface/ui-login/i-ui-logic-context.d.ts +85 -0
  45. package/out/interface/ui-login/i-ui-logic-context.d.ts.map +1 -0
  46. package/out/interface/ui-login/i-ui-logic-context.js +1 -0
  47. package/out/interface/ui-login/index.d.ts +2 -0
  48. package/out/interface/ui-login/index.d.ts.map +1 -0
  49. package/out/interface/ui-login/index.js +1 -0
  50. package/out/interface/util/{i-export-excel/i-export-excel.d.ts → i-excel-util/i-excel-util.d.ts} +4 -4
  51. package/out/interface/util/i-excel-util/i-excel-util.d.ts.map +1 -0
  52. package/out/interface/util/i-excel-util/i-excel-util.js +1 -0
  53. package/out/interface/util/index.d.ts +1 -1
  54. package/out/interface/util/index.d.ts.map +1 -1
  55. package/out/model/panel/index.d.ts +1 -0
  56. package/out/model/panel/index.d.ts.map +1 -1
  57. package/out/model/panel/index.js +1 -0
  58. package/out/model/panel/panel-field.d.ts +11 -0
  59. package/out/model/panel/panel-field.d.ts.map +1 -0
  60. package/out/model/panel/panel-field.js +35 -0
  61. package/out/model/utils/util.d.ts +12 -1
  62. package/out/model/utils/util.d.ts.map +1 -1
  63. package/out/model/utils/util.js +18 -0
  64. package/out/register/helper/common-register.js +1 -1
  65. package/out/register/helper/index.d.ts +3 -2
  66. package/out/register/helper/index.d.ts.map +1 -1
  67. package/out/register/helper/index.js +3 -2
  68. package/out/register/helper/ui-logic-node-register.d.ts +25 -0
  69. package/out/register/helper/ui-logic-node-register.d.ts.map +1 -0
  70. package/out/register/helper/ui-logic-node-register.js +37 -0
  71. package/out/service/service/entity/method/de-action.d.ts.map +1 -1
  72. package/out/service/service/entity/method/de-action.js +3 -0
  73. package/out/service/service/entity/method/fetch.d.ts.map +1 -1
  74. package/out/service/service/entity/method/fetch.js +1 -1
  75. package/out/service/vo/index.d.ts +1 -0
  76. package/out/service/vo/index.d.ts.map +1 -1
  77. package/out/service/vo/index.js +1 -0
  78. package/out/service/vo/panel-data/index.d.ts +2 -0
  79. package/out/service/vo/panel-data/index.d.ts.map +1 -0
  80. package/out/service/vo/panel-data/index.js +1 -0
  81. package/out/service/vo/panel-data/panel-data.d.ts +21 -0
  82. package/out/service/vo/panel-data/panel-data.d.ts.map +1 -0
  83. package/out/service/vo/panel-data/panel-data.js +73 -0
  84. package/out/service/vo/tree-node-data/tree-data-set-node-data.d.ts.map +1 -1
  85. package/out/service/vo/tree-node-data/tree-data-set-node-data.js +6 -2
  86. package/out/ui-logic/ui-logic-context.d.ts +7 -2
  87. package/out/ui-logic/ui-logic-context.d.ts.map +1 -1
  88. package/out/ui-logic/ui-logic-context.js +5 -0
  89. package/out/ui-logic/ui-logic-node/index.d.ts +1 -0
  90. package/out/ui-logic/ui-logic-node/index.d.ts.map +1 -1
  91. package/out/ui-logic/ui-logic-node/index.js +1 -0
  92. package/out/ui-logic/ui-logic-node/pf-plugin-node/pf-plugin-node.d.ts +17 -0
  93. package/out/ui-logic/ui-logic-node/pf-plugin-node/pf-plugin-node.d.ts.map +1 -0
  94. package/out/ui-logic/ui-logic-node/pf-plugin-node/pf-plugin-node.js +19 -0
  95. package/out/ui-logic/ui-logic.d.ts.map +1 -1
  96. package/out/ui-logic/ui-logic.js +3 -1
  97. package/package.json +2 -2
  98. package/src/controller/common/control/md-control.controller.ts +22 -22
  99. package/src/controller/control/form/form-detail/form-detail/form-detail.controller.ts +35 -25
  100. package/src/controller/control/form/form-detail/form-group-panel/form-group-panel.controller.ts +2 -2
  101. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-content-type.controller.ts +2 -2
  102. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl.controller.ts +66 -1
  103. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl.state.ts +1 -1
  104. package/src/controller/control/grid/grid/grid.controller.ts +20 -32
  105. package/src/controller/control/map/map.controller.ts +38 -1
  106. package/src/controller/control/panel/panel/panel.controller.ts +4 -21
  107. package/src/controller/utils/data-file-util/data-file-util.ts +156 -0
  108. package/src/controller/utils/index.ts +1 -0
  109. package/src/global/global-util/global-util.ts +2 -2
  110. package/src/interface/controller/controller/control/panel-item/i-panel-data-container.controller.ts +1 -1
  111. package/src/interface/controller/state/control/i-map.state.ts +24 -0
  112. package/src/interface/index.ts +2 -1
  113. package/src/interface/provider/i-ui-login-node.provider.ts +23 -0
  114. package/src/interface/provider/index.ts +1 -0
  115. package/src/interface/ui-login/i-ui-logic-context.ts +95 -0
  116. package/src/interface/ui-login/index.ts +1 -0
  117. package/src/interface/util/{i-export-excel/i-export-excel.ts → i-excel-util/i-excel-util.ts} +3 -3
  118. package/src/interface/util/index.ts +1 -1
  119. package/src/model/panel/index.ts +1 -0
  120. package/src/model/panel/panel-field.ts +49 -0
  121. package/src/model/utils/util.ts +20 -0
  122. package/src/register/helper/common-register.ts +1 -1
  123. package/src/register/helper/index.ts +3 -2
  124. package/src/register/helper/ui-logic-node-register.ts +52 -0
  125. package/src/service/service/entity/method/de-action.ts +4 -1
  126. package/src/service/service/entity/method/fetch.ts +7 -1
  127. package/src/service/vo/index.ts +1 -0
  128. package/src/service/vo/panel-data/index.ts +1 -0
  129. package/src/service/vo/panel-data/panel-data.ts +93 -0
  130. package/src/service/vo/tree-node-data/tree-data-set-node-data.ts +6 -2
  131. package/src/ui-logic/ui-logic-context.ts +7 -2
  132. package/src/ui-logic/ui-logic-node/index.ts +1 -0
  133. package/src/ui-logic/ui-logic-node/pf-plugin-node/pf-plugin-node.ts +24 -0
  134. package/src/ui-logic/ui-logic.ts +3 -0
  135. package/out/interface/util/i-export-excel/i-export-excel.d.ts.map +0 -1
  136. /package/out/interface/{util/i-export-excel/i-export-excel.js → provider/i-ui-login-node.provider.js} +0 -0
@@ -0,0 +1,49 @@
1
+ import {
2
+ IPanel,
3
+ IPanelContainer,
4
+ IPanelField,
5
+ IPanelItem,
6
+ } from '@ibiz/model-core';
7
+ import { isDataContainer } from './data-container';
8
+
9
+ const ChildKeys = ['panelItems', 'panelTabPages', 'rootPanelItems'] as const;
10
+
11
+ function _getAllPanelField(model: IData): IPanelField[] {
12
+ let childItems: IPanelItem[] = [];
13
+ for (const key of ChildKeys) {
14
+ if (model[key]) {
15
+ childItems = model[key];
16
+ break;
17
+ }
18
+ }
19
+ const fields: IPanelField[] = [];
20
+
21
+ if (childItems.length) {
22
+ // 过滤出当前层级的子里面的所有面板属性
23
+ fields.push(...childItems.filter(item => item.itemType === 'FIELD'));
24
+
25
+ // 递归遍历拿子里面的成员
26
+ childItems.forEach(item => {
27
+ // 如果是数据容器则不往下找
28
+ if (!isDataContainer(item)) {
29
+ fields.push(..._getAllPanelField(item));
30
+ }
31
+ });
32
+ }
33
+
34
+ return fields;
35
+ }
36
+
37
+ /**
38
+ * 获取所有子面板属性模型
39
+ * @author lxm
40
+ * @date 2023-11-01 04:45:44
41
+ * @export
42
+ * @param {(IPanel | IPanelContainer)} model
43
+ * @return {*} {IPanelField[]}
44
+ */
45
+ export function getAllPanelField(
46
+ model: IPanel | IPanelContainer,
47
+ ): IPanelField[] {
48
+ return _getAllPanelField(model);
49
+ }
@@ -1,8 +1,10 @@
1
1
  import {
2
2
  IAppView,
3
3
  IAppViewRef,
4
+ IApplication,
4
5
  IControl,
5
6
  IModelObject,
7
+ ISysPFPlugin,
6
8
  } from '@ibiz/model-core';
7
9
 
8
10
  /**
@@ -106,3 +108,21 @@ export function parseUserParams(userParams: Record<string, string>): {
106
108
 
107
109
  return { navigateContexts, navigateParams, other };
108
110
  }
111
+
112
+ /**
113
+ * 从应用里面获取插件配置参数
114
+ *
115
+ * @author chitanda
116
+ * @date 2023-11-01 17:11:28
117
+ * @export
118
+ * @param {IApplication} app
119
+ * @param {string} id
120
+ * @return {*} {ISysPFPlugin}
121
+ */
122
+ export function getPFPlugin(app: IApplication, id: string): ISysPFPlugin {
123
+ const plugin = app.appPFPluginRefs?.find(item => item.id === id);
124
+ if (!plugin) {
125
+ throw new Error(`未找到插件${id}`);
126
+ }
127
+ return plugin;
128
+ }
@@ -18,7 +18,7 @@ export async function getPluginRegisterKey(
18
18
  );
19
19
 
20
20
  if (!plugin) {
21
- ibiz.log.error(`找不到${pluginId}的插件模型`);
21
+ ibiz.log.error(`未匹配到插件[${pluginId}]模型`);
22
22
  return;
23
23
  }
24
24
 
@@ -1,9 +1,10 @@
1
+ export * from './app-counter-register';
1
2
  export * from './control-register';
2
3
  export * from './editor-register';
3
4
  export * from './form-detail-register';
4
5
  export * from './grid-column-register';
5
6
  export * from './panel-item-register';
7
+ export * from './portlet-register';
6
8
  export * from './ui-action-register';
9
+ export * from './ui-logic-node-register';
7
10
  export * from './view-register';
8
- export * from './portlet-register';
9
- export * from './app-counter-register';
@@ -0,0 +1,52 @@
1
+ import { IAppUIAction, IDEUIPFPluginLogic } from '@ibiz/model-core';
2
+ import { RuntimeError } from '@ibiz-template/core';
3
+ import { getPluginRegisterKey } from './common-register';
4
+ import { IUILogicNodeProvider } from '../../interface';
5
+
6
+ /** 界面逻辑节点适配器前缀 */
7
+ export const UILOGINNODE_PROVIDER_PREFIX = 'UI_LOGIN_NODE';
8
+
9
+ /**
10
+ * 注册界面逻辑节点适配器
11
+ *
12
+ * @author lxm
13
+ * @date 2023-05-06 09:14:16
14
+ * @export
15
+ * @param {string} key
16
+ * @param {() => IUILogicNodeProvider} callback 生成界面行为适配器的回调
17
+ */
18
+ export function registerUILogicNodeProvider(
19
+ key: string,
20
+ callback: () => IUILogicNodeProvider,
21
+ ): void {
22
+ ibiz.register.register(`${UILOGINNODE_PROVIDER_PREFIX}_${key}`, callback);
23
+ }
24
+
25
+ /**
26
+ * 获取界面逻辑节点适配器
27
+ *
28
+ * @author chitanda
29
+ * @date 2023-11-01 17:11:43
30
+ * @export
31
+ * @param {IDEUIPFPluginLogic} model
32
+ * @return {*} {Promise<IUILogicNodeProvider>}
33
+ */
34
+ export async function getUILogicNodeProvider(
35
+ model: IDEUIPFPluginLogic,
36
+ ): Promise<IUILogicNodeProvider | undefined> {
37
+ let provider: IUILogicNodeProvider | undefined;
38
+ const { sysPFPluginId, appId } = model as Required<IAppUIAction>;
39
+
40
+ const pluginKey = await getPluginRegisterKey(sysPFPluginId, appId);
41
+ if (pluginKey) {
42
+ provider = ibiz.register.get(
43
+ `${UILOGINNODE_PROVIDER_PREFIX}_${pluginKey}`,
44
+ ) as IUILogicNodeProvider;
45
+ if (provider) {
46
+ return provider;
47
+ }
48
+ throw new RuntimeError(
49
+ `找不到界面逻辑前端插件节点,插件${pluginKey}对应的适配器`,
50
+ );
51
+ }
52
+ }
@@ -61,8 +61,11 @@ export class DEActionMethod extends Method {
61
61
  data?: IData | IData[],
62
62
  params?: IParams,
63
63
  ): Promise<HttpResponse<IData>> {
64
- // 实体逻辑处理
64
+ if (data) {
65
+ await execFieldLogics(this.entity, 'change', context, data, params);
66
+ }
65
67
 
68
+ // 实体逻辑处理
66
69
  if (this.method.actionType === 'DELOGIC') {
67
70
  const deLogic = findDELogic(this.method.appDELogicId!, this.entity);
68
71
  if (!deLogic) {
@@ -73,7 +73,13 @@ export class FetchMethod extends Method {
73
73
 
74
74
  // 计算属性逻辑,每条数据走一遍
75
75
  if (res.data) {
76
- execFieldLogics(this.entity, 'compute', context, res.data, searchParams);
76
+ await execFieldLogics(
77
+ this.entity,
78
+ 'compute',
79
+ context,
80
+ res.data,
81
+ searchParams,
82
+ );
77
83
  }
78
84
 
79
85
  return res as HttpResponse<IDataEntity[]>;
@@ -3,3 +3,4 @@ export * from './tree-node-data';
3
3
  export * from './ui-map-field';
4
4
  export * from './calendar-item-data';
5
5
  export * from './map-data';
6
+ export * from './panel-data';
@@ -0,0 +1 @@
1
+ export { PanelData } from './panel-data';
@@ -0,0 +1,93 @@
1
+ /* eslint-disable no-constructor-return */
2
+
3
+ import { IPanelField } from '@ibiz/model-core';
4
+
5
+ // 更新属性,缺的补充定义
6
+ function updateKeyDefine(target: IParams, keys: string[]): void {
7
+ keys.forEach(key => {
8
+ if (!Object.prototype.hasOwnProperty.call(target, key)) {
9
+ Object.defineProperty(target, key, {
10
+ enumerable: true,
11
+ configurable: true,
12
+ writable: true,
13
+ value: undefined,
14
+ });
15
+ }
16
+ });
17
+ }
18
+
19
+ /**
20
+ * 面板数据
21
+ * @author lxm
22
+ * @date 2023-11-01 05:13:53
23
+ * @export
24
+ * @class PanelData
25
+ */
26
+ export class PanelData {
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ [key: string | symbol]: any;
29
+
30
+ /**
31
+ * 父视图参数
32
+ * @author lxm
33
+ * @date 2023-10-27 04:08:59
34
+ * @protected
35
+ * @type {IParams}
36
+ */
37
+ protected declare _origin?: IParams;
38
+
39
+ constructor(fields: IPanelField[], origin: IParams) {
40
+ // 面板属性映射绑定项
41
+ const keyMap: Record<string, string | undefined> = {};
42
+ // 绑定项映射面板属性
43
+ const reverseKeyMap: Record<string, string> = {};
44
+
45
+ fields.forEach(field => {
46
+ keyMap[field.id!] = field.viewFieldName?.toLowerCase();
47
+ if (field.viewFieldName) {
48
+ reverseKeyMap[field.viewFieldName.toLowerCase()] = field.id!;
49
+ }
50
+ });
51
+
52
+ return new Proxy(this, {
53
+ set(target: PanelData, p: string, value: unknown): boolean {
54
+ if (Object.prototype.hasOwnProperty.call(keyMap, p)) {
55
+ if (keyMap[p]) {
56
+ // 有面板属性有绑定数据项修改原始对象
57
+ origin[keyMap[p]!] = value;
58
+ } else {
59
+ // 有面板属性没有绑定数据项的改自身
60
+ target[p] = value;
61
+ }
62
+ } else {
63
+ // 没有面板属性的直接修改原始对象,视图面板对象一开始就是空的,没有任何属性
64
+ origin[keyMap[p]!] = value;
65
+ }
66
+
67
+ return true;
68
+ },
69
+
70
+ get(target: PanelData, p: string, _receiver: unknown): unknown {
71
+ // 有映射拿原始对象
72
+ if (keyMap[p]) {
73
+ return origin[keyMap[p]!];
74
+ }
75
+
76
+ // 源对象的属性可以直接拿
77
+ if (Object.prototype.hasOwnProperty.call(origin, p)) {
78
+ return origin[p];
79
+ }
80
+
81
+ // 最后拿自身
82
+ return target[p];
83
+ },
84
+
85
+ ownKeys(target: PanelData): ArrayLike<string | symbol> {
86
+ // 只返回原始数据的键,自身的只是前端映射使用不需要在复制和后台传递时使用
87
+ const allKeys = Object.keys(origin);
88
+ updateKeyDefine(target, allKeys);
89
+ return allKeys;
90
+ },
91
+ });
92
+ }
93
+ }
@@ -34,8 +34,12 @@ export class TreeDataSetNodeData extends TreeNodeData implements ITreeNodeData {
34
34
  super(model, parentNodeData, opts);
35
35
  const { data } = opts;
36
36
  this.deData = data;
37
- this.text = data.srfmajortext;
38
- this.value = data.srfkey;
37
+ this.text = model.textAppDEFieldId
38
+ ? data[model.textAppDEFieldId]
39
+ : data.srfmajortext;
40
+ this.value = model.idAppDEFieldId
41
+ ? data[model.idAppDEFieldId]
42
+ : data.srfkey;
39
43
  this.id = parentNodeData
40
44
  ? `${parentNodeData.id}:${model.id}@${data.srfkey}`
41
45
  : model.id + data.srfkey;
@@ -1,4 +1,4 @@
1
- import { IUILogicParams } from '../interface';
1
+ import { IUILogicContext, IUILogicParams } from '../interface';
2
2
  import { UILogicParam } from './ui-logic-param/ui-logic-param';
3
3
 
4
4
  /**
@@ -9,7 +9,7 @@ import { UILogicParam } from './ui-logic-param/ui-logic-param';
9
9
  * @export
10
10
  * @class UILogicContext
11
11
  */
12
- export class UILogicContext {
12
+ export class UILogicContext implements IUILogicContext {
13
13
  /**
14
14
  * 上一次返回值
15
15
  * @author lxm
@@ -98,6 +98,7 @@ export class UILogicContext {
98
98
 
99
99
  /**
100
100
  * 重置实体逻辑参数
101
+ *
101
102
  * @author lxm
102
103
  * @date 2023-03-24 09:18:02
103
104
  * @param {string} name
@@ -108,6 +109,7 @@ export class UILogicContext {
108
109
 
109
110
  /**
110
111
  * 重新建立变量
112
+ *
111
113
  * @author lxm
112
114
  * @date 2023-03-24 09:20:24
113
115
  * @param {string} name
@@ -118,6 +120,7 @@ export class UILogicContext {
118
120
 
119
121
  /**
120
122
  * 设置上一次返回值
123
+ *
121
124
  * @author lxm
122
125
  * @date 2023-09-04 09:23:52
123
126
  * @param {unknown} value
@@ -128,6 +131,7 @@ export class UILogicContext {
128
131
 
129
132
  /**
130
133
  * 初始化上一次返回参数类型的逻辑参数
134
+ *
131
135
  * @author lxm
132
136
  * @date 2023-09-04 09:52:00
133
137
  * @param {string} tag
@@ -142,6 +146,7 @@ export class UILogicContext {
142
146
 
143
147
  /**
144
148
  * 是否是实体参数变量(即后台数据对象)
149
+ *
145
150
  * @author lxm
146
151
  * @date 2023-09-22 03:40:30
147
152
  * @param {string} paramId
@@ -7,6 +7,7 @@ export { UILogicNode } from './ui-logic-node';
7
7
  export { ViewCtrlInvokeNode } from './view-ctrl-invoke-node/view-ctrl-invoke-node';
8
8
  export { BindParamNode } from './bind-param-node/bind-param-node';
9
9
  export { MsgBoxNode } from './msg-box-node/msg-box-node';
10
+ export { PFPluginNode } from './pf-plugin-node/pf-plugin-node';
10
11
  export { DebugParamNode } from './debug-param-node/debug-param-node';
11
12
  export { ResetParamNode } from './reset-param-node/reset-param-node';
12
13
  export { CopyParamNode } from './copy-param-node/copy-param-node';
@@ -0,0 +1,24 @@
1
+ import { IDEUIPFPluginLogic } from '@ibiz/model-core';
2
+ import { UILogicContext } from '../../ui-logic-context';
3
+ import { UILogicNode } from '../ui-logic-node';
4
+ import { getUILogicNodeProvider } from '../../../register';
5
+
6
+ /**
7
+ * 前端插件节点
8
+ *
9
+ * @author chitanda
10
+ * @date 2023-11-01 18:11:55
11
+ * @export
12
+ * @class PFPluginNode
13
+ * @extends {UILogicNode}
14
+ */
15
+ export class PFPluginNode extends UILogicNode {
16
+ declare model: IDEUIPFPluginLogic;
17
+
18
+ async exec(ctx: UILogicContext): Promise<void> {
19
+ const provider = await getUILogicNodeProvider(this.model);
20
+ if (provider) {
21
+ await provider.exec(this.model, ctx);
22
+ }
23
+ }
24
+ }
@@ -14,6 +14,7 @@ import {
14
14
  EndNode,
15
15
  ExecuteDELogicNode,
16
16
  MsgBoxNode,
17
+ PFPluginNode,
17
18
  PrepareJSParamNode,
18
19
  RenewParamNode,
19
20
  ResetParamNode,
@@ -124,6 +125,8 @@ export class UILogic {
124
125
  logicNode = new ExecuteDELogicNode(node);
125
126
  break;
126
127
  case 'PFPLUGIN': // 前端插件调用
128
+ logicNode = new PFPluginNode(node);
129
+ break;
127
130
  default:
128
131
  throw new ModelError(node, `未支持的逻辑节点类型: ${logicNodeType}`);
129
132
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"i-export-excel.d.ts","sourceRoot":"","sources":["../../../../src/interface/util/i-export-excel/i-export-excel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,iBAAiB,CAAC,IAAI,EAAE;QACtB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,IAAI,EAAE,KAAK,EAAE,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;KACpB,GAAG,IAAI,CAAC;CACV"}