@ibiz-template/runtime 0.7.41-alpha.128 → 0.7.41-alpha.130

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 (82) hide show
  1. package/dist/index.esm.js +334 -72
  2. package/dist/index.system.min.js +1 -1
  3. package/out/constant/predefined-attributes.d.ts +5 -1
  4. package/out/constant/predefined-attributes.d.ts.map +1 -1
  5. package/out/constant/predefined-attributes.js +4 -0
  6. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.d.ts +6 -0
  7. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.d.ts.map +1 -1
  8. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.js +25 -0
  9. package/out/controller/control/search-bar/search-bar-filter.controller.d.ts.map +1 -1
  10. package/out/controller/control/search-bar/search-bar-filter.controller.js +1 -1
  11. package/out/controller/control/tree/tree.controller.d.ts +16 -1
  12. package/out/controller/control/tree/tree.controller.d.ts.map +1 -1
  13. package/out/controller/control/tree/tree.controller.js +22 -0
  14. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.d.ts.map +1 -1
  15. package/out/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.js +1 -1
  16. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts.map +1 -1
  17. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.js +2 -3
  18. package/out/interface/provider/i-md-ctrl-item.provider.d.ts +14 -0
  19. package/out/interface/provider/i-md-ctrl-item.provider.d.ts.map +1 -0
  20. package/out/interface/provider/i-md-ctrl-item.provider.js +1 -0
  21. package/out/interface/provider/i-tree-node.provider.d.ts +14 -0
  22. package/out/interface/provider/i-tree-node.provider.d.ts.map +1 -0
  23. package/out/interface/provider/i-tree-node.provider.js +1 -0
  24. package/out/interface/provider/index.d.ts +2 -0
  25. package/out/interface/provider/index.d.ts.map +1 -1
  26. package/out/interface/register/i-register-params.d.ts +7 -3
  27. package/out/interface/register/i-register-params.d.ts.map +1 -1
  28. package/out/locale/en/index.d.ts +6 -0
  29. package/out/locale/en/index.d.ts.map +1 -1
  30. package/out/locale/en/index.js +6 -0
  31. package/out/locale/zh-CN/index.d.ts +6 -0
  32. package/out/locale/zh-CN/index.d.ts.map +1 -1
  33. package/out/locale/zh-CN/index.js +6 -0
  34. package/out/register/custom-register.d.ts +16 -0
  35. package/out/register/custom-register.d.ts.map +1 -1
  36. package/out/register/custom-register.js +62 -16
  37. package/out/register/helper/ac-item-register.d.ts +2 -5
  38. package/out/register/helper/ac-item-register.d.ts.map +1 -1
  39. package/out/register/helper/ac-item-register.js +16 -5
  40. package/out/register/helper/app-counter-register.d.ts +5 -9
  41. package/out/register/helper/app-counter-register.d.ts.map +1 -1
  42. package/out/register/helper/app-counter-register.js +19 -9
  43. package/out/register/helper/app-menu-item-register.d.ts +3 -5
  44. package/out/register/helper/app-menu-item-register.d.ts.map +1 -1
  45. package/out/register/helper/app-menu-item-register.js +14 -19
  46. package/out/register/helper/error-view-register.d.ts +5 -9
  47. package/out/register/helper/error-view-register.d.ts.map +1 -1
  48. package/out/register/helper/error-view-register.js +5 -9
  49. package/out/register/helper/index.d.ts +2 -0
  50. package/out/register/helper/index.d.ts.map +1 -1
  51. package/out/register/helper/index.js +2 -0
  52. package/out/register/helper/md-ctrl-item-register.d.ts +19 -0
  53. package/out/register/helper/md-ctrl-item-register.d.ts.map +1 -0
  54. package/out/register/helper/md-ctrl-item-register.js +41 -0
  55. package/out/register/helper/tree-grid-ex-column-register.d.ts +6 -7
  56. package/out/register/helper/tree-grid-ex-column-register.d.ts.map +1 -1
  57. package/out/register/helper/tree-grid-ex-column-register.js +20 -6
  58. package/out/register/helper/tree-node-register.d.ts +20 -0
  59. package/out/register/helper/tree-node-register.d.ts.map +1 -0
  60. package/out/register/helper/tree-node-register.js +59 -0
  61. package/package.json +2 -2
  62. package/src/constant/predefined-attributes.ts +5 -0
  63. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.ts +31 -0
  64. package/src/controller/control/search-bar/search-bar-filter.controller.ts +4 -1
  65. package/src/controller/control/tree/tree.controller.ts +26 -0
  66. package/src/controller/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-field-column/tree-grid-ex-node-column.controller.ts +4 -1
  67. package/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts +2 -4
  68. package/src/interface/provider/i-md-ctrl-item.provider.ts +14 -0
  69. package/src/interface/provider/i-tree-node.provider.ts +14 -0
  70. package/src/interface/provider/index.ts +2 -0
  71. package/src/interface/register/i-register-params.ts +14 -2
  72. package/src/locale/en/index.ts +11 -0
  73. package/src/locale/zh-CN/index.ts +11 -0
  74. package/src/register/custom-register.ts +73 -15
  75. package/src/register/helper/ac-item-register.ts +18 -5
  76. package/src/register/helper/app-counter-register.ts +23 -9
  77. package/src/register/helper/app-menu-item-register.ts +18 -19
  78. package/src/register/helper/error-view-register.ts +5 -9
  79. package/src/register/helper/index.ts +2 -0
  80. package/src/register/helper/md-ctrl-item-register.ts +61 -0
  81. package/src/register/helper/tree-grid-ex-column-register.ts +25 -6
  82. package/src/register/helper/tree-node-register.ts +78 -0
@@ -28,6 +28,7 @@ import {
28
28
  ITreeController,
29
29
  MDCtrlLoadParams,
30
30
  IApiNewTreeNodeParams,
31
+ ITreeNodeProvider,
31
32
  } from '../../../interface';
32
33
  import { UIActionUtil } from '../../../ui-action';
33
34
  import { MDControlController } from '../../common';
@@ -46,6 +47,7 @@ import { convertNavData } from '../../../utils';
46
47
  import { OpenAppViewCommand } from '../../../command';
47
48
  import { PresetIdentifier } from '../../../constant';
48
49
  import { ViewLogicScheduler } from '../../../logic-scheduler';
50
+ import { getTreeNodeProvider } from '../../../register';
49
51
 
50
52
  export type DropNodeRS = {
51
53
  minorEntityId: string;
@@ -121,6 +123,13 @@ export class TreeController<
121
123
  */
122
124
  contextMenus: { [p: string]: ContextMenuController } = {};
123
125
 
126
+ /**
127
+ * @description 树节点适配器
128
+ * @type {{ [p: string]: ITreeNodeProvider }}
129
+ * @memberof TreeController
130
+ */
131
+ nodeProvider: { [p: string]: ITreeNodeProvider } = {};
132
+
124
133
  /**
125
134
  * 是否启用快速搜索
126
135
  * @author lxm
@@ -189,6 +198,7 @@ export class TreeController<
189
198
  await this.initQuickSearch();
190
199
  await this.initService();
191
200
  await this.initCounter();
201
+ await this.initTreeNodeProvider();
192
202
  // 初始化上下文菜单控制器
193
203
  this.model.detreeNodes!.forEach(node => {
194
204
  if (node.decontextMenu?.detoolbarItems?.length) {
@@ -207,6 +217,22 @@ export class TreeController<
207
217
  );
208
218
  }
209
219
 
220
+ /**
221
+ * @description 初始化树节点适配器
222
+ * @protected
223
+ * @returns {*} {Promise<void>}
224
+ * @memberof TreeController
225
+ */
226
+ protected async initTreeNodeProvider(): Promise<void> {
227
+ const { detreeNodes = [] } = this.model;
228
+ await Promise.all(
229
+ detreeNodes.map(async node => {
230
+ const provider = await getTreeNodeProvider(node, this.model);
231
+ if (node.id && provider) this.nodeProvider[node.id!] = provider;
232
+ }),
233
+ );
234
+ }
235
+
210
236
  /**
211
237
  * @description 初始化界面行为组
212
238
  * @protected
@@ -236,7 +236,10 @@ export class TreeGridExNodeColumnController
236
236
  this.nodeEditItem?.editor &&
237
237
  this.nodeEditItem.editor.editorType !== 'HIDDEN'
238
238
  ) {
239
- this.editorProvider = await getEditorProvider(this.nodeEditItem.editor);
239
+ this.editorProvider = await getEditorProvider(
240
+ this.nodeEditItem.editor,
241
+ this.treeGrid.model,
242
+ );
240
243
  if (this.editorProvider) {
241
244
  this.editor = await this.editorProvider.createController(
242
245
  this.nodeEditItem.editor,
@@ -272,10 +272,8 @@ export class TreeGridExController<
272
272
  */
273
273
  protected async initColumnsController(column: IDETreeColumn): Promise<void> {
274
274
  // 初始化适配器
275
- const provider = await getTreeGridExColumnProvider(column);
276
- if (!provider) {
277
- return;
278
- }
275
+ const provider = await getTreeGridExColumnProvider(column, this.model);
276
+ if (!provider) return;
279
277
  this.providers[column.codeName!] = provider;
280
278
 
281
279
  // 初始化树表格(增强)列控制器
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @description 多数据部件项适配器接口
3
+ * @export
4
+ * @interface IMDCtrlItemProvider
5
+ */
6
+ export interface IMDCtrlItemProvider {
7
+ /**
8
+ * @description 部件项组件
9
+ * @type {*}
10
+ * @memberof IMDCtrlItemProvider
11
+ */
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ component: any;
14
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @description 树节点适配器接口
3
+ * @export
4
+ * @interface ITreeNodeProvider
5
+ */
6
+ export interface ITreeNodeProvider {
7
+ /**
8
+ * @description 树节点组件
9
+ * @type {*}
10
+ * @memberof ITreeNodeProvider
11
+ */
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ component: any;
14
+ }
@@ -34,3 +34,5 @@ export type {
34
34
  export type { IUILogicProvider } from './i-ui-logic.provider';
35
35
  export type { IDELogicProvider } from './i-de-logic.provider';
36
36
  export type { IDELogicNodeProvider } from './i-de-logic-node.provider';
37
+ export type { ITreeNodeProvider } from './i-tree-node.provider';
38
+ export type { IMDCtrlItemProvider } from './i-md-ctrl-item.provider';
@@ -1,5 +1,7 @@
1
1
  import {
2
+ IAppCounter,
2
3
  IAppDataEntity,
4
+ IAppDEACMode,
3
5
  IAppDELogic,
4
6
  IAppDEMethod,
5
7
  IAppMenuItem,
@@ -10,6 +12,8 @@ import {
10
12
  IDBPortletPart,
11
13
  IDELogicNode,
12
14
  IDEToolbarItem,
15
+ IDETreeColumn,
16
+ IDETreeNode,
13
17
  IDEUILogic,
14
18
  IDEUILogicNode,
15
19
  IEditor,
@@ -62,7 +66,11 @@ export interface IRegisterParams {
62
66
  * | IDBPortletPart
63
67
  * | IDEToolbarItem
64
68
  * | IDEUILogicNode
65
- * | IDELogicNode)}
69
+ * | IDELogicNode
70
+ * | IDETreeColumn
71
+ * | IAppCounter
72
+ * | IAppDEACMode
73
+ * | IDETreeNode)}
66
74
  * @memberof IRegisterParams
67
75
  */
68
76
  mainModel:
@@ -79,5 +87,9 @@ export interface IRegisterParams {
79
87
  | IDBPortletPart
80
88
  | IDEToolbarItem
81
89
  | IDEUILogicNode
82
- | IDELogicNode;
90
+ | IDELogicNode
91
+ | IDETreeColumn
92
+ | IAppCounter
93
+ | IAppDEACMode
94
+ | IDETreeNode;
83
95
  }
@@ -614,6 +614,17 @@ export const en = {
614
614
  '[Custom Extended Portlet] Cannot find an adapter with a custom registration ID of [{registerKey}].',
615
615
  toolbarItemCustomRegistration:
616
616
  '[Custom Extended Toolbar Item] Cannot find an adapter with a custom registration ID of [{registerKey}].',
617
+ treeTableColumnCustomRegistration:
618
+ '[Custom Extended TreeGrid Column] Cannot find an adapter with a custom registration ID of [{registerKey}].',
619
+ counterCustomRegistration:
620
+ '[Custom Extended Counter] Cannot find an adapter with a custom registration ID of [{registerKey}].',
621
+ acItemCustomRegistration:
622
+ '[Custom Extended AC Item] Cannot find an adapter with a custom registration ID of [{registerKey}].',
623
+ treeNodePlugin: 'No adapter found for the tree node plugin {pluginKey}',
624
+ treeNodeCustomRegistration:
625
+ '[Custom Extended Tree Node] Cannot find an adapter with a custom registration ID of [{registerKey}].',
626
+ mdCtrlItemCustomRegistration:
627
+ '[Custom Extended MDCtrl Item] Cannot find an adapter with a custom registration ID of [{registerKey}].',
617
628
  },
618
629
  },
619
630
  service: {
@@ -502,6 +502,17 @@ export const zhCn = {
502
502
  '[自定义扩展门户部件] 找不到自定义注册标识为[{registerKey}]对应的适配器',
503
503
  toolbarItemCustomRegistration:
504
504
  '[自定义扩展工具栏项] 找不到自定义注册标识为[{registerKey}]对应的适配器',
505
+ treeTableColumnCustomRegistration:
506
+ '[自定义扩展树表格列] 找不到自定义注册标识为[{registerKey}]对应的适配器',
507
+ counterCustomRegistration:
508
+ '[自定义扩展计数器] 找不到自定义注册标识为[{registerKey}]对应的适配器',
509
+ acItemCustomRegistration:
510
+ '[自定义扩展自填列表项] 找不到自定义注册标识为[{registerKey}]对应的适配器',
511
+ treeNodePlugin: '找不到树节点插件{pluginKey}对应的适配器',
512
+ treeNodeCustomRegistration:
513
+ '[自定义扩展树节点] 找不到自定义注册标识为[{registerKey}]对应的适配器',
514
+ mdCtrlItemCustomRegistration:
515
+ '[自定义扩展多数据部件项] 找不到自定义注册标识为[{registerKey}]对应的适配器',
505
516
  },
506
517
  },
507
518
  service: {
@@ -1,4 +1,9 @@
1
- import { IControl, IAppDEMethod, IAppDEUIAction } from '@ibiz/model-core';
1
+ import {
2
+ IControl,
3
+ IAppDEMethod,
4
+ IAppDEUIAction,
5
+ IAppDEACMode,
6
+ } from '@ibiz/model-core';
2
7
  import { IRegisterParams } from '../interface';
3
8
  import {
4
9
  VIEW_PROVIDER_PREFIX,
@@ -16,6 +21,11 @@ import {
16
21
  UILOGICNODE_PROVIDER_PREFIX,
17
22
  DELOGICNODE_PROVIDER_PREFIX,
18
23
  TOOLBAR_ITEM_PROVIDER_PREFIX,
24
+ TREEGRIDEX_COLUMN_PROVIDER_PREFIX,
25
+ APP_COUNTER_PROVIDER_PREFIX,
26
+ AC_ITEM_PROVIDER_PREFIX,
27
+ TREE_NODE_PROVIDER_PREFIX,
28
+ MDCTRL_ITEM_PROVIDER_PREFIX,
19
29
  } from './helper';
20
30
  import { calcDeCodeNameById } from '../model';
21
31
 
@@ -34,14 +44,15 @@ export class CustomRegister {
34
44
  static getRegisterKey(registerType: string, opts: IRegisterParams): string {
35
45
  // 如果自定义扩展标记,则直接返回
36
46
  const { mainModel } = opts;
37
- if (mainModel && (mainModel as IData).customExtTag) {
38
- return (mainModel as IData).customExtTag;
47
+ if (mainModel && (mainModel as IData).extPFPluginId) {
48
+ return (mainModel as IData).extPFPluginId;
39
49
  }
40
50
  switch (registerType) {
41
51
  case VIEW_PROVIDER_PREFIX:
42
52
  return this.calcExtensionViewKey(opts);
43
53
  case CONTROL_PROVIDER_PREFIX:
44
54
  case PORTLET_PROVIDER_PREFIX:
55
+ case MDCTRL_ITEM_PROVIDER_PREFIX:
45
56
  return this.calcExtensionControlKey(opts);
46
57
  case PANELITEM_PROVIDER_PREFIX:
47
58
  return this.calcExtensionPanelItemKey(opts);
@@ -49,6 +60,8 @@ export class CustomRegister {
49
60
  case GRIDCOLUMN_PROVIDER_PREFIX:
50
61
  case APPMENUITEM_PROVIDER_PREFIX:
51
62
  case TOOLBAR_ITEM_PROVIDER_PREFIX:
63
+ case TREEGRIDEX_COLUMN_PROVIDER_PREFIX:
64
+ case TREE_NODE_PROVIDER_PREFIX:
52
65
  return this.calcExtensionControlItemKey(opts);
53
66
  case EDITOR_PROVIDER_PREFIX:
54
67
  return this.calcExtensionEditorKey(opts);
@@ -62,6 +75,10 @@ export class CustomRegister {
62
75
  case UILOGICNODE_PROVIDER_PREFIX:
63
76
  case DELOGICNODE_PROVIDER_PREFIX:
64
77
  return this.calcExtensionLogicNodeKey(opts);
78
+ case APP_COUNTER_PROVIDER_PREFIX:
79
+ return this.calcExtensionCounterKey(opts);
80
+ case AC_ITEM_PROVIDER_PREFIX:
81
+ return this.calcExtensionACItemKey(opts);
65
82
  default:
66
83
  return '';
67
84
  }
@@ -151,22 +168,24 @@ export class CustomRegister {
151
168
  let key = '';
152
169
  if (mainModel) {
153
170
  key = (mainModel.appId || 'DEFAULT').toUpperCase();
154
- const { appDataEntityId, controlType, codeName } = control as IControl;
155
- if (appDataEntityId) {
156
- key += `@${calcDeCodeNameById(appDataEntityId).toUpperCase()}`;
157
- } else {
158
- key += '@APP';
159
- }
160
- if (controlType) {
161
- key += `@${controlType.toUpperCase()}`;
171
+ if (control) {
172
+ const { appDataEntityId, controlType, codeName } = control;
173
+ if (appDataEntityId) {
174
+ key += `@${calcDeCodeNameById(appDataEntityId).toUpperCase()}`;
175
+ } else {
176
+ key += '@APP';
177
+ }
178
+ if (controlType) {
179
+ key += `@${controlType.toUpperCase()}`;
180
+ }
181
+ if (codeName) {
182
+ key += `@${codeName.toUpperCase()}`;
183
+ }
162
184
  }
185
+ const codeName = mainModel.codeName || mainModel.id;
163
186
  if (codeName) {
164
187
  key += `@${codeName.toUpperCase()}`;
165
188
  }
166
- const _codeName = mainModel.codeName || mainModel.id;
167
- if (_codeName) {
168
- key += `@${_codeName.toUpperCase()}`;
169
- }
170
189
  }
171
190
  return key;
172
191
  }
@@ -285,4 +304,43 @@ export class CustomRegister {
285
304
  }
286
305
  return key;
287
306
  }
307
+
308
+ /**
309
+ * @description 计算计数器key,(appId/DEFAULT@计数器codeName)全大写
310
+ * @static
311
+ * @param {IRegisterParams} opts
312
+ * @returns {*} {string}
313
+ * @memberof CustomRegister
314
+ */
315
+ static calcExtensionCounterKey(opts: IRegisterParams): string {
316
+ const { mainModel } = opts;
317
+ let key: string = (mainModel.appId || 'DEFAULT').toUpperCase();
318
+ if (mainModel.codeName) {
319
+ key += `@${mainModel.codeName.toUpperCase()}`;
320
+ }
321
+ return key;
322
+ }
323
+
324
+ /**
325
+ * @description 计算自填列表项key,(appId/DEFAULT@实体codeName@实体自填模式codeName)全大写
326
+ * @static
327
+ * @param {IRegisterParams} opts
328
+ * @returns {*} {string}
329
+ * @memberof CustomRegister
330
+ */
331
+ static calcExtensionACItemKey(opts: IRegisterParams): string {
332
+ const { mainModel } = opts;
333
+ let key: string = '';
334
+ if (mainModel) {
335
+ const { appId, appDataEntityId, codeName } = mainModel as IAppDEACMode;
336
+ key = (appId || 'DEFAULT').toUpperCase();
337
+ if (appDataEntityId) {
338
+ key += `@${calcDeCodeNameById(appDataEntityId).toUpperCase()}`;
339
+ }
340
+ if (codeName) {
341
+ key += `@${codeName.toUpperCase()}`;
342
+ }
343
+ }
344
+ return key;
345
+ }
288
346
  }
@@ -1,6 +1,7 @@
1
1
  import { IAppDEACMode } from '@ibiz/model-core';
2
2
  import { getPluginRegisterKey } from './common-register';
3
3
  import { IAcItemProvider } from '../../interface';
4
+ import { CustomRegister } from '../custom-register';
4
5
 
5
6
  /** 自填列表项适配器前缀 */
6
7
  export const AC_ITEM_PROVIDER_PREFIX = 'AC_ITEM';
@@ -36,13 +37,10 @@ function getProvider(key: string): IAcItemProvider | undefined {
36
37
  }
37
38
 
38
39
  /**
39
- * 获取自填列表项适配器
40
- *
41
- * @author zhanghengfeng
42
- * @date 2024-05-21 17:05:45
40
+ * @description 获取自填列表项适配器
43
41
  * @export
44
42
  * @param {IAppDEACMode} model
45
- * @return {*} {(Promise<IAcItemProvider | undefined>)}
43
+ * @returns {*} {(Promise<IAcItemProvider | undefined>)}
46
44
  */
47
45
  export async function getAcItemProvider(
48
46
  model: IAppDEACMode,
@@ -50,6 +48,21 @@ export async function getAcItemProvider(
50
48
  let provider: IAcItemProvider | undefined;
51
49
  const { itemSysPFPluginId, appId } = model;
52
50
 
51
+ // 找自定义注册的适配器
52
+ const registerKey = CustomRegister.getRegisterKey(AC_ITEM_PROVIDER_PREFIX, {
53
+ mainModel: model,
54
+ });
55
+ provider = getProvider(registerKey);
56
+ if (!provider) {
57
+ ibiz.log.debug(
58
+ ibiz.i18n.t('runtime.register.helper.acItemCustomRegistration', {
59
+ registerKey,
60
+ }),
61
+ );
62
+ } else {
63
+ return provider;
64
+ }
65
+
53
66
  // 找插件适配器
54
67
  if (itemSysPFPluginId) {
55
68
  const pluginKey = await getPluginRegisterKey(itemSysPFPluginId, appId);
@@ -2,16 +2,15 @@ import { RuntimeError } from '@ibiz-template/core';
2
2
  import { IAppCounter } from '@ibiz/model-core';
3
3
  import { IAppCounterProvider } from '../../interface';
4
4
  import { getPluginRegisterKey } from './common-register';
5
+ import { CustomRegister } from '../custom-register';
5
6
 
6
7
  /** 系统计数器适配器前缀 */
7
8
  export const APP_COUNTER_PROVIDER_PREFIX = 'APPCOUNTER';
8
9
 
9
10
  /**
10
- * 注册系统计数器适配器
11
- * @author lxm
12
- * @date 2023-05-06 09:14:16
11
+ * @description 注册系统计数器适配器
13
12
  * @export
14
- * @param {string} key
13
+ * @param {string} key 注册key
15
14
  * @param {() => IAppCounterProvider} callback 生成系统计数器适配器的回调
16
15
  */
17
16
  export function registerAppCounterProvider(
@@ -28,12 +27,10 @@ function getProvider(key: string): IAppCounterProvider | undefined {
28
27
  }
29
28
 
30
29
  /**
31
- * 获取系统计数器适配器
32
- * @author lxm
33
- * @date 2023-05-06 09:29:23
30
+ * @description 获取系统计数器适配器
34
31
  * @export
35
- * @param {IAppView} model
36
- * @return {*} {Promise<IAppCounterProvider>}
32
+ * @param {IAppCounter} model
33
+ * @returns {*} {Promise<IAppCounterProvider>}
37
34
  */
38
35
  export async function getAppCounterProvider(
39
36
  model: IAppCounter,
@@ -41,6 +38,23 @@ export async function getAppCounterProvider(
41
38
  let provider: IAppCounterProvider | undefined;
42
39
  const { codeName, counterType, sysPFPluginId, appId } =
43
40
  model as Required<IAppCounter>;
41
+ // 找自定义注册的适配器
42
+ const registerKey = CustomRegister.getRegisterKey(
43
+ APP_COUNTER_PROVIDER_PREFIX,
44
+ {
45
+ mainModel: model,
46
+ },
47
+ );
48
+ provider = getProvider(registerKey);
49
+ if (!provider) {
50
+ ibiz.log.debug(
51
+ ibiz.i18n.t('runtime.register.helper.counterCustomRegistration', {
52
+ registerKey,
53
+ }),
54
+ );
55
+ } else {
56
+ return provider;
57
+ }
44
58
 
45
59
  // 找插件适配器
46
60
  if (sysPFPluginId) {
@@ -2,6 +2,7 @@
2
2
  import { IAppMenu, IAppMenuItem } from '@ibiz/model-core';
3
3
  import { getPluginRegisterKey } from './common-register';
4
4
  import { IAppMenuItemProvider } from '../../interface';
5
+ import { CustomRegister } from '../custom-register';
5
6
 
6
7
  /** 应用菜单项适配器前缀 */
7
8
  export const APPMENUITEM_PROVIDER_PREFIX = 'APPMENUITEM';
@@ -29,13 +30,11 @@ function getProvider(key: string): IAppMenuItemProvider | undefined {
29
30
  }
30
31
 
31
32
  /**
32
- * 获取应用菜单项适配器
33
- *
34
- * @author chitanda
35
- * @date 2023-11-01 17:11:43
33
+ * @description 获取应用菜单项适配器
36
34
  * @export
37
35
  * @param {IAppMenuItem} model
38
- * @return {*} {Promise<IAppMenuItemProvider>}
36
+ * @param {IAppMenu} control
37
+ * @returns {*} {(Promise<IAppMenuItemProvider | undefined>)}
39
38
  */
40
39
  export async function getAppMenuItemProvider(
41
40
  model: IAppMenuItem,
@@ -45,20 +44,20 @@ export async function getAppMenuItemProvider(
45
44
  const { sysPFPluginId, appId, itemType } = model as Required<IAppMenuItem>;
46
45
 
47
46
  // 找自定义注册的适配器
48
- // const registerKey = CustomRegister.getRegisterKey(
49
- // APPMENUITEM_PROVIDER_PREFIX,
50
- // {
51
- // mainModel: model,
52
- // control,
53
- // },
54
- // );
55
- // provider = getProvider(registerKey);
56
- // if (provider) return provider;
57
- // ibiz.log.debug(
58
- // ibiz.i18n.t('runtime.register.helper.menuItemCustomRegistration', {
59
- // registerKey,
60
- // }),
61
- // );
47
+ const registerKey = CustomRegister.getRegisterKey(
48
+ APPMENUITEM_PROVIDER_PREFIX,
49
+ {
50
+ mainModel: model,
51
+ control,
52
+ },
53
+ );
54
+ provider = getProvider(registerKey);
55
+ if (provider) return provider;
56
+ ibiz.log.debug(
57
+ ibiz.i18n.t('runtime.register.helper.menuItemCustomRegistration', {
58
+ registerKey,
59
+ }),
60
+ );
62
61
 
63
62
  // 找插件适配器
64
63
  if (sysPFPluginId) {
@@ -4,12 +4,10 @@ import { IErrorViewProvider } from '../../interface';
4
4
  export const ERROR_VIEW_PROVIDER_PREFIX = 'ERROR_VIEW';
5
5
 
6
6
  /**
7
- * 注册错误视图适配器
8
- * @author lxm
9
- * @date 2023-05-06 09:14:16
7
+ * @description 注册错误视图适配器
10
8
  * @export
11
9
  * @param {string} key
12
- * @param {() => IErrorViewProvider} callback 生成错误视图适配器的回调
10
+ * @param {() => IErrorViewProvider} callback
13
11
  */
14
12
  export function registerErrorViewProvider(
15
13
  key: string,
@@ -25,12 +23,10 @@ function getProvider(key: string): IErrorViewProvider | undefined {
25
23
  }
26
24
 
27
25
  /**
28
- * 获取错误视图适配器
29
- * @author lxm
30
- * @date 2023-05-06 09:29:23
26
+ * @description 获取错误视图适配器
31
27
  * @export
32
- * @param {IAppView} model
33
- * @return {*} {Promise<IErrorViewProvider>}
28
+ * @param {string} code
29
+ * @returns {*} {(IErrorViewProvider | undefined)}
34
30
  */
35
31
  export function getErrorViewProvider(
36
32
  code: string,
@@ -21,3 +21,5 @@ export * from './app-func-block-register';
21
21
  export * from './ui-logic-register';
22
22
  export * from './de-logic-register';
23
23
  export * from './de-logic-node-register';
24
+ export * from './tree-node-register';
25
+ export * from './md-ctrl-item-register';
@@ -0,0 +1,61 @@
1
+ import { IControl } from '@ibiz/model-core';
2
+ import { IMDCtrlItemProvider } from '../../interface';
3
+ import { CustomRegister } from '../custom-register';
4
+
5
+ /** 多数据部件项适配器前缀 */
6
+ export const MDCTRL_ITEM_PROVIDER_PREFIX = 'MDCTRL_ITEM';
7
+
8
+ /**
9
+ * @description 注册多数据部件项适配器
10
+ * @export
11
+ * @param {string} key
12
+ * @param {() => IMDCtrlItemProvider} callback
13
+ */
14
+ export function registerMDCtrlItemProvider(
15
+ key: string,
16
+ callback: () => IMDCtrlItemProvider,
17
+ ): void {
18
+ ibiz.register.register(`${MDCTRL_ITEM_PROVIDER_PREFIX}_${key}`, callback);
19
+ }
20
+
21
+ function getProvider(key: string): IMDCtrlItemProvider | undefined {
22
+ return ibiz.register.get(
23
+ `${MDCTRL_ITEM_PROVIDER_PREFIX}_${key}`,
24
+ ) as IMDCtrlItemProvider;
25
+ }
26
+
27
+ /**
28
+ * @description 获取多数据部件项适配器
29
+ * @export
30
+ * @param {IControl} model
31
+ * @returns {*} {(IMDCtrlItemProvider | undefined)}
32
+ */
33
+ export function getMDCtrlItemProvider(
34
+ model: IControl,
35
+ ): IMDCtrlItemProvider | undefined {
36
+ let provider: IMDCtrlItemProvider | undefined;
37
+
38
+ const { controlType } = model as Required<IControl>;
39
+
40
+ // 找自定义注册的适配器
41
+ const registerKey = CustomRegister.getRegisterKey(
42
+ MDCTRL_ITEM_PROVIDER_PREFIX,
43
+ {
44
+ mainModel: model,
45
+ },
46
+ );
47
+ provider = getProvider(registerKey);
48
+ if (!provider) {
49
+ ibiz.log.debug(
50
+ ibiz.i18n.t('runtime.register.helper.mdCtrlItemCustomRegistration', {
51
+ registerKey,
52
+ }),
53
+ );
54
+ } else {
55
+ return provider;
56
+ }
57
+
58
+ // 找部件类型
59
+ provider = getProvider(controlType);
60
+ return provider;
61
+ }
@@ -1,6 +1,7 @@
1
- import { IDETreeColumn } from '@ibiz/model-core';
1
+ import { IDETreeColumn, IDETreeGridEx } from '@ibiz/model-core';
2
2
  import { ITreeGridExColumnProvider } from '../../interface';
3
3
  import { getPluginRegisterKey } from './common-register';
4
+ import { CustomRegister } from '../custom-register';
4
5
 
5
6
  /** 表格列适配器前缀 */
6
7
  export const TREEGRIDEX_COLUMN_PROVIDER_PREFIX = 'TREEGRIDEX_COLUMN';
@@ -30,19 +31,37 @@ function getProvider(key: string): ITreeGridExColumnProvider | undefined {
30
31
  }
31
32
 
32
33
  /**
33
- * 获取表格列适配器
34
- * @author lxm
35
- * @date 2023-05-06 09:29:23
34
+ * @description 获取树表格列适配器
36
35
  * @export
37
- * @param {IAppView} model
38
- * @return {*} {Promise<ITreeGridExColumnProvider>}
36
+ * @param {IDETreeColumn} model
37
+ * @param {IDETreeGridEx} grid
38
+ * @returns {*} {(Promise<ITreeGridExColumnProvider | undefined>)}
39
39
  */
40
40
  export async function getTreeGridExColumnProvider(
41
41
  model: IDETreeColumn,
42
+ grid: IDETreeGridEx,
42
43
  ): Promise<ITreeGridExColumnProvider | undefined> {
43
44
  let provider: ITreeGridExColumnProvider | undefined;
44
45
  const { columnType, appId, renderSysPFPluginId } =
45
46
  model as Required<IDETreeColumn>;
47
+ // 找自定义注册的适配器
48
+ const registerKey = CustomRegister.getRegisterKey(
49
+ TREEGRIDEX_COLUMN_PROVIDER_PREFIX,
50
+ {
51
+ mainModel: model,
52
+ control: grid,
53
+ },
54
+ );
55
+ provider = getProvider(registerKey);
56
+ if (!provider) {
57
+ ibiz.log.debug(
58
+ ibiz.i18n.t('runtime.register.helper.treeTableColumnCustomRegistration', {
59
+ registerKey,
60
+ }),
61
+ );
62
+ } else {
63
+ return provider;
64
+ }
46
65
 
47
66
  // 树表格列插件
48
67
  if (renderSysPFPluginId) {