@ibiz-template/runtime 0.5.0-beta.4 → 0.5.0-beta.5

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 (83) hide show
  1. package/dist/index.esm.js +548 -142
  2. package/dist/index.system.min.js +1 -1
  3. package/out/controller/control/app-menu/app-menu.controller.d.ts +34 -1
  4. package/out/controller/control/app-menu/app-menu.controller.d.ts.map +1 -1
  5. package/out/controller/control/app-menu/app-menu.controller.js +47 -5
  6. package/out/controller/control/gantt/gantt.controller.d.ts.map +1 -1
  7. package/out/controller/control/gantt/gantt.controller.js +3 -3
  8. package/out/controller/control/grid/grid/entity-schema.d.ts +16 -0
  9. package/out/controller/control/grid/grid/entity-schema.d.ts.map +1 -0
  10. package/out/controller/control/grid/grid/entity-schema.js +81 -0
  11. package/out/controller/control/grid/grid/grid.controller.d.ts +14 -0
  12. package/out/controller/control/grid/grid/grid.controller.d.ts.map +1 -1
  13. package/out/controller/control/grid/grid/grid.controller.js +43 -1
  14. package/out/controller/control/grid/grid/grid.service.js +1 -1
  15. package/out/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.js +1 -1
  16. package/out/controller/control/search-bar/entity-schema.d.ts +13 -0
  17. package/out/controller/control/search-bar/entity-schema.d.ts.map +1 -0
  18. package/out/controller/control/search-bar/entity-schema.js +151 -0
  19. package/out/controller/control/search-bar/search-bar-filter.controller.d.ts +9 -0
  20. package/out/controller/control/search-bar/search-bar-filter.controller.d.ts.map +1 -1
  21. package/out/controller/control/search-bar/search-bar-filter.controller.js +26 -6
  22. package/out/controller/control/search-bar/search-bar.controller.d.ts +29 -1
  23. package/out/controller/control/search-bar/search-bar.controller.d.ts.map +1 -1
  24. package/out/controller/control/search-bar/search-bar.controller.js +55 -8
  25. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.d.ts.map +1 -1
  26. package/out/controller/control/tree-grid-ex/tree-grid-ex.controller.js +2 -1
  27. package/out/controller/utils/index.d.ts +1 -0
  28. package/out/controller/utils/index.d.ts.map +1 -1
  29. package/out/controller/utils/index.js +1 -0
  30. package/out/controller/utils/jsonschema/entity.d.ts +11 -0
  31. package/out/controller/utils/jsonschema/entity.d.ts.map +1 -0
  32. package/out/controller/utils/jsonschema/entity.js +16 -0
  33. package/out/controller/utils/jsonschema/index.d.ts +2 -0
  34. package/out/controller/utils/jsonschema/index.d.ts.map +1 -0
  35. package/out/controller/utils/jsonschema/index.js +1 -0
  36. package/out/interface/provider/i-app-menu-item.provider.d.ts +31 -0
  37. package/out/interface/provider/i-app-menu-item.provider.d.ts.map +1 -0
  38. package/out/interface/provider/i-app-menu-item.provider.js +1 -0
  39. package/out/interface/provider/index.d.ts +1 -0
  40. package/out/interface/provider/index.d.ts.map +1 -1
  41. package/out/interface/service/i-data-entity/i-data-entity.d.ts +0 -17
  42. package/out/interface/service/i-data-entity/i-data-entity.d.ts.map +1 -1
  43. package/out/register/helper/app-menu-item-register.d.ts +25 -0
  44. package/out/register/helper/app-menu-item-register.d.ts.map +1 -0
  45. package/out/register/helper/app-menu-item-register.js +52 -0
  46. package/out/register/helper/index.d.ts +1 -0
  47. package/out/register/helper/index.d.ts.map +1 -1
  48. package/out/register/helper/index.js +1 -0
  49. package/out/service/app-data-entity/app-data-entity.d.ts +0 -9
  50. package/out/service/app-data-entity/app-data-entity.d.ts.map +1 -1
  51. package/out/service/app-data-entity/app-data-entity.js +11 -41
  52. package/out/service/de-service-util.js +1 -1
  53. package/out/service/service/entity/method/de-action.d.ts +11 -0
  54. package/out/service/service/entity/method/de-action.d.ts.map +1 -1
  55. package/out/service/service/entity/method/de-action.js +31 -4
  56. package/out/service/utils/de-cache/de-cache.js +3 -3
  57. package/out/utils/open-redirect-view/open-redirect-view.d.ts +17 -4
  58. package/out/utils/open-redirect-view/open-redirect-view.d.ts.map +1 -1
  59. package/out/utils/open-redirect-view/open-redirect-view.js +20 -4
  60. package/package.json +3 -3
  61. package/src/controller/control/app-menu/app-menu.controller.ts +64 -6
  62. package/src/controller/control/gantt/gantt.controller.ts +3 -3
  63. package/src/controller/control/grid/grid/entity-schema.ts +105 -0
  64. package/src/controller/control/grid/grid/grid.controller.ts +57 -1
  65. package/src/controller/control/grid/grid/grid.service.ts +1 -1
  66. package/src/controller/control/grid/grid-column/grid-field-column/grid-field-column.controller.ts +1 -1
  67. package/src/controller/control/search-bar/entity-schema.ts +178 -0
  68. package/src/controller/control/search-bar/search-bar-filter.controller.ts +32 -9
  69. package/src/controller/control/search-bar/search-bar.controller.ts +69 -9
  70. package/src/controller/control/tree-grid-ex/tree-grid-ex.controller.ts +2 -2
  71. package/src/controller/utils/index.ts +1 -0
  72. package/src/controller/utils/jsonschema/entity.ts +19 -0
  73. package/src/controller/utils/jsonschema/index.ts +1 -0
  74. package/src/interface/provider/i-app-menu-item.provider.ts +40 -0
  75. package/src/interface/provider/index.ts +1 -0
  76. package/src/interface/service/i-data-entity/i-data-entity.ts +0 -19
  77. package/src/register/helper/app-menu-item-register.ts +65 -0
  78. package/src/register/helper/index.ts +1 -0
  79. package/src/service/app-data-entity/app-data-entity.ts +11 -46
  80. package/src/service/de-service-util.ts +1 -1
  81. package/src/service/service/entity/method/de-action.ts +44 -4
  82. package/src/service/utils/de-cache/de-cache.ts +3 -3
  83. package/src/utils/open-redirect-view/open-redirect-view.ts +31 -4
@@ -1,7 +1,8 @@
1
1
  import { IAppMenu, IAppMenuItem } from '@ibiz/model-core';
2
- import { IAppMenuState, IAppMenuEvent, IAppMenuController, IAppService } from '../../../interface';
2
+ import { IAppMenuState, IAppMenuEvent, IAppMenuController, IAppService, IAppMenuItemProvider } from '../../../interface';
3
3
  import { AppCounter } from '../../../service';
4
4
  import { ControlController } from '../../common';
5
+ import { CTX } from '../../ctx';
5
6
  /**
6
7
  * 应用菜单控制器
7
8
  *
@@ -14,6 +15,22 @@ import { ControlController } from '../../common';
14
15
  export declare class AppMenuController extends ControlController<IAppMenu, IAppMenuState, IAppMenuEvent> implements IAppMenuController {
15
16
  app: IAppService;
16
17
  protected initState(): void;
18
+ /**
19
+ * 所有菜单项,平铺开
20
+ * @author lxm
21
+ * @date 2023-12-29 02:43:35
22
+ * @type {IAppMenuItem[]}
23
+ */
24
+ allAppMenuItems: IAppMenuItem[];
25
+ /**
26
+ * 菜单项适配器集合
27
+ * @author lxm
28
+ * @date 2023-07-19 04:14:50
29
+ * @type {{ [key: string]: IProvider }}
30
+ */
31
+ itemProviders: {
32
+ [key: string]: IAppMenuItemProvider;
33
+ };
17
34
  /**
18
35
  * 视图层级
19
36
  *
@@ -22,7 +39,16 @@ export declare class AppMenuController extends ControlController<IAppMenu, IAppM
22
39
  * @memberof AppMenuController
23
40
  */
24
41
  get routeDepth(): number | undefined;
42
+ constructor(model: IAppMenu, context: IContext, params: IParams, ctx: CTX);
25
43
  protected onCreated(): Promise<void>;
44
+ /**
45
+ * 初始化菜单项的适配器
46
+ * @author lxm
47
+ * @date 2023-12-29 02:50:20
48
+ * @protected
49
+ * @return {*} {Promise<void>}
50
+ */
51
+ protected initAppMenuItemProviders(): Promise<void>;
26
52
  /**
27
53
  * 菜单项点击回调,触发对应的应用功能
28
54
  *
@@ -43,6 +69,13 @@ export declare class AppMenuController extends ControlController<IAppMenu, IAppM
43
69
  visible: boolean;
44
70
  permitted: boolean;
45
71
  };
72
+ /**
73
+ * 所有项平铺
74
+ * @author lxm
75
+ * @date 2023-12-29 02:42:39
76
+ * @protected
77
+ */
78
+ protected flattenAllItems(): void;
46
79
  /**
47
80
  * 所有项平铺
48
81
  * @return {*}
@@ -1 +1 @@
1
- {"version":3,"file":"app-menu.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/app-menu/app-menu.controller.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EACL,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;;;GAQG;AACH,qBAAa,iBACX,SAAQ,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,CAChE,YAAW,kBAAkB;IAE7B,GAAG,EAAG,WAAW,CAAC;IAElB,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B;;;;;;OAMG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;cAEe,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1C;;;;;;;OAOG;IACG,eAAe,CACnB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,UAAU,EAClB,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAkChB;;;;;;OAMG;IAEH,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG;QACrC,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;KACpB;IAwBD;;;;;OAKG;IACH,WAAW,IAAI,YAAY,EAAE;IAc7B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAQzC;;;;;OAKG;IACH,SAAS,CAAC,wBAAwB,IAAI,IAAI;CAkB3C"}
1
+ {"version":3,"file":"app-menu.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/app-menu/app-menu.controller.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EACL,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC;;;;;;;;GAQG;AACH,qBAAa,iBACX,SAAQ,iBAAiB,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,CAChE,YAAW,kBAAkB;IAE7B,GAAG,EAAG,WAAW,CAAC;IAElB,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B;;;;;OAKG;IACH,eAAe,EAAG,YAAY,EAAE,CAAC;IAEjC;;;;;OAKG;IACH,aAAa,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,CAAA;KAAE,CAAM;IAE5D;;;;;;OAMG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;gBAEW,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG;cAKzD,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1C;;;;;;OAMG;cACa,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAWzD;;;;;;;OAOG;IACG,eAAe,CACnB,EAAE,EAAE,MAAM,EACV,KAAK,CAAC,EAAE,UAAU,EAClB,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAwChB;;;;;;OAMG;IAEH,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG;QACrC,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;KACpB;IAwBD;;;;;OAKG;IACH,SAAS,CAAC,eAAe,IAAI,IAAI;IAcjC;;;;;OAKG;IACH,WAAW,IAAI,YAAY,EAAE;IAI7B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAQzC;;;;;OAKG;IACH,SAAS,CAAC,wBAAwB,IAAI,IAAI;CAkB3C"}
@@ -1,6 +1,7 @@
1
1
  import { findRecursiveChild, RuntimeError, RuntimeModelError, } from '@ibiz-template/core';
2
2
  import { AppFuncCommand } from '../../../command';
3
3
  import { ControlController } from '../../common';
4
+ import { getAppMenuItemProvider } from '../../../register';
4
5
  /**
5
6
  * 应用菜单控制器
6
7
  *
@@ -25,15 +26,42 @@ export class AppMenuController extends ControlController {
25
26
  get routeDepth() {
26
27
  return this.view.modal.routeDepth;
27
28
  }
29
+ constructor(model, context, params, ctx) {
30
+ super(model, context, params, ctx);
31
+ /**
32
+ * 菜单项适配器集合
33
+ * @author lxm
34
+ * @date 2023-07-19 04:14:50
35
+ * @type {{ [key: string]: IProvider }}
36
+ */
37
+ this.itemProviders = {};
38
+ this.flattenAllItems();
39
+ }
28
40
  async onCreated() {
29
41
  var _a;
30
42
  await super.onCreated();
31
43
  this.app = await ibiz.hub.getApp(this.context.srfappid);
44
+ await this.initAppMenuItemProviders();
32
45
  // 初始化菜单项状态
33
46
  (_a = this.model.appMenuItems) === null || _a === void 0 ? void 0 : _a.forEach(item => {
34
47
  this.initMenuItemState(item);
35
48
  });
36
49
  }
50
+ /**
51
+ * 初始化菜单项的适配器
52
+ * @author lxm
53
+ * @date 2023-12-29 02:50:20
54
+ * @protected
55
+ * @return {*} {Promise<void>}
56
+ */
57
+ async initAppMenuItemProviders() {
58
+ await Promise.all(this.allAppMenuItems.map(async (item) => {
59
+ const provider = await getAppMenuItemProvider(item);
60
+ if (provider) {
61
+ this.itemProviders[item.id] = provider;
62
+ }
63
+ }));
64
+ }
37
65
  /**
38
66
  * 菜单项点击回调,触发对应的应用功能
39
67
  *
@@ -54,6 +82,11 @@ export class AppMenuController extends ControlController {
54
82
  eventArg: id,
55
83
  event,
56
84
  });
85
+ // 如果有适配器,走适配器的点击处理
86
+ const provider = this.itemProviders[id];
87
+ if (provider && provider.onClick) {
88
+ return provider.onClick(menuItem, event, this);
89
+ }
57
90
  if (!menuItem.appFuncId) {
58
91
  throw new RuntimeModelError(menuItem, '没有配置应用功能');
59
92
  }
@@ -101,11 +134,11 @@ export class AppMenuController extends ControlController {
101
134
  }
102
135
  /**
103
136
  * 所有项平铺
104
- * @return {*}
105
- * @author: zhujiamin
106
- * @Date: 2022-09-09 16:48:21
137
+ * @author lxm
138
+ * @date 2023-12-29 02:42:39
139
+ * @protected
107
140
  */
108
- getAllItems() {
141
+ flattenAllItems() {
109
142
  const result = [];
110
143
  const flattenMenus = (menuItems) => {
111
144
  menuItems.forEach(item => {
@@ -116,7 +149,16 @@ export class AppMenuController extends ControlController {
116
149
  });
117
150
  };
118
151
  flattenMenus(this.model.appMenuItems);
119
- return result;
152
+ this.allAppMenuItems = result;
153
+ }
154
+ /**
155
+ * 所有项平铺
156
+ * @return {*}
157
+ * @author: zhujiamin
158
+ * @Date: 2022-09-09 16:48:21
159
+ */
160
+ getAllItems() {
161
+ return this.allAppMenuItems;
120
162
  }
121
163
  /**
122
164
  * 根据id去视图控制器里取得计数器对象
@@ -1 +1 @@
1
- {"version":3,"file":"gantt.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/gantt/gantt.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD;;;;;;;;;GASG;AACH,qBAAa,eACX,SAAQ,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAC/D,YAAW,gBAAgB;IAEnB,OAAO,EAAE,YAAY,CAAC;IAE9B;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;IAM3B;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAExC;;;;;;OAMG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5C;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIvC;;;;;;OAMG;IACH,qBAAqB,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK;IAgBjE;;;;;;;;OAQG;IACG,cAAc,CAClB,QAAQ,EAAE,cAAc,GAAG,KAAK,EAChC,IAAI,EAAE,KAAK,EACX,eAAe,GAAE,OAAe,GAC/B,OAAO,CAAC,IAAI,CAAC;CA+BjB"}
1
+ {"version":3,"file":"gantt.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/gantt/gantt.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvD;;;;;;;;;GASG;AACH,qBAAa,eACX,SAAQ,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAC/D,YAAW,gBAAgB;IAEnB,OAAO,EAAE,YAAY,CAAC;IAE9B;;;;;;OAMG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;IAK3B;;;;;;OAMG;IACH,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI;IAExC;;;;;;OAMG;cACa,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5C;;;;;OAKG;IACH,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIvC;;;;;;OAMG;IACH,qBAAqB,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK;IAgBjE;;;;;;;;OAQG;IACG,cAAc,CAClB,QAAQ,EAAE,cAAc,GAAG,KAAK,EAChC,IAAI,EAAE,KAAK,EACX,eAAe,GAAE,OAAe,GAC/B,OAAO,CAAC,IAAI,CAAC;CA+BjB"}
@@ -1,5 +1,6 @@
1
1
  import { GanttService } from './gantt.service';
2
2
  import { TreeGridExController } from '../tree-grid-ex';
3
+ import { calcDeCodeNameById } from '../../../model';
3
4
  /**
4
5
  * 甘特图控制器
5
6
  *
@@ -20,7 +21,6 @@ export class GanttController extends TreeGridExController {
20
21
  */
21
22
  initState() {
22
23
  super.initState();
23
- this.state.rootNodes = [];
24
24
  this.state.ganttStyle = {};
25
25
  }
26
26
  /**
@@ -94,9 +94,9 @@ export class GanttController extends TreeGridExController {
94
94
  ? this.transformNodeDataItem(nodeModel, data)
95
95
  : data;
96
96
  if (Object.keys(newData).length > 0) {
97
- const [, entityCodename] = nodeModel.appDataEntityId.split('.');
97
+ const deName = calcDeCodeNameById(nodeModel.appDataEntityId);
98
98
  const tempContext = Object.assign(this.context.clone(), {
99
- [entityCodename]: currentNode.srfkey,
99
+ [deName]: currentNode.srfkey,
100
100
  });
101
101
  const response = await this.service.execDeService(nodeModel.appDataEntityId, 'update', tempContext, newData);
102
102
  if (response.status === 200) {
@@ -0,0 +1,16 @@
1
+ import { IDEGridDataItem, IDEGridFieldColumn } from '@ibiz/model-core';
2
+ import { GridController } from './grid.controller';
3
+ /**
4
+ * 根据json模型计算出表格列模型
5
+ * @author lxm
6
+ * @date 2024-01-02 10:27:40
7
+ * @export
8
+ * @param {IData} json
9
+ * @param {SearchBarController} c
10
+ * @return {*} {ISearchBarFilter[]}
11
+ */
12
+ export declare function calcColumnModelBySchema(json: IData, c: GridController): Promise<{
13
+ degridColumns: IDEGridFieldColumn[];
14
+ degridDataItems: IDEGridDataItem[];
15
+ } | undefined>;
16
+ //# sourceMappingURL=entity-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-schema.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/grid/grid/entity-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASnD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,KAAK,EACX,CAAC,EAAE,cAAc,GAChB,OAAO,CACN;IAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;IAAC,eAAe,EAAE,eAAe,EAAE,CAAA;CAAE,GAC3E,SAAS,CACZ,CA+EA"}
@@ -0,0 +1,81 @@
1
+ const TypeToDataType = {
2
+ string: 25,
3
+ number: 6,
4
+ integer: 9,
5
+ date: 5,
6
+ };
7
+ /**
8
+ * 根据json模型计算出表格列模型
9
+ * @author lxm
10
+ * @date 2024-01-02 10:27:40
11
+ * @export
12
+ * @param {IData} json
13
+ * @param {SearchBarController} c
14
+ * @return {*} {ISearchBarFilter[]}
15
+ */
16
+ export async function calcColumnModelBySchema(json, c) {
17
+ var _a;
18
+ if (!json.properties) {
19
+ return;
20
+ }
21
+ const { properties } = json;
22
+ if (!(Object.keys(properties).length > 0)) {
23
+ return;
24
+ }
25
+ const addFields = [];
26
+ Object.keys(properties).forEach((key) => {
27
+ let type;
28
+ switch (properties[key].type) {
29
+ case 'string':
30
+ type = 'string';
31
+ if (properties[key].format === 'date-time') {
32
+ type = 'date';
33
+ }
34
+ break;
35
+ case 'integer':
36
+ type = 'integer';
37
+ break;
38
+ case 'number':
39
+ type = 'number';
40
+ break;
41
+ default:
42
+ ibiz.log.error(`未支持的类型${properties[key].type}`);
43
+ return;
44
+ }
45
+ addFields.push({
46
+ key,
47
+ description: properties[key].description,
48
+ type,
49
+ });
50
+ });
51
+ // 属性codeName对应的属性id
52
+ const codeNameToId = {};
53
+ const dataEntity = await ibiz.hub.getAppDataEntity(c.model.appDataEntityId, c.model.appId);
54
+ (_a = dataEntity.appDEFields) === null || _a === void 0 ? void 0 : _a.forEach(field => {
55
+ codeNameToId[field.codeName.toLowerCase()] = field.id;
56
+ });
57
+ const addColumns = [];
58
+ const addDataItems = [];
59
+ addFields.forEach(item => {
60
+ addColumns.push({
61
+ appId: c.model.appId,
62
+ appDEFieldId: codeNameToId[item.key],
63
+ id: item.key,
64
+ codeName: item.key,
65
+ columnType: 'DEFGRIDCOLUMN',
66
+ width: 150,
67
+ widthUnit: 'PX',
68
+ valueType: 'SIMPLE',
69
+ caption: item.description,
70
+ dataItemName: item.key,
71
+ });
72
+ addDataItems.push({
73
+ appId: c.model.appId,
74
+ appDEFieldId: codeNameToId[item.key],
75
+ id: item.key,
76
+ valueType: 'SIMPLE',
77
+ dataType: TypeToDataType[item.type],
78
+ });
79
+ });
80
+ return { degridColumns: addColumns, degridDataItems: addDataItems };
81
+ }
@@ -40,6 +40,13 @@ export declare class GridController extends MDControlController<IDEGrid, IGridSt
40
40
  * @type {boolean}
41
41
  */
42
42
  isMultistageHeader: boolean;
43
+ /**
44
+ * 是否添加jsonschema里定义的表格列
45
+ * @author lxm
46
+ * @date 2024-01-02 05:27:16
47
+ * @type {boolean}
48
+ */
49
+ addSchemaColumn: boolean;
43
50
  /**
44
51
  * 所有表格列控制器集合
45
52
  *
@@ -159,6 +166,13 @@ export declare class GridController extends MDControlController<IDEGrid, IGridSt
159
166
  * @returns {*} {Promise<void>}
160
167
  */
161
168
  protected onCreated(): Promise<void>;
169
+ /**
170
+ * 根据jsonschema初始化自定义表格列
171
+ * @author lxm
172
+ * @date 2024-01-02 04:41:23
173
+ * @return {*} {Promise<void>}
174
+ */
175
+ initByEntitySchema(): Promise<void>;
162
176
  /**
163
177
  * 初始化表格分组
164
178
  * @author lxm
@@ -1 +1 @@
1
- {"version":3,"file":"grid.controller.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/grid/grid/grid.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grid.controller.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/grid/grid/grid.controller.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,9 @@ import { getGridColumnProvider } from '../../../../register';
8
8
  import { Srfuf } from '../../../../service';
9
9
  import { MDControlController } from '../../../common';
10
10
  import { GridNotifyState } from '../../../constant';
11
- import { exportData, getDefaultValue, isValueChange } from '../../../utils';
11
+ import { exportData, getDefaultValue, getEntitySchema, isValueChange, } from '../../../utils';
12
12
  import { handleAllSettled, ScriptFactory } from '../../../../utils';
13
+ import { calcColumnModelBySchema } from './entity-schema';
13
14
  /**
14
15
  * 表格控制器
15
16
  *
@@ -36,6 +37,13 @@ export class GridController extends MDControlController {
36
37
  * @type {boolean}
37
38
  */
38
39
  this.isMultistageHeader = false;
40
+ /**
41
+ * 是否添加jsonschema里定义的表格列
42
+ * @author lxm
43
+ * @date 2024-01-02 05:27:16
44
+ * @type {boolean}
45
+ */
46
+ this.addSchemaColumn = false;
39
47
  /**
40
48
  * 所有表格列控制器集合
41
49
  *
@@ -143,6 +151,7 @@ export class GridController extends MDControlController {
143
151
  * @returns {*} {Promise<void>}
144
152
  */
145
153
  async onCreated() {
154
+ await this.initByEntitySchema();
146
155
  await super.onCreated();
147
156
  this.service = new GridService(this.model);
148
157
  await this.service.init(this.context);
@@ -155,6 +164,39 @@ export class GridController extends MDControlController {
155
164
  // 初始化表格分组
156
165
  await this.initGroup();
157
166
  }
167
+ /**
168
+ * 根据jsonschema初始化自定义表格列
169
+ * @author lxm
170
+ * @date 2024-01-02 04:41:23
171
+ * @return {*} {Promise<void>}
172
+ */
173
+ async initByEntitySchema() {
174
+ if (!this.addSchemaColumn) {
175
+ return;
176
+ }
177
+ const json = await getEntitySchema(this.model.appDataEntityId, this.context);
178
+ if (!json) {
179
+ return;
180
+ }
181
+ const result = await calcColumnModelBySchema(json, this);
182
+ if (result && result.degridColumns.length > 0) {
183
+ const { degridColumns, degridDataItems } = result;
184
+ // 修改模型之前拷贝一份,避免污染原始数据
185
+ this.model = clone(this.model);
186
+ this.model.degridColumns = [
187
+ ...(this.model.degridColumns || []).filter(item => {
188
+ return degridColumns.findIndex(x => x.id === item.id) === -1;
189
+ }),
190
+ ...degridColumns,
191
+ ];
192
+ this.model.degridDataItems = [
193
+ ...(this.model.degridDataItems || []).filter(item => {
194
+ return degridDataItems.findIndex(x => x.id === item.id) === -1;
195
+ }),
196
+ ...degridDataItems,
197
+ ];
198
+ }
199
+ }
158
200
  /**
159
201
  * 初始化表格分组
160
202
  * @author lxm
@@ -29,7 +29,7 @@ export class GridService extends MDControlService {
29
29
  // 后台实体属性
30
30
  if (deField) {
31
31
  const deFieldKey = deField.toLowerCase();
32
- const dataItem = dataItems.find(item => item.appDEFieldId === deField);
32
+ const dataItem = dataItems.find(item => item.id === column.dataItemName);
33
33
  if (dataItem) {
34
34
  mapField = new UIMapField(uiKey, deFieldKey, {
35
35
  isOriginField: true,
@@ -200,7 +200,7 @@ export class GridFieldColumnController extends GridColumnController {
200
200
  calcFieldAgg(items) {
201
201
  const { aggField, aggMode, aggValueFormat, unitName } = this.model;
202
202
  // 无聚合配置的列,返回undefined
203
- if (aggMode === 'NONE') {
203
+ if (isNil(aggMode) || aggMode === 'NONE') {
204
204
  return;
205
205
  }
206
206
  const fieldName = aggField || this.model.id;
@@ -0,0 +1,13 @@
1
+ import { ISearchBarFilter } from '@ibiz/model-core';
2
+ import { SearchBarController } from './search-bar.controller';
3
+ /**
4
+ * 根据json模型计算出过滤项模型
5
+ * @author lxm
6
+ * @date 2024-01-02 10:27:40
7
+ * @export
8
+ * @param {IData} json
9
+ * @param {SearchBarController} c
10
+ * @return {*} {ISearchBarFilter[]}
11
+ */
12
+ export declare function calcFilterModelBySchema(json: IData, c: SearchBarController): ISearchBarFilter[];
13
+ //# sourceMappingURL=entity-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-schema.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/entity-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AA2F9D;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,KAAK,EACX,CAAC,EAAE,mBAAmB,GACrB,gBAAgB,EAAE,CAwEpB"}
@@ -0,0 +1,151 @@
1
+ import { ValueOP } from '../../../constant';
2
+ import { ExcludeOPs } from './search-bar-filter.controller';
3
+ const appId = '';
4
+ /** 数据类型映射操作符号 */
5
+ const typeToOPs = {
6
+ string: [
7
+ ValueOP.EQ,
8
+ ValueOP.NOT_EQ,
9
+ ValueOP.IS_NULL,
10
+ ValueOP.IS_NOT_NULL,
11
+ ValueOP.USER_LIKE,
12
+ ValueOP.LIKE,
13
+ ValueOP.LIFT_LIKE,
14
+ ValueOP.RIGHT_LIKE,
15
+ ],
16
+ number: [
17
+ ValueOP.EQ,
18
+ ValueOP.GT,
19
+ ValueOP.GT_AND_EQ,
20
+ ValueOP.LT,
21
+ ValueOP.LT_AND_EQ,
22
+ ValueOP.NOT_EQ,
23
+ ValueOP.IS_NULL,
24
+ ValueOP.IS_NOT_NULL,
25
+ ValueOP.IN,
26
+ ValueOP.NOT_IN,
27
+ ],
28
+ date: [
29
+ ValueOP.EQ,
30
+ ValueOP.GT,
31
+ ValueOP.GT_AND_EQ,
32
+ ValueOP.LT,
33
+ ValueOP.LT_AND_EQ,
34
+ ValueOP.NOT_EQ,
35
+ ValueOP.IS_NULL,
36
+ ValueOP.IS_NOT_NULL,
37
+ ValueOP.IN,
38
+ ValueOP.NOT_IN,
39
+ ],
40
+ };
41
+ /** 数据类型和操作符映射的编辑器模型 */
42
+ const EditorsMap = {};
43
+ /**
44
+ * 初始化默认映射的编辑器模型
45
+ * @author lxm
46
+ * @date 2024-01-02 10:32:05
47
+ * @param {string} type
48
+ * @param {string} op
49
+ * @return {*} {IEditor}
50
+ */
51
+ function initDefaultEditor() {
52
+ Object.keys(typeToOPs).forEach(type => {
53
+ const allowOPs = typeToOPs[type];
54
+ allowOPs.forEach(op => {
55
+ if (ExcludeOPs.includes(op)) {
56
+ return;
57
+ }
58
+ const key = `${type}_${op}`;
59
+ if (EditorsMap[key]) {
60
+ return;
61
+ }
62
+ if (type === 'date' && ![ValueOP.IN, ValueOP.NOT_IN].includes(op)) {
63
+ EditorsMap[key] = {
64
+ appId,
65
+ editorType: 'DATEPICKER',
66
+ id: key,
67
+ };
68
+ }
69
+ else {
70
+ // 都可以给字符串类型
71
+ EditorsMap[key] = {
72
+ appId,
73
+ editorType: 'TEXTBOX',
74
+ id: key,
75
+ };
76
+ }
77
+ });
78
+ });
79
+ }
80
+ initDefaultEditor();
81
+ /**
82
+ * 根据json模型计算出过滤项模型
83
+ * @author lxm
84
+ * @date 2024-01-02 10:27:40
85
+ * @export
86
+ * @param {IData} json
87
+ * @param {SearchBarController} c
88
+ * @return {*} {ISearchBarFilter[]}
89
+ */
90
+ export function calcFilterModelBySchema(json, c) {
91
+ var _a;
92
+ if (!json.properties) {
93
+ return [];
94
+ }
95
+ const { properties } = json;
96
+ if (!(Object.keys(properties).length > 0)) {
97
+ return [];
98
+ }
99
+ const addFields = [];
100
+ Object.keys(properties).forEach((key) => {
101
+ let type;
102
+ switch (properties[key].type) {
103
+ case 'string':
104
+ type = 'string';
105
+ if (properties[key].format === 'date-time') {
106
+ type = 'date';
107
+ }
108
+ break;
109
+ case 'integer':
110
+ case 'number':
111
+ type = 'number';
112
+ break;
113
+ default:
114
+ ibiz.log.error(`未支持的类型${properties[key].type}`);
115
+ return;
116
+ }
117
+ addFields.push({
118
+ key,
119
+ description: properties[key].description,
120
+ type,
121
+ });
122
+ });
123
+ // 属性codeName对应的属性id
124
+ const codeNameToId = {};
125
+ (_a = c.appDataEntity.appDEFields) === null || _a === void 0 ? void 0 : _a.forEach(field => {
126
+ codeNameToId[field.codeName.toLowerCase()] = field.id;
127
+ });
128
+ const addSearchBarFilters = [];
129
+ addFields.forEach(item => {
130
+ const ops = typeToOPs[item.type];
131
+ if (!ops) {
132
+ ibiz.log.error('未支持的类型', item.type);
133
+ return;
134
+ }
135
+ ops.forEach(op => {
136
+ const editorModel = EditorsMap[`${item.type}_${op}`];
137
+ addSearchBarFilters.push({
138
+ appId,
139
+ appDEFieldId: codeNameToId[item.key],
140
+ id: item.key,
141
+ caption: item.description,
142
+ defsearchMode: {
143
+ appId,
144
+ valueOP: op,
145
+ },
146
+ editor: editorModel,
147
+ });
148
+ });
149
+ });
150
+ return addSearchBarFilters;
151
+ }
@@ -1,6 +1,8 @@
1
1
  import { ISearchBarFilter } from '@ibiz/model-core';
2
2
  import { IEditorContainerController, IEditorController, IEditorProvider } from '../../../interface';
3
3
  import { SearchBarController } from './search-bar.controller';
4
+ /** 不需要编辑器的OP */
5
+ export declare const ExcludeOPs: string[];
4
6
  /**
5
7
  * 搜索栏过滤项控制器
6
8
  * @author lxm
@@ -53,6 +55,13 @@ export declare class SearchBarFilterController implements IEditorContainerContro
53
55
  * @type {string}
54
56
  */
55
57
  valueOP?: string;
58
+ /**
59
+ * 不需要编辑器
60
+ * @author lxm
61
+ * @date 2024-01-02 11:08:45
62
+ * @type {boolean}
63
+ */
64
+ noEditor: boolean;
56
65
  constructor(model: ISearchBarFilter, searchBar: SearchBarController);
57
66
  /**
58
67
  * 初始化
@@ -1 +1 @@
1
- {"version":3,"file":"search-bar-filter.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/search-bar-filter.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;;;;;GAOG;AACH,qBAAa,yBAA0B,YAAW,0BAA0B;IAyDjE,KAAK,EAAE,gBAAgB;IACvB,SAAS,EAAE,mBAAmB;IAzDvC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,IAAI,OAAO,IAAI,QAAQ,CAEtB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,eAAe,CAAC;IAEjC;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;gBAGR,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,mBAAmB;IAevC;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAa5B"}
1
+ {"version":3,"file":"search-bar-filter.controller.d.ts","sourceRoot":"","sources":["../../../../src/controller/control/search-bar/search-bar-filter.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,gBAAgB;AAChB,eAAO,MAAM,UAAU,EAAE,MAAM,EAGrB,CAAC;AAEX;;;;;;;GAOG;AACH,qBAAa,yBAA0B,YAAW,0BAA0B;IAiEjE,KAAK,EAAE,gBAAgB;IACvB,SAAS,EAAE,mBAAmB;IAjEvC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,IAAI,OAAO,IAAI,QAAQ,CAEtB;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,eAAe,CAAC;IAEjC;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAS;gBAGjB,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,mBAAmB;IAqBvC;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAe5B"}