@byteluck-fe/model-driven-driven 2.5.0-beta.4 → 2.5.0-beta.6

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/esm/utils.js CHANGED
@@ -85,11 +85,105 @@ function _unsupportedIterableToArray(o, minLen) {
85
85
  if (n === "Map" || n === "Set") return Array.from(n);
86
86
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
87
87
  }
88
- import regeneratorRuntime from "regenerator-runtime";
89
- import { loopFormControl } from './designerUtils';
90
- import { CONTROL_BASE_TYPE, CONTROL_TYPE, FieldTypeToColumnType, isArray } from '@byteluck-fe/model-driven-shared';
91
- import Designer from './Designer';
92
- import { objectDataBindControlTypes, objectDataBindKeyToFieldType } from './constants';
88
+ var __generator = this && this.__generator || function(thisArg, body) {
89
+ var f, y, t, g, _ = {
90
+ label: 0,
91
+ sent: function() {
92
+ if (t[0] & 1) throw t[1];
93
+ return t[1];
94
+ },
95
+ trys: [],
96
+ ops: []
97
+ };
98
+ return g = {
99
+ next: verb(0),
100
+ "throw": verb(1),
101
+ "return": verb(2)
102
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
103
+ return this;
104
+ }), g;
105
+ function verb(n) {
106
+ return function(v) {
107
+ return step([
108
+ n,
109
+ v
110
+ ]);
111
+ };
112
+ }
113
+ function step(op) {
114
+ if (f) throw new TypeError("Generator is already executing.");
115
+ while(_)try {
116
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
117
+ if (y = 0, t) op = [
118
+ op[0] & 2,
119
+ t.value
120
+ ];
121
+ switch(op[0]){
122
+ case 0:
123
+ case 1:
124
+ t = op;
125
+ break;
126
+ case 4:
127
+ _.label++;
128
+ return {
129
+ value: op[1],
130
+ done: false
131
+ };
132
+ case 5:
133
+ _.label++;
134
+ y = op[1];
135
+ op = [
136
+ 0
137
+ ];
138
+ continue;
139
+ case 7:
140
+ op = _.ops.pop();
141
+ _.trys.pop();
142
+ continue;
143
+ default:
144
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
145
+ _ = 0;
146
+ continue;
147
+ }
148
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
149
+ _.label = op[1];
150
+ break;
151
+ }
152
+ if (op[0] === 6 && _.label < t[1]) {
153
+ _.label = t[1];
154
+ t = op;
155
+ break;
156
+ }
157
+ if (t && _.label < t[2]) {
158
+ _.label = t[2];
159
+ _.ops.push(op);
160
+ break;
161
+ }
162
+ if (t[2]) _.ops.pop();
163
+ _.trys.pop();
164
+ continue;
165
+ }
166
+ op = body.call(thisArg, _);
167
+ } catch (e) {
168
+ op = [
169
+ 6,
170
+ e
171
+ ];
172
+ y = 0;
173
+ } finally{
174
+ f = t = 0;
175
+ }
176
+ if (op[0] & 5) throw op[1];
177
+ return {
178
+ value: op[0] ? op[1] : void 0,
179
+ done: true
180
+ };
181
+ }
182
+ };
183
+ import { loopFormControl } from "./designerUtils";
184
+ import { CONTROL_BASE_TYPE, CONTROL_TYPE, FieldTypeToColumnType, isArray } from "@byteluck-fe/model-driven-shared";
185
+ import Designer from "./Designer";
186
+ import { objectDataBindControlTypes, objectDataBindKeyToFieldType } from "./constants";
93
187
  export function getMasterFormControls(controls) {
94
188
  var formctls = [];
95
189
  // @ts-ignore
@@ -105,7 +199,7 @@ export function getMasterFormControls(controls) {
105
199
  * @description 给modelBindInfoList中填充fieldCode和dataCode
106
200
  * @description 我们生成fieldCode的规则是:DataBind的控件,取`field_${id}`,ObjectDataBind的控件,取`field_${id}_${key}`, key指的是ObjectDataBind.keys()
107
201
  * */ export function fillModelBindInfoListFieldCode(modelBindInfoList) {
108
- var dataCode = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : '';
202
+ var dataCode = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "";
109
203
  if (!modelBindInfoList || !Array.isArray(modelBindInfoList)) return [];
110
204
  return modelBindInfoList.map(function(item) {
111
205
  if (!item.dataBind) return item;
@@ -116,7 +210,7 @@ export function getMasterFormControls(controls) {
116
210
  Object.keys(objectDataBind).forEach(function(key) {
117
211
  var dataBind = objectDataBind[key];
118
212
  // 如果是ObjectDataBind的话,需要将id拼接当前的key作为元素的fieldCode
119
- var fieldCode = item.controlId + '_' + key;
213
+ var fieldCode = item.controlId + "_" + key;
120
214
  dataBind.fieldCode = fieldCodeBeforeAddPrefix(fieldCode);
121
215
  dataBind.dataCode = dataCode;
122
216
  });
@@ -128,7 +222,7 @@ export function getMasterFormControls(controls) {
128
222
  });
129
223
  }
130
224
  function fieldCodeBeforeAddPrefix(fieldCode) {
131
- var prefix = 'field_';
225
+ var prefix = "field_";
132
226
  if (fieldCode.startsWith(prefix)) {
133
227
  return fieldCode;
134
228
  }
@@ -158,7 +252,7 @@ function fieldCodeBeforeAddPrefix(fieldCode) {
158
252
  // 当前key对应的fieldType
159
253
  var fieldType = objectDataBindKeyToFieldType[key].fieldType;
160
254
  // 拼接当前列的caption
161
- var caption = item.caption + '_' + objectDataBindKeyToFieldType[key].caption;
255
+ var caption = item.caption + "_" + objectDataBindKeyToFieldType[key].caption;
162
256
  // 通过fieldType获取列类型
163
257
  var controlType = getColumnTypeFromFiledType(fieldType);
164
258
  if (!controlType) return;
@@ -166,8 +260,8 @@ function fieldCodeBeforeAddPrefix(fieldCode) {
166
260
  caption: caption,
167
261
  dataBind: dataBind
168
262
  };
169
- if (key === 'currency') {
170
- props.optionConfig = 'datasource';
263
+ if (key === "currency") {
264
+ props.optionConfig = "datasource";
171
265
  props.datasourceBind = datasourceBind;
172
266
  }
173
267
  // @ts-ignore
@@ -177,17 +271,17 @@ function fieldCodeBeforeAddPrefix(fieldCode) {
177
271
  column && columns.push(column);
178
272
  });
179
273
  } else {
180
- var controlType1 = getColumnTypeFromFiledType(item.fieldType);
181
- if (!controlType1) return;
274
+ var controlType = getColumnTypeFromFiledType(item.fieldType);
275
+ if (!controlType) return;
182
276
  // @ts-ignore
183
- var column1 = designer.createControlInstance(controlType1, {
277
+ var column = designer.createControlInstance(controlType, {
184
278
  props: {
185
279
  caption: item.caption,
186
280
  dataBind: item.dataBind,
187
281
  datasourceBind: item.datasourceBind
188
282
  }
189
283
  });
190
- column1 && columns.push(column1);
284
+ column && columns.push(column);
191
285
  }
192
286
  });
193
287
  return columns;
@@ -226,35 +320,42 @@ function checkSchema(controls, messages, ignore) {
226
320
  return _checkSchema.apply(this, arguments);
227
321
  }
228
322
  function _checkSchema() {
229
- _checkSchema = _asyncToGenerator(regeneratorRuntime.mark(function _callee(controls, messages, ignore) {
323
+ _checkSchema = _asyncToGenerator(function(controls, messages, ignore) {
230
324
  var result;
231
- return regeneratorRuntime.wrap(function _callee$(_ctx) {
232
- while(1)switch(_ctx.prev = _ctx.next){
325
+ return __generator(this, function(_state) {
326
+ switch(_state.label){
233
327
  case 0:
234
- if (!Array.isArray(controls)) {
235
- _ctx.next = 5;
236
- break;
237
- }
238
- _ctx.next = 3;
239
- return Promise.all(controls.map(function(control) {
240
- return control.validate(messages, ignore);
241
- }));
328
+ if (!Array.isArray(controls)) return [
329
+ 3,
330
+ 2
331
+ ];
332
+ return [
333
+ 4,
334
+ Promise.all(controls.map(function(control) {
335
+ return control.validate(messages, ignore);
336
+ }))
337
+ ];
338
+ case 1:
339
+ result = _state.sent();
340
+ return [
341
+ 2,
342
+ result.every(function(state) {
343
+ return state;
344
+ })
345
+ ];
346
+ case 2:
347
+ return [
348
+ 4,
349
+ controls.validate(messages, ignore)
350
+ ];
242
351
  case 3:
243
- result = _ctx.sent;
244
- return _ctx.abrupt("return", result.every(function(state) {
245
- return state;
246
- }));
247
- case 5:
248
- _ctx.next = 7;
249
- return controls.validate(messages, ignore);
250
- case 7:
251
- return _ctx.abrupt("return", _ctx.sent);
252
- case 8:
253
- case "end":
254
- return _ctx.stop();
352
+ return [
353
+ 2,
354
+ _state.sent()
355
+ ];
255
356
  }
256
- }, _callee);
257
- }));
357
+ });
358
+ });
258
359
  return _checkSchema.apply(this, arguments);
259
360
  }
260
361
  // 不可以被权限控制的控件
@@ -276,7 +377,7 @@ var PermissionExcludeControlTypes = [
276
377
  // 暂时不能控制权限
277
378
  CONTROL_TYPE.TAB_PANE,
278
379
  CONTROL_TYPE.TAB,
279
- CONTROL_TYPE.CARD_GROUP,
380
+ CONTROL_TYPE.CARD_GROUP
280
381
  ];
281
382
  // 不可以编辑的控件
282
383
  var cannotEditControlTypes = [
@@ -285,46 +386,46 @@ var cannotEditControlTypes = [
285
386
  // 列表操作列单独处理三个按钮的权限
286
387
  var LIST_OPERATION_BUTTON_PERMISSIONS_MAPS = {
287
388
  check: {
288
- id: 'listPageCheckBtnId',
289
- caption: '查看'
389
+ id: "listPageCheckBtnId",
390
+ caption: "查看"
290
391
  },
291
392
  edit: {
292
- id: 'listPageEditBtnId',
293
- caption: '编辑'
393
+ id: "listPageEditBtnId",
394
+ caption: "编辑"
294
395
  },
295
396
  delete: {
296
- id: 'listPageDeleteBtnId',
297
- caption: '删除'
397
+ id: "listPageDeleteBtnId",
398
+ caption: "删除"
298
399
  }
299
400
  };
300
401
  // 生成权限字段
301
402
  function generatePermissions(controls, parent) {
302
- var result1 = [];
403
+ var result = [];
303
404
  if (isArray(controls)) {
304
405
  var _result;
305
- (_result = result1).push.apply(_result, _toConsumableArray(controls.map(function(item) {
406
+ (_result = result).push.apply(_result, _toConsumableArray(controls.map(function(item) {
306
407
  return generatePermissions(item, parent);
307
408
  }).flat()));
308
409
  } else {
309
410
  var type = controls.type;
310
- var _props = controls.props, caption1 = _props.caption, content = _props.content;
411
+ var _controls_props = controls.props, caption = _controls_props.caption, content = _controls_props.content;
311
412
  var permissionItem;
312
413
  if (!PermissionExcludeControlTypes.includes(type)) {
313
- var ref;
414
+ var _parent_controlId;
314
415
  permissionItem = {
315
416
  controlId: controls.id,
316
- caption: caption1 || content || controls.name,
417
+ caption: caption || content || controls.name,
317
418
  type: controls.type,
318
419
  controlType: controls.controlType,
319
- parentId: (ref = parent === null || parent === void 0 ? void 0 : parent.controlId) !== null && ref !== void 0 ? ref : null,
420
+ parentId: (_parent_controlId = parent === null || parent === void 0 ? void 0 : parent.controlId) !== null && _parent_controlId !== void 0 ? _parent_controlId : null,
320
421
  canEdit: !cannotEditControlTypes.includes(type),
321
422
  canRead: true,
322
423
  canHide: true,
323
- group: 'element'
424
+ group: "element"
324
425
  };
325
426
  if (parent && parent.type === CONTROL_TYPE.SUBTABLE) {
326
427
  // 如果有parent,则利用下划线拼接caption
327
- permissionItem.caption = parent.caption + '_' + permissionItem.caption;
428
+ permissionItem.caption = parent.caption + "_" + permissionItem.caption;
328
429
  }
329
430
  if (type === CONTROL_TYPE.VUE_FORM_ITEM) {
330
431
  permissionItem.caption = controls.props.controlExportName || controls.name;
@@ -335,59 +436,59 @@ function generatePermissions(controls, parent) {
335
436
  // ) {
336
437
  if (controls.controlType === CONTROL_BASE_TYPE.FORM || controls.controlType === CONTROL_BASE_TYPE.COLUMN) {
337
438
  var //@ts-ignore
338
- ref1, ref2, //@ts-ignore
339
- ref3, ref4;
340
- if (((ref1 = controls.props) === null || ref1 === void 0 ? void 0 : (ref2 = ref1.dataBind) === null || ref2 === void 0 ? void 0 : ref2.fieldCode) !== undefined && ((ref3 = controls.props) === null || ref3 === void 0 ? void 0 : (ref4 = ref3.dataBind) === null || ref4 === void 0 ? void 0 : ref4.fieldCode) !== '') {
341
- permissionItem.group = 'field';
439
+ _controls_props1, _controls_props_dataBind, //@ts-ignore
440
+ _controls_props2, _controls_props_dataBind1;
441
+ if (((_controls_props1 = controls.props) === null || _controls_props1 === void 0 ? void 0 : (_controls_props_dataBind = _controls_props1.dataBind) === null || _controls_props_dataBind === void 0 ? void 0 : _controls_props_dataBind.fieldCode) !== undefined && ((_controls_props2 = controls.props) === null || _controls_props2 === void 0 ? void 0 : (_controls_props_dataBind1 = _controls_props2.dataBind) === null || _controls_props_dataBind1 === void 0 ? void 0 : _controls_props_dataBind1.fieldCode) !== "") {
442
+ permissionItem.group = "field";
342
443
  }
343
444
  }
344
- result1.push(permissionItem);
445
+ result.push(permissionItem);
345
446
  //追加vue容器权限
346
447
  if (type === CONTROL_TYPE.VUE_FORM_ITEM) {
347
- var ref5, ref6, ref7, ref8;
348
- var vueFormItemGroup = 'element';
349
- if (((ref5 = controls.props) === null || ref5 === void 0 ? void 0 : (ref6 = ref5.dataBind) === null || ref6 === void 0 ? void 0 : ref6.fieldCode) !== undefined && ((ref7 = controls.props) === null || ref7 === void 0 ? void 0 : (ref8 = ref7.dataBind) === null || ref8 === void 0 ? void 0 : ref8.fieldCode) !== '') {
350
- vueFormItemGroup = 'field';
448
+ var _controls_props3, _controls_props_dataBind2, _controls_props4, _controls_props_dataBind3;
449
+ var vueFormItemGroup = "element";
450
+ if (((_controls_props3 = controls.props) === null || _controls_props3 === void 0 ? void 0 : (_controls_props_dataBind2 = _controls_props3.dataBind) === null || _controls_props_dataBind2 === void 0 ? void 0 : _controls_props_dataBind2.fieldCode) !== undefined && ((_controls_props4 = controls.props) === null || _controls_props4 === void 0 ? void 0 : (_controls_props_dataBind3 = _controls_props4.dataBind) === null || _controls_props_dataBind3 === void 0 ? void 0 : _controls_props_dataBind3.fieldCode) !== "") {
451
+ vueFormItemGroup = "field";
351
452
  }
352
- var permissions = controls.props['permissions'];
453
+ var permissions = controls.props["permissions"];
353
454
  permissions === null || permissions === void 0 ? void 0 : permissions.map(function(item) {
354
- var _id;
455
+ var _controls_id;
355
456
  permissionItem = {
356
457
  controlId: item.key,
357
458
  caption: item.caption,
358
459
  type: controls.type,
359
460
  controlType: controls.controlType,
360
- parentId: (_id = controls.id) !== null && _id !== void 0 ? _id : null,
461
+ parentId: (_controls_id = controls.id) !== null && _controls_id !== void 0 ? _controls_id : null,
361
462
  canEdit: true,
362
463
  canRead: true,
363
464
  canHide: true,
364
465
  group: vueFormItemGroup
365
466
  };
366
- result1.push(permissionItem);
467
+ result.push(permissionItem);
367
468
  });
368
469
  }
369
470
  } else if (type === CONTROL_TYPE.OPERATION_COLUMN) {
370
471
  // 列表的操作列单独处理
371
472
  Object.entries(LIST_OPERATION_BUTTON_PERMISSIONS_MAPS).reduce(function(result, param) {
372
- var _param = _slicedToArray(param, 2), key = _param[0], ref = _param[1], caption = ref.caption, controlId = ref.id;
473
+ var _param = _slicedToArray(param, 2), key = _param[0], _param_ = _param[1], caption = _param_.caption, controlId = _param_.id;
373
474
  var operationItem = controls.props[key];
374
475
  if (operationItem && operationItem.isShow) {
375
- var ref9;
476
+ var _parent_controlId;
376
477
  // 只能控制是否显示
377
478
  result.push({
378
479
  controlId: controlId,
379
480
  caption: caption,
380
481
  type: controls.type,
381
482
  controlType: controls.controlType,
382
- parentId: (ref9 = parent === null || parent === void 0 ? void 0 : parent.controlId) !== null && ref9 !== void 0 ? ref9 : null,
483
+ parentId: (_parent_controlId = parent === null || parent === void 0 ? void 0 : parent.controlId) !== null && _parent_controlId !== void 0 ? _parent_controlId : null,
383
484
  canEdit: false,
384
485
  canRead: false,
385
486
  canHide: true,
386
- group: 'element'
487
+ group: "element"
387
488
  });
388
489
  }
389
490
  return result;
390
- }, result1);
491
+ }, result);
391
492
  }
392
493
  // else if (type === CONTROL_TYPE.CUSTOM_COLUMN) {
393
494
  // //追加自定义列上的vue容器权限
@@ -411,7 +512,7 @@ function generatePermissions(controls, parent) {
411
512
  // }
412
513
  if (controls.children) {
413
514
  var _result1;
414
- (_result1 = result1).push.apply(_result1, _toConsumableArray(controls.children.map(function(item) {
515
+ (_result1 = result).push.apply(_result1, _toConsumableArray(controls.children.map(function(item) {
415
516
  return generatePermissions(item, parent);
416
517
  }).flat()));
417
518
  }
@@ -419,11 +520,11 @@ function generatePermissions(controls, parent) {
419
520
  if (controls.controlType === CONTROL_BASE_TYPE.LIST) {
420
521
  var // 明细子表和列表的需要给parentId
421
522
  _result2;
422
- (_result2 = result1).push.apply(_result2, _toConsumableArray(controls.props.headers.map(function(item) {
523
+ (_result2 = result).push.apply(_result2, _toConsumableArray(controls.props.headers.map(function(item) {
423
524
  return generatePermissions(item, permissionItem);
424
525
  }).flat()));
425
526
  }
426
527
  }
427
- return result1;
528
+ return result;
428
529
  }
429
530
  export { toSchema, getModelBindInfoList, checkSchema, generatePermissions };