@ibiz-template/runtime 0.7.41-alpha.123 → 0.7.41-alpha.124

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.
@@ -1 +1 @@
1
- {"version":3,"file":"global-config.d.ts","sourceRoot":"","sources":["../../src/config/global-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AAEtB;;;;;;;;GAQG;AACH,qBAAa,YAAa,YAAW,aAAa;IAEhD,IAAI,EAAE,iBAAiB,CAUrB;IAGF,IAAI,EAAE,iBAAiB,CAOrB;IAGF,OAAO,EAAE,oBAAoB,CAI3B;IAGF,QAAQ,EAAE,qBAAqB,CAE7B;IAGF,IAAI,EAAE,iBAAiB,CAWrB;IAGF,MAAM,EAAE,sBAAsB,CAG5B;IAGF,YAAY,EAAE,yBAAyB,CAErC;IAGF,YAAY,EAAE,yBAAyB,CAErC;IAGF,UAAU,EAAE,uBAAuB,CAIjC;IAGF,IAAI,EAAE,iBAAiB,CAGrB;IAGF,MAAM,EAAE,mBAAmB,CA8BzB;IAGF,KAAK,EAAE,sBAAsB,CAI3B;IAGF,iBAAiB,EAAE,MAAM,CAAM;IAG/B,iBAAiB,EAAE,SAAS,GAAG,OAAO,CAAW;IAGjD,iBAAiB,EAAE,MAAM,CAAM;IAG/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAQ;IAGjD,SAAS,EAAE,yBAAyB,CAmBlC;IAEF;;;;OAIG;IACH,GAAG,EAAE,gBAAgB,CAWnB;IAEF;;;;OAIG;IACH,iBAAiB,EAAE,wBAAwB,CAIzC;CACH"}
1
+ {"version":3,"file":"global-config.d.ts","sourceRoot":"","sources":["../../src/config/global-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AAEtB;;;;;;;;GAQG;AACH,qBAAa,YAAa,YAAW,aAAa;IAEhD,IAAI,EAAE,iBAAiB,CAUrB;IAGF,IAAI,EAAE,iBAAiB,CAOrB;IAGF,OAAO,EAAE,oBAAoB,CAI3B;IAGF,QAAQ,EAAE,qBAAqB,CAE7B;IAGF,IAAI,EAAE,iBAAiB,CAWrB;IAGF,MAAM,EAAE,sBAAsB,CAG5B;IAGF,YAAY,EAAE,yBAAyB,CAErC;IAGF,YAAY,EAAE,yBAAyB,CAErC;IAGF,UAAU,EAAE,uBAAuB,CAIjC;IAGF,IAAI,EAAE,iBAAiB,CAGrB;IAGF,MAAM,EAAE,mBAAmB,CA+BzB;IAGF,KAAK,EAAE,sBAAsB,CAI3B;IAGF,iBAAiB,EAAE,MAAM,CAAM;IAG/B,iBAAiB,EAAE,SAAS,GAAG,OAAO,CAAW;IAGjD,iBAAiB,EAAE,MAAM,CAAM;IAG/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAAQ;IAGjD,SAAS,EAAE,yBAAyB,CAmBlC;IAEF;;;;OAIG;IACH,GAAG,EAAE,gBAAgB,CAWnB;IAEF;;;;OAIG;IACH,iBAAiB,EAAE,wBAAwB,CAIzC;CACH"}
@@ -108,6 +108,7 @@ export class GlobalConfig {
108
108
  importTemplNameMode: 'default',
109
109
  aiUploadMaxSize: 5242880,
110
110
  aiAutoQuestion: true,
111
+ asyncImport: false,
111
112
  };
112
113
  // 全局分页流布局配置
113
114
  this.drtab = {
@@ -252,11 +252,11 @@ export class FormController extends ControlController {
252
252
  return [Array.from(new Set([...arr1[0], ...arr2[0]]))];
253
253
  }, 200);
254
254
  // 监听表单成员事件,触发对应部件逻辑
255
- this._evt.on('onFormDetailEvent', event => {
255
+ this._evt.on('onFormDetailEvent', async (event) => {
256
256
  var _a;
257
257
  if (this.state.formIsDestroyed)
258
258
  return;
259
- (_a = this.scheduler) === null || _a === void 0 ? void 0 : _a.triggerControlEvent(event.formDetailName, event.formDetailEventName, event);
259
+ await ((_a = this.scheduler) === null || _a === void 0 ? void 0 : _a.triggerControlItemEvent(event.formDetailName, event.formDetailEventName, event));
260
260
  });
261
261
  }
262
262
  /**
@@ -1,6 +1,7 @@
1
1
  import { IDEForm } from '@ibiz/model-core';
2
2
  import { IEditFormController, IFormMDCtrlRepeaterController } from '../../../../../interface';
3
3
  import { FormMDCtrlController } from './form-mdctrl.controller';
4
+ import { EditFormController } from '../../edit-form';
4
5
  import { FormNotifyState } from '../../../../constant';
5
6
  /**
6
7
  * @description 表单多数据部件(重复器)控制器
@@ -10,6 +11,7 @@ import { FormNotifyState } from '../../../../constant';
10
11
  * @implements {IFormMDCtrlRepeaterController}
11
12
  */
12
13
  export declare class FormMDCtrlRepeaterController extends FormMDCtrlController implements IFormMDCtrlRepeaterController {
14
+ form: EditFormController;
13
15
  /**
14
16
  * @description 多数据重复器对应的表单里的值
15
17
  * @readonly
@@ -90,19 +92,31 @@ export declare class FormMDCtrlRepeaterController extends FormMDCtrlController i
90
92
  * @memberof FormMDCtrlRepeaterController
91
93
  */
92
94
  setValue(value: IData[] | IData | null): void;
95
+ /**
96
+ * @description 自定义事件
97
+ * @private
98
+ * @param {{
99
+ * eventName: string;
100
+ * index?: number;
101
+ * eventArg: IData;
102
+ * }} args
103
+ * @returns {*} {Promise<void>}
104
+ * @memberof FormMDCtrlRepeaterController
105
+ */
106
+ private onCustomAction;
93
107
  /**
94
108
  * @description 添加或创建一条数据
95
109
  * @param {number} [index]
96
110
  * @memberof FormMDCtrlRepeaterController
97
111
  */
98
- create(index?: number): void;
112
+ create(index?: number): Promise<void>;
99
113
  /**
100
114
  * @description 删除数据
101
115
  * @param {number} [index]
102
116
  * @returns {*} {void}
103
117
  * @memberof FormMDCtrlRepeaterController
104
118
  */
105
- remove(index?: number): void;
119
+ remove(index?: number): Promise<void>;
106
120
  /**
107
121
  * @description 拖拽变更
108
122
  * @param {number} _draggedIndex 当前拖拽元素的下标
@@ -1 +1 @@
1
- {"version":3,"file":"form-mdctrl-repeater.controller.d.ts","sourceRoot":"","sources":["../../../../../../src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,OAAO,EAAiB,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAEL,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;GAMG;AACH,qBAAa,4BACX,SAAQ,oBACR,YAAW,6BAA6B;IAExC;;;;;OAKG;IACH,IAAI,KAAK,IAAI,KAAK,EAAE,GAAG,KAAK,GAAG,IAAI,CAElC;IAED;;;;;OAKG;IACH,IAAI,UAAU,IAAI,OAAO,CAMxB;IAED;;;;OAIG;IACH,aAAa,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,CAAe;IAEjE;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAS;IAE9B;;;;OAIG;IACH,YAAY,EAAG,OAAO,CAAC;IAEvB;;;OAGG;IACH,WAAW,mCAA0C;IAErD;;;;;OAKG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCvC;;;OAGG;IACH,mBAAmB,IAAI,IAAI;IA2C3B;;;;OAIG;IACH,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAgB1C;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,IAAI;IAUxE;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IASlC;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IASxC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI;IAW7C;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAsB5B;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAgB5B;;;;;OAKG;IACH,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAQ7D;;;;;OAKG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBtD;;;;;OAKG;IACG,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5D;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI;CAkC9D"}
1
+ {"version":3,"file":"form-mdctrl-repeater.controller.d.ts","sourceRoot":"","sources":["../../../../../../src/controller/control/form/form-detail/form-mdctrl/form-mdctrl-repeater.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,OAAO,EAAiB,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAEL,mBAAmB,EACnB,6BAA6B,EAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;;;;;GAMG;AACH,qBAAa,4BACX,SAAQ,oBACR,YAAW,6BAA6B;IAExC,IAAI,EAAG,kBAAkB,CAAC;IAE1B;;;;;OAKG;IACH,IAAI,KAAK,IAAI,KAAK,EAAE,GAAG,KAAK,GAAG,IAAI,CAElC;IAED;;;;;OAKG;IACH,IAAI,UAAU,IAAI,OAAO,CAMxB;IAED;;;;OAIG;IACH,aAAa,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,CAAe;IAEjE;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAS;IAE9B;;;;OAIG;IACH,YAAY,EAAG,OAAO,CAAC;IAEvB;;;OAGG;IACH,WAAW,mCAA0C;IAErD;;;;;OAKG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCvC;;;OAGG;IACH,mBAAmB,IAAI,IAAI;IA2C3B;;;;OAIG;IACH,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAgB1C;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,GAAG,IAAI;IAUxE;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAWlC;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAWxC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI;IAW7C;;;;;;;;;;OAUG;YACW,cAAc;IAY5B;;;;OAIG;IACG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC3C;;;;;OAKG;IACG,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B3C;;;;;OAKG;IACH,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAQ7D;;;;;OAKG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBtD;;;;;OAKG;IACG,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5D;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI;CAkC9D"}
@@ -167,7 +167,7 @@ export class FormMDCtrlRepeaterController extends FormMDCtrlController {
167
167
  * @memberof FormMDCtrlRepeaterController
168
168
  */
169
169
  async validate() {
170
- const values = await Promise.all(Array.from(this.repeaterMap.values()).map(form => form.validate()));
170
+ const values = await Promise.all(Array.from(this.repeaterMap.values()).map(form => form.state.isLoaded && form.validate()));
171
171
  // 找不到value为false即全部是true
172
172
  return values.findIndex(value => !value) === -1;
173
173
  }
@@ -177,7 +177,7 @@ export class FormMDCtrlRepeaterController extends FormMDCtrlController {
177
177
  * @memberof FormMDCtrlRepeaterController
178
178
  */
179
179
  async silentValidate() {
180
- const values = await Promise.all(Array.from(this.repeaterMap.values()).map(form => form.silentValidate()));
180
+ const values = await Promise.all(Array.from(this.repeaterMap.values()).map(form => form.state.isLoaded && form.silentValidate()));
181
181
  // 找不到value为false即全部是true
182
182
  return values.findIndex(value => !value) === -1;
183
183
  }
@@ -196,15 +196,38 @@ export class FormMDCtrlRepeaterController extends FormMDCtrlController {
196
196
  args: { oldValue },
197
197
  });
198
198
  }
199
+ /**
200
+ * @description 自定义事件
201
+ * @private
202
+ * @param {{
203
+ * eventName: string;
204
+ * index?: number;
205
+ * eventArg: IData;
206
+ * }} args
207
+ * @returns {*} {Promise<void>}
208
+ * @memberof FormMDCtrlRepeaterController
209
+ */
210
+ async onCustomAction(args) {
211
+ await this.form.evt.emit('onFormDetailEvent', {
212
+ formDetailName: this.name || this.model.id,
213
+ formDetailEventName: FormDetailEventName.CUSTOMACTION,
214
+ args: Object.assign(Object.assign({}, args), { data: this.value }),
215
+ });
216
+ }
199
217
  /**
200
218
  * @description 添加或创建一条数据
201
219
  * @param {number} [index]
202
220
  * @memberof FormMDCtrlRepeaterController
203
221
  */
204
- create(index) {
222
+ async create(index) {
205
223
  const item = {};
206
224
  // 设置新建默认值
207
225
  this.setDefaultValue(item, 'create');
226
+ await this.onCustomAction({
227
+ index,
228
+ eventArg: item,
229
+ eventName: 'onBeforeNew',
230
+ });
208
231
  if (this.isSingleData) {
209
232
  this.setValue(item);
210
233
  }
@@ -220,6 +243,11 @@ export class FormMDCtrlRepeaterController extends FormMDCtrlController {
220
243
  }
221
244
  this.setValue(tempValue);
222
245
  }
246
+ await this.onCustomAction({
247
+ index,
248
+ eventArg: item,
249
+ eventName: 'onNewSuccess',
250
+ });
223
251
  this.form.evt.emit('onMDCtrlNew', {
224
252
  args: item,
225
253
  });
@@ -230,7 +258,15 @@ export class FormMDCtrlRepeaterController extends FormMDCtrlController {
230
258
  * @returns {*} {void}
231
259
  * @memberof FormMDCtrlRepeaterController
232
260
  */
233
- remove(index) {
261
+ async remove(index) {
262
+ const item = this.isSingleData
263
+ ? this.value
264
+ : this.value[index];
265
+ await this.onCustomAction({
266
+ index,
267
+ eventArg: item,
268
+ eventName: 'onBeforeRemove',
269
+ });
234
270
  if (this.isSingleData) {
235
271
  // 单项数据的时候删除就是清空
236
272
  this.setValue(null);
@@ -240,6 +276,11 @@ export class FormMDCtrlRepeaterController extends FormMDCtrlController {
240
276
  return index !== i;
241
277
  });
242
278
  this.setValue(newArr);
279
+ await this.onCustomAction({
280
+ index,
281
+ eventArg: item,
282
+ eventName: 'onRemoveSuccess',
283
+ });
243
284
  this.form.evt.emit('onMDCtrlRemove', {
244
285
  args: newArr,
245
286
  });
@@ -160,9 +160,9 @@ export async function importData(file, appDataEntity, dataImport, context, param
160
160
  */
161
161
  export async function importData2(opts) {
162
162
  const result = {
163
- isAsync: ibiz.env.enableMqtt,
163
+ isAsync: ibiz.config.common.asyncImport,
164
164
  };
165
- if (ibiz.env.enableMqtt) {
165
+ if (ibiz.config.common.asyncImport) {
166
166
  // 异步导入不需要等待
167
167
  asyncImportData(opts.selectedFile, opts.appDataEntity, opts.dataImport, opts.context, opts.params);
168
168
  }
@@ -258,5 +258,14 @@ export interface IApiGlobalCommonConfig {
258
258
  * @memberof IApiGlobalCommonConfig
259
259
  */
260
260
  aiAutoQuestion: boolean;
261
+ /**
262
+ * @description 是否启用异步导入
263
+ * @type {boolean}
264
+ * @default false
265
+ * @platform web
266
+ * @platform mob
267
+ * @memberof IApiGlobalCommonConfig
268
+ */
269
+ asyncImport: boolean;
261
270
  }
262
271
  //# sourceMappingURL=i-api-global-common-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i-api-global-common-config.d.ts","sourceRoot":"","sources":["../../../../../src/interface/api/common/global-config/i-api-global-common-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,aAAa,EAAE,SAAS,GAAG,aAAa,CAAC;IAEzC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;;;OAOG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;;;;;;OAOG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;;;OAMG;IACH,gBAAgB,EAAE,SAAS,GAAG,UAAU,CAAC;IAEzC;;;;;;;OAOG;IACH,YAAY,EAAE,SAAS,GAAG,SAAS,CAAC;IAEpC;;;;;;OAMG;IACH,mBAAmB,EAAE,SAAS,GAAG,QAAQ,CAAC;IAE1C;;;;;;;OAOG;IACH,sBAAsB,EAAE,SAAS,GAAG,QAAQ,CAAC;IAE7C;;;;;;OAMG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;;;;;OAMG;IACH,sBAAsB,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAE1D;;;;;;OAMG;IACH,cAAc,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAE/C;;;;;;OAMG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;;;;;OAMG;IACH,yBAAyB,EAAE,OAAO,CAAC;IAEnC;;;;;;OAMG;IACH,yBAAyB,EAAE,OAAO,CAAC;IAEnC;;;;;;OAMG;IACH,kBAAkB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9B;;;;;OAKG;IACH,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1C;;;;;OAKG;IACH,0BAA0B,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/C;;;;;;OAMG;IACH,0BAA0B,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAE9C;;;;;;;OAOG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;;;OAMG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAE5B;;;;;;;OAOG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;;;;;;OAOG;IACH,uBAAuB,EAAE,OAAO,CAAC;IAEjC;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;;;;;OAOG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;;;;OAOG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;;;;;;OAOG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;;;OAMG;IACH,cAAc,EAAE,OAAO,CAAC;CACzB"}
1
+ {"version":3,"file":"i-api-global-common-config.d.ts","sourceRoot":"","sources":["../../../../../src/interface/api/common/global-config/i-api-global-common-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,aAAa,EAAE,SAAS,GAAG,aAAa,CAAC;IAEzC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;;;OAOG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;;;;;;OAOG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;;;OAMG;IACH,gBAAgB,EAAE,SAAS,GAAG,UAAU,CAAC;IAEzC;;;;;;;OAOG;IACH,YAAY,EAAE,SAAS,GAAG,SAAS,CAAC;IAEpC;;;;;;OAMG;IACH,mBAAmB,EAAE,SAAS,GAAG,QAAQ,CAAC;IAE1C;;;;;;;OAOG;IACH,sBAAsB,EAAE,SAAS,GAAG,QAAQ,CAAC;IAE7C;;;;;;OAMG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;;;;;OAMG;IACH,sBAAsB,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAE1D;;;;;;OAMG;IACH,cAAc,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IAE/C;;;;;;OAMG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;;;;;OAMG;IACH,yBAAyB,EAAE,OAAO,CAAC;IAEnC;;;;;;OAMG;IACH,yBAAyB,EAAE,OAAO,CAAC;IAEnC;;;;;;OAMG;IACH,kBAAkB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE9B;;;;;OAKG;IACH,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1C;;;;;OAKG;IACH,0BAA0B,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/C;;;;;;OAMG;IACH,0BAA0B,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAE9C;;;;;;;OAOG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;;;OAMG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAE5B;;;;;;;OAOG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;;;;;;OAOG;IACH,uBAAuB,EAAE,OAAO,CAAC;IAEjC;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;;;;;OAOG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;;;;OAOG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;;;;;;OAOG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;;;OAMG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB"}
@@ -151,5 +151,13 @@ export declare class LogicScheduler {
151
151
  * @return {*} {(boolean | undefined)}
152
152
  */
153
153
  triggerControlEvent(ctrlName: string, eventName: string, executeParams?: Partial<IUILogicParams>): void;
154
+ /**
155
+ * @description 触发部件项事件
156
+ * @param {string} ctrlItemName 部件项名称
157
+ * @param {string} eventName 事件名称
158
+ * @param {Partial<IUILogicParams>} [executeParams] 执行参数
159
+ * @memberof LogicScheduler
160
+ */
161
+ triggerControlItemEvent(ctrlItemName: string, eventName: string, executeParams?: Partial<IUILogicParams>): Promise<void>;
154
162
  }
155
163
  //# sourceMappingURL=logic-scheduler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logic-scheduler.d.ts","sourceRoot":"","sources":["../../../src/logic-scheduler/scheduler/logic-scheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,MAAM,EAAE,eAAe,EAAE,CAAC;IAE1B,QAAQ,4BAAmC;IAE3C,SAAS,6BAAoC;IAE7C;;;;;OAKG;IACH,mBAAmB,EAAE,OAAO,CAAS;IAErC;;;;;OAKG;IACH,sBAAsB,EAAE,OAAO,CAAS;IAExC;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAS;gBAEjB,MAAM,EAAE,eAAe,EAAE,EAAE,aAAa,GAAE,MAAM,EAAO;IAmBnE;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAMf;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,cAAc,CAAC;IAEvC;;;;;;OAMG;IACH,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;IAQxE;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CACrB,KAAK,EAAE,eAAe,EACtB,aAAa,GAAE,MAAM,EAAO,GAC3B,YAAY;IAiBf;;;;;;;OAOG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,aAAa;IAI/D;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,GAAG,YAAY,EAAE;IAU5E;;;;;;;;OAQG;IACH,iBAAiB,CACf,WAAW,EAAE,mBAAmB,EAChC,aAAa,GAAE,OAAO,CAAC,cAAc,CAAM,GAE1C,GAAG,EAAE,GAAG,SAAS;IAcpB;;;;;;;;;OASG;IACH,SAAS,CAAC,oBAAoB,CAC5B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,aAAa,GAAG,YAAY,GAAG,WAAW,EACvD,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAQtB;;;;;;;OAOG;IACH,kBAAkB,CAChB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAItB;;;;;;;OAOG;IACH,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAItB;;;;;;;OAOG;IACH,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAItB;;;;OAIG;IACH,iBAAiB,IAAI,IAAI;IAKzB;;;;;;;OAOG;IAEH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,GAAG;IAStE;;;;;;;OAOG;IACH,mBAAmB,CACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GACtC,IAAI;CAQR"}
1
+ {"version":3,"file":"logic-scheduler.d.ts","sourceRoot":"","sources":["../../../src/logic-scheduler/scheduler/logic-scheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD;;;;;;GAMG;AACH,qBAAa,cAAc;IACzB,MAAM,EAAE,eAAe,EAAE,CAAC;IAE1B,QAAQ,4BAAmC;IAE3C,SAAS,6BAAoC;IAE7C;;;;;OAKG;IACH,mBAAmB,EAAE,OAAO,CAAS;IAErC;;;;;OAKG;IACH,sBAAsB,EAAE,OAAO,CAAS;IAExC;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAS;gBAEjB,MAAM,EAAE,eAAe,EAAE,EAAE,aAAa,GAAE,MAAM,EAAO;IAmBnE;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAMf;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,cAAc,CAAC;IAEvC;;;;;;OAMG;IACH,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;IAQxE;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CACrB,KAAK,EAAE,eAAe,EACtB,aAAa,GAAE,MAAM,EAAO,GAC3B,YAAY;IAiBf;;;;;;;OAOG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,aAAa;IAI/D;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,GAAG,YAAY,EAAE;IAU5E;;;;;;;;OAQG;IACH,iBAAiB,CACf,WAAW,EAAE,mBAAmB,EAChC,aAAa,GAAE,OAAO,CAAC,cAAc,CAAM,GAE1C,GAAG,EAAE,GAAG,SAAS;IAcpB;;;;;;;;;OASG;IACH,SAAS,CAAC,oBAAoB,CAC5B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,aAAa,GAAG,YAAY,GAAG,WAAW,EACvD,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAQtB;;;;;;;OAOG;IACH,kBAAkB,CAChB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAItB;;;;;;;OAOG;IACH,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAItB;;;;;;;OAOG;IACH,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GACrC,OAAO,GAAG,SAAS;IAItB;;;;OAIG;IACH,iBAAiB,IAAI,IAAI;IAKzB;;;;;;;OAOG;IAEH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,GAAG;IAStE;;;;;;;OAOG;IACH,mBAAmB,CACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GACtC,IAAI;IASP;;;;;;OAMG;IACG,uBAAuB,CAC3B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC;CASjB"}
@@ -234,4 +234,21 @@ export class LogicScheduler {
234
234
  };
235
235
  this.triggerAndExecute(matchParams, executeParams);
236
236
  }
237
+ /**
238
+ * @description 触发部件项事件
239
+ * @param {string} ctrlItemName 部件项名称
240
+ * @param {string} eventName 事件名称
241
+ * @param {Partial<IUILogicParams>} [executeParams] 执行参数
242
+ * @memberof LogicScheduler
243
+ */
244
+ async triggerControlItemEvent(ctrlItemName, eventName, executeParams) {
245
+ const matchParams = {
246
+ eventName,
247
+ ctrlName: ctrlItemName,
248
+ triggerType: 'CTRLEVENT',
249
+ };
250
+ const result = this.triggerAndExecute(matchParams, executeParams);
251
+ if (result)
252
+ await Promise.all(result);
253
+ }
237
254
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/runtime",
3
- "version": "0.7.41-alpha.123",
3
+ "version": "0.7.41-alpha.124",
4
4
  "description": "运行时逻辑库",
5
5
  "type": "module",
6
6
  "main": "out/index.js",
@@ -70,5 +70,5 @@
70
70
  "qx-util": "^0.4.8",
71
71
  "ramda": "^0.29.0"
72
72
  },
73
- "gitHead": "f1cf42a4ab139d6ca4eab2f2a51f566744b446b2"
73
+ "gitHead": "a0501c822177c396a8209d3cee75a9a2c494e46a"
74
74
  }
@@ -136,6 +136,7 @@ export class GlobalConfig implements IGlobalConfig {
136
136
  importTemplNameMode: 'default',
137
137
  aiUploadMaxSize: 5242880,
138
138
  aiAutoQuestion: true,
139
+ asyncImport: false,
139
140
  };
140
141
 
141
142
  // 全局分页流布局配置
@@ -338,9 +338,9 @@ export abstract class FormController<
338
338
  );
339
339
 
340
340
  // 监听表单成员事件,触发对应部件逻辑
341
- this._evt.on('onFormDetailEvent', event => {
341
+ this._evt.on('onFormDetailEvent', async event => {
342
342
  if (this.state.formIsDestroyed) return;
343
- this.scheduler?.triggerControlEvent(
343
+ await this.scheduler?.triggerControlItemEvent(
344
344
  event.formDetailName,
345
345
  event.formDetailEventName,
346
346
  event,
@@ -23,6 +23,8 @@ export class FormMDCtrlRepeaterController
23
23
  extends FormMDCtrlController
24
24
  implements IFormMDCtrlRepeaterController
25
25
  {
26
+ form!: EditFormController;
27
+
26
28
  /**
27
29
  * @description 多数据重复器对应的表单里的值
28
30
  * @readonly
@@ -192,7 +194,7 @@ export class FormMDCtrlRepeaterController
192
194
  setRepeaterController(id: string, controller: IEditFormController): void {
193
195
  this.repeaterMap.set(id, controller);
194
196
  if (this.value && this.repeaterMap.size === this.value.length) {
195
- (this.form as EditFormController).evt.emit('onMDCtrlChange', {
197
+ this.form.evt.emit('onMDCtrlChange', {
196
198
  name: this.name,
197
199
  args: this,
198
200
  });
@@ -206,7 +208,9 @@ export class FormMDCtrlRepeaterController
206
208
  */
207
209
  async validate(): Promise<boolean> {
208
210
  const values = await Promise.all(
209
- Array.from(this.repeaterMap.values()).map(form => form.validate()),
211
+ Array.from(this.repeaterMap.values()).map(
212
+ form => form.state.isLoaded && form.validate(),
213
+ ),
210
214
  );
211
215
 
212
216
  // 找不到value为false即全部是true
@@ -220,7 +224,9 @@ export class FormMDCtrlRepeaterController
220
224
  */
221
225
  async silentValidate(): Promise<boolean> {
222
226
  const values = await Promise.all(
223
- Array.from(this.repeaterMap.values()).map(form => form.silentValidate()),
227
+ Array.from(this.repeaterMap.values()).map(
228
+ form => form.state.isLoaded && form.silentValidate(),
229
+ ),
224
230
  );
225
231
 
226
232
  // 找不到value为false即全部是true
@@ -243,15 +249,43 @@ export class FormMDCtrlRepeaterController
243
249
  });
244
250
  }
245
251
 
252
+ /**
253
+ * @description 自定义事件
254
+ * @private
255
+ * @param {{
256
+ * eventName: string;
257
+ * index?: number;
258
+ * eventArg: IData;
259
+ * }} args
260
+ * @returns {*} {Promise<void>}
261
+ * @memberof FormMDCtrlRepeaterController
262
+ */
263
+ private async onCustomAction(args: {
264
+ eventName: string;
265
+ index?: number;
266
+ eventArg: IData;
267
+ }): Promise<void> {
268
+ await this.form.evt.emit('onFormDetailEvent', {
269
+ formDetailName: this.name || this.model.id!,
270
+ formDetailEventName: FormDetailEventName.CUSTOMACTION,
271
+ args: { ...args, data: this.value },
272
+ });
273
+ }
274
+
246
275
  /**
247
276
  * @description 添加或创建一条数据
248
277
  * @param {number} [index]
249
278
  * @memberof FormMDCtrlRepeaterController
250
279
  */
251
- create(index?: number): void {
280
+ async create(index?: number): Promise<void> {
252
281
  const item = {};
253
282
  // 设置新建默认值
254
283
  this.setDefaultValue(item, 'create');
284
+ await this.onCustomAction({
285
+ index,
286
+ eventArg: item,
287
+ eventName: 'onBeforeNew',
288
+ });
255
289
  if (this.isSingleData) {
256
290
  this.setValue(item);
257
291
  } else {
@@ -265,7 +299,12 @@ export class FormMDCtrlRepeaterController
265
299
  }
266
300
  this.setValue(tempValue);
267
301
  }
268
- (this.form as EditFormController).evt.emit('onMDCtrlNew', {
302
+ await this.onCustomAction({
303
+ index,
304
+ eventArg: item,
305
+ eventName: 'onNewSuccess',
306
+ });
307
+ this.form.evt.emit('onMDCtrlNew', {
269
308
  args: item,
270
309
  });
271
310
  }
@@ -276,7 +315,15 @@ export class FormMDCtrlRepeaterController
276
315
  * @returns {*} {void}
277
316
  * @memberof FormMDCtrlRepeaterController
278
317
  */
279
- remove(index?: number): void {
318
+ async remove(index?: number): Promise<void> {
319
+ const item = this.isSingleData
320
+ ? (this.value as IData)
321
+ : (this.value as IData[])[index!];
322
+ await this.onCustomAction({
323
+ index,
324
+ eventArg: item,
325
+ eventName: 'onBeforeRemove',
326
+ });
280
327
  if (this.isSingleData) {
281
328
  // 单项数据的时候删除就是清空
282
329
  this.setValue(null);
@@ -285,9 +332,13 @@ export class FormMDCtrlRepeaterController
285
332
  const newArr = (this.value! as IData[]).filter((_, i) => {
286
333
  return index !== i;
287
334
  });
288
-
289
335
  this.setValue(newArr);
290
- (this.form as EditFormController).evt.emit('onMDCtrlRemove', {
336
+ await this.onCustomAction({
337
+ index,
338
+ eventArg: item,
339
+ eventName: 'onRemoveSuccess',
340
+ });
341
+ this.form.evt.emit('onMDCtrlRemove', {
291
342
  args: newArr,
292
343
  });
293
344
  }
@@ -256,9 +256,9 @@ export async function importData2(opts: {
256
256
  params?: IParams;
257
257
  }): Promise<ImportDataResult> {
258
258
  const result: ImportDataResult = {
259
- isAsync: ibiz.env.enableMqtt,
259
+ isAsync: ibiz.config.common.asyncImport,
260
260
  };
261
- if (ibiz.env.enableMqtt) {
261
+ if (ibiz.config.common.asyncImport) {
262
262
  // 异步导入不需要等待
263
263
  asyncImportData(
264
264
  opts.selectedFile,
@@ -288,4 +288,14 @@ export interface IApiGlobalCommonConfig {
288
288
  * @memberof IApiGlobalCommonConfig
289
289
  */
290
290
  aiAutoQuestion: boolean;
291
+
292
+ /**
293
+ * @description 是否启用异步导入
294
+ * @type {boolean}
295
+ * @default false
296
+ * @platform web
297
+ * @platform mob
298
+ * @memberof IApiGlobalCommonConfig
299
+ */
300
+ asyncImport: boolean;
291
301
  }
@@ -296,4 +296,25 @@ export class LogicScheduler {
296
296
  } as const;
297
297
  this.triggerAndExecute(matchParams, executeParams);
298
298
  }
299
+
300
+ /**
301
+ * @description 触发部件项事件
302
+ * @param {string} ctrlItemName 部件项名称
303
+ * @param {string} eventName 事件名称
304
+ * @param {Partial<IUILogicParams>} [executeParams] 执行参数
305
+ * @memberof LogicScheduler
306
+ */
307
+ async triggerControlItemEvent(
308
+ ctrlItemName: string,
309
+ eventName: string,
310
+ executeParams?: Partial<IUILogicParams>,
311
+ ): Promise<void> {
312
+ const matchParams = {
313
+ eventName,
314
+ ctrlName: ctrlItemName,
315
+ triggerType: 'CTRLEVENT',
316
+ } as const;
317
+ const result = this.triggerAndExecute(matchParams, executeParams);
318
+ if (result) await Promise.all(result);
319
+ }
299
320
  }