@ibiz-template/model-helper 0.5.1 → 0.5.2

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.
@@ -10,7 +10,7 @@ import { ModelUtil } from './model-util';
10
10
  * @class ModelHelper
11
11
  */
12
12
  export declare class ModelHelper {
13
- protected getModel: (url: string) => Promise<IModel>;
13
+ protected getModel: (url: string, params?: IParams) => Promise<IModel>;
14
14
  protected defaultAppId: string;
15
15
  protected permission: boolean;
16
16
  protected dsl: DSLHelper;
@@ -35,12 +35,12 @@ export declare class ModelHelper {
35
35
  /**
36
36
  * Creates an instance of ModelHelper.
37
37
  * @author chitanda
38
- * @date 2023-04-16 17:04:01
39
- * @param {(url: string) => Promise<IModel>} getModel 模型加载方法
38
+ * @date 2024-01-08 10:01:20
39
+ * @param {(url: string, params?: IParams) => Promise<IModel>} getModel 模型加载方法
40
40
  * @param {string} defaultAppId 默认应用标识
41
41
  * @param {boolean} [permission=true] 是否启用权限
42
42
  */
43
- constructor(getModel: (url: string) => Promise<IModel>, defaultAppId: string, permission?: boolean);
43
+ constructor(getModel: (url: string, params?: IParams) => Promise<IModel>, defaultAppId: string, permission?: boolean);
44
44
  /**
45
45
  * 初始化应用内容
46
46
  *
@@ -129,6 +129,17 @@ export declare class ModelHelper {
129
129
  * @return {*} {Promise<IAppView>}
130
130
  */
131
131
  getAppViewModel(name: string, appId?: string | IObject): Promise<IAppView>;
132
+ /**
133
+ * 根据路径和参数加载应用视图模型,主要用于后台根据运行时参数重新计算视图模型
134
+ *
135
+ * @author chitanda
136
+ * @date 2024-01-08 10:01:43
137
+ * @param {string} viewId
138
+ * @param {IParams} [params]
139
+ * @param {string} [appId]
140
+ * @return {*} {Promise<IAppView>}
141
+ */
142
+ loadAppViewModel(viewId: string, params?: IParams, appId?: string): Promise<IAppView>;
132
143
  /**
133
144
  * 获取应用多语言模型
134
145
  *
@@ -1 +1 @@
1
- {"version":3,"file":"model-helper.d.ts","sourceRoot":"","sources":["../src/model-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,UAAU,EAGX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC;;;;;;;GAOG;AACH,qBAAa,WAAW;IAgCpB,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;IACpD,SAAS,CAAC,YAAY,EAAE,MAAM;IAC9B,SAAS,CAAC,UAAU,EAAE,OAAO;IAjC/B,SAAS,CAAC,GAAG,YAAmB;IAEhC;;;;;;;OAOG;IACH,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,CAAM;IAExC;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAa;IAEpD;;;;;;;OAOG;gBAES,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAC1C,YAAY,EAAE,MAAM,EACpB,UAAU,GAAE,OAAc;IAKtC;;;;;;;OAOG;IACG,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK5C;;;;;;;;OAQG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAA0B,GAChC,OAAO,CAAC,IAAI,CAAC;IAYhB;;;;;;;;OAQG;cACa,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDlE;;;;;;;;;OASG;cACa,UAAU,CACxB,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,IAAI,CAAC;IAQhB;;;;;;;OAOG;IACG,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAWlE;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI7D;;;;;;;;;OASG;IACG,qBAAqB,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EACxB,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,cAAc,CAAC;IAU1B;;;;;;;OAOG;IACH,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAatD;;;;;;;;OAQG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GACvB,OAAO,CAAC,QAAQ,CAAC;IAOpB;;;;;;;;OAQG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GACvB,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;;;;OAQG;IACH,SAAS,CAAC,YAAY,CACpB,OAAO,GAAE,OAAO,GAAG,MAA0B,GAC5C,SAAS;IAQZ;;;;;;;;OAQG;IACH,SAAS,CAAC,SAAS,CAAC,IAAI,GAAE,OAAO,GAAG,MAA0B,GAAG,MAAM;CASxE"}
1
+ {"version":3,"file":"model-helper.d.ts","sourceRoot":"","sources":["../src/model-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,UAAU,EAGX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC;;;;;;;GAOG;AACH,qBAAa,WAAW;IAgCpB,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC;IACtE,SAAS,CAAC,YAAY,EAAE,MAAM;IAC9B,SAAS,CAAC,UAAU,EAAE,OAAO;IAjC/B,SAAS,CAAC,GAAG,YAAmB;IAEhC;;;;;;;OAOG;IACH,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,CAAM;IAExC;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAa;IAEpD;;;;;;;OAOG;gBAES,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,EAC5D,YAAY,EAAE,MAAM,EACpB,UAAU,GAAE,OAAc;IAKtC;;;;;;;OAOG;IACG,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK5C;;;;;;;;OAQG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,MAA0B,GAChC,OAAO,CAAC,IAAI,CAAC;IAYhB;;;;;;;;OAQG;cACa,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDlE;;;;;;;;;OASG;cACa,UAAU,CACxB,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,IAAI,CAAC;IAQhB;;;;;;;OAOG;IACG,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAWlE;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI7D;;;;;;;;;OASG;IACG,qBAAqB,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EACxB,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,cAAc,CAAC;IAU1B;;;;;;;OAOG;IACH,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAatD;;;;;;;;OAQG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GACvB,OAAO,CAAC,QAAQ,CAAC;IAOpB;;;;;;;;;OASG;IACG,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,QAAQ,CAAC;IASpB;;;;;;;;OAQG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GACvB,OAAO,CAAC,OAAO,CAAC;IAKnB;;;;;;;;OAQG;IACH,SAAS,CAAC,YAAY,CACpB,OAAO,GAAE,OAAO,GAAG,MAA0B,GAC5C,SAAS;IAQZ;;;;;;;;OAQG;IACH,SAAS,CAAC,SAAS,CAAC,IAAI,GAAE,OAAO,GAAG,MAA0B,GAAG,MAAM;CASxE"}
@@ -14,8 +14,8 @@ export class ModelHelper {
14
14
  /**
15
15
  * Creates an instance of ModelHelper.
16
16
  * @author chitanda
17
- * @date 2023-04-16 17:04:01
18
- * @param {(url: string) => Promise<IModel>} getModel 模型加载方法
17
+ * @date 2024-01-08 10:01:20
18
+ * @param {(url: string, params?: IParams) => Promise<IModel>} getModel 模型加载方法
19
19
  * @param {string} defaultAppId 默认应用标识
20
20
  * @param {boolean} [permission=true] 是否启用权限
21
21
  */
@@ -225,6 +225,21 @@ export class ModelHelper {
225
225
  this.calcAppViewSubAppModel(dsl);
226
226
  return dsl;
227
227
  }
228
+ /**
229
+ * 根据路径和参数加载应用视图模型,主要用于后台根据运行时参数重新计算视图模型
230
+ *
231
+ * @author chitanda
232
+ * @date 2024-01-08 10:01:43
233
+ * @param {string} viewId
234
+ * @param {IParams} [params]
235
+ * @param {string} [appId]
236
+ * @return {*} {Promise<IAppView>}
237
+ */
238
+ async loadAppViewModel(viewId, params, appId) {
239
+ const model = await this.getModelUtil(appId).getAppViewModel(viewId, params);
240
+ const dsl = this.dsl.appView(model);
241
+ return dsl;
242
+ }
228
243
  /**
229
244
  * 获取应用多语言模型
230
245
  *
@@ -19,5 +19,6 @@ export declare class ModelLoader implements ModelLoaderProvider {
19
19
  getAppDataEntity(appId: string, id: string): Promise<IAppDataEntity>;
20
20
  getAppDataEntityByCodeName(appId: string, codeName: string): Promise<IAppDataEntity>;
21
21
  getAppStyle(appId: string): Promise<string | null>;
22
+ loadAppView(appId: string, viewId: string, params: IParams): Promise<IAppView>;
22
23
  }
23
24
  //# sourceMappingURL=model-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-loader.d.ts","sourceRoot":"","sources":["../src/model-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;;;;;GAQG;AACH,qBAAa,WAAY,YAAW,mBAAmB;IACzC,SAAS,CAAC,MAAM,EAAE,WAAW;gBAAnB,MAAM,EAAE,WAAW;IAEzC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI1C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI9D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAIpE,0BAA0B,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC;IAI1B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAGnD"}
1
+ {"version":3,"file":"model-loader.d.ts","sourceRoot":"","sources":["../src/model-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;;;;;;GAQG;AACH,qBAAa,WAAY,YAAW,mBAAmB;IACzC,SAAS,CAAC,MAAM,EAAE,WAAW;gBAAnB,MAAM,EAAE,WAAW;IAEzC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI1C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI9D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAIpE,0BAA0B,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC;IAI1B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIlD,WAAW,CACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,QAAQ,CAAC;CAGrB"}
@@ -29,4 +29,7 @@ export class ModelLoader {
29
29
  getAppStyle(appId) {
30
30
  return this.helper.getAppStyle(appId);
31
31
  }
32
+ loadAppView(appId, viewId, params) {
33
+ return this.helper.loadAppViewModel(viewId, params, appId);
34
+ }
32
35
  }
@@ -10,7 +10,7 @@ import { ServicePathUtil } from './utils';
10
10
  export declare class ModelUtil {
11
11
  protected appId: string;
12
12
  protected modelTag: string;
13
- protected get: (url: string) => Promise<IModel>;
13
+ protected get: (url: string, params?: IParams) => Promise<IModel>;
14
14
  protected hub: boolean;
15
15
  protected permission: boolean;
16
16
  /**
@@ -46,10 +46,10 @@ export declare class ModelUtil {
46
46
  * @date 2023-04-13 21:04:21
47
47
  * @param {string}appId 应用标识
48
48
  * @param {string} modelTag
49
- * @param {(url: string) => Promise<IModel>} get 模型加载方法
49
+ * @param {(url: string, params?: IParams) => Promise<IModel>} get 模型加载方法
50
50
  * @param {boolean} hub 是否为 hub 应用基座
51
51
  */
52
- constructor(appId: string, modelTag: string, get: (url: string) => Promise<IModel>, hub: boolean, permission?: boolean);
52
+ constructor(appId: string, modelTag: string, get: (url: string, params?: IParams) => Promise<IModel>, hub: boolean, permission?: boolean);
53
53
  /**
54
54
  * 在使用前需要初始化,来进行异步加载
55
55
  *
@@ -95,15 +95,15 @@ export declare class ModelUtil {
95
95
  */
96
96
  getAppDataEntityModel(tag: string, isId?: boolean, ignoreCase?: boolean): Promise<IModel>;
97
97
  /**
98
- * 根据应用视图 codeName 获取应用视图模型
98
+ * 根据应用视图 id 获取应用视图模型,如果给了 params 则每次都会重新加载模型
99
99
  *
100
100
  * @author chitanda
101
- * @date 2023-04-16 18:04:00
101
+ * @date 2024-01-08 11:01:39
102
102
  * @param {string} tag
103
- * @param {boolean} [ignoreCase=false]
103
+ * @param {IParams} [params]
104
104
  * @return {*} {Promise<IModel>}
105
105
  */
106
- getAppViewModel(tag: string): Promise<IModel>;
106
+ getAppViewModel(tag: string, params?: IParams): Promise<IModel>;
107
107
  /**
108
108
  * 加载应用多语言模型
109
109
  *
@@ -123,14 +123,15 @@ export declare class ModelUtil {
123
123
  */
124
124
  getStyleModel(modelPath: string): Promise<string>;
125
125
  /**
126
- * 获取模型
126
+ * 加载模型,如果给了 params 则不会缓存模型
127
127
  *
128
128
  * @author chitanda
129
- * @date 2023-04-16 16:04:10
129
+ * @date 2024-01-08 11:01:41
130
130
  * @param {string} modelPath
131
+ * @param {IParams} [params]
131
132
  * @return {*} {Promise<IModel>}
132
133
  */
133
- getModel(modelPath: string): Promise<IModel>;
134
+ getModel(modelPath: string, params?: IParams): Promise<IModel>;
134
135
  /**
135
136
  * 递归填充应用标识
136
137
  *
@@ -1 +1 @@
1
- {"version":3,"file":"model-util.d.ts","sourceRoot":"","sources":["../src/model-util.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,eAAe,EAAE,MAAM,SAAS,CAAC;AAGlE;;;;;;;GAOG;AACH,qBAAa,SAAS;IAyClB,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;IAC/C,SAAS,CAAC,GAAG,EAAE,OAAO;IACtB,SAAS,CAAC,UAAU,EAAE,OAAO;IA5C/B;;;;;;;OAOG;IACH,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAEtD;;;;;;;OAOG;IACH,SAAS,CAAC,QAAQ,EAAG,MAAM,CAAC;IAE5B;;;;;;OAMG;IACH,eAAe,EAAG,eAAe,CAAC;IAElC;;;;;;;;;OASG;gBAES,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EACrC,GAAG,EAAE,OAAO,EACZ,UAAU,GAAE,OAAc;IAGtC;;;;;;OAMG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoD3B;;;;;;;OAOG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAWhD;;;;;;OAMG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAepC;;;;;;OAMG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAqB3C;;;;;;;;;OASG;IACG,qBAAqB,CACzB,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,OAAc,EACpB,UAAU,GAAE,OAAe,GAC1B,OAAO,CAAC,MAAM,CAAC;IA2BlB;;;;;;;;OAQG;IACG,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAenD;;;;;;;OAOG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAarD;;;;;;;OAOG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUjD;;;;;;;OAOG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBlD;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAmB5C;;;;;;;;OAQG;IACH,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAMhD;;;;;;;;OAQG;IACH,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAKpD"}
1
+ {"version":3,"file":"model-util.d.ts","sourceRoot":"","sources":["../src/model-util.ts"],"names":[],"mappings":"AAGA,OAAO,EAA0B,eAAe,EAAE,MAAM,SAAS,CAAC;AAGlE;;;;;;;GAOG;AACH,qBAAa,SAAS;IAyClB,SAAS,CAAC,KAAK,EAAE,MAAM;IACvB,SAAS,CAAC,QAAQ,EAAE,MAAM;IAC1B,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC;IACjE,SAAS,CAAC,GAAG,EAAE,OAAO;IACtB,SAAS,CAAC,UAAU,EAAE,OAAO;IA5C/B;;;;;;;OAOG;IACH,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAEtD;;;;;;;OAOG;IACH,SAAS,CAAC,QAAQ,EAAG,MAAM,CAAC;IAE5B;;;;;;OAMG;IACH,eAAe,EAAG,eAAe,CAAC;IAElC;;;;;;;;;OASG;gBAES,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,EACvD,GAAG,EAAE,OAAO,EACZ,UAAU,GAAE,OAAc;IAGtC;;;;;;OAMG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoD3B;;;;;;;OAOG;cACa,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAWhD;;;;;;OAMG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAepC;;;;;;OAMG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAqB3C;;;;;;;;;OASG;IACG,qBAAqB,CACzB,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,OAAc,EACpB,UAAU,GAAE,OAAe,GAC1B,OAAO,CAAC,MAAM,CAAC;IA2BlB;;;;;;;;OAQG;IACG,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAerE;;;;;;;OAOG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAarD;;;;;;;OAOG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUjD;;;;;;;;OAQG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBpE;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAmB5C;;;;;;;;OAQG;IACH,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAMhD;;;;;;;;OAQG;IACH,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAKpD"}
package/out/model-util.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { calcUniqueTag } from '@ibiz/rt-model-api';
2
+ import { isEmpty } from 'ramda';
2
3
  import { formatPath, mergeModel, ServicePathUtil } from './utils';
3
4
  import { PSSysApp } from './model/PSSYSAPP';
4
5
  /**
@@ -17,7 +18,7 @@ export class ModelUtil {
17
18
  * @date 2023-04-13 21:04:21
18
19
  * @param {string}appId 应用标识
19
20
  * @param {string} modelTag
20
- * @param {(url: string) => Promise<IModel>} get 模型加载方法
21
+ * @param {(url: string, params?: IParams) => Promise<IModel>} get 模型加载方法
21
22
  * @param {boolean} hub 是否为 hub 应用基座
22
23
  */
23
24
  constructor(appId, modelTag, get, hub, permission = true) {
@@ -192,22 +193,22 @@ export class ModelUtil {
192
193
  throw new Error(`应用[${this.appId}]未找到数据实体[${tag}]`);
193
194
  }
194
195
  /**
195
- * 根据应用视图 codeName 获取应用视图模型
196
+ * 根据应用视图 id 获取应用视图模型,如果给了 params 则每次都会重新加载模型
196
197
  *
197
198
  * @author chitanda
198
- * @date 2023-04-16 18:04:00
199
+ * @date 2024-01-08 11:01:39
199
200
  * @param {string} tag
200
- * @param {boolean} [ignoreCase=false]
201
+ * @param {IParams} [params]
201
202
  * @return {*} {Promise<IModel>}
202
203
  */
203
- async getAppViewModel(tag) {
204
+ async getAppViewModel(tag, params) {
204
205
  const allViews = this.appModel.getAllPSAppViews;
205
206
  if (allViews && allViews.length > 0) {
206
207
  const lowerTag = tag.toLowerCase();
207
208
  const exTag = `.${lowerTag}`;
208
209
  const view = allViews.find(v => v.id.endsWith(exTag) || v.id === lowerTag);
209
210
  if (view) {
210
- return this.getModel(view.path);
211
+ return this.getModel(view.path, params);
211
212
  }
212
213
  }
213
214
  throw new Error(`应用[${this.appId}]未找到视图[${tag}]`);
@@ -251,14 +252,15 @@ export class ModelUtil {
251
252
  return this.get(url);
252
253
  }
253
254
  /**
254
- * 获取模型
255
+ * 加载模型,如果给了 params 则不会缓存模型
255
256
  *
256
257
  * @author chitanda
257
- * @date 2023-04-16 16:04:10
258
+ * @date 2024-01-08 11:01:41
258
259
  * @param {string} modelPath
260
+ * @param {IParams} [params]
259
261
  * @return {*} {Promise<IModel>}
260
262
  */
261
- async getModel(modelPath) {
263
+ async getModel(modelPath, params) {
262
264
  let url;
263
265
  if (this.hub) {
264
266
  url = this.calcAppPath(modelPath);
@@ -266,11 +268,14 @@ export class ModelUtil {
266
268
  else {
267
269
  url = this.calcSubAppPath(modelPath);
268
270
  }
269
- if (this.modelCache.has(url)) {
271
+ const isParams = params && !isEmpty(params);
272
+ if (this.modelCache.has(url) && !isParams) {
270
273
  return this.modelCache.get(url);
271
274
  }
272
- const model = await this.get(url);
273
- this.modelCache.set(url, model);
275
+ const model = await this.get(url, params);
276
+ if (!isParams) {
277
+ this.modelCache.set(url, model);
278
+ }
274
279
  this.deepFillAppId(model);
275
280
  return model;
276
281
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/model-helper",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "控制器包",
5
5
  "main": "out/index.js",
6
6
  "types": "out/index.d.ts",
@@ -35,7 +35,7 @@
35
35
  "ramda": "^0.29.1"
36
36
  },
37
37
  "devDependencies": {
38
- "@ibiz-template/runtime": "^0.5.1",
38
+ "@ibiz-template/runtime": "^0.5.2",
39
39
  "@types/pluralize": "^0.0.33",
40
40
  "@types/ramda": "^0.29.9"
41
41
  },
@@ -43,5 +43,5 @@
43
43
  "@ibiz-template/runtime": "^0.5.0-beta.0",
44
44
  "ramda": "^0.29.0"
45
45
  },
46
- "gitHead": "f442a5daebbca26f24b167d8afa470d8fd2ff8b8"
46
+ "gitHead": "e7e869a5ceda4a77a8bf73dbcf0bf1a0c9acf6c5"
47
47
  }
@@ -47,13 +47,13 @@ export class ModelHelper {
47
47
  /**
48
48
  * Creates an instance of ModelHelper.
49
49
  * @author chitanda
50
- * @date 2023-04-16 17:04:01
51
- * @param {(url: string) => Promise<IModel>} getModel 模型加载方法
50
+ * @date 2024-01-08 10:01:20
51
+ * @param {(url: string, params?: IParams) => Promise<IModel>} getModel 模型加载方法
52
52
  * @param {string} defaultAppId 默认应用标识
53
53
  * @param {boolean} [permission=true] 是否启用权限
54
54
  */
55
55
  constructor(
56
- protected getModel: (url: string) => Promise<IModel>,
56
+ protected getModel: (url: string, params?: IParams) => Promise<IModel>,
57
57
  protected defaultAppId: string,
58
58
  protected permission: boolean = true,
59
59
  ) {
@@ -274,6 +274,29 @@ export class ModelHelper {
274
274
  return dsl;
275
275
  }
276
276
 
277
+ /**
278
+ * 根据路径和参数加载应用视图模型,主要用于后台根据运行时参数重新计算视图模型
279
+ *
280
+ * @author chitanda
281
+ * @date 2024-01-08 10:01:43
282
+ * @param {string} viewId
283
+ * @param {IParams} [params]
284
+ * @param {string} [appId]
285
+ * @return {*} {Promise<IAppView>}
286
+ */
287
+ async loadAppViewModel(
288
+ viewId: string,
289
+ params?: IParams,
290
+ appId?: string,
291
+ ): Promise<IAppView> {
292
+ const model = await this.getModelUtil(appId).getAppViewModel(
293
+ viewId,
294
+ params,
295
+ );
296
+ const dsl = this.dsl.appView(model) as IAppView;
297
+ return dsl;
298
+ }
299
+
277
300
  /**
278
301
  * 获取应用多语言模型
279
302
  *
@@ -40,4 +40,12 @@ export class ModelLoader implements ModelLoaderProvider {
40
40
  getAppStyle(appId: string): Promise<string | null> {
41
41
  return this.helper.getAppStyle(appId);
42
42
  }
43
+
44
+ loadAppView(
45
+ appId: string,
46
+ viewId: string,
47
+ params: IParams,
48
+ ): Promise<IAppView> {
49
+ return this.helper.loadAppViewModel(viewId, params, appId);
50
+ }
43
51
  }
package/src/model-util.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { calcUniqueTag } from '@ibiz/rt-model-api';
2
2
  import { IAppDERS } from '@ibiz/model-core';
3
+ import { isEmpty } from 'ramda';
3
4
  import { formatPath, mergeModel, ServicePathUtil } from './utils';
4
5
  import { PSSysApp } from './model/PSSYSAPP';
5
6
 
@@ -48,13 +49,13 @@ export class ModelUtil {
48
49
  * @date 2023-04-13 21:04:21
49
50
  * @param {string}appId 应用标识
50
51
  * @param {string} modelTag
51
- * @param {(url: string) => Promise<IModel>} get 模型加载方法
52
+ * @param {(url: string, params?: IParams) => Promise<IModel>} get 模型加载方法
52
53
  * @param {boolean} hub 是否为 hub 应用基座
53
54
  */
54
55
  constructor(
55
56
  protected appId: string,
56
57
  protected modelTag: string,
57
- protected get: (url: string) => Promise<IModel>,
58
+ protected get: (url: string, params?: IParams) => Promise<IModel>,
58
59
  protected hub: boolean,
59
60
  protected permission: boolean = true,
60
61
  ) {}
@@ -229,15 +230,15 @@ export class ModelUtil {
229
230
  }
230
231
 
231
232
  /**
232
- * 根据应用视图 codeName 获取应用视图模型
233
+ * 根据应用视图 id 获取应用视图模型,如果给了 params 则每次都会重新加载模型
233
234
  *
234
235
  * @author chitanda
235
- * @date 2023-04-16 18:04:00
236
+ * @date 2024-01-08 11:01:39
236
237
  * @param {string} tag
237
- * @param {boolean} [ignoreCase=false]
238
+ * @param {IParams} [params]
238
239
  * @return {*} {Promise<IModel>}
239
240
  */
240
- async getAppViewModel(tag: string): Promise<IModel> {
241
+ async getAppViewModel(tag: string, params?: IParams): Promise<IModel> {
241
242
  const allViews = this.appModel.getAllPSAppViews as IModel[];
242
243
  if (allViews && allViews.length > 0) {
243
244
  const lowerTag = tag.toLowerCase();
@@ -246,7 +247,7 @@ export class ModelUtil {
246
247
  v => v.id.endsWith(exTag) || v.id === lowerTag,
247
248
  );
248
249
  if (view) {
249
- return this.getModel(view.path);
250
+ return this.getModel(view.path, params);
250
251
  }
251
252
  }
252
253
  throw new Error(`应用[${this.appId}]未找到视图[${tag}]`);
@@ -292,25 +293,29 @@ export class ModelUtil {
292
293
  }
293
294
 
294
295
  /**
295
- * 获取模型
296
+ * 加载模型,如果给了 params 则不会缓存模型
296
297
  *
297
298
  * @author chitanda
298
- * @date 2023-04-16 16:04:10
299
+ * @date 2024-01-08 11:01:41
299
300
  * @param {string} modelPath
301
+ * @param {IParams} [params]
300
302
  * @return {*} {Promise<IModel>}
301
303
  */
302
- async getModel(modelPath: string): Promise<IModel> {
304
+ async getModel(modelPath: string, params?: IParams): Promise<IModel> {
303
305
  let url: string;
304
306
  if (this.hub) {
305
307
  url = this.calcAppPath(modelPath);
306
308
  } else {
307
309
  url = this.calcSubAppPath(modelPath);
308
310
  }
309
- if (this.modelCache.has(url)) {
311
+ const isParams = params && !isEmpty(params);
312
+ if (this.modelCache.has(url) && !isParams) {
310
313
  return this.modelCache.get(url)!;
311
314
  }
312
- const model = await this.get(url);
313
- this.modelCache.set(url, model);
315
+ const model = await this.get(url, params);
316
+ if (!isParams) {
317
+ this.modelCache.set(url, model);
318
+ }
314
319
  this.deepFillAppId(model);
315
320
  return model;
316
321
  }