@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.
- package/dist/index.esm.js +302 -27
- package/dist/index.system.min.js +1 -1
- package/out/model-helper.d.ts +15 -4
- package/out/model-helper.d.ts.map +1 -1
- package/out/model-helper.js +17 -2
- package/out/model-loader.d.ts +1 -0
- package/out/model-loader.d.ts.map +1 -1
- package/out/model-loader.js +3 -0
- package/out/model-util.d.ts +11 -10
- package/out/model-util.d.ts.map +1 -1
- package/out/model-util.js +17 -12
- package/package.json +3 -3
- package/src/model-helper.ts +26 -3
- package/src/model-loader.ts +8 -0
- package/src/model-util.ts +18 -13
package/out/model-helper.d.ts
CHANGED
|
@@ -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
|
|
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;
|
|
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"}
|
package/out/model-helper.js
CHANGED
|
@@ -14,8 +14,8 @@ export class ModelHelper {
|
|
|
14
14
|
/**
|
|
15
15
|
* Creates an instance of ModelHelper.
|
|
16
16
|
* @author chitanda
|
|
17
|
-
* @date
|
|
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
|
*
|
package/out/model-loader.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/out/model-loader.js
CHANGED
package/out/model-util.d.ts
CHANGED
|
@@ -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
|
-
* 根据应用视图
|
|
98
|
+
* 根据应用视图 id 获取应用视图模型,如果给了 params 则每次都会重新加载模型
|
|
99
99
|
*
|
|
100
100
|
* @author chitanda
|
|
101
|
-
* @date
|
|
101
|
+
* @date 2024-01-08 11:01:39
|
|
102
102
|
* @param {string} tag
|
|
103
|
-
* @param {
|
|
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
|
|
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
|
*
|
package/out/model-util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-util.d.ts","sourceRoot":"","sources":["../src/model-util.ts"],"names":[],"mappings":"
|
|
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
|
-
* 根据应用视图
|
|
196
|
+
* 根据应用视图 id 获取应用视图模型,如果给了 params 则每次都会重新加载模型
|
|
196
197
|
*
|
|
197
198
|
* @author chitanda
|
|
198
|
-
* @date
|
|
199
|
+
* @date 2024-01-08 11:01:39
|
|
199
200
|
* @param {string} tag
|
|
200
|
-
* @param {
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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": "
|
|
46
|
+
"gitHead": "e7e869a5ceda4a77a8bf73dbcf0bf1a0c9acf6c5"
|
|
47
47
|
}
|
package/src/model-helper.ts
CHANGED
|
@@ -47,13 +47,13 @@ export class ModelHelper {
|
|
|
47
47
|
/**
|
|
48
48
|
* Creates an instance of ModelHelper.
|
|
49
49
|
* @author chitanda
|
|
50
|
-
* @date
|
|
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
|
*
|
package/src/model-loader.ts
CHANGED
|
@@ -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
|
-
* 根据应用视图
|
|
233
|
+
* 根据应用视图 id 获取应用视图模型,如果给了 params 则每次都会重新加载模型
|
|
233
234
|
*
|
|
234
235
|
* @author chitanda
|
|
235
|
-
* @date
|
|
236
|
+
* @date 2024-01-08 11:01:39
|
|
236
237
|
* @param {string} tag
|
|
237
|
-
* @param {
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|