@ibiz-template/runtime 0.4.4 → 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 (97) hide show
  1. package/dist/index.esm.js +171 -113
  2. package/dist/index.system.min.js +2 -3
  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/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.d.ts.map +1 -1
  22. package/out/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.js +10 -2
  23. package/out/controller/control/medit-view-panel/medit-view-panel.controller.d.ts.map +1 -1
  24. package/out/controller/control/medit-view-panel/medit-view-panel.controller.js +1 -1
  25. package/out/controller/control/report-panel/generator/user-generator.d.ts.map +1 -1
  26. package/out/controller/control/report-panel/generator/user-generator.js +6 -0
  27. package/out/controller/control/report-panel/report-panel.controller.d.ts.map +1 -1
  28. package/out/controller/control/report-panel/report-panel.controller.js +1 -1
  29. package/out/controller/control/report-panel/report-panel.service.d.ts.map +1 -1
  30. package/out/controller/control/report-panel/report-panel.service.js +1 -1
  31. package/out/controller/control/tab-exp-panel/tab-exp-panel.controller.js +1 -1
  32. package/out/controller/control/toolbar/toolbar.controllerr.d.ts.map +1 -1
  33. package/out/controller/control/toolbar/toolbar.controllerr.js +3 -0
  34. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts +4 -12
  35. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts.map +1 -1
  36. package/out/interface/controller/state/control/i-toolbar.state.d.ts +8 -0
  37. package/out/interface/controller/state/control/i-toolbar.state.d.ts.map +1 -1
  38. package/out/interface/provider/model-loader.provider.d.ts +9 -0
  39. package/out/interface/provider/model-loader.provider.d.ts.map +1 -1
  40. package/out/logic-scheduler/executor/app-ui-logic-executor.d.ts.map +1 -1
  41. package/out/logic-scheduler/executor/app-ui-logic-executor.js +2 -2
  42. package/out/model/data-entity/data-entity.d.ts +1 -1
  43. package/out/model/data-entity/data-entity.d.ts.map +1 -1
  44. package/out/model/main-state/main-state.js +1 -1
  45. package/out/model/utils/util.d.ts +5 -3
  46. package/out/model/utils/util.d.ts.map +1 -1
  47. package/out/plugin/plugin-static-resource/plugin-static-resource.d.ts.map +1 -1
  48. package/out/plugin/plugin-static-resource/plugin-static-resource.js +2 -3
  49. package/out/register/helper/common-register.d.ts +1 -1
  50. package/out/register/helper/common-register.d.ts.map +1 -1
  51. package/out/service/service/control/control.service.d.ts +1 -1
  52. package/out/service/service/control/control.service.d.ts.map +1 -1
  53. package/out/service/service/control/control.service.js +2 -2
  54. package/out/service/utils/dynamic-code-list/dynamic-code-list.d.ts.map +1 -1
  55. package/out/service/utils/dynamic-code-list/dynamic-code-list.js +7 -2
  56. package/out/ui-action/provider/front-ui-action-provider.d.ts.map +1 -1
  57. package/out/ui-action/provider/front-ui-action-provider.js +3 -3
  58. package/out/ui-action/provider/index.d.ts +2 -1
  59. package/out/ui-action/provider/index.d.ts.map +1 -1
  60. package/out/ui-action/provider/index.js +2 -1
  61. package/out/utils/theme-util/theme-util.d.ts +11 -0
  62. package/out/utils/theme-util/theme-util.d.ts.map +1 -1
  63. package/out/utils/theme-util/theme-util.js +36 -2
  64. package/package.json +5 -5
  65. package/src/app-hub.ts +4 -29
  66. package/src/command/app/app-func/app-func.ts +2 -1
  67. package/src/controller/common/control/md-control.controller.ts +5 -1
  68. package/src/controller/common/view/view.controller.ts +5 -1
  69. package/src/controller/control/app-menu/app-menu.controller.ts +1 -0
  70. package/src/controller/control/chart/generator/chart-options-generator.ts +4 -1
  71. package/src/controller/control/form/edit-form/edit-form.controller.ts +1 -0
  72. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-form.controller.ts +1 -1
  73. package/src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.ts +2 -0
  74. package/src/controller/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.controller.ts +10 -2
  75. package/src/controller/control/medit-view-panel/medit-view-panel.controller.ts +1 -0
  76. package/src/controller/control/report-panel/generator/user-generator.ts +7 -0
  77. package/src/controller/control/report-panel/report-panel.controller.ts +1 -0
  78. package/src/controller/control/report-panel/report-panel.service.ts +1 -0
  79. package/src/controller/control/tab-exp-panel/tab-exp-panel.controller.ts +1 -1
  80. package/src/controller/control/toolbar/toolbar.controllerr.ts +3 -0
  81. package/src/de-logic/index.ts +1 -1
  82. package/src/interface/common/i-app-hub-service/i-app-hub-service.ts +4 -13
  83. package/src/interface/controller/state/control/i-toolbar.state.ts +9 -0
  84. package/src/interface/provider/model-loader.provider.ts +10 -0
  85. package/src/logic-scheduler/executor/app-ui-logic-executor.ts +2 -0
  86. package/src/logic-scheduler/scheduler/view-logic-scheduler.ts +1 -1
  87. package/src/model/data-entity/data-entity.ts +1 -1
  88. package/src/model/main-state/main-state.ts +1 -1
  89. package/src/model/utils/util.ts +5 -2
  90. package/src/plugin/plugin-static-resource/plugin-static-resource.ts +2 -3
  91. package/src/register/helper/common-register.ts +1 -1
  92. package/src/service/service/control/control.service.ts +2 -2
  93. package/src/service/utils/dynamic-code-list/dynamic-code-list.ts +10 -4
  94. package/src/ui-action/provider/front-ui-action-provider.ts +3 -0
  95. package/src/ui-action/provider/index.ts +2 -0
  96. package/src/utils/theme-util/theme-util.ts +40 -2
  97. package/dist/index.system.min.js.map +0 -1
@@ -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[] = [];
@@ -3,6 +3,7 @@ import {
3
3
  IAppView,
4
4
  IAppViewRef,
5
5
  IControl,
6
+ IControlRender,
6
7
  IModelObject,
7
8
  IPanel,
8
9
  ISysPFPlugin,
@@ -125,7 +126,7 @@ export function parseUserParams(userParams: Record<string, string>): {
125
126
  * @param {string} [appId] 当前所在应用标识
126
127
  * @return {*} {ISysPFPlugin}
127
128
  */
128
- export function getPFPlugin(id: string, appId?: string): ISysPFPlugin {
129
+ export function getPFPlugin(id: string, appId: string): ISysPFPlugin {
129
130
  const app = ibiz.hub.getApp(appId);
130
131
  if (!app) {
131
132
  throw new RuntimeModelError(app, '未找到应用');
@@ -151,7 +152,9 @@ export function getPFPlugin(id: string, appId?: string): ISysPFPlugin {
151
152
  * @param {IControl} control
152
153
  * @return {*} {(IPanel | undefined)}
153
154
  */
154
- export function getControlPanel(control: IControl): IPanel | undefined {
155
+ export function getControlPanel(control: {
156
+ controlRenders?: IControlRender[];
157
+ }): IPanel | undefined {
155
158
  let layoutPanel: IPanel | undefined;
156
159
  if (control.controlRenders) {
157
160
  const panelRender = control.controlRenders.find(
@@ -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];
@@ -178,9 +178,15 @@ export class DynamicCodeListCache {
178
178
  }
179
179
  // 数据属性
180
180
  if (dataAppDEFieldId && data[dataAppDEFieldId]) {
181
- result.data = ScriptFactory.execSingleLine(
182
- data[dataAppDEFieldId],
183
- ) as IData;
181
+ try {
182
+ result.data = ScriptFactory.execSingleLine(
183
+ data[dataAppDEFieldId],
184
+ ) as IData;
185
+ } catch (error) {
186
+ ibiz.log.error(
187
+ '动态代码表数据属性返回值不为对象格式的字符串,无法转换!',
188
+ );
189
+ }
184
190
  }
185
191
  return result;
186
192
  }
@@ -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;
@@ -3,6 +3,7 @@ import { BackendUIActionProvider } from './backend-ui-action-provider';
3
3
  import { SysUIActionProvider } from './sys-ui-action-provider';
4
4
  import { FrontUIActionProvider } from './front-ui-action-provider';
5
5
  import { WFWithdrawUIActionProvider } from './wf-withdraw-ui-action-provider';
6
+ import { UIActionProviderBase } from './ui-action-provider-base';
6
7
 
7
8
  /**
8
9
  * 预置默认的界面行为适配器
@@ -36,4 +37,5 @@ export {
36
37
  SysUIActionProvider,
37
38
  BackendUIActionProvider,
38
39
  WFWithdrawUIActionProvider,
40
+ UIActionProviderBase,
39
41
  };
@@ -1,4 +1,5 @@
1
1
  import { IAppUITheme, ISysPFPlugin } from '@ibiz/model-core';
2
+ import { clone } from 'ramda';
2
3
 
3
4
  /**
4
5
  * 主题工具类
@@ -28,15 +29,52 @@ export class ThemeUtil {
28
29
  * @return {*} {Promise<void>}
29
30
  */
30
31
  async loadTheme(theme: IAppUITheme): Promise<void> {
31
- const data = theme.themeParams || {};
32
+ const data = clone(theme.themeParams || {});
33
+ const path = data['theme-package-path'];
34
+ delete data.appId;
35
+ delete data['theme-package-path'];
32
36
  await ibiz.plugin.loadPlugin({
33
37
  runtimeObject: true,
34
38
  rtobjectName: theme.name,
35
- rtobjectRepo: data['theme-package-path'],
39
+ rtobjectRepo: path,
36
40
  } as unknown as ISysPFPlugin);
41
+ this.setThemeParams(theme, data);
37
42
  this.setTheme(theme.themeTag!);
38
43
  }
39
44
 
45
+ /**
46
+ * 设置额外修改的主题参数
47
+ *
48
+ * @author chitanda
49
+ * @date 2023-12-05 11:12:00
50
+ * @protected
51
+ * @param {IAppUITheme} theme
52
+ * @param {Record<string, string>} params
53
+ * @return {*} {void}
54
+ */
55
+ protected setThemeParams(
56
+ theme: IAppUITheme,
57
+ params: Record<string, string>,
58
+ ): void {
59
+ const themeStyle = document.getElementById(theme.themeTag!);
60
+ if (themeStyle) {
61
+ return;
62
+ }
63
+ let content = `:root.${theme.themeTag!}{`;
64
+ for (const key in params) {
65
+ if (Object.prototype.hasOwnProperty.call(params, key)) {
66
+ const val = params[key];
67
+ content += `${key}: ${val}${val.endsWith(';') ? '' : ';'}`;
68
+ }
69
+ }
70
+ content += '}';
71
+ const script = document.createElement('style');
72
+ script.id = theme.themeTag!;
73
+ script.type = 'text/css';
74
+ script.innerHTML = content;
75
+ document.head.appendChild(script);
76
+ }
77
+
40
78
  /**
41
79
  * 设置主题
42
80
  *