@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/dist/index.esm.js +53 -29
- package/dist/index.system.min.js +1 -1
- package/out/app-hub.d.ts +11 -0
- package/out/app-hub.d.ts.map +1 -1
- package/out/app-hub.js +17 -0
- package/out/controller/control/form/edit-form/edit-form.controller.d.ts.map +1 -1
- package/out/controller/control/form/edit-form/edit-form.controller.js +0 -1
- package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts +11 -0
- package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts.map +1 -1
- package/out/interface/provider/model-loader.provider.d.ts +11 -0
- package/out/interface/provider/model-loader.provider.d.ts.map +1 -1
- package/out/logic-scheduler/executor/app-ui-logic-executor.d.ts +2 -2
- package/out/logic-scheduler/executor/app-ui-logic-executor.d.ts.map +1 -1
- package/out/logic-scheduler/executor/app-ui-logic-executor.js +26 -32
- package/package.json +3 -3
- package/src/app-hub.ts +26 -0
- package/src/controller/control/form/edit-form/edit-form.controller.ts +0 -2
- package/src/interface/common/i-app-hub-service/i-app-hub-service.ts +16 -0
- package/src/interface/provider/model-loader.provider.ts +16 -0
- package/src/logic-scheduler/executor/app-ui-logic-executor.ts +42 -32
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
|
*
|
package/out/app-hub.d.ts.map
CHANGED
|
@@ -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;
|
|
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:
|
|
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;
|
|
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
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
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.
|
|
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.
|
|
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": "
|
|
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
|
*
|
|
@@ -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(
|
|
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:
|
|
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
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
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);
|