@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/Builder.js +86 -113
- package/dist/esm/Designer.js +177 -128
- package/dist/esm/Driven.js +406 -547
- package/dist/esm/EventLogic.js +1 -1
- package/dist/esm/Store.js +89 -112
- package/dist/esm/constants.js +8 -8
- package/dist/esm/designerUtils.js +5 -6
- package/dist/esm/index.js +6 -6
- package/dist/esm/utils.js +177 -76
- package/dist/index.umd.js +3 -3
- package/dist/types/Builder.d.ts +8 -8
- package/dist/types/Designer.d.ts +36 -36
- package/dist/types/Driven.d.ts +112 -112
- package/dist/types/EventLogic.d.ts +2 -2
- package/dist/types/Plugin.d.ts +6 -6
- package/dist/types/Store.d.ts +82 -82
- package/dist/types/constants.d.ts +6 -6
- package/dist/types/designerUtils.d.ts +4 -4
- package/dist/types/index.d.ts +8 -8
- package/dist/types/utils.d.ts +55 -55
- package/package.json +3 -3
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
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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 +
|
|
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 =
|
|
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 +
|
|
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 ===
|
|
170
|
-
props.optionConfig =
|
|
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
|
|
181
|
-
if (!
|
|
274
|
+
var controlType = getColumnTypeFromFiledType(item.fieldType);
|
|
275
|
+
if (!controlType) return;
|
|
182
276
|
// @ts-ignore
|
|
183
|
-
var
|
|
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
|
-
|
|
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(
|
|
323
|
+
_checkSchema = _asyncToGenerator(function(controls, messages, ignore) {
|
|
230
324
|
var result;
|
|
231
|
-
return
|
|
232
|
-
|
|
325
|
+
return __generator(this, function(_state) {
|
|
326
|
+
switch(_state.label){
|
|
233
327
|
case 0:
|
|
234
|
-
if (!Array.isArray(controls))
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
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
|
-
|
|
244
|
-
|
|
245
|
-
|
|
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
|
-
}
|
|
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:
|
|
289
|
-
caption:
|
|
389
|
+
id: "listPageCheckBtnId",
|
|
390
|
+
caption: "查看"
|
|
290
391
|
},
|
|
291
392
|
edit: {
|
|
292
|
-
id:
|
|
293
|
-
caption:
|
|
393
|
+
id: "listPageEditBtnId",
|
|
394
|
+
caption: "编辑"
|
|
294
395
|
},
|
|
295
396
|
delete: {
|
|
296
|
-
id:
|
|
297
|
-
caption:
|
|
397
|
+
id: "listPageDeleteBtnId",
|
|
398
|
+
caption: "删除"
|
|
298
399
|
}
|
|
299
400
|
};
|
|
300
401
|
// 生成权限字段
|
|
301
402
|
function generatePermissions(controls, parent) {
|
|
302
|
-
var
|
|
403
|
+
var result = [];
|
|
303
404
|
if (isArray(controls)) {
|
|
304
405
|
var _result;
|
|
305
|
-
(_result =
|
|
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
|
|
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
|
|
414
|
+
var _parent_controlId;
|
|
314
415
|
permissionItem = {
|
|
315
416
|
controlId: controls.id,
|
|
316
|
-
caption:
|
|
417
|
+
caption: caption || content || controls.name,
|
|
317
418
|
type: controls.type,
|
|
318
419
|
controlType: controls.controlType,
|
|
319
|
-
parentId: (
|
|
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:
|
|
424
|
+
group: "element"
|
|
324
425
|
};
|
|
325
426
|
if (parent && parent.type === CONTROL_TYPE.SUBTABLE) {
|
|
326
427
|
// 如果有parent,则利用下划线拼接caption
|
|
327
|
-
permissionItem.caption = parent.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
|
-
|
|
339
|
-
|
|
340
|
-
if (((
|
|
341
|
-
permissionItem.group =
|
|
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
|
-
|
|
445
|
+
result.push(permissionItem);
|
|
345
446
|
//追加vue容器权限
|
|
346
447
|
if (type === CONTROL_TYPE.VUE_FORM_ITEM) {
|
|
347
|
-
var
|
|
348
|
-
var vueFormItemGroup =
|
|
349
|
-
if (((
|
|
350
|
-
vueFormItemGroup =
|
|
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[
|
|
453
|
+
var permissions = controls.props["permissions"];
|
|
353
454
|
permissions === null || permissions === void 0 ? void 0 : permissions.map(function(item) {
|
|
354
|
-
var
|
|
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: (
|
|
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
|
-
|
|
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],
|
|
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
|
|
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: (
|
|
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:
|
|
487
|
+
group: "element"
|
|
387
488
|
});
|
|
388
489
|
}
|
|
389
490
|
return result;
|
|
390
|
-
},
|
|
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 =
|
|
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 =
|
|
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
|
|
528
|
+
return result;
|
|
428
529
|
}
|
|
429
530
|
export { toSchema, getModelBindInfoList, checkSchema, generatePermissions };
|