@ibiz-template/runtime 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/out/app-hub.d.ts CHANGED
@@ -165,6 +165,17 @@ export declare class AppHub implements IAppHubService {
165
165
  * @return {*} {Promise<IAppView>}
166
166
  */
167
167
  getAppView(tag: string): Promise<IAppView>;
168
+ /**
169
+ * 根据视图模型路径,加参数重新计算视图模型
170
+ *
171
+ * @author chitanda
172
+ * @date 2024-01-08 11:01:54
173
+ * @param {string} appId
174
+ * @param {string} modelPath
175
+ * @param {IParams} params
176
+ * @return {*} {Promise<IAppView>}
177
+ */
178
+ loadAppView(appId: string, modelPath: string, params: IParams): Promise<IAppView>;
168
179
  /**
169
180
  * 根据应用实体代码名称查找应用视图
170
181
  *
@@ -1 +1 @@
1
- {"version":3,"file":"app-hub.d.ts","sourceRoot":"","sources":["../src/app-hub.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;;;;GAOG;AACH,qBAAa,MAAO,YAAW,cAAc;IAC3C;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAiB;IAE1C;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,gBAAuB;IAE1C;;;;;;OAMG;IACH,WAAW,EAAG,aAAa,CAAC;IAE5B;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAa;IAEvD;;;;;;;OAOG;IACH,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAEvD;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAa;IAEnD;;;;;;;OAOG;IACH,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAa;IAE7E;;;;;;OAMG;IACH,SAAS,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAEpD;;;;OAIG;IACH,MAAM,mBAA0B;IAEhC;;;;;;OAMG;IACH,uBAAuB,EAAE,MAAM,CAAW;IAE1C;;;;;;;;OAQG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAW5C;;;;;;OAMG;IACH,2BAA2B,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAIhE;;;;;;OAMG;IACH,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAItC;;;;;;;OAOG;IACH,qBAAqB,CACnB,KAAK,EAAE,cAAc,EACrB,KAAK,GAAE,MAAuB,GAC7B,IAAI;IAQP;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAuB,GAAG,IAAI;IAK7D;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAKhC;;;;;;;OAOG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAOxD;;;;;;;OAOG;IACG,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAiBhD;;;;;;;;OAQG;IACG,gBAAgB,CACpB,EAAE,EAAE,MAAM,EACV,KAAK,GAAE,MAAuB,GAC7B,OAAO,CAAC,cAAc,CAAC;IAuB1B;;;;;;;OAOG;cACa,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAsB3D;;;;;;;OAOG;IACG,WAAW,CAAC,GAAG,GAAE,MAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAIrE;;;;;;;OAOG;IACH,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW;IAchD;;;;;;OAMG;IACH,UAAU,IAAI,WAAW,EAAE;IAO3B,KAAK,IAAI,IAAI;CAKd"}
1
+ {"version":3,"file":"app-hub.d.ts","sourceRoot":"","sources":["../src/app-hub.ts"],"names":[],"mappings":"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"}
package/out/app-hub.js CHANGED
@@ -196,6 +196,23 @@ export class AppHub {
196
196
  }
197
197
  throw new RuntimeError(`视图[${id}]不存在`);
198
198
  }
199
+ /**
200
+ * 根据视图模型路径,加参数重新计算视图模型
201
+ *
202
+ * @author chitanda
203
+ * @date 2024-01-08 11:01:54
204
+ * @param {string} appId
205
+ * @param {string} modelPath
206
+ * @param {IParams} params
207
+ * @return {*} {Promise<IAppView>}
208
+ */
209
+ async loadAppView(appId, modelPath, params) {
210
+ if (this.modelLoaderProvider) {
211
+ const model = await this.modelLoaderProvider.loadAppView(appId, modelPath, params);
212
+ return model;
213
+ }
214
+ throw new RuntimeError(`视图[${modelPath}]不存在`);
215
+ }
199
216
  /**
200
217
  * 根据应用实体代码名称查找应用视图
201
218
  *
@@ -1 +1 @@
1
- {"version":3,"file":"edit-form.controller.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/form/edit-form/edit-form.controller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/D,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;;GAQG;AACH,qBAAa,kBACX,SAAQ,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,CAClE,YAAW,mBAAmB;IAE9B;;;;;OAKG;IACH,OAAO,EAAG,eAAe,CAAC;IAE1B,IAAI,IAAI,IAAI,eAAe,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,CAM1E;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,OAAO,EAAE,KAAK,CAAmB;IAE3C;;;;;;;OAOG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;cAY1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1C;;;;;OAKG;IACG,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IA2B1D;;;;;;OAMG;cACa,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;IA+CtC;;;;;OAKG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IA8CrD;;;;;OAKG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAqEjD;;;;;;OAMG;IACG,MAAM,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0CzD;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;IAe9B;;;;;;;OAOG;IACG,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+D7D;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBvD;;;;;;;OAOG;IACG,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBlD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB/B;;;;;;;;OAQG;IACH,SAAS,CAAC,WAAW,IAAI,KAAK;IAa9B;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;CAqBjC"}
1
+ {"version":3,"file":"edit-form.controller.d.ts","sourceRoot":"","sources":["../../../../../src/controller/control/form/edit-form/edit-form.controller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/D,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;;GAQG;AACH,qBAAa,kBACX,SAAQ,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,cAAc,CAClE,YAAW,mBAAmB;IAE9B;;;;;OAKG;IACH,OAAO,EAAG,eAAe,CAAC;IAE1B,IAAI,IAAI,IAAI,eAAe,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC,CAM1E;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,OAAO,EAAE,KAAK,CAAmB;IAE3C;;;;;;;OAOG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;cAY1B,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAS1C;;;;;OAKG;IACG,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IA2B1D;;;;;;OAMG;cACa,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC;IA+CtC;;;;;OAKG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC;IA8CrD;;;;;OAKG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAqEjD;;;;;;OAMG;IACG,MAAM,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IA0CzD;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;IAe9B;;;;;;;OAOG;IACG,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6D7D;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBvD;;;;;;;OAOG;IACG,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBlD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD;;;;;OAKG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB/B;;;;;;;;OAQG;IACH,SAAS,CAAC,WAAW,IAAI,KAAK;IAa9B;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;CAqBjC"}
@@ -357,7 +357,6 @@ export class EditFormController extends FormController {
357
357
  if (updateData && (updateItems === null || updateItems === void 0 ? void 0 : updateItems.length)) {
358
358
  await Promise.all(updateItems.map(itemName => this.setDataValue(itemName, updateData[itemName])));
359
359
  }
360
- await awaitTimeout(2000);
361
360
  }
362
361
  finally {
363
362
  if (showBusyIndicator) {
@@ -113,6 +113,17 @@ export interface IAppHubService {
113
113
  * @return {*} {Promise<IAppView>}
114
114
  */
115
115
  getAppView(tag: string): Promise<IAppView>;
116
+ /**
117
+ * 根据参数加载请求视图模型,用于后台根据运行时参数加载视图
118
+ *
119
+ * @author chitanda
120
+ * @date 2024-01-08 11:01:27
121
+ * @param {string} appId
122
+ * @param {string} viewId
123
+ * @param {IParams} params
124
+ * @return {*} {Promise<IAppView>}
125
+ */
126
+ loadAppView(appId: string, viewId: string, params: IParams): Promise<IAppView>;
116
127
  /**
117
128
  * 获取应用实体模型
118
129
  *
@@ -1 +1 @@
1
- {"version":3,"file":"i-app-hub-service.d.ts","sourceRoot":"","sources":["../../../../src/interface/common/i-app-hub-service/i-app-hub-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC;;;;;;OAMG;IACH,WAAW,EAAE,cAAc,CAAC;IAE5B;;;;;;OAMG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,MAAM,EAAE,iBAAiB,CAAC;IAE1B;;;;;;OAMG;IACH,2BAA2B,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEjE;;;;;;OAMG;IACH,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEvC;;;;;;;OAOG;IACH,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAElE;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9C;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEnD;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE3C;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEtE;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAElD;;;;;;;OAOG;IACH,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;IAEjD;;;;;;OAMG;IACH,UAAU,IAAI,WAAW,EAAE,CAAC;IAE5B;;;;OAIG;IACH,KAAK,IAAI,IAAI,CAAC;CACf"}
1
+ {"version":3,"file":"i-app-hub-service.d.ts","sourceRoot":"","sources":["../../../../src/interface/common/i-app-hub-service/i-app-hub-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC;;;;;;OAMG;IACH,WAAW,EAAE,cAAc,CAAC;IAE5B;;;;;;OAMG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,MAAM,EAAE,iBAAiB,CAAC;IAE1B;;;;;;OAMG;IACH,2BAA2B,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEjE;;;;;;OAMG;IACH,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEvC;;;;;;;OAOG;IACH,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAElE;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE9C;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEnD;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE3C;;;;;;;;;OASG;IACH,WAAW,CACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEtE;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAElD;;;;;;;OAOG;IACH,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;IAEjD;;;;;;OAMG;IACH,UAAU,IAAI,WAAW,EAAE,CAAC;IAE5B;;;;OAIG;IACH,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -34,6 +34,17 @@ export interface ModelLoaderProvider {
34
34
  * @return {*} {Promise<IAppView>}
35
35
  */
36
36
  getAppView(appId: string, codeName: string): Promise<IAppView>;
37
+ /**
38
+ * 根据参数加载请求视图模型,用于后台根据运行时参数加载视图
39
+ *
40
+ * @author chitanda
41
+ * @date 2024-01-08 10:01:43
42
+ * @param {string} appId
43
+ * @param {string} viewId
44
+ * @param {IParams} params
45
+ * @return {*} {Promise<IAppView>}
46
+ */
47
+ loadAppView(appId: string, viewId: string, params: IParams): Promise<IAppView>;
37
48
  /**
38
49
  * 根据 id 获取应用实体模型
39
50
  *
@@ -1 +1 @@
1
- {"version":3,"file":"model-loader.provider.d.ts","sourceRoot":"","sources":["../../../src/interface/provider/model-loader.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE1E;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE3C;;;;;;;;OAQG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE/D;;;;;;;;OAQG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAErE;;;;;;;;OAQG;IACH,0BAA0B,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CAAC;IAE3B;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACpD"}
1
+ {"version":3,"file":"model-loader.provider.d.ts","sourceRoot":"","sources":["../../../src/interface/provider/model-loader.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE1E;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE3C;;;;;;;;OAQG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE/D;;;;;;;;;OASG;IACH,WAAW,CACT,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAErE;;;;;;;;OAQG;IACH,0BAA0B,CACxB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CAAC;IAE3B;;;;;;;OAOG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACpD"}
@@ -1,5 +1,5 @@
1
1
  import { IAppUIOpenDataLogic, IAppUINewDataLogic, IAppUILogicRefViewBase } from '@ibiz/model-core';
2
- import { IModalData, IUILogicParams } from '../../interface';
2
+ import { IModalData, IUILogicParams, IViewController } from '../../interface';
3
3
  import { LogicExecutor } from './logic-executor';
4
4
  /**
5
5
  * 应用预置界面逻辑
@@ -59,6 +59,6 @@ export declare class AppUILogicExecutor extends LogicExecutor {
59
59
  * @param {IAppUILogicRefViewBase} newViewRef
60
60
  * @return {*} {Promise<void>}
61
61
  */
62
- protected doBatchAdd(appUILogic: IAppUIOpenDataLogic, selections: IData[], context: IContext, newViewRef: IAppUILogicRefViewBase): Promise<void>;
62
+ protected doBatchAdd(appUILogic: IAppUINewDataLogic, selections: IData[], context: IContext, newViewRef: IAppUILogicRefViewBase, view: IViewController): Promise<void>;
63
63
  }
64
64
  //# sourceMappingURL=app-ui-logic-executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-ui-logic-executor.d.ts","sourceRoot":"","sources":["../../../src/logic-scheduler/executor/app-ui-logic-executor.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,mBAAmB,EAEnB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IAC3C,IAAI,EAAE,YAAY,CAAC;IAGrB,OAAO,CAAC,aAAa,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IA4B1D;;;;;;;;OAQG;IACG,yBAAyB,CAC7B,UAAU,EAAE,mBAAmB,EAC/B,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC,UAAU,CAAC;cAsDN,eAAe,CAC7B,UAAU,EAAE,mBAAmB,EAC/B,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC,sBAAsB,CAAC;IA+BlC;;;;;;;;;;;OAWG;IACG,wBAAwB,CAC5B,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC,UAAU,CAAC;IA0FtB;;;;;;;;;;OAUG;cACa,mBAAmB,CACjC,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAqC9C;;;;;;;;;;OAUG;cACa,UAAU,CACxB,UAAU,EAAE,mBAAmB,EAC/B,UAAU,EAAE,KAAK,EAAE,EACnB,OAAO,EAAE,QAAQ,EACjB,UAAU,EAAE,sBAAsB,GACjC,OAAO,CAAC,IAAI,CAAC;CA+DjB"}
1
+ {"version":3,"file":"app-ui-logic-executor.d.ts","sourceRoot":"","sources":["../../../src/logic-scheduler/executor/app-ui-logic-executor.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,mBAAmB,EAEnB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAG9E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD;;;;;;;GAOG;AACH,qBAAa,kBAAmB,SAAQ,aAAa;IAC3C,IAAI,EAAE,YAAY,CAAC;IAGrB,OAAO,CAAC,aAAa,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IA4B1D;;;;;;;;OAQG;IACG,yBAAyB,CAC7B,UAAU,EAAE,mBAAmB,EAC/B,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC,UAAU,CAAC;cAsDN,eAAe,CAC7B,UAAU,EAAE,mBAAmB,EAC/B,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC,sBAAsB,CAAC;IA+BlC;;;;;;;;;;;OAWG;IACG,wBAAwB,CAC5B,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC,UAAU,CAAC;IAgGtB;;;;;;;;;;OAUG;cACa,mBAAmB,CACjC,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAqC9C;;;;;;;;;;OAUG;cACa,UAAU,CACxB,UAAU,EAAE,kBAAkB,EAC9B,UAAU,EAAE,KAAK,EAAE,EACnB,OAAO,EAAE,QAAQ,EACjB,UAAU,EAAE,sBAAsB,EAClC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,IAAI,CAAC;CAkEjB"}
@@ -185,7 +185,7 @@ export class AppUILogicExecutor extends LogicExecutor {
185
185
  const result = await ibiz.commands.execute(OpenAppViewCommand.TAG, newViewRef.refAppViewId, tempContext, tempParams, rest);
186
186
  // 执行批添加新建逻辑
187
187
  if (enableBatchAdd && result.data) {
188
- await this.doBatchAdd(appUILogic, result.data, context, newViewRef);
188
+ await this.doBatchAdd(appUILogic, result.data, context, newViewRef, parameters.view);
189
189
  }
190
190
  return result;
191
191
  }
@@ -236,7 +236,7 @@ export class AppUILogicExecutor extends LogicExecutor {
236
236
  * @param {IAppUILogicRefViewBase} newViewRef
237
237
  * @return {*} {Promise<void>}
238
238
  */
239
- async doBatchAdd(appUILogic, selections, context, newViewRef) {
239
+ async doBatchAdd(appUILogic, selections, context, newViewRef, view) {
240
240
  var _a;
241
241
  // 批添加新建选中数据后
242
242
  if (selections === null || selections === void 0 ? void 0 : selections.length) {
@@ -246,22 +246,24 @@ export class AppUILogicExecutor extends LogicExecutor {
246
246
  if (!minorDERs) {
247
247
  throw new RuntimeModelError(selfDe, '实体没有从关系集合!');
248
248
  }
249
- // 获取选择视图对应父实体在当前实体里的外键属性名称。
250
- let pickParentFieldName;
249
+ // *获取选择视图对应父实体在当前实体里的外键属性名称。
250
+ let pickParentFieldName = '';
251
251
  minorDERs === null || minorDERs === void 0 ? void 0 : minorDERs.forEach(item => {
252
252
  const majorDeName = calcDeCodeNameById(item.majorAppDataEntityId);
253
253
  if (pickParentDeName === majorDeName) {
254
254
  pickParentFieldName = item.parentAppDEFieldId;
255
255
  }
256
256
  });
257
- // 获取key为keymapping的特殊视图参数
258
- const openViewKeyParam = (_a = newViewRef.navigateParams) === null || _a === void 0 ? void 0 : _a.find(navParam => {
259
- return navParam.key === 'keymapping';
260
- });
261
- let addData = [];
262
- if (openViewKeyParam) {
263
- const keyValuePairs = openViewKeyParam.value.split(';');
264
- const keyMapping = {};
257
+ if (pickParentFieldName === undefined) {
258
+ throw new RuntimeError(`没有找到${pickParentDeName}在当前实体的外键属性`);
259
+ }
260
+ // *转换的属性映射,默认映射一个外键属性,额外的通过当前视图的参数配置PROPERTYMAP
261
+ const keyMapping = {
262
+ srfkey: pickParentFieldName,
263
+ };
264
+ const propertyMap = (_a = view.model.appViewParams) === null || _a === void 0 ? void 0 : _a.find(item => item.key.toLowerCase() === 'PROPERTYMAP'.toLowerCase());
265
+ if (propertyMap) {
266
+ const keyValuePairs = propertyMap.value.split(',');
265
267
  // 遍历键值对数组并添加到 keyMapping 映射对象中
266
268
  for (const pair of keyValuePairs) {
267
269
  const [sourceKey, targetKey] = pair.split(':');
@@ -269,27 +271,19 @@ export class AppUILogicExecutor extends LogicExecutor {
269
271
  keyMapping[sourceKey] = targetKey;
270
272
  }
271
273
  }
272
- addData = selections.map(item => {
273
- const tempData = {
274
- [pickParentFieldName]: item.srfkey,
275
- };
276
- // 遍历映射对象,将属性从 item 复制到 tempData
277
- for (const key in keyMapping) {
278
- if (Object.prototype.hasOwnProperty.call(keyMapping, key)) {
279
- const targetKey = keyMapping[key];
280
- if (Object.prototype.hasOwnProperty.call(item, key)) {
281
- tempData[targetKey] = item[key];
282
- }
283
- }
284
- }
285
- return tempData;
286
- });
287
- }
288
- else {
289
- addData = selections.map(item => ({
290
- [pickParentFieldName]: item.srfkey,
291
- }));
292
274
  }
275
+ ibiz.log.debug('批量新建转换映射属性', keyMapping);
276
+ // *转换属性
277
+ const addData = selections.map(item => {
278
+ const tempData = {};
279
+ // 遍历映射对象,将属性从 item 复制到 tempData
280
+ Object.keys(keyMapping).forEach(key => {
281
+ const targetKey = keyMapping[key];
282
+ tempData[targetKey] = item[key];
283
+ });
284
+ return tempData;
285
+ });
286
+ ibiz.log.debug('批量新建创建数据', addData);
293
287
  // 获取实体服务并调用创建接口
294
288
  const service = ibiz.hub.getApp(context.srfappid).deService;
295
289
  await service.exec(selfDe.id, 'Create', context, addData);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/runtime",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "控制器包",
5
5
  "type": "module",
6
6
  "main": "out/index.js",
@@ -29,7 +29,7 @@
29
29
  "author": "chitanda",
30
30
  "license": "MIT",
31
31
  "devDependencies": {
32
- "@ibiz-template/core": "^0.5.1-next.0",
32
+ "@ibiz-template/core": "^0.5.2",
33
33
  "@ibiz/model-core": "^0.1.2",
34
34
  "@types/path-browserify": "^1.0.2",
35
35
  "@types/qs": "^6.9.11",
@@ -59,5 +59,5 @@
59
59
  "qx-util": "^0.4.8",
60
60
  "ramda": "^0.29.0"
61
61
  },
62
- "gitHead": "f442a5daebbca26f24b167d8afa470d8fd2ff8b8"
62
+ "gitHead": "e7e869a5ceda4a77a8bf73dbcf0bf1a0c9acf6c5"
63
63
  }
package/src/app-hub.ts CHANGED
@@ -233,6 +233,32 @@ export class AppHub implements IAppHubService {
233
233
  throw new RuntimeError(`视图[${id}]不存在`);
234
234
  }
235
235
 
236
+ /**
237
+ * 根据视图模型路径,加参数重新计算视图模型
238
+ *
239
+ * @author chitanda
240
+ * @date 2024-01-08 11:01:54
241
+ * @param {string} appId
242
+ * @param {string} modelPath
243
+ * @param {IParams} params
244
+ * @return {*} {Promise<IAppView>}
245
+ */
246
+ async loadAppView(
247
+ appId: string,
248
+ modelPath: string,
249
+ params: IParams,
250
+ ): Promise<IAppView> {
251
+ if (this.modelLoaderProvider) {
252
+ const model = await this.modelLoaderProvider.loadAppView(
253
+ appId,
254
+ modelPath,
255
+ params,
256
+ );
257
+ return model;
258
+ }
259
+ throw new RuntimeError(`视图[${modelPath}]不存在`);
260
+ }
261
+
236
262
  /**
237
263
  * 根据应用实体代码名称查找应用视图
238
264
  *
@@ -441,8 +441,6 @@ export class EditFormController
441
441
  ),
442
442
  );
443
443
  }
444
-
445
- await awaitTimeout(2000);
446
444
  } finally {
447
445
  if (showBusyIndicator) {
448
446
  this.endLoading();
@@ -126,6 +126,22 @@ export interface IAppHubService {
126
126
  */
127
127
  getAppView(tag: string): Promise<IAppView>;
128
128
 
129
+ /**
130
+ * 根据参数加载请求视图模型,用于后台根据运行时参数加载视图
131
+ *
132
+ * @author chitanda
133
+ * @date 2024-01-08 11:01:27
134
+ * @param {string} appId
135
+ * @param {string} viewId
136
+ * @param {IParams} params
137
+ * @return {*} {Promise<IAppView>}
138
+ */
139
+ loadAppView(
140
+ appId: string,
141
+ viewId: string,
142
+ params: IParams,
143
+ ): Promise<IAppView>;
144
+
129
145
  /**
130
146
  * 获取应用实体模型
131
147
  *
@@ -38,6 +38,22 @@ export interface ModelLoaderProvider {
38
38
  */
39
39
  getAppView(appId: string, codeName: string): Promise<IAppView>;
40
40
 
41
+ /**
42
+ * 根据参数加载请求视图模型,用于后台根据运行时参数加载视图
43
+ *
44
+ * @author chitanda
45
+ * @date 2024-01-08 10:01:43
46
+ * @param {string} appId
47
+ * @param {string} viewId
48
+ * @param {IParams} params
49
+ * @return {*} {Promise<IAppView>}
50
+ */
51
+ loadAppView(
52
+ appId: string,
53
+ viewId: string,
54
+ params: IParams,
55
+ ): Promise<IAppView>;
56
+
41
57
  /**
42
58
  * 根据 id 获取应用实体模型
43
59
  *
@@ -11,7 +11,7 @@ import {
11
11
  } from '@ibiz/model-core';
12
12
  import { notNilEmpty } from 'qx-util';
13
13
  import { OpenAppViewCommand } from '../../command';
14
- import { IModalData, IUILogicParams } from '../../interface';
14
+ import { IModalData, IUILogicParams, IViewController } from '../../interface';
15
15
  import { calcDeCodeNameById } from '../../model';
16
16
  import { convertNavData } from '../../utils';
17
17
  import { LogicExecutor } from './logic-executor';
@@ -256,7 +256,13 @@ export class AppUILogicExecutor extends LogicExecutor {
256
256
 
257
257
  // 执行批添加新建逻辑
258
258
  if (enableBatchAdd && result.data) {
259
- await this.doBatchAdd(appUILogic, result.data, context, newViewRef);
259
+ await this.doBatchAdd(
260
+ appUILogic,
261
+ result.data,
262
+ context,
263
+ newViewRef,
264
+ parameters.view,
265
+ );
260
266
  }
261
267
 
262
268
  return result;
@@ -325,10 +331,11 @@ export class AppUILogicExecutor extends LogicExecutor {
325
331
  * @return {*} {Promise<void>}
326
332
  */
327
333
  protected async doBatchAdd(
328
- appUILogic: IAppUIOpenDataLogic,
334
+ appUILogic: IAppUINewDataLogic,
329
335
  selections: IData[],
330
336
  context: IContext,
331
337
  newViewRef: IAppUILogicRefViewBase,
338
+ view: IViewController,
332
339
  ): Promise<void> {
333
340
  // 批添加新建选中数据后
334
341
  if (selections?.length) {
@@ -342,8 +349,8 @@ export class AppUILogicExecutor extends LogicExecutor {
342
349
  throw new RuntimeModelError(selfDe, '实体没有从关系集合!');
343
350
  }
344
351
 
345
- // 获取选择视图对应父实体在当前实体里的外键属性名称。
346
- let pickParentFieldName: string;
352
+ // *获取选择视图对应父实体在当前实体里的外键属性名称。
353
+ let pickParentFieldName: string = '';
347
354
  minorDERs?.forEach(item => {
348
355
  const majorDeName = calcDeCodeNameById(item.majorAppDataEntityId!);
349
356
  if (pickParentDeName === majorDeName) {
@@ -351,14 +358,21 @@ export class AppUILogicExecutor extends LogicExecutor {
351
358
  }
352
359
  });
353
360
 
354
- // 获取key为keymapping的特殊视图参数
355
- const openViewKeyParam = newViewRef.navigateParams?.find(navParam => {
356
- return navParam.key === 'keymapping';
357
- });
358
- let addData: IData[] = [];
359
- if (openViewKeyParam) {
360
- const keyValuePairs = openViewKeyParam.value!.split(';');
361
- const keyMapping: IData = {};
361
+ if (pickParentFieldName === undefined) {
362
+ throw new RuntimeError(
363
+ `没有找到${pickParentDeName}在当前实体的外键属性`,
364
+ );
365
+ }
366
+
367
+ // *转换的属性映射,默认映射一个外键属性,额外的通过当前视图的参数配置PROPERTYMAP
368
+ const keyMapping: IData = {
369
+ srfkey: pickParentFieldName,
370
+ };
371
+ const propertyMap = view.model.appViewParams?.find(
372
+ item => item.key!.toLowerCase() === 'PROPERTYMAP'.toLowerCase(),
373
+ );
374
+ if (propertyMap) {
375
+ const keyValuePairs = propertyMap.value!.split(',');
362
376
  // 遍历键值对数组并添加到 keyMapping 映射对象中
363
377
  for (const pair of keyValuePairs) {
364
378
  const [sourceKey, targetKey] = pair.split(':');
@@ -366,27 +380,23 @@ export class AppUILogicExecutor extends LogicExecutor {
366
380
  keyMapping[sourceKey] = targetKey;
367
381
  }
368
382
  }
369
- addData = selections.map(item => {
370
- const tempData: IData = {
371
- [pickParentFieldName]: item.srfkey,
372
- };
373
- // 遍历映射对象,将属性从 item 复制到 tempData
374
- for (const key in keyMapping) {
375
- if (Object.prototype.hasOwnProperty.call(keyMapping, key)) {
376
- const targetKey = keyMapping[key];
377
- if (Object.prototype.hasOwnProperty.call(item, key)) {
378
- tempData[targetKey] = item[key];
379
- }
380
- }
381
- }
382
- return tempData;
383
- });
384
- } else {
385
- addData = selections.map(item => ({
386
- [pickParentFieldName]: item.srfkey,
387
- }));
388
383
  }
389
384
 
385
+ ibiz.log.debug('批量新建转换映射属性', keyMapping);
386
+
387
+ // *转换属性
388
+ const addData: IData[] = selections.map(item => {
389
+ const tempData: IData = {};
390
+ // 遍历映射对象,将属性从 item 复制到 tempData
391
+ Object.keys(keyMapping).forEach(key => {
392
+ const targetKey = keyMapping[key];
393
+ tempData[targetKey] = item[key];
394
+ });
395
+ return tempData;
396
+ });
397
+
398
+ ibiz.log.debug('批量新建创建数据', addData);
399
+
390
400
  // 获取实体服务并调用创建接口
391
401
  const service = ibiz.hub.getApp(context.srfappid).deService;
392
402
  await service.exec(selfDe.id!, 'Create', context, addData);