@ibiz-template/runtime 0.4.5 → 0.4.6-dev.0

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 (81) hide show
  1. package/dist/index.esm.js +56 -50
  2. package/dist/index.system.min.js +2 -2
  3. package/out/app-hub.d.ts +0 -17
  4. package/out/app-hub.d.ts.map +1 -1
  5. package/out/app-hub.js +4 -29
  6. package/out/command/app/app-func/app-func.d.ts.map +1 -1
  7. package/out/command/app/app-func/app-func.js +2 -1
  8. package/out/controller/common/control/md-control.controller.d.ts.map +1 -1
  9. package/out/controller/common/control/md-control.controller.js +2 -2
  10. package/out/controller/common/view/view.controller.d.ts.map +1 -1
  11. package/out/controller/common/view/view.controller.js +5 -1
  12. package/out/controller/control/app-menu/app-menu.controller.d.ts.map +1 -1
  13. package/out/controller/control/app-menu/app-menu.controller.js +1 -0
  14. package/out/controller/control/chart/generator/chart-options-generator.d.ts.map +1 -1
  15. package/out/controller/control/chart/generator/chart-options-generator.js +1 -1
  16. package/out/controller/control/form/edit-form/edit-form.controller.d.ts.map +1 -1
  17. package/out/controller/control/form/edit-form/edit-form.controller.js +1 -1
  18. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.js +1 -1
  19. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.d.ts.map +1 -1
  20. package/out/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.js +2 -0
  21. package/out/controller/control/medit-view-panel/medit-view-panel.controller.d.ts.map +1 -1
  22. package/out/controller/control/medit-view-panel/medit-view-panel.controller.js +1 -1
  23. package/out/controller/control/report-panel/generator/user-generator.d.ts.map +1 -1
  24. package/out/controller/control/report-panel/generator/user-generator.js +6 -0
  25. package/out/controller/control/report-panel/report-panel.controller.d.ts.map +1 -1
  26. package/out/controller/control/report-panel/report-panel.controller.js +1 -1
  27. package/out/controller/control/report-panel/report-panel.service.d.ts.map +1 -1
  28. package/out/controller/control/report-panel/report-panel.service.js +1 -1
  29. package/out/controller/control/tab-exp-panel/tab-exp-panel.controller.js +1 -1
  30. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts +4 -12
  31. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts.map +1 -1
  32. package/out/interface/controller/state/control/i-toolbar.state.d.ts +8 -0
  33. package/out/interface/controller/state/control/i-toolbar.state.d.ts.map +1 -1
  34. package/out/interface/provider/model-loader.provider.d.ts +9 -0
  35. package/out/interface/provider/model-loader.provider.d.ts.map +1 -1
  36. package/out/logic-scheduler/executor/app-ui-logic-executor.d.ts.map +1 -1
  37. package/out/logic-scheduler/executor/app-ui-logic-executor.js +2 -2
  38. package/out/model/data-entity/data-entity.d.ts +1 -1
  39. package/out/model/data-entity/data-entity.d.ts.map +1 -1
  40. package/out/model/main-state/main-state.js +1 -1
  41. package/out/model/utils/util.d.ts +1 -1
  42. package/out/model/utils/util.d.ts.map +1 -1
  43. package/out/plugin/plugin-static-resource/plugin-static-resource.d.ts.map +1 -1
  44. package/out/plugin/plugin-static-resource/plugin-static-resource.js +2 -3
  45. package/out/register/helper/common-register.d.ts +1 -1
  46. package/out/register/helper/common-register.d.ts.map +1 -1
  47. package/out/service/service/control/control.service.d.ts +1 -1
  48. package/out/service/service/control/control.service.d.ts.map +1 -1
  49. package/out/service/service/control/control.service.js +2 -2
  50. package/out/service/utils/dynamic-code-list/dynamic-code-list.js +1 -1
  51. package/out/ui-action/provider/front-ui-action-provider.d.ts.map +1 -1
  52. package/out/ui-action/provider/front-ui-action-provider.js +3 -3
  53. package/package.json +5 -5
  54. package/src/app-hub.ts +4 -29
  55. package/src/command/app/app-func/app-func.ts +2 -1
  56. package/src/controller/common/control/md-control.controller.ts +5 -1
  57. package/src/controller/common/view/view.controller.ts +5 -1
  58. package/src/controller/control/app-menu/app-menu.controller.ts +1 -0
  59. package/src/controller/control/chart/generator/chart-options-generator.ts +4 -1
  60. package/src/controller/control/form/edit-form/edit-form.controller.ts +1 -0
  61. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.ts +1 -1
  62. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.ts +2 -0
  63. package/src/controller/control/medit-view-panel/medit-view-panel.controller.ts +1 -0
  64. package/src/controller/control/report-panel/generator/user-generator.ts +7 -0
  65. package/src/controller/control/report-panel/report-panel.controller.ts +1 -0
  66. package/src/controller/control/report-panel/report-panel.service.ts +1 -0
  67. package/src/controller/control/tab-exp-panel/tab-exp-panel.controller.ts +1 -1
  68. package/src/de-logic/index.ts +1 -1
  69. package/src/interface/common/i-app-hub-service/i-app-hub-service.ts +4 -13
  70. package/src/interface/controller/state/control/i-toolbar.state.ts +9 -0
  71. package/src/interface/provider/model-loader.provider.ts +10 -0
  72. package/src/logic-scheduler/executor/app-ui-logic-executor.ts +2 -0
  73. package/src/logic-scheduler/scheduler/view-logic-scheduler.ts +1 -1
  74. package/src/model/data-entity/data-entity.ts +1 -1
  75. package/src/model/main-state/main-state.ts +1 -1
  76. package/src/model/utils/util.ts +1 -1
  77. package/src/plugin/plugin-static-resource/plugin-static-resource.ts +2 -3
  78. package/src/register/helper/common-register.ts +1 -1
  79. package/src/service/service/control/control.service.ts +2 -2
  80. package/src/service/utils/dynamic-code-list/dynamic-code-list.ts +1 -1
  81. package/src/ui-action/provider/front-ui-action-provider.ts +3 -0
@@ -26,8 +26,8 @@ export class ControlService {
26
26
  * @date 2022-08-18 22:08:30
27
27
  * @returns {*} {Promise<void>}
28
28
  */
29
- async init(context) {
30
- this.app = ibiz.hub.getApp(context === null || context === void 0 ? void 0 : context.srfappid);
29
+ async init(_context) {
30
+ this.app = ibiz.hub.getApp(this.model.appId);
31
31
  this.initUIDataMap();
32
32
  }
33
33
  /**
@@ -74,7 +74,7 @@ export class DynamicCodeListCache {
74
74
  iconClsXAppDEFieldId ||
75
75
  iconPathAppDEFieldId ||
76
76
  iconPathXAppDEFieldId) {
77
- result.sysImage = {};
77
+ result.sysImage = { appId: this.codeList.appId };
78
78
  // 图标样式属性
79
79
  if (iconClsAppDEFieldId) {
80
80
  result.sysImage.cssClass = data[iconClsAppDEFieldId];
@@ -1 +1 @@
1
- {"version":3,"file":"front-ui-action-provider.d.ts","sourceRoot":"","sources":["../../../src/ui-action/provider/front-ui-action-provider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAc,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,SAAQ,oBAAoB;IACvD,UAAU,CACd,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;IA+D3B;;;;;;;;OAQG;IAEH,SAAS,CAAC,OAAO,CACf,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,eAAe;IAalB;;;;;;OAMG;cACa,YAAY,CAC1B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC;IAgEhB;;;;;;OAMG;cACa,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,eAAe,CAAC;IAkC3B;;;;;;OAMG;cACa,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC;CAoDjB"}
1
+ {"version":3,"file":"front-ui-action-provider.d.ts","sourceRoot":"","sources":["../../../src/ui-action/provider/front-ui-action-provider.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAc,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,SAAQ,oBAAoB;IACvD,UAAU,CACd,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,CAAC;IA+D3B;;;;;;;;OAQG;IAEH,SAAS,CAAC,OAAO,CACf,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,eAAe;IAalB;;;;;;OAMG;cACa,YAAY,CAC1B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC;IAiEhB;;;;;;OAMG;cACa,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,eAAe,CAAC;IAmC3B;;;;;;OAMG;cACa,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC;CAqDjB"}
@@ -88,7 +88,7 @@ export class FrontUIActionProvider extends UIActionProviderBase {
88
88
  var _a, _b, _c;
89
89
  // 处理参数
90
90
  const { resultContext, resultParams } = await this.handleParams(action, args.context, args.data, args.params);
91
- const appDataEntity = await ibiz.hub.getAppDataEntity(action.appDataEntityId);
91
+ const appDataEntity = await ibiz.hub.getAppDataEntity(action.appDataEntityId, action.appId);
92
92
  const appDEPrint = (_a = appDataEntity.appDEPrints) === null || _a === void 0 ? void 0 : _a.find(print => {
93
93
  return print.id === action.appDEPrintId;
94
94
  });
@@ -146,7 +146,7 @@ export class FrontUIActionProvider extends UIActionProviderBase {
146
146
  */
147
147
  async executeDataImport(action, _args) {
148
148
  var _a;
149
- const appDataEntity = await ibiz.hub.getAppDataEntity(action.appDataEntityId);
149
+ const appDataEntity = await ibiz.hub.getAppDataEntity(action.appDataEntityId, action.appId);
150
150
  const appDEDataImport = (_a = appDataEntity.appDEDataImports) === null || _a === void 0 ? void 0 : _a.find(dataImport => dataImport.id === action.appDEDataImportId);
151
151
  let importName = 'DataImport';
152
152
  if (appDEDataImport && appDEDataImport.enableCustomized) {
@@ -181,7 +181,7 @@ export class FrontUIActionProvider extends UIActionProviderBase {
181
181
  var _a, _b;
182
182
  // 处理参数
183
183
  const { resultParams } = await this.handleParams(action, args.context, args.data, args.params);
184
- const appDataEntity = await ibiz.hub.getAppDataEntity(action.appDataEntityId);
184
+ const appDataEntity = await ibiz.hub.getAppDataEntity(action.appDataEntityId, action.appId);
185
185
  const appDEDataExport = (_a = appDataEntity.appDEDataExports) === null || _a === void 0 ? void 0 : _a.find(dataExport => {
186
186
  return dataExport.id === action.appDEDataExportId;
187
187
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/runtime",
3
- "version": "0.4.5",
3
+ "version": "0.4.6-dev.0",
4
4
  "description": "控制器包",
5
5
  "type": "module",
6
6
  "main": "out/index.js",
@@ -29,8 +29,8 @@
29
29
  "author": "chitanda",
30
30
  "license": "MIT",
31
31
  "devDependencies": {
32
- "@ibiz-template/core": "^0.4.5",
33
- "@ibiz/model-core": "^0.0.24",
32
+ "@ibiz-template/core": "^0.4.6-dev.0",
33
+ "@ibiz/model-core": "^0.0.26",
34
34
  "@types/path-browserify": "^1.0.2",
35
35
  "@types/qs": "^6.9.10",
36
36
  "@types/systemjs": "^6.13.5",
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "peerDependencies": {
49
49
  "@ibiz-template/core": "^0.4.0",
50
- "@ibiz/model-core": "^0.0.24",
50
+ "@ibiz/model-core": "^0.0.26",
51
51
  "async-validator": "^4.2.5",
52
52
  "dayjs": "^1.11.7",
53
53
  "echarts": "^5.4.3",
@@ -59,5 +59,5 @@
59
59
  "qx-util": "^0.4.8",
60
60
  "ramda": "^0.29.0"
61
61
  },
62
- "gitHead": "28b2af793771fa7be9fac2e1c8396081f4002230"
62
+ "gitHead": "b7cde546c542456de87377e49677bdd21b04449d"
63
63
  }
package/src/app-hub.ts CHANGED
@@ -51,16 +51,6 @@ export class AppHub implements IAppHubService {
51
51
  */
52
52
  protected appMap: Map<string, Application> = new Map();
53
53
 
54
- /**
55
- * 实例化的应用模型
56
- *
57
- * @author chitanda
58
- * @date 2023-04-17 23:04:45
59
- * @protected
60
- * @type {Map<string, IApplication>}
61
- */
62
- protected apps: Map<string, IApplication> = new Map();
63
-
64
54
  /**
65
55
  * 当前基座下所有的应用视图
66
56
  *
@@ -147,17 +137,6 @@ export class AppHub implements IAppHubService {
147
137
  this.modelLoaderProvider = provider;
148
138
  }
149
139
 
150
- /**
151
- * 注册应用实例模型
152
- *
153
- * @author chitanda
154
- * @date 2023-04-17 23:04:29
155
- * @param {IApplication} model
156
- */
157
- registerApp(model: IApplication): void {
158
- this.apps.set(model.codeName!, model);
159
- }
160
-
161
140
  /**
162
141
  * 注册应用视图实例模型
163
142
  *
@@ -301,17 +280,13 @@ export class AppHub implements IAppHubService {
301
280
  if (this.appMap.has(id)) {
302
281
  return this.appMap.get(id)!;
303
282
  }
304
- let appModel: IApplication;
305
- if (this.apps.has(id)) {
306
- appModel = this.apps.get(id)!;
307
- } else if (this.modelLoaderProvider) {
308
- appModel = await this.modelLoaderProvider.getApp(id);
309
- this.registerApp(appModel);
310
- } else {
311
- throw new RuntimeError(`未找到应用[${id}]模型`);
283
+ if (!this.modelLoaderProvider) {
284
+ throw new RuntimeError('请先注册模型加载适配器');
312
285
  }
286
+ const appModel: IApplication = await this.modelLoaderProvider.getApp(id);
313
287
  const app = new Application(appModel);
314
288
  this.appMap.set(id, app);
289
+ await this.modelLoaderProvider.initApp(id);
315
290
  await app.init();
316
291
  if (!this.configCache) {
317
292
  this.configCache = new ConfigService(
@@ -44,7 +44,8 @@ export class AppFuncCommand {
44
44
  params: IParams = {},
45
45
  opts: IData = {},
46
46
  ): Promise<void> {
47
- const appFunc = ibiz.hub.getApp(context.srfappid).getAppFunc(appFuncId);
47
+ const app = await ibiz.hub.getAppAsync(context.srfappid);
48
+ const appFunc = app.getAppFunc(appFuncId);
48
49
  if (!appFunc) {
49
50
  throw new RuntimeError(`找不到叫${appFuncId}的应用功能`);
50
51
  }
@@ -86,6 +86,7 @@ export class MDControlController<
86
86
  // 初始化实体属性id和name的映射
87
87
  this.dataEntity = await ibiz.hub.getAppDataEntity(
88
88
  this.model.appDataEntityId!,
89
+ this.model.appId,
89
90
  );
90
91
  this.dataEntity.appDEFields?.forEach(field => {
91
92
  this.fieldIdNameMap.set(field.id!, field.name!);
@@ -429,7 +430,10 @@ export class MDControlController<
429
430
  */
430
431
  async importData(): Promise<void> {
431
432
  const { appDataEntityId, dedataImportId } = this.model;
432
- const appDataEntity = await ibiz.hub.getAppDataEntity(appDataEntityId!);
433
+ const appDataEntity = await ibiz.hub.getAppDataEntity(
434
+ appDataEntityId!,
435
+ this.model.appId,
436
+ );
433
437
  const dataImport = appDataEntity.appDEDataImports?.find(
434
438
  (importItem: IAppDEDataImport) => importItem.id === dedataImportId,
435
439
  );
@@ -183,7 +183,11 @@ export class ViewController<
183
183
  });
184
184
  } else {
185
185
  const ins = ibiz.engine.getEngine(
186
- { engineCat: 'VIEW', engineType: this.model.viewType },
186
+ {
187
+ engineCat: 'VIEW',
188
+ engineType: this.model.viewType,
189
+ appId: this.model.appId,
190
+ },
187
191
  this,
188
192
  );
189
193
  if (ins) {
@@ -87,6 +87,7 @@ export class AppMenuController
87
87
  }
88
88
 
89
89
  const tempContext = this.context.clone();
90
+ tempContext.srfappid = menuItem.appId;
90
91
  if (this.routeDepth && useDepth) {
91
92
  Object.assign(tempContext, {
92
93
  toRouteDepth: this.routeDepth + 1,
@@ -282,7 +282,10 @@ export class ChartOptionsGenerator {
282
282
  */
283
283
  async init(context: IContext, params: IParams): Promise<void> {
284
284
  await this.loadCodeList(context, params);
285
- this.entity = await ibiz.hub.getAppDataEntity(this.model.appDataEntityId!);
285
+ this.entity = await ibiz.hub.getAppDataEntity(
286
+ this.model.appDataEntityId!,
287
+ this.model.appId,
288
+ );
286
289
  this.initSeriesGenerators();
287
290
  }
288
291
 
@@ -136,6 +136,7 @@ export class EditFormController
136
136
 
137
137
  const appDataEntity = await ibiz.hub.getAppDataEntity(
138
138
  this.model.appDataEntityId!,
139
+ this.model.appId,
139
140
  );
140
141
  const key = appDataEntity.keyAppDEFieldId;
141
142
  if (key && this.params[key]) {
@@ -109,7 +109,7 @@ export class FormMDCtrlFormController extends FormMDCtrlController {
109
109
  const { appDataEntityId } = this.model.contentControl!;
110
110
  const fetchAction = 'fetchdefault';
111
111
  const res = await ibiz.hub
112
- .getApp()
112
+ .getApp(this.model.appId)
113
113
  .deService.exec(appDataEntityId!, fetchAction, this.context, this.params);
114
114
  if (res.ok) {
115
115
  this.state.items = (res.data as IData[]).map(item => {
@@ -99,11 +99,13 @@ export class FormMDCtrlRepeaterController extends FormMDCtrlController {
99
99
  prepareRepeatedForm(): void {
100
100
  const id = `${this.model.id}repeatedform`;
101
101
  const tempForm: IDEForm = {
102
+ appId: this.model.appId,
102
103
  id,
103
104
  codeName: id,
104
105
  name: id,
105
106
  deformPages: [
106
107
  {
108
+ appId: this.model.appId,
107
109
  id: 'formpage1',
108
110
  deformDetails: this.model.deformDetails,
109
111
  detailType: 'FORMPAGE',
@@ -64,6 +64,7 @@ export class MEditViewPanelController
64
64
  if (embedView.appDataEntityId) {
65
65
  const embedViewEntity = await ibiz.hub.getAppDataEntity(
66
66
  embedView.appDataEntityId,
67
+ embedView.appId,
67
68
  );
68
69
  if (embedView && embedViewEntity) {
69
70
  this.parameters = [
@@ -42,6 +42,13 @@ export class UserReportPanelGenerator extends ReportPanelBaseGenerator {
42
42
  miniMapConfig: {},
43
43
  },
44
44
  HOOKS: {
45
+ g6Hooks: [
46
+ {
47
+ name: 'afterrender',
48
+ callBack:
49
+ '{{ const nodes = data.controller.graph.getNodes(); if (nodes.length < 25) { data.controller.graph.zoomTo(1); data.controller.graph.fitCenter() } }}',
50
+ },
51
+ ],
45
52
  nodeDataHook:
46
53
  "{{ data.forEach(node => { const type = node.data.source_lables || node.data.target_lables; Object.assign(node, { label: node.data.name, size: 66, style: { fill: node.color },donutAttrs: { prop1: 10000, prop2: 10 },donutColorMap: { prop1: node.color, prop2: node.color },icon: {show: true,img: type === 'NEO4J_ZT' ? './assets/images/user-avatar.png' : './assets/images/phone.png',width: 40,height: 40}})})}}",
47
54
  edgeDataHook:
@@ -80,6 +80,7 @@ export class ReportPanelController
80
80
  this.generator = ReportPanelGeneratorFactory.getInstance(this.model);
81
81
  this.dataEntity = await ibiz.hub.getAppDataEntity(
82
82
  this.model.appDataEntityId!,
83
+ this.model.appId,
83
84
  );
84
85
  this.service = new ReportPanelService(this.model);
85
86
  await this.service.init(this.context);
@@ -26,6 +26,7 @@ export class ReportPanelService<
26
26
  ): Promise<IHttpResponse<ControlVO>> {
27
27
  this.dataEntity = await ibiz.hub.getAppDataEntity(
28
28
  this.model.appDataEntityId!,
29
+ this.model.appId,
29
30
  );
30
31
  const url = `${this.dataEntity.codeName2?.toLowerCase()}/report?srfreporttag=${
31
32
  this.model.codeName
@@ -254,7 +254,7 @@ export class TabExpPanelController
254
254
  const context = Object.assign(this.context.clone(), resultContext, {
255
255
  currentSrfNav: this.state.activeName,
256
256
  });
257
- const params = { ...this.params, ...resultParams };
257
+ const params = { ...resultParams };
258
258
  return { context, params };
259
259
  }
260
260
 
@@ -22,7 +22,7 @@ const deLogicMap: WeakMap<IAppDELogic, DELogic> = new Map();
22
22
  async function findDeLogic(
23
23
  deDELogicId: string,
24
24
  dataEntityId: string,
25
- appId?: string,
25
+ appId: string,
26
26
  ): Promise<IAppDELogic | undefined> {
27
27
  const appDataEntity = await ibiz.hub.getAppDataEntity(dataEntityId, appId);
28
28
  return findDELogic(deDELogicId, appDataEntity);
@@ -67,15 +67,6 @@ export interface IAppHubService {
67
67
  */
68
68
  registerModelLoaderProvider(provider: ModelLoaderProvider): void;
69
69
 
70
- /**
71
- * 注册应用模型
72
- *
73
- * @author chitanda
74
- * @date 2023-04-23 15:04:28
75
- * @param {IApplication} model
76
- */
77
- registerApp(model: IApplication): void;
78
-
79
70
  /**
80
71
  * 注册应用视图模型
81
72
  *
@@ -93,7 +84,7 @@ export interface IAppHubService {
93
84
  * @param {IAppDataEntity} model
94
85
  * @param {string} [appId=ibiz.env.appId]
95
86
  */
96
- registerAppDataEntity(model: IAppDataEntity, appId?: string): void;
87
+ registerAppDataEntity(model: IAppDataEntity, appId: string): void;
97
88
 
98
89
  /**
99
90
  * 设置应用视图所属应用,兼容识别视图 codeName 或 id
@@ -144,7 +135,7 @@ export interface IAppHubService {
144
135
  * @param {string} [appId=ibiz.env.appId]
145
136
  * @return {*} {Promise<IAppDataEntity>}
146
137
  */
147
- getAppDataEntity(id: string, appId?: string): Promise<IAppDataEntity>;
138
+ getAppDataEntity(id: string, appId: string): Promise<IAppDataEntity>;
148
139
 
149
140
  /**
150
141
  * 异步获取应用对象,用于不确定应用是否已经加载的情况
@@ -154,7 +145,7 @@ export interface IAppHubService {
154
145
  * @param {string} [appId=ibiz.env.appId]
155
146
  * @return {*} {Promise<IAppService>}
156
147
  */
157
- getAppAsync(appId?: string): Promise<IAppService>;
148
+ getAppAsync(appId: string): Promise<IAppService>;
158
149
 
159
150
  /**
160
151
  * 获取应用实例
@@ -164,5 +155,5 @@ export interface IAppHubService {
164
155
  * @param {(string | IApplication)} [app]
165
156
  * @return {*} {IAppService}
166
157
  */
167
- getApp(app?: string | IApplication): IAppService;
158
+ getApp(app: string | IApplication): IAppService;
168
159
  }
@@ -44,6 +44,15 @@ export interface IExtraButton {
44
44
  */
45
45
  id: string;
46
46
 
47
+ /**
48
+ * 应用标识
49
+ *
50
+ * @author chitanda
51
+ * @date 2023-12-06 18:12:03
52
+ * @type {string}
53
+ */
54
+ appId: string;
55
+
47
56
  /**
48
57
  * 按钮类型
49
58
  * @author lxm
@@ -9,6 +9,16 @@ import { IAppDataEntity, IAppView, IApplication } from '@ibiz/model-core';
9
9
  * @interface ModelLoaderProvider
10
10
  */
11
11
  export interface ModelLoaderProvider {
12
+ /**
13
+ * 初始化应用
14
+ *
15
+ * @author chitanda
16
+ * @date 2023-12-06 17:12:31
17
+ * @param {string} [id]
18
+ * @return {*} {Promise<boolean>}
19
+ */
20
+ initApp(id?: string): Promise<boolean>;
21
+
12
22
  /**
13
23
  * 获取应用模型
14
24
  *
@@ -118,6 +118,7 @@ export class AppUILogicExecutor extends LogicExecutor {
118
118
  ): Promise<IAppUILogicRefViewBase> {
119
119
  const appDataEntity = await ibiz.hub.getAppDataEntity(
120
120
  parameters.view.model.appDataEntityId!,
121
+ parameters.view.model.appId,
121
122
  )!;
122
123
  // [多表单实体] or [索引实体]类型属性
123
124
  const typeFileName =
@@ -221,6 +222,7 @@ export class AppUILogicExecutor extends LogicExecutor {
221
222
  if (params.srfcopymode) {
222
223
  const entity = await ibiz.hub.getAppDataEntity(
223
224
  view.model.appDataEntityId!,
225
+ view.model.appId,
224
226
  );
225
227
  const key = entity.keyAppDEFieldId;
226
228
  if (key && _data) {
@@ -16,7 +16,7 @@ export class ViewLogicScheduler extends LogicScheduler {
16
16
  // 视图逻辑的触发类型logicTrigger统一成triggerType
17
17
  (logic as IData).triggerType = logic.logicTrigger!;
18
18
  });
19
- super(logics as ISchedulerLogic[]);
19
+ super(logics as IData[] as ISchedulerLogic[]);
20
20
  }
21
21
 
22
22
  /**
@@ -43,7 +43,7 @@ export function hasDeCodeName(params: IParams, entityId: string): boolean {
43
43
  export async function getDeACMode(
44
44
  appDEACModeId: string,
45
45
  entityId: string,
46
- srfappid?: string,
46
+ srfappid: string,
47
47
  ): Promise<IAppDEACMode | undefined> {
48
48
  const appDataEntity = await ibiz.hub.getAppDataEntity(entityId, srfappid)!;
49
49
  const deACMode = appDataEntity.appDEACModes?.find((mode: IAppDEACMode) => {
@@ -48,7 +48,7 @@ export function calcMainStateOPPrivsStrs(
48
48
  mainState: IDEMainState,
49
49
  appDataEntity: IAppDataEntity,
50
50
  ): string[] {
51
- const app = ibiz.hub.getApp().model;
51
+ const app = ibiz.hub.getApp(appDataEntity.appId).model;
52
52
  const { demainStateOPPrivs, opprivAllowMode } = mainState;
53
53
  const mainStateOPPrivIds = demainStateOPPrivs?.map(item => item.name!) || [];
54
54
  let opprivs: string[] = [];
@@ -126,7 +126,7 @@ export function parseUserParams(userParams: Record<string, string>): {
126
126
  * @param {string} [appId] 当前所在应用标识
127
127
  * @return {*} {ISysPFPlugin}
128
128
  */
129
- export function getPFPlugin(id: string, appId?: string): ISysPFPlugin {
129
+ export function getPFPlugin(id: string, appId: string): ISysPFPlugin {
130
130
  const app = ibiz.hub.getApp(appId);
131
131
  if (!app) {
132
132
  throw new RuntimeModelError(app, '未找到应用');
@@ -48,8 +48,7 @@ export class PluginStaticResource {
48
48
  */
49
49
  constructor(mateUrl: string) {
50
50
  this.url = new URL(mateUrl);
51
- const dir = path.dirname(this.url.pathname);
52
- this.baseDir = dir;
51
+ this.baseDir = path.dirname(this.url.pathname);
53
52
  }
54
53
 
55
54
  /**
@@ -61,7 +60,7 @@ export class PluginStaticResource {
61
60
  * @return {*} {string}
62
61
  */
63
62
  dir(pathStr: string): string {
64
- return path.resolve(this.baseDir, pathStr);
63
+ return this.url.origin + path.resolve(this.baseDir, pathStr);
65
64
  }
66
65
 
67
66
  /**
@@ -9,7 +9,7 @@
9
9
  */
10
10
  export async function getPluginRegisterKey(
11
11
  pluginId: string,
12
- appId?: string,
12
+ appId: string,
13
13
  ): Promise<string | undefined> {
14
14
  const app = ibiz.hub.getApp(appId);
15
15
 
@@ -43,8 +43,8 @@ export class ControlService<T extends IControl = IControl> {
43
43
  * @date 2022-08-18 22:08:30
44
44
  * @returns {*} {Promise<void>}
45
45
  */
46
- async init(context?: IContext): Promise<void> {
47
- this.app = ibiz.hub.getApp(context?.srfappid);
46
+ async init(_context?: IContext): Promise<void> {
47
+ this.app = ibiz.hub.getApp(this.model.appId);
48
48
  this.initUIDataMap();
49
49
  }
50
50
 
@@ -154,7 +154,7 @@ export class DynamicCodeListCache {
154
154
  iconPathAppDEFieldId ||
155
155
  iconPathXAppDEFieldId
156
156
  ) {
157
- result.sysImage = {};
157
+ result.sysImage = { appId: this.codeList.appId };
158
158
  // 图标样式属性
159
159
  if (iconClsAppDEFieldId) {
160
160
  result.sysImage.cssClass = data[iconClsAppDEFieldId];
@@ -132,6 +132,7 @@ export class FrontUIActionProvider extends UIActionProviderBase {
132
132
  );
133
133
  const appDataEntity = await ibiz.hub.getAppDataEntity(
134
134
  action.appDataEntityId!,
135
+ action.appId,
135
136
  );
136
137
  const appDEPrint = appDataEntity.appDEPrints?.find(print => {
137
138
  return print.id === action.appDEPrintId;
@@ -199,6 +200,7 @@ export class FrontUIActionProvider extends UIActionProviderBase {
199
200
  ): Promise<IUIActionResult> {
200
201
  const appDataEntity = await ibiz.hub.getAppDataEntity(
201
202
  action.appDataEntityId!,
203
+ action.appId,
202
204
  );
203
205
  const appDEDataImport = appDataEntity.appDEDataImports?.find(
204
206
  dataImport => dataImport.id === action.appDEDataImportId,
@@ -251,6 +253,7 @@ export class FrontUIActionProvider extends UIActionProviderBase {
251
253
 
252
254
  const appDataEntity = await ibiz.hub.getAppDataEntity(
253
255
  action.appDataEntityId!,
256
+ action.appId,
254
257
  );
255
258
  const appDEDataExport = appDataEntity.appDEDataExports?.find(dataExport => {
256
259
  return dataExport.id === action.appDEDataExportId;