@byteluck-fe/model-driven-engine 2.7.0-alpha.0 → 2.7.0-alpha.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/esm/common/ActionManager.js +154 -72
- package/dist/esm/common/DataManager.js +128 -60
- package/dist/esm/common/Engine.js +1060 -1111
- package/dist/esm/common/OkWorker.js +75 -106
- package/dist/esm/common/Runtime.js +27 -29
- package/dist/esm/common/Store.js +149 -181
- package/dist/esm/common/checkerValue.js +253 -328
- package/dist/esm/common/index.js +2 -2
- package/dist/esm/common/proxyState.js +47 -47
- package/dist/esm/index.js +3 -3
- package/dist/esm/plugins/CalcPlugin.js +306 -382
- package/dist/esm/plugins/ControlsEventPlugin.js +225 -141
- package/dist/esm/plugins/ES6ModulePlugin.js +38 -56
- package/dist/esm/plugins/LifecycleEventPlugin.js +190 -107
- package/dist/esm/plugins/StylePlugin.js +13 -31
- package/dist/esm/plugins/index.js +5 -5
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/utils/runtimeUtils.js +5 -7
- package/dist/index.umd.js +9 -9
- package/dist/types/common/Engine.d.ts +6 -6
- package/dist/types/common/Runtime.d.ts +1 -1
- package/dist/types/common/Store.d.ts +5 -5
- package/dist/types/common/proxyState.d.ts +3 -3
- package/dist/types/plugins/ControlsEventPlugin.d.ts +1 -1
- package/dist/types/plugins/ES6ModulePlugin.d.ts +4 -4
- package/dist/types/plugins/LifecycleEventPlugin.d.ts +1 -1
- package/dist/types/plugins/StylePlugin.d.ts +1 -1
- package/package.json +4 -4
|
@@ -49,20 +49,6 @@ function _classCallCheck(instance, Constructor) {
|
|
|
49
49
|
throw new TypeError("Cannot call a class as a function");
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
function _defineProperties(target, props) {
|
|
53
|
-
for(var i = 0; i < props.length; i++){
|
|
54
|
-
var descriptor = props[i];
|
|
55
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
56
|
-
descriptor.configurable = true;
|
|
57
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
58
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
function _createClass(Constructor, protoProps, staticProps) {
|
|
62
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
63
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
64
|
-
return Constructor;
|
|
65
|
-
}
|
|
66
52
|
function _defineProperty(obj, key, value) {
|
|
67
53
|
if (key in obj) {
|
|
68
54
|
Object.defineProperty(obj, key, {
|
|
@@ -113,7 +99,7 @@ function _inherits(subClass, superClass) {
|
|
|
113
99
|
}
|
|
114
100
|
function _instanceof(left, right) {
|
|
115
101
|
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
116
|
-
return right[Symbol.hasInstance](left);
|
|
102
|
+
return !!right[Symbol.hasInstance](left);
|
|
117
103
|
} else {
|
|
118
104
|
return left instanceof right;
|
|
119
105
|
}
|
|
@@ -166,6 +152,30 @@ function _objectSpread(target) {
|
|
|
166
152
|
}
|
|
167
153
|
return target;
|
|
168
154
|
}
|
|
155
|
+
function ownKeys(object, enumerableOnly) {
|
|
156
|
+
var keys = Object.keys(object);
|
|
157
|
+
if (Object.getOwnPropertySymbols) {
|
|
158
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
159
|
+
if (enumerableOnly) {
|
|
160
|
+
symbols = symbols.filter(function(sym) {
|
|
161
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
keys.push.apply(keys, symbols);
|
|
165
|
+
}
|
|
166
|
+
return keys;
|
|
167
|
+
}
|
|
168
|
+
function _objectSpreadProps(target, source) {
|
|
169
|
+
source = source != null ? source : {};
|
|
170
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
171
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
172
|
+
} else {
|
|
173
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
174
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
return target;
|
|
178
|
+
}
|
|
169
179
|
function _possibleConstructorReturn(self, call) {
|
|
170
180
|
if (call && (_typeof(call) === "object" || typeof call === "function")) {
|
|
171
181
|
return call;
|
|
@@ -228,27 +238,121 @@ function _createSuper(Derived) {
|
|
|
228
238
|
return _possibleConstructorReturn(this, result);
|
|
229
239
|
};
|
|
230
240
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
+
var __generator = this && this.__generator || function(thisArg, body) {
|
|
242
|
+
var f, y, t, g, _ = {
|
|
243
|
+
label: 0,
|
|
244
|
+
sent: function() {
|
|
245
|
+
if (t[0] & 1) throw t[1];
|
|
246
|
+
return t[1];
|
|
247
|
+
},
|
|
248
|
+
trys: [],
|
|
249
|
+
ops: []
|
|
250
|
+
};
|
|
251
|
+
return g = {
|
|
252
|
+
next: verb(0),
|
|
253
|
+
"throw": verb(1),
|
|
254
|
+
"return": verb(2)
|
|
255
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
256
|
+
return this;
|
|
257
|
+
}), g;
|
|
258
|
+
function verb(n) {
|
|
259
|
+
return function(v) {
|
|
260
|
+
return step([
|
|
261
|
+
n,
|
|
262
|
+
v
|
|
263
|
+
]);
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
function step(op) {
|
|
267
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
268
|
+
while(_)try {
|
|
269
|
+
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;
|
|
270
|
+
if (y = 0, t) op = [
|
|
271
|
+
op[0] & 2,
|
|
272
|
+
t.value
|
|
273
|
+
];
|
|
274
|
+
switch(op[0]){
|
|
275
|
+
case 0:
|
|
276
|
+
case 1:
|
|
277
|
+
t = op;
|
|
278
|
+
break;
|
|
279
|
+
case 4:
|
|
280
|
+
_.label++;
|
|
281
|
+
return {
|
|
282
|
+
value: op[1],
|
|
283
|
+
done: false
|
|
284
|
+
};
|
|
285
|
+
case 5:
|
|
286
|
+
_.label++;
|
|
287
|
+
y = op[1];
|
|
288
|
+
op = [
|
|
289
|
+
0
|
|
290
|
+
];
|
|
291
|
+
continue;
|
|
292
|
+
case 7:
|
|
293
|
+
op = _.ops.pop();
|
|
294
|
+
_.trys.pop();
|
|
295
|
+
continue;
|
|
296
|
+
default:
|
|
297
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
298
|
+
_ = 0;
|
|
299
|
+
continue;
|
|
300
|
+
}
|
|
301
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
302
|
+
_.label = op[1];
|
|
303
|
+
break;
|
|
304
|
+
}
|
|
305
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
306
|
+
_.label = t[1];
|
|
307
|
+
t = op;
|
|
308
|
+
break;
|
|
309
|
+
}
|
|
310
|
+
if (t && _.label < t[2]) {
|
|
311
|
+
_.label = t[2];
|
|
312
|
+
_.ops.push(op);
|
|
313
|
+
break;
|
|
314
|
+
}
|
|
315
|
+
if (t[2]) _.ops.pop();
|
|
316
|
+
_.trys.pop();
|
|
317
|
+
continue;
|
|
318
|
+
}
|
|
319
|
+
op = body.call(thisArg, _);
|
|
320
|
+
} catch (e) {
|
|
321
|
+
op = [
|
|
322
|
+
6,
|
|
323
|
+
e
|
|
324
|
+
];
|
|
325
|
+
y = 0;
|
|
326
|
+
} finally{
|
|
327
|
+
f = t = 0;
|
|
328
|
+
}
|
|
329
|
+
if (op[0] & 5) throw op[1];
|
|
330
|
+
return {
|
|
331
|
+
value: op[0] ? op[1] : void 0,
|
|
332
|
+
done: true
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
import { DataBind, ObjectDataBind, RuntimeListControl } from "@byteluck-fe/model-driven-core";
|
|
337
|
+
import { CONTROL_BASE_TYPE, CONTROL_TYPE, DEFAULT_LOCALE, error, genNonDuplicateId, isString, JSONCopy, log, RulesMessage, updateValueFromKeys, warn, Watcher } from "@byteluck-fe/model-driven-shared";
|
|
338
|
+
import { Runtime } from "./Runtime";
|
|
339
|
+
import { Store } from "./Store";
|
|
340
|
+
import { findItem, proxyState } from "./proxyState";
|
|
341
|
+
import { ActionManager } from "./ActionManager";
|
|
342
|
+
import { DataManager } from "./DataManager";
|
|
343
|
+
import { checkerSubtableValue, checkerValue } from "./checkerValue";
|
|
344
|
+
if (typeof window !== "undefined") {
|
|
241
345
|
// @ts-ignore
|
|
242
346
|
window.engines = {};
|
|
243
347
|
}
|
|
244
348
|
// setState的时候,存储options中转变量
|
|
245
349
|
var eventOptionsTemp = null;
|
|
246
350
|
// 当前正在注册的插件名称
|
|
247
|
-
var applyingPluginName =
|
|
248
|
-
|
|
249
|
-
/*#__PURE__*/ function(
|
|
351
|
+
var applyingPluginName = "";
|
|
352
|
+
// 整体渲染引擎 并且 提供发布订阅能力
|
|
353
|
+
var Engine = /*#__PURE__*/ function(Watcher) {
|
|
250
354
|
"use strict";
|
|
251
|
-
_inherits(Engine,
|
|
355
|
+
_inherits(Engine, Watcher);
|
|
252
356
|
var _super = _createSuper(Engine);
|
|
253
357
|
function Engine(props) {
|
|
254
358
|
_classCallCheck(this, Engine);
|
|
@@ -264,8 +368,8 @@ var Engine = // 整体渲染引擎 并且 提供发布订阅能力
|
|
|
264
368
|
_this._jobTasks = [];
|
|
265
369
|
_this.createControlInstance = _this.createInstance;
|
|
266
370
|
_this.$options = Object.freeze(props);
|
|
267
|
-
var
|
|
268
|
-
language, language =
|
|
371
|
+
var _this_$options = _this.$options, _this_$options_autoMount = _this_$options.autoMount, autoMount = _this_$options_autoMount === void 0 ? true : _this_$options_autoMount, schema = _this_$options.schema, beforeCreateInstance = _this_$options.beforeCreateInstance, externalParams = _this_$options.externalParams, _this_$options_language = _this_$options.// fieldModel,
|
|
372
|
+
language, language = _this_$options_language === void 0 ? DEFAULT_LOCALE : _this_$options_language, _this_$options_debug = _this_$options.debug, debug = _this_$options_debug === void 0 ? false : _this_$options_debug;
|
|
269
373
|
RulesMessage.setLocale(language);
|
|
270
374
|
_this.debug = debug;
|
|
271
375
|
_this.runtime = new Runtime({
|
|
@@ -276,1191 +380,1036 @@ var Engine = // 整体渲染引擎 并且 提供发布订阅能力
|
|
|
276
380
|
_this.store = new Store({
|
|
277
381
|
instance: _this.runtime.instance
|
|
278
382
|
});
|
|
279
|
-
_this.debugLog(
|
|
383
|
+
_this.debugLog("engine is Instantiation complete");
|
|
280
384
|
// 自动执行挂载完成,也可以手动调用mount方法
|
|
281
385
|
autoMount && _this.mount();
|
|
282
386
|
return _this;
|
|
283
387
|
}
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
{
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
{
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
}
|
|
340
|
-
},
|
|
341
|
-
{
|
|
342
|
-
key: "_handlerProxyState",
|
|
343
|
-
value: function _handlerProxyState() {
|
|
344
|
-
this.store.state = proxyState(this.store.state, this._proxyStateCallback.bind(this), this._proxyStateBeforeSetCallback.bind(this));
|
|
388
|
+
var _proto = Engine.prototype;
|
|
389
|
+
_proto.debugLog = function debugLog() {
|
|
390
|
+
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
391
|
+
args[_key] = arguments[_key];
|
|
392
|
+
}
|
|
393
|
+
this.debug && log.apply(void 0, _toConsumableArray(args));
|
|
394
|
+
};
|
|
395
|
+
_proto.use = function use(plugin) {
|
|
396
|
+
if (!this.__pluginsApplied) {
|
|
397
|
+
this.__plugins.push(plugin);
|
|
398
|
+
}
|
|
399
|
+
return this;
|
|
400
|
+
};
|
|
401
|
+
// 注册外部控件
|
|
402
|
+
_proto.registerControl = function registerControl() {
|
|
403
|
+
for(var _len = arguments.length, arg = new Array(_len), _key = 0; _key < _len; _key++){
|
|
404
|
+
arg[_key] = arguments[_key];
|
|
405
|
+
}
|
|
406
|
+
var _this_runtime;
|
|
407
|
+
(_this_runtime = this.runtime).register.apply(_this_runtime, _toConsumableArray(arg));
|
|
408
|
+
return this;
|
|
409
|
+
};
|
|
410
|
+
_proto.mount = function mount() {
|
|
411
|
+
this.debugLog("engine的mount方法开始调用");
|
|
412
|
+
var _this_$options = this.$options, _this_$options_plugins = _this_$options.plugins, plugins = _this_$options_plugins === void 0 ? [] : _this_$options_plugins;
|
|
413
|
+
this._handlerProxyState();
|
|
414
|
+
this.__plugins = plugins;
|
|
415
|
+
this.applyPlugins();
|
|
416
|
+
// 触发所有控件的默认值的change事件
|
|
417
|
+
this.setStates(this.getState());
|
|
418
|
+
this.debugLog("engine的mount方法调用结束");
|
|
419
|
+
if (this.debug && typeof window !== "undefined") {
|
|
420
|
+
// @ts-ignore
|
|
421
|
+
window.engines[this.id] = this;
|
|
422
|
+
}
|
|
423
|
+
};
|
|
424
|
+
_proto.destroy = function destroy() {
|
|
425
|
+
if (this.debug && typeof window !== "undefined") {
|
|
426
|
+
// @ts-ignore
|
|
427
|
+
delete window.engines[this.id];
|
|
428
|
+
}
|
|
429
|
+
};
|
|
430
|
+
_proto._handlerProxyState = function _handlerProxyState() {
|
|
431
|
+
this.store.state = proxyState(this.store.state, this._proxyStateCallback.bind(this), this._proxyStateBeforeSetCallback.bind(this));
|
|
432
|
+
};
|
|
433
|
+
_proto._proxyStateBeforeSetCallback = function _proxyStateBeforeSetCallback(state, key, newValue, oldValue) {
|
|
434
|
+
var instance = findItem(this.runtime.flatInstances, key, this.runtime.instanceMap);
|
|
435
|
+
// 找不到控件说明不是改动控件上的字段,直接通过
|
|
436
|
+
if (!instance) {
|
|
437
|
+
return newValue;
|
|
438
|
+
}
|
|
439
|
+
// @ts-ignore
|
|
440
|
+
if (this.assertInstance(instance, CONTROL_TYPE.SUBTABLE)) {
|
|
441
|
+
if (newValue === null) {
|
|
442
|
+
return [];
|
|
345
443
|
}
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
if (!instance) {
|
|
353
|
-
return newValue;
|
|
444
|
+
// @ts-ignore
|
|
445
|
+
var fieldTypeMap = instance.props.headers.reduce(function(result, column) {
|
|
446
|
+
var formInstance = column.children[0];
|
|
447
|
+
// if (formInstance && formInstance instanceof RuntimeFormControl) {
|
|
448
|
+
if (formInstance && formInstance.controlType === CONTROL_BASE_TYPE.FORM) {
|
|
449
|
+
result[formInstance.id] = formInstance.fieldType;
|
|
354
450
|
}
|
|
451
|
+
return result;
|
|
452
|
+
}, {});
|
|
453
|
+
// @ts-ignore
|
|
454
|
+
var emptyState = this.getEmptyState(instance.id);
|
|
455
|
+
return newValue === null || newValue === void 0 ? void 0 : newValue.map(function(row) {
|
|
456
|
+
return(// @ts-ignore
|
|
457
|
+
checkerSubtableValue(fieldTypeMap, row, emptyState));
|
|
458
|
+
});
|
|
459
|
+
}
|
|
460
|
+
var keys = key.split(".");
|
|
461
|
+
var lastKey = keys[keys.length - 1];
|
|
462
|
+
try {
|
|
463
|
+
return checkerValue(instance.fieldType, lastKey, newValue, oldValue);
|
|
464
|
+
} catch (e) {
|
|
465
|
+
warn("the id=".concat(instance.id, "'s instance setState error, %o ").concat(e, "."), newValue);
|
|
466
|
+
throw e;
|
|
467
|
+
}
|
|
468
|
+
};
|
|
469
|
+
_proto._proxyStateCallback = function _proxyStateCallback(state, key, type, args, result) {
|
|
470
|
+
if (Array.isArray(state)) {
|
|
471
|
+
this._handlerArrayUpdate(state, key, type, args, result);
|
|
472
|
+
} else {
|
|
473
|
+
this._handlerObjectUpdate(state, key, type, args);
|
|
474
|
+
}
|
|
475
|
+
};
|
|
476
|
+
_proto._handlerArrayUpdate = function _handlerArrayUpdate(state, key, type, args, result) {
|
|
477
|
+
var _this = this;
|
|
478
|
+
var subtable = findItem(this.runtime.flatInstances, key, this.runtime.instanceMap);
|
|
479
|
+
if (!_instanceof(subtable, RuntimeListControl)) return;
|
|
480
|
+
// 新增多行方法
|
|
481
|
+
var createRows = function(len) {
|
|
482
|
+
// @ts-ignore
|
|
483
|
+
var newRows = [];
|
|
484
|
+
for(var i = 0; i < len; i++){
|
|
355
485
|
// @ts-ignore
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
if (newValue === null) {
|
|
359
|
-
return [];
|
|
360
|
-
}
|
|
361
|
-
// @ts-ignore
|
|
362
|
-
var fieldTypeMap = instance.props.headers.reduce(function(result, column) {
|
|
363
|
-
var formInstance = column.children[0];
|
|
364
|
-
// if (formInstance && formInstance instanceof RuntimeFormControl) {
|
|
365
|
-
if (formInstance && formInstance.controlType === CONTROL_BASE_TYPE.FORM) {
|
|
366
|
-
result[formInstance.id] = formInstance.fieldType;
|
|
367
|
-
}
|
|
368
|
-
return result;
|
|
369
|
-
}, {});
|
|
370
|
-
// @ts-ignore
|
|
371
|
-
var emptyState = this.getEmptyState(instance.id);
|
|
372
|
-
return (ref = newValue) === null || ref === void 0 ? void 0 : ref.map(function(row) {
|
|
373
|
-
// @ts-ignore
|
|
374
|
-
return checkerSubtableValue(fieldTypeMap, row, emptyState);
|
|
375
|
-
});
|
|
376
|
-
}
|
|
377
|
-
var keys = key.split('.');
|
|
378
|
-
var lastKey = keys[keys.length - 1];
|
|
379
|
-
try {
|
|
380
|
-
return checkerValue(instance.fieldType, lastKey, newValue, oldValue);
|
|
381
|
-
} catch (e) {
|
|
382
|
-
warn("the id=".concat(instance.id, "'s instance setState error, %o ").concat(e, "."), newValue);
|
|
383
|
-
throw e;
|
|
384
|
-
}
|
|
486
|
+
var row = _this.listControlCreateRow(subtable, "subtable-row");
|
|
487
|
+
row && newRows.push(row);
|
|
385
488
|
}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
// @ts-ignore
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
case 'splice':
|
|
433
|
-
if (args.length > 2) {
|
|
434
|
-
var // @ts-ignore
|
|
435
|
-
_children1;
|
|
436
|
-
var newRowLengths1 = args.length - 2;
|
|
437
|
-
var newValues = args.slice(2);
|
|
438
|
-
createdNewRows = createRows(newRowLengths1);
|
|
439
|
-
createdNewRowsData = newValues;
|
|
440
|
-
// 从哪儿开始
|
|
441
|
-
var start = args[0];
|
|
442
|
-
// 替换几个
|
|
443
|
-
var replace = args[1];
|
|
444
|
-
(_children1 = subtable.children)[type].apply(_children1, [
|
|
445
|
-
start,
|
|
446
|
-
replace
|
|
447
|
-
].concat(_toConsumableArray(createdNewRows)));
|
|
448
|
-
this.runtime.getFlatInstances();
|
|
449
|
-
// newValues.forEach((item: any, index) => {
|
|
450
|
-
// let newIndex = start + index
|
|
451
|
-
// this.setStates(item, newIndex, options)
|
|
452
|
-
// })
|
|
453
|
-
} else {
|
|
454
|
-
var // @ts-ignore
|
|
455
|
-
_children2;
|
|
456
|
-
(_children2 = subtable.children)[type].apply(_children2, _toConsumableArray(args));
|
|
457
|
-
this.runtime.getFlatInstances();
|
|
458
|
-
}
|
|
459
|
-
break;
|
|
460
|
-
default:
|
|
461
|
-
var // @ts-ignore
|
|
462
|
-
_children3;
|
|
463
|
-
(_children3 = subtable.children)[type].apply(_children3, _toConsumableArray(args));
|
|
464
|
-
this.runtime.getFlatInstances();
|
|
465
|
-
break;
|
|
466
|
-
}
|
|
467
|
-
if (type === 'splice') {
|
|
468
|
-
deleted = result;
|
|
469
|
-
} else if ([
|
|
470
|
-
'pop',
|
|
471
|
-
'shift'
|
|
472
|
-
].includes(type)) {
|
|
473
|
-
deleted = [
|
|
474
|
-
result
|
|
475
|
-
];
|
|
489
|
+
// @ts-ignore
|
|
490
|
+
return newRows;
|
|
491
|
+
};
|
|
492
|
+
var options = eventOptionsTemp;
|
|
493
|
+
// @ts-ignore
|
|
494
|
+
var createdNewRows = [];
|
|
495
|
+
var createdNewRowsData = [];
|
|
496
|
+
var deleted = [];
|
|
497
|
+
if (type && args) {
|
|
498
|
+
// const subtableOldLength = subtable.children.length
|
|
499
|
+
switch(type){
|
|
500
|
+
case "push":
|
|
501
|
+
case "unshift":
|
|
502
|
+
var _subtable_children;
|
|
503
|
+
var newRowLengths = args.length;
|
|
504
|
+
createdNewRows = createRows(newRowLengths);
|
|
505
|
+
createdNewRowsData = args;
|
|
506
|
+
(_subtable_children = subtable.children)[type].apply(_subtable_children, _toConsumableArray(createdNewRows));
|
|
507
|
+
this.runtime.getFlatInstances();
|
|
508
|
+
break;
|
|
509
|
+
case "splice":
|
|
510
|
+
if (args.length > 2) {
|
|
511
|
+
var // @ts-ignore
|
|
512
|
+
_subtable_children1;
|
|
513
|
+
var newRowLengths1 = args.length - 2;
|
|
514
|
+
var newValues = args.slice(2);
|
|
515
|
+
createdNewRows = createRows(newRowLengths1);
|
|
516
|
+
createdNewRowsData = newValues;
|
|
517
|
+
// 从哪儿开始
|
|
518
|
+
var start = args[0];
|
|
519
|
+
// 替换几个
|
|
520
|
+
var replace = args[1];
|
|
521
|
+
(_subtable_children1 = subtable.children)[type].apply(_subtable_children1, [
|
|
522
|
+
start,
|
|
523
|
+
replace
|
|
524
|
+
].concat(_toConsumableArray(createdNewRows)));
|
|
525
|
+
this.runtime.getFlatInstances();
|
|
526
|
+
// newValues.forEach((item: any, index) => {
|
|
527
|
+
// let newIndex = start + index
|
|
528
|
+
// this.setStates(item, newIndex, options)
|
|
529
|
+
// })
|
|
530
|
+
} else {
|
|
531
|
+
var // @ts-ignore
|
|
532
|
+
_subtable_children2;
|
|
533
|
+
(_subtable_children2 = subtable.children)[type].apply(_subtable_children2, _toConsumableArray(args));
|
|
534
|
+
this.runtime.getFlatInstances();
|
|
476
535
|
}
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
value: this.getState(subtable.id),
|
|
480
|
-
options: Object.assign({}, options, {
|
|
481
|
-
changed: createdNewRows,
|
|
482
|
-
data: createdNewRowsData,
|
|
483
|
-
deleted: deleted !== null && deleted !== void 0 ? deleted : [],
|
|
484
|
-
jsonValue: JSON.stringify(this.getState(subtable.id))
|
|
485
|
-
})
|
|
486
|
-
});
|
|
487
|
-
// 主动清空本次任务中的options
|
|
488
|
-
eventOptionsTemp = null;
|
|
489
|
-
}
|
|
490
|
-
}
|
|
491
|
-
},
|
|
492
|
-
{
|
|
493
|
-
key: "_handlerObjectUpdate",
|
|
494
|
-
value: function _handlerObjectUpdate(state, key, value, oldValue) {
|
|
495
|
-
var instance = findItem(this.runtime.flatInstances, key, this.runtime.instanceMap);
|
|
496
|
-
if (!instance) {
|
|
497
|
-
return;
|
|
498
|
-
}
|
|
499
|
-
var index = this.getInstanceRowIndex(instance);
|
|
500
|
-
var options = eventOptionsTemp || {};
|
|
501
|
-
// if (instance instanceof RuntimeListControl) {
|
|
502
|
-
if (instance.controlType === CONTROL_BASE_TYPE.LIST) {
|
|
536
|
+
break;
|
|
537
|
+
default:
|
|
503
538
|
var // @ts-ignore
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
var newValue = value;
|
|
507
|
-
// @ts-ignore
|
|
508
|
-
var newRows = [];
|
|
509
|
-
for(var i = 0; i < newValue.length; i++){
|
|
510
|
-
// @ts-ignore
|
|
511
|
-
var row = this.listControlCreateRow(instance, 'subtable-row');
|
|
512
|
-
row && newRows.push(row);
|
|
513
|
-
}
|
|
514
|
-
(_children = instance.children).push.apply(_children, _toConsumableArray(newRows));
|
|
539
|
+
_subtable_children3;
|
|
540
|
+
(_subtable_children3 = subtable.children)[type].apply(_subtable_children3, _toConsumableArray(args));
|
|
515
541
|
this.runtime.getFlatInstances();
|
|
516
|
-
|
|
517
|
-
// for (let i = 0; i < newValue.length; i++) {
|
|
518
|
-
// this.setStates(newValue[i], i, options)
|
|
519
|
-
// }
|
|
520
|
-
this.emit('list-change', {
|
|
521
|
-
instance: instance,
|
|
522
|
-
value: value,
|
|
523
|
-
options: _objectSpread({}, options, {
|
|
524
|
-
// @ts-ignore
|
|
525
|
-
changed: newRows,
|
|
526
|
-
data: newValue,
|
|
527
|
-
deleted: oldValue !== null && oldValue !== void 0 ? oldValue : []
|
|
528
|
-
})
|
|
529
|
-
});
|
|
530
|
-
} else {
|
|
531
|
-
this.emit('change', {
|
|
532
|
-
instance: instance,
|
|
533
|
-
value: this.getState(instance.id, index),
|
|
534
|
-
rowIndex: index,
|
|
535
|
-
options: _objectSpread({}, options, {
|
|
536
|
-
oldValue: oldValue
|
|
537
|
-
})
|
|
538
|
-
});
|
|
539
|
-
}
|
|
542
|
+
break;
|
|
540
543
|
}
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
applyingPluginName = (_pluginName = plugin.pluginName) !== null && _pluginName !== void 0 ? _pluginName : plugin.constructor.name;
|
|
551
|
-
plugin.apply(_this);
|
|
552
|
-
} catch (e) {
|
|
553
|
-
error("".concat(applyingPluginName, " Plugin apply Error \n ").concat(e));
|
|
554
|
-
} finally{
|
|
555
|
-
applyingPluginName = '';
|
|
556
|
-
}
|
|
557
|
-
});
|
|
558
|
-
this.__pluginsApplied = true;
|
|
544
|
+
if (type === "splice") {
|
|
545
|
+
deleted = result;
|
|
546
|
+
} else if ([
|
|
547
|
+
"pop",
|
|
548
|
+
"shift"
|
|
549
|
+
].includes(type)) {
|
|
550
|
+
deleted = [
|
|
551
|
+
result
|
|
552
|
+
];
|
|
559
553
|
}
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
554
|
+
this.emit("list-change", {
|
|
555
|
+
instance: subtable,
|
|
556
|
+
value: this.getState(subtable.id),
|
|
557
|
+
options: Object.assign({}, options, {
|
|
558
|
+
changed: createdNewRows,
|
|
559
|
+
data: createdNewRowsData,
|
|
560
|
+
deleted: deleted !== null && deleted !== void 0 ? deleted : [],
|
|
561
|
+
jsonValue: JSON.stringify(this.getState(subtable.id))
|
|
562
|
+
})
|
|
563
|
+
});
|
|
564
|
+
// 主动清空本次任务中的options
|
|
565
|
+
eventOptionsTemp = null;
|
|
566
|
+
}
|
|
567
|
+
};
|
|
568
|
+
_proto._handlerObjectUpdate = function _handlerObjectUpdate(state, key, value, oldValue) {
|
|
569
|
+
var instance = findItem(this.runtime.flatInstances, key, this.runtime.instanceMap);
|
|
570
|
+
if (!instance) {
|
|
571
|
+
return;
|
|
572
|
+
}
|
|
573
|
+
var index = this.getInstanceRowIndex(instance);
|
|
574
|
+
var options = eventOptionsTemp || {};
|
|
575
|
+
// if (instance instanceof RuntimeListControl) {
|
|
576
|
+
if (instance.controlType === CONTROL_BASE_TYPE.LIST) {
|
|
577
|
+
var // @ts-ignore
|
|
578
|
+
_instance_children;
|
|
579
|
+
instance.children.length = 0;
|
|
580
|
+
var newValue = value;
|
|
581
|
+
// @ts-ignore
|
|
582
|
+
var newRows = [];
|
|
583
|
+
for(var i = 0; i < newValue.length; i++){
|
|
567
584
|
// @ts-ignore
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
var inst = row;
|
|
571
|
-
var template = JSONCopy(instance.props.headers);
|
|
572
|
-
// @ts-ignore
|
|
573
|
-
var columns = this.createControl(template);
|
|
574
|
-
(_children = inst.children).push.apply(_children, _toConsumableArray(columns));
|
|
575
|
-
}
|
|
576
|
-
return row;
|
|
585
|
+
var row = this.listControlCreateRow(instance, "subtable-row");
|
|
586
|
+
row && newRows.push(row);
|
|
577
587
|
}
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
588
|
+
(_instance_children = instance.children).push.apply(_instance_children, _toConsumableArray(newRows));
|
|
589
|
+
this.runtime.getFlatInstances();
|
|
590
|
+
// 这里已经能拿到控件实例,所以在这里触发setStates,触发每一行每一个控件的change事件
|
|
591
|
+
// for (let i = 0; i < newValue.length; i++) {
|
|
592
|
+
// this.setStates(newValue[i], i, options)
|
|
593
|
+
// }
|
|
594
|
+
this.emit("list-change", {
|
|
595
|
+
instance: instance,
|
|
596
|
+
value: value,
|
|
597
|
+
options: _objectSpreadProps(_objectSpread({}, options), {
|
|
598
|
+
// @ts-ignore
|
|
599
|
+
changed: newRows,
|
|
600
|
+
data: newValue,
|
|
601
|
+
deleted: oldValue !== null && oldValue !== void 0 ? oldValue : []
|
|
602
|
+
})
|
|
603
|
+
});
|
|
604
|
+
} else {
|
|
605
|
+
this.emit("change", {
|
|
606
|
+
instance: instance,
|
|
607
|
+
value: this.getState(instance.id, index),
|
|
608
|
+
rowIndex: index,
|
|
609
|
+
options: _objectSpreadProps(_objectSpread({}, options), {
|
|
610
|
+
oldValue: oldValue
|
|
611
|
+
})
|
|
612
|
+
});
|
|
613
|
+
}
|
|
614
|
+
};
|
|
615
|
+
_proto.applyPlugins = function applyPlugins() {
|
|
616
|
+
var _this = this;
|
|
617
|
+
if (this.__pluginsApplied) return;
|
|
618
|
+
this.__plugins.forEach(function(plugin) {
|
|
619
|
+
try {
|
|
620
|
+
var _plugin_pluginName;
|
|
621
|
+
applyingPluginName = (_plugin_pluginName = plugin.pluginName) !== null && _plugin_pluginName !== void 0 ? _plugin_pluginName : plugin.constructor.name;
|
|
622
|
+
plugin.apply(_this);
|
|
623
|
+
} catch (e) {
|
|
624
|
+
error("".concat(applyingPluginName, " Plugin apply Error \n ").concat(e));
|
|
625
|
+
} finally{
|
|
626
|
+
applyingPluginName = "";
|
|
587
627
|
}
|
|
588
|
-
}
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
}
|
|
635
|
-
_ctx.next = 16;
|
|
636
|
-
return _superprop_get_emit().call(_this1, eventKey, payload);
|
|
637
|
-
case 16:
|
|
638
|
-
results = _ctx.sent;
|
|
639
|
-
if (promiseResolver && promise) {
|
|
640
|
-
// 每一个任务完成的时候,都把自己从task中去掉
|
|
641
|
-
promiseResolver();
|
|
642
|
-
_this1._jobTasks.splice(_this1._jobTasks.indexOf(promise), 1);
|
|
643
|
-
}
|
|
644
|
-
return _ctx.abrupt("return", results);
|
|
645
|
-
case 19:
|
|
646
|
-
case "end":
|
|
647
|
-
return _ctx.stop();
|
|
628
|
+
});
|
|
629
|
+
this.__pluginsApplied = true;
|
|
630
|
+
};
|
|
631
|
+
_proto.listControlCreateRow = function listControlCreateRow(instance, rowType) {
|
|
632
|
+
var row = this.runtime.createControlInstance(rowType);
|
|
633
|
+
if (!row) return;
|
|
634
|
+
// if (row instanceof RuntimeLayoutControl) {
|
|
635
|
+
// @ts-ignore
|
|
636
|
+
if (row.controlType === CONTROL_BASE_TYPE.LAYOUT) {
|
|
637
|
+
var _inst_children;
|
|
638
|
+
var inst = row;
|
|
639
|
+
var template = JSONCopy(instance.props.headers);
|
|
640
|
+
// @ts-ignore
|
|
641
|
+
var columns = this.createControl(template);
|
|
642
|
+
(_inst_children = inst.children).push.apply(_inst_children, _toConsumableArray(columns));
|
|
643
|
+
}
|
|
644
|
+
return row;
|
|
645
|
+
};
|
|
646
|
+
_proto.listControlAddRow = function listControlAddRow(instance) {
|
|
647
|
+
var // @ts-ignore
|
|
648
|
+
rowType = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "subtable-row";
|
|
649
|
+
var row = this.listControlCreateRow(instance, rowType);
|
|
650
|
+
if (!row) return;
|
|
651
|
+
instance.children.push(row);
|
|
652
|
+
};
|
|
653
|
+
// payload应该是runtimeSchema和value,然后通过runTimeSchema去找需要修改的data里边的key
|
|
654
|
+
_proto.emit = function emit(eventKey, payload) {
|
|
655
|
+
var _this = this;
|
|
656
|
+
var _this1 = this, _superprop_get_emit = function() {
|
|
657
|
+
return _get(_getPrototypeOf(Engine.prototype), "emit", _this);
|
|
658
|
+
};
|
|
659
|
+
return _asyncToGenerator(function() {
|
|
660
|
+
var needWait, promiseResolver, promise, results;
|
|
661
|
+
return __generator(this, function(_state) {
|
|
662
|
+
switch(_state.label){
|
|
663
|
+
case 0:
|
|
664
|
+
if (!(eventKey === "engine-mounted")) return [
|
|
665
|
+
3,
|
|
666
|
+
3
|
|
667
|
+
];
|
|
668
|
+
if (_this1.isMounted) {
|
|
669
|
+
warn("The engine-mounted life cycle can only be triggered once");
|
|
670
|
+
return [
|
|
671
|
+
2,
|
|
672
|
+
Promise.resolve([])
|
|
673
|
+
];
|
|
648
674
|
}
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
},
|
|
690
|
-
{
|
|
691
|
-
key: "getAllRules",
|
|
692
|
-
value: function getAllRules(controlId) {
|
|
693
|
-
var rules = this.runtime.allRules;
|
|
694
|
-
if (controlId === undefined) {
|
|
695
|
-
return rules;
|
|
696
|
-
} else {
|
|
697
|
-
var ref, ref1;
|
|
698
|
-
return {
|
|
699
|
-
rules: (ref = rules.rules[controlId]) === null || ref === void 0 ? void 0 : ref.fields,
|
|
700
|
-
antdRules: (ref1 = rules.antdRules[controlId]) === null || ref1 === void 0 ? void 0 : ref1.fields
|
|
701
|
-
};
|
|
702
|
-
}
|
|
703
|
-
}
|
|
704
|
-
},
|
|
705
|
-
{
|
|
706
|
-
key: "getRules",
|
|
707
|
-
value: function getRules(controlId) {
|
|
708
|
-
if (controlId === undefined) {
|
|
709
|
-
return this.runtime.rules;
|
|
710
|
-
} else {
|
|
711
|
-
var ref;
|
|
712
|
-
return (ref = this.runtime.rules[controlId]) === null || ref === void 0 ? void 0 : ref.fields;
|
|
713
|
-
}
|
|
714
|
-
}
|
|
715
|
-
},
|
|
716
|
-
{
|
|
717
|
-
key: "getAntdRules",
|
|
718
|
-
value: function getAntdRules(controlId) {
|
|
719
|
-
if (controlId === undefined) {
|
|
720
|
-
return this.runtime.antdRules;
|
|
721
|
-
} else {
|
|
722
|
-
var ref;
|
|
723
|
-
return (ref = this.runtime.antdRules[controlId]) === null || ref === void 0 ? void 0 : ref.fields;
|
|
724
|
-
}
|
|
725
|
-
}
|
|
726
|
-
},
|
|
727
|
-
{
|
|
728
|
-
key: "getState",
|
|
729
|
-
value: function getState(controlId, rowIndex) {
|
|
730
|
-
if (controlId === undefined) {
|
|
731
|
-
return this.store.state;
|
|
732
|
-
} else {
|
|
733
|
-
return this.store.getState(controlId, rowIndex);
|
|
734
|
-
}
|
|
735
|
-
}
|
|
736
|
-
},
|
|
737
|
-
{
|
|
738
|
-
key: "getEmptyState",
|
|
739
|
-
value: function getEmptyState(controlId) {
|
|
740
|
-
if (controlId === undefined) {
|
|
741
|
-
return JSONCopy(this.store.emptyState);
|
|
742
|
-
} else {
|
|
743
|
-
return JSONCopy(this.store.getEmptyState(controlId));
|
|
675
|
+
if (!_this1._jobTasks.length) return [
|
|
676
|
+
3,
|
|
677
|
+
2
|
|
678
|
+
];
|
|
679
|
+
console.time("engine-mounted need wait");
|
|
680
|
+
needWait = _toConsumableArray(_this1._jobTasks);
|
|
681
|
+
return [
|
|
682
|
+
4,
|
|
683
|
+
Promise.all(needWait)
|
|
684
|
+
];
|
|
685
|
+
case 1:
|
|
686
|
+
_state.sent();
|
|
687
|
+
console.timeEnd("engine-mounted need wait");
|
|
688
|
+
_state.label = 2;
|
|
689
|
+
case 2:
|
|
690
|
+
_this1.isMounted = true;
|
|
691
|
+
_state.label = 3;
|
|
692
|
+
case 3:
|
|
693
|
+
// 如果没有挂载的话,需要记录在挂载之前触发的所有任务
|
|
694
|
+
if (!_this1.isMounted) {
|
|
695
|
+
promise = new Promise(function(resolve) {
|
|
696
|
+
promiseResolver = resolve;
|
|
697
|
+
});
|
|
698
|
+
_this1._jobTasks.push(promise);
|
|
699
|
+
}
|
|
700
|
+
return [
|
|
701
|
+
4,
|
|
702
|
+
_superprop_get_emit().call(_this1, eventKey, payload)
|
|
703
|
+
];
|
|
704
|
+
case 4:
|
|
705
|
+
results = _state.sent();
|
|
706
|
+
if (promiseResolver && promise) {
|
|
707
|
+
// 每一个任务完成的时候,都把自己从task中去掉
|
|
708
|
+
promiseResolver();
|
|
709
|
+
_this1._jobTasks.splice(_this1._jobTasks.indexOf(promise), 1);
|
|
710
|
+
}
|
|
711
|
+
return [
|
|
712
|
+
2,
|
|
713
|
+
results
|
|
714
|
+
];
|
|
744
715
|
}
|
|
745
|
-
}
|
|
746
|
-
}
|
|
747
|
-
|
|
748
|
-
|
|
716
|
+
});
|
|
717
|
+
})();
|
|
718
|
+
};
|
|
719
|
+
_proto.on = function on(key, callback) {
|
|
720
|
+
if (applyingPluginName) {
|
|
721
|
+
callback.applyingPluginName = applyingPluginName;
|
|
722
|
+
}
|
|
723
|
+
return _get(_getPrototypeOf(Engine.prototype), "on", this).call(this, key, callback);
|
|
724
|
+
};
|
|
725
|
+
_proto.createControl = function createControl() {
|
|
726
|
+
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
727
|
+
args[_key] = arguments[_key];
|
|
728
|
+
}
|
|
729
|
+
var _this_runtime;
|
|
730
|
+
return (_this_runtime = this.runtime).createControl.apply(_this_runtime, _toConsumableArray(args));
|
|
731
|
+
};
|
|
732
|
+
_proto.createInstance = function createInstance(type, initSchema) {
|
|
733
|
+
return this.runtime.createControlInstance(type, initSchema);
|
|
734
|
+
};
|
|
735
|
+
_proto.schemaEvent = function schemaEvent(eventKey, payload) {
|
|
736
|
+
this.emit(eventKey, payload);
|
|
737
|
+
};
|
|
738
|
+
_proto.updateInstanceProps = function updateInstanceProps(instance, props, value, rowIndex) {
|
|
739
|
+
return this.setInstance(instance, props, value, rowIndex);
|
|
740
|
+
};
|
|
741
|
+
_proto.getAllRules = function getAllRules(controlId) {
|
|
742
|
+
var rules = this.runtime.allRules;
|
|
743
|
+
if (controlId === undefined) {
|
|
744
|
+
return rules;
|
|
745
|
+
} else {
|
|
746
|
+
var _rules_rules_controlId, _rules_antdRules_controlId;
|
|
747
|
+
return {
|
|
748
|
+
rules: (_rules_rules_controlId = rules.rules[controlId]) === null || _rules_rules_controlId === void 0 ? void 0 : _rules_rules_controlId.fields,
|
|
749
|
+
antdRules: (_rules_antdRules_controlId = rules.antdRules[controlId]) === null || _rules_antdRules_controlId === void 0 ? void 0 : _rules_antdRules_controlId.fields
|
|
750
|
+
};
|
|
751
|
+
}
|
|
752
|
+
};
|
|
753
|
+
_proto.getRules = function getRules(controlId) {
|
|
754
|
+
if (controlId === undefined) {
|
|
755
|
+
return this.runtime.rules;
|
|
756
|
+
} else {
|
|
757
|
+
var _this_runtime_rules_controlId;
|
|
758
|
+
return (_this_runtime_rules_controlId = this.runtime.rules[controlId]) === null || _this_runtime_rules_controlId === void 0 ? void 0 : _this_runtime_rules_controlId.fields;
|
|
759
|
+
}
|
|
760
|
+
};
|
|
761
|
+
_proto.getAntdRules = function getAntdRules(controlId) {
|
|
762
|
+
if (controlId === undefined) {
|
|
763
|
+
return this.runtime.antdRules;
|
|
764
|
+
} else {
|
|
765
|
+
var _this_runtime_antdRules_controlId;
|
|
766
|
+
return (_this_runtime_antdRules_controlId = this.runtime.antdRules[controlId]) === null || _this_runtime_antdRules_controlId === void 0 ? void 0 : _this_runtime_antdRules_controlId.fields;
|
|
767
|
+
}
|
|
768
|
+
};
|
|
769
|
+
_proto.getState = function getState(controlId, rowIndex) {
|
|
770
|
+
if (controlId === undefined) {
|
|
771
|
+
return this.store.state;
|
|
772
|
+
} else {
|
|
773
|
+
return this.store.getState(controlId, rowIndex);
|
|
774
|
+
}
|
|
775
|
+
};
|
|
776
|
+
_proto.getEmptyState = function getEmptyState(controlId) {
|
|
777
|
+
if (controlId === undefined) {
|
|
778
|
+
return JSONCopy(this.store.emptyState);
|
|
779
|
+
} else {
|
|
780
|
+
return JSONCopy(this.store.getEmptyState(controlId));
|
|
781
|
+
}
|
|
782
|
+
};
|
|
783
|
+
/**
|
|
749
784
|
* 设置payload的options,提供在不是使用标准api修改state的时候可以传递options,会在本次任务执行完成之后清空
|
|
750
785
|
* @param options 需要携带的options
|
|
751
|
-
* */
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
this.debugLog('[%o]: setState完成, 修改的值为%o, rowIndex=%o', controlId, value, rowIndex);
|
|
763
|
-
eventOptionsTemp = null;
|
|
764
|
-
}
|
|
765
|
-
},
|
|
766
|
-
{
|
|
767
|
-
/**
|
|
786
|
+
* */ _proto.setPayloadOptions = function setPayloadOptions(options) {
|
|
787
|
+
eventOptionsTemp = options;
|
|
788
|
+
};
|
|
789
|
+
_proto.setState = function setState(controlId, value, rowIndex, options) {
|
|
790
|
+
eventOptionsTemp = options;
|
|
791
|
+
this.debugLog("[%o]: 触发setState, 修改的值为%o, rowIndex=%o, options=%o", controlId, value, rowIndex, options);
|
|
792
|
+
this.store.setState(controlId, value, rowIndex);
|
|
793
|
+
this.debugLog("[%o]: setState完成, 修改的值为%o, rowIndex=%o", controlId, value, rowIndex);
|
|
794
|
+
eventOptionsTemp = null;
|
|
795
|
+
};
|
|
796
|
+
/**
|
|
768
797
|
* 向Store设置一组值,明细表必须全量赋值,并触发事件(触发事件是根据组件在页面中的顺序逐个触发)
|
|
769
798
|
* @param states
|
|
770
|
-
*/
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
if (newStates[stateId] !== undefined) {
|
|
788
|
-
_this2.setState(stateId, newStates[stateId], rowIndex, options);
|
|
789
|
-
}
|
|
790
|
-
}
|
|
799
|
+
*/ _proto.setStates = function setStates(states, rowIndex, options) {
|
|
800
|
+
var _this = this;
|
|
801
|
+
var newStates = states !== null && states !== void 0 ? states : {};
|
|
802
|
+
Object.keys(newStates).forEach(function(stateId) {
|
|
803
|
+
Object.entries(_this.store.controlIdMapping).forEach(function(param) {
|
|
804
|
+
var _param = _slicedToArray(param, 2), controlId = _param[0], controlIdMapping = _param[1];
|
|
805
|
+
if (controlIdMapping.dataView === stateId) {
|
|
806
|
+
// state对象是dataView包裹的
|
|
807
|
+
var value = newStates[stateId][controlId];
|
|
808
|
+
if (value !== undefined) {
|
|
809
|
+
_this.setState(controlId, value, rowIndex, options);
|
|
810
|
+
}
|
|
811
|
+
} else {
|
|
812
|
+
// state对象是单独的,没有被dataView包裹的
|
|
813
|
+
if (controlId === stateId || controlIdMapping.children && controlIdMapping.children[stateId]) {
|
|
814
|
+
if (newStates[stateId] !== undefined) {
|
|
815
|
+
_this.setState(stateId, newStates[stateId], rowIndex, options);
|
|
791
816
|
}
|
|
792
|
-
}
|
|
793
|
-
}
|
|
794
|
-
}
|
|
795
|
-
}
|
|
796
|
-
|
|
797
|
-
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
});
|
|
820
|
+
});
|
|
821
|
+
};
|
|
822
|
+
/**
|
|
798
823
|
* 通过dataCode和fieldCode来获取控件的值
|
|
799
824
|
* @param dataCode 模型编码 - 如果是主表的话就是主表的模型编码,明细子表的话就是子表的模型编码
|
|
800
825
|
* @param fieldCode 字段编码 - 控件绑定的数据项的编码
|
|
801
826
|
* @param rowIndex 行下标 - 如果是明细子表中的控件需要提供
|
|
802
|
-
* */
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
827
|
+
* */ _proto.getField = function getField(dataCode, fieldCode, rowIndex) {
|
|
828
|
+
if (!fieldCode) {
|
|
829
|
+
var dataBindMapping = this.getDataBindMapping(dataCode);
|
|
830
|
+
if (dataBindMapping) {
|
|
831
|
+
var controlId = dataBindMapping.controlId;
|
|
832
|
+
return this.getState(controlId);
|
|
833
|
+
}
|
|
834
|
+
return;
|
|
835
|
+
}
|
|
836
|
+
var dataBindMapping1 = this.getDataBindMapping(dataCode, fieldCode);
|
|
837
|
+
if (!dataBindMapping1) {
|
|
838
|
+
return;
|
|
839
|
+
}
|
|
840
|
+
var dataBind = dataBindMapping1.dataBind, controlId1 = dataBindMapping1.controlId;
|
|
841
|
+
var state = this.getState(controlId1, rowIndex);
|
|
842
|
+
if (_instanceof(dataBind, ObjectDataBind)) {
|
|
843
|
+
return Object.entries(dataBind).reduce(function(result, param) {
|
|
844
|
+
var _param = _slicedToArray(param, 2), key = _param[0], dataBind = _param[1];
|
|
845
|
+
// objectDataBind的元素,跳过下一次赋值
|
|
846
|
+
if (dataBind.fieldCode === fieldCode) {
|
|
847
|
+
return result[key];
|
|
815
848
|
}
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
849
|
+
return result;
|
|
850
|
+
}, state);
|
|
851
|
+
} else {
|
|
852
|
+
return state;
|
|
853
|
+
}
|
|
854
|
+
};
|
|
855
|
+
_proto.getData = function getData(dataCode) {
|
|
856
|
+
if (!dataCode) return;
|
|
857
|
+
var dataBindMapping = this.getDataBindMapping(dataCode);
|
|
858
|
+
var controlIdMapping = this.getControlIdMapping();
|
|
859
|
+
if (dataBindMapping) {
|
|
860
|
+
var controlId = dataBindMapping.controlId;
|
|
861
|
+
var getFieldData = this.getField(dataCode);
|
|
862
|
+
// 明细子表值
|
|
863
|
+
if (Array.isArray(getFieldData)) {
|
|
864
|
+
var data = getFieldData.map(function(item) {
|
|
865
|
+
var obj = {};
|
|
866
|
+
for(var key in item){
|
|
867
|
+
var _controlIdMapping_controlId_children_key, _controlIdMapping_controlId, _controlIdMapping_controlId_children_key_dataBind;
|
|
868
|
+
var fieldCode = (_controlIdMapping_controlId_children_key = (_controlIdMapping_controlId = controlIdMapping[controlId]) === null || _controlIdMapping_controlId === void 0 ? void 0 : _controlIdMapping_controlId.children[key]) === null || _controlIdMapping_controlId_children_key === void 0 ? void 0 : (_controlIdMapping_controlId_children_key_dataBind = _controlIdMapping_controlId_children_key.dataBind) === null || _controlIdMapping_controlId_children_key_dataBind === void 0 ? void 0 : _controlIdMapping_controlId_children_key_dataBind.fieldCode;
|
|
869
|
+
//未绑定字段的控件,直接抛弃
|
|
870
|
+
if (fieldCode !== "") {
|
|
871
|
+
var _controlIdMapping_controlId1;
|
|
872
|
+
if (fieldCode) {
|
|
873
|
+
obj[fieldCode] = item[key];
|
|
874
|
+
} else if ((_controlIdMapping_controlId1 = controlIdMapping[controlId]) === null || _controlIdMapping_controlId1 === void 0 ? void 0 : _controlIdMapping_controlId1.children[key]) {
|
|
875
|
+
// 兼容一个控件需要绑定多个字段的情况
|
|
876
|
+
for(var keyChi in item[key]){
|
|
877
|
+
var _controlIdMapping_controlId_children_key1, _controlIdMapping_controlId2;
|
|
878
|
+
obj[(_controlIdMapping_controlId_children_key1 = (_controlIdMapping_controlId2 = controlIdMapping[controlId]) === null || _controlIdMapping_controlId2 === void 0 ? void 0 : _controlIdMapping_controlId2.children[key]) === null || _controlIdMapping_controlId_children_key1 === void 0 ? void 0 : _controlIdMapping_controlId_children_key1.dataBind[keyChi].fieldCode] = item[key][keyChi];
|
|
879
|
+
}
|
|
880
|
+
}
|
|
824
881
|
}
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
}
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
var data = getFieldData.map(function(item) {
|
|
844
|
-
var obj = {};
|
|
845
|
-
for(var key in item){
|
|
846
|
-
var ref, ref2, ref3;
|
|
847
|
-
var fieldCode = (ref2 = (ref = controlIdMapping[controlId]) === null || ref === void 0 ? void 0 : ref.children[key]) === null || ref2 === void 0 ? void 0 : (ref3 = ref2.dataBind) === null || ref3 === void 0 ? void 0 : ref3.fieldCode;
|
|
882
|
+
}
|
|
883
|
+
return obj;
|
|
884
|
+
});
|
|
885
|
+
return data;
|
|
886
|
+
} else {
|
|
887
|
+
var _loop = function(key) {
|
|
888
|
+
var _controlIdMapping_key, _controlIdMapping_key_dataBind, _controlIdMapping_key1, _controlIdMapping_key_dataBind1;
|
|
889
|
+
if ((_controlIdMapping_key = controlIdMapping[key]) === null || _controlIdMapping_key === void 0 ? void 0 : (_controlIdMapping_key_dataBind = _controlIdMapping_key.dataBind) === null || _controlIdMapping_key_dataBind === void 0 ? void 0 : _controlIdMapping_key_dataBind.fieldCode) {
|
|
890
|
+
var _controlIdMapping_key2;
|
|
891
|
+
obj[(_controlIdMapping_key2 = controlIdMapping[key]) === null || _controlIdMapping_key2 === void 0 ? void 0 : _controlIdMapping_key2.dataBind.fieldCode] = getFieldData[key];
|
|
892
|
+
} else if ((_controlIdMapping_key1 = controlIdMapping[key]) === null || _controlIdMapping_key1 === void 0 ? void 0 : (_controlIdMapping_key_dataBind1 = _controlIdMapping_key1.dataBind) === null || _controlIdMapping_key_dataBind1 === void 0 ? void 0 : _controlIdMapping_key_dataBind1.dataCode) {
|
|
893
|
+
var _controlIdMapping_key3;
|
|
894
|
+
// 明细字表只循环一层明细子表未递归
|
|
895
|
+
obj[(_controlIdMapping_key3 = controlIdMapping[key]) === null || _controlIdMapping_key3 === void 0 ? void 0 : _controlIdMapping_key3.dataBind.dataCode] = getFieldData[key].map(function(item) {
|
|
896
|
+
var objChi = {};
|
|
897
|
+
for(var keyChi in item){
|
|
898
|
+
var _controlIdMapping_key_children_keyChi;
|
|
899
|
+
var fieldCode = (_controlIdMapping_key_children_keyChi = controlIdMapping[key].children[keyChi]) === null || _controlIdMapping_key_children_keyChi === void 0 ? void 0 : _controlIdMapping_key_children_keyChi.dataBind.fieldCode;
|
|
848
900
|
//未绑定字段的控件,直接抛弃
|
|
849
|
-
if (fieldCode !==
|
|
850
|
-
var ref4;
|
|
901
|
+
if (fieldCode !== "") {
|
|
851
902
|
if (fieldCode) {
|
|
852
|
-
|
|
853
|
-
} else
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
obj[(ref6 = (ref5 = controlIdMapping[controlId]) === null || ref5 === void 0 ? void 0 : ref5.children[key]) === null || ref6 === void 0 ? void 0 : ref6.dataBind[keyChi].fieldCode] = item[key][keyChi];
|
|
903
|
+
objChi[fieldCode] = item[keyChi];
|
|
904
|
+
} else {
|
|
905
|
+
for(var keyChi1 in item[keyChi]){
|
|
906
|
+
var _controlIdMapping_key_children_keyChi1;
|
|
907
|
+
objChi[(_controlIdMapping_key_children_keyChi1 = controlIdMapping[key].children[keyChi]) === null || _controlIdMapping_key_children_keyChi1 === void 0 ? void 0 : _controlIdMapping_key_children_keyChi1.dataBind[keyChi1].fieldCode] = item[keyChi][keyChi1];
|
|
858
908
|
}
|
|
859
909
|
}
|
|
860
910
|
}
|
|
861
911
|
}
|
|
862
|
-
return
|
|
912
|
+
return objChi;
|
|
863
913
|
});
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
var
|
|
867
|
-
var
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
obj1[(ref10 = controlIdMapping[key1]) === null || ref10 === void 0 ? void 0 : ref10.dataBind.fieldCode] = getFieldData[key1];
|
|
871
|
-
} else if ((ref8 = controlIdMapping[key1]) === null || ref8 === void 0 ? void 0 : (ref9 = ref8.dataBind) === null || ref9 === void 0 ? void 0 : ref9.dataCode) {
|
|
872
|
-
var ref11;
|
|
873
|
-
// 明细字表只循环一层明细子表未递归
|
|
874
|
-
obj1[(ref11 = controlIdMapping[key1]) === null || ref11 === void 0 ? void 0 : ref11.dataBind.dataCode] = getFieldData[key1].map(function(item) {
|
|
875
|
-
var objChi = {};
|
|
876
|
-
for(var keyChi in item){
|
|
877
|
-
var ref;
|
|
878
|
-
var fieldCode = (ref = controlIdMapping[key1].children[keyChi]) === null || ref === void 0 ? void 0 : ref.dataBind.fieldCode;
|
|
879
|
-
//未绑定字段的控件,直接抛弃
|
|
880
|
-
if (fieldCode !== '') {
|
|
881
|
-
if (fieldCode) {
|
|
882
|
-
objChi[fieldCode] = item[keyChi];
|
|
883
|
-
} else {
|
|
884
|
-
for(var keyChi1 in item[keyChi]){
|
|
885
|
-
var ref14;
|
|
886
|
-
objChi[(ref14 = controlIdMapping[key1].children[keyChi]) === null || ref14 === void 0 ? void 0 : ref14.dataBind[keyChi1].fieldCode] = item[keyChi][keyChi1];
|
|
887
|
-
}
|
|
888
|
-
}
|
|
889
|
-
}
|
|
890
|
-
}
|
|
891
|
-
return objChi;
|
|
892
|
-
});
|
|
893
|
-
} else if (controlIdMapping[key1]) {
|
|
894
|
-
// 兼容一个控件需要绑定多个字段的情况
|
|
895
|
-
for(var keyChi2 in getFieldData[key1]){
|
|
896
|
-
var ref12, ref13;
|
|
897
|
-
obj1[(ref13 = (ref12 = controlIdMapping[key1]) === null || ref12 === void 0 ? void 0 : ref12.dataBind[keyChi2]) === null || ref13 === void 0 ? void 0 : ref13.fieldCode] = getFieldData[key1][keyChi2];
|
|
898
|
-
}
|
|
899
|
-
}
|
|
900
|
-
};
|
|
901
|
-
// 主表
|
|
902
|
-
var obj1 = {};
|
|
903
|
-
for(var key1 in getFieldData)_loop(key1);
|
|
904
|
-
return obj1;
|
|
914
|
+
} else if (controlIdMapping[key]) {
|
|
915
|
+
// 兼容一个控件需要绑定多个字段的情况
|
|
916
|
+
for(var keyChi in getFieldData[key]){
|
|
917
|
+
var _controlIdMapping_key_dataBind_keyChi, _controlIdMapping_key4;
|
|
918
|
+
obj[(_controlIdMapping_key_dataBind_keyChi = (_controlIdMapping_key4 = controlIdMapping[key]) === null || _controlIdMapping_key4 === void 0 ? void 0 : _controlIdMapping_key4.dataBind[keyChi]) === null || _controlIdMapping_key_dataBind_keyChi === void 0 ? void 0 : _controlIdMapping_key_dataBind_keyChi.fieldCode] = getFieldData[key][keyChi];
|
|
919
|
+
}
|
|
905
920
|
}
|
|
906
|
-
}
|
|
907
|
-
|
|
921
|
+
};
|
|
922
|
+
// 主表
|
|
923
|
+
var obj = {};
|
|
924
|
+
for(var key in getFieldData)_loop(key);
|
|
925
|
+
return obj;
|
|
908
926
|
}
|
|
909
|
-
}
|
|
910
|
-
|
|
911
|
-
|
|
927
|
+
}
|
|
928
|
+
return;
|
|
929
|
+
};
|
|
930
|
+
/**
|
|
912
931
|
* 通过dataCode和fieldCode来设置控件的值
|
|
913
932
|
* @param dataCode 模型编码 - 如果是主表的话就是主表的模型编码,明细子表的话就是子表的模型编码
|
|
914
933
|
* @param fieldCode 字段编码 - 控件绑定的数据项的编码
|
|
915
934
|
* @param value 修改的值
|
|
916
935
|
* @param rowIndex 行下标 - 如果是明细子表中的控件需要提供
|
|
917
936
|
* @param options 触发事件携带的参数
|
|
918
|
-
* */
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
result[key] = value;
|
|
934
|
-
}
|
|
935
|
-
return result;
|
|
936
|
-
}, oldState);
|
|
937
|
-
this.setState(controlId, newState, rowIndex, options);
|
|
938
|
-
} else {
|
|
939
|
-
this.setState(controlId, value, rowIndex, options);
|
|
937
|
+
* */ _proto.setField = function setField(dataCode, fieldCode, value, rowIndex, options) {
|
|
938
|
+
var dataBindMapping = this.getDataBindMapping(dataCode, fieldCode);
|
|
939
|
+
if (!dataBindMapping) {
|
|
940
|
+
return;
|
|
941
|
+
}
|
|
942
|
+
var dataBind = dataBindMapping.dataBind, controlId = dataBindMapping.controlId;
|
|
943
|
+
if (_instanceof(dataBind, ObjectDataBind)) {
|
|
944
|
+
var _JSONCopy;
|
|
945
|
+
var oldState = (_JSONCopy = JSONCopy(this.getState(controlId, rowIndex))) !== null && _JSONCopy !== void 0 ? _JSONCopy : this.getEmptyState(controlId);
|
|
946
|
+
// fieldCode不代表是key,所以需要找到对应的key
|
|
947
|
+
var newState = Object.entries(dataBind).reduce(function(result, param) {
|
|
948
|
+
var _param = _slicedToArray(param, 2), key = _param[0], dataBind = _param[1];
|
|
949
|
+
// objectDataBind的元素,跳过下一次赋值
|
|
950
|
+
if (dataBind.fieldCode === fieldCode) {
|
|
951
|
+
result[key] = value;
|
|
940
952
|
}
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
953
|
+
return result;
|
|
954
|
+
}, oldState);
|
|
955
|
+
this.setState(controlId, newState, rowIndex, options);
|
|
956
|
+
} else {
|
|
957
|
+
this.setState(controlId, value, rowIndex, options);
|
|
958
|
+
}
|
|
959
|
+
};
|
|
960
|
+
/**
|
|
945
961
|
* 通过dataCode和 state来给一组控件赋值,并触发事件携带options
|
|
946
962
|
* @param dataCode 需要赋值的目标模型
|
|
947
963
|
* @param state 赋值对象,以fieldCode为key组成的对象
|
|
948
964
|
* @param rowIndex 行下标,给明细子表赋值时指定赋值某行
|
|
949
965
|
* @param options 触发事件携带的参数
|
|
950
|
-
* */
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
result[key] = value;
|
|
978
|
-
}
|
|
979
|
-
return result;
|
|
980
|
-
}, oldState);
|
|
981
|
-
_this.setState(item.controlId, newState, rowIndex, options);
|
|
982
|
-
} else {
|
|
983
|
-
_this.setState(controlId, state[fieldCode], rowIndex, options);
|
|
966
|
+
* */ _proto.setFields = function setFields(dataCode, state, rowIndex, options) {
|
|
967
|
+
var _this = this;
|
|
968
|
+
var mapping = this.getDataBindMapping(dataCode);
|
|
969
|
+
if (!mapping) {
|
|
970
|
+
return;
|
|
971
|
+
}
|
|
972
|
+
var skipKeys = [];
|
|
973
|
+
mapping.fields.forEach(function(item) {
|
|
974
|
+
var dataBind = item.dataBind, controlId = item.controlId, fieldCode = item.fieldCode;
|
|
975
|
+
if (skipKeys.includes(fieldCode)) {
|
|
976
|
+
return;
|
|
977
|
+
}
|
|
978
|
+
if (!Object.hasOwnProperty.call(state, fieldCode)) {
|
|
979
|
+
return;
|
|
980
|
+
}
|
|
981
|
+
// 对象类型的值
|
|
982
|
+
if (_instanceof(dataBind, ObjectDataBind)) {
|
|
983
|
+
var _JSONCopy;
|
|
984
|
+
var oldState = (_JSONCopy = JSONCopy(_this.getState(controlId, rowIndex))) !== null && _JSONCopy !== void 0 ? _JSONCopy : _this.getEmptyState(controlId);
|
|
985
|
+
// fieldCode不代表是key,所以需要找到对应的key
|
|
986
|
+
var newState = Object.entries(dataBind).reduce(function(result, param) {
|
|
987
|
+
var _param = _slicedToArray(param, 2), key = _param[0], dataBind = _param[1];
|
|
988
|
+
// objectDataBind的元素,跳过下一次赋值
|
|
989
|
+
skipKeys.push(dataBind.fieldCode);
|
|
990
|
+
var value = state[dataBind.fieldCode];
|
|
991
|
+
if (value !== undefined) {
|
|
992
|
+
result[key] = value;
|
|
984
993
|
}
|
|
985
|
-
|
|
994
|
+
return result;
|
|
995
|
+
}, oldState);
|
|
996
|
+
_this.setState(item.controlId, newState, rowIndex, options);
|
|
997
|
+
} else {
|
|
998
|
+
_this.setState(controlId, state[fieldCode], rowIndex, options);
|
|
986
999
|
}
|
|
987
|
-
}
|
|
988
|
-
|
|
989
|
-
|
|
1000
|
+
});
|
|
1001
|
+
};
|
|
1002
|
+
/**
|
|
990
1003
|
* 通过dataCode来将state转化为标准的state结构
|
|
991
1004
|
* @param dataCode 需要转换的目标模型code
|
|
992
1005
|
* @param state 值对象,以fieldCode为key组成的对象
|
|
993
|
-
* */
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
result[key] = value;
|
|
1021
|
-
}
|
|
1022
|
-
return result;
|
|
1023
|
-
}, oldState);
|
|
1024
|
-
} else {
|
|
1025
|
-
result1[controlId] = state[fieldCode];
|
|
1006
|
+
* */ _proto.buildFields = function buildFields(dataCode, state) {
|
|
1007
|
+
var _this = this;
|
|
1008
|
+
var mapping = this.getDataBindMapping(dataCode);
|
|
1009
|
+
if (!mapping) {
|
|
1010
|
+
return;
|
|
1011
|
+
}
|
|
1012
|
+
var skipKeys = [];
|
|
1013
|
+
var result = {};
|
|
1014
|
+
mapping.fields.forEach(function(item) {
|
|
1015
|
+
var dataBind = item.dataBind, controlId = item.controlId, fieldCode = item.fieldCode;
|
|
1016
|
+
if (skipKeys.includes(fieldCode)) {
|
|
1017
|
+
return;
|
|
1018
|
+
}
|
|
1019
|
+
if (!Object.hasOwnProperty.call(state, fieldCode)) {
|
|
1020
|
+
return;
|
|
1021
|
+
}
|
|
1022
|
+
// 对象类型的值
|
|
1023
|
+
if (_instanceof(dataBind, ObjectDataBind)) {
|
|
1024
|
+
var oldState = _this.getEmptyState(controlId);
|
|
1025
|
+
// fieldCode不代表是key,所以需要找到对应的key
|
|
1026
|
+
result[item.controlId] = Object.entries(dataBind).reduce(function(result, param) {
|
|
1027
|
+
var _param = _slicedToArray(param, 2), key = _param[0], dataBind = _param[1];
|
|
1028
|
+
// objectDataBind的元素,跳过下一次赋值
|
|
1029
|
+
skipKeys.push(dataBind.fieldCode);
|
|
1030
|
+
var value = state[dataBind.fieldCode];
|
|
1031
|
+
if (value !== undefined) {
|
|
1032
|
+
result[key] = value;
|
|
1026
1033
|
}
|
|
1027
|
-
|
|
1028
|
-
|
|
1034
|
+
return result;
|
|
1035
|
+
}, oldState);
|
|
1036
|
+
} else {
|
|
1037
|
+
result[controlId] = state[fieldCode];
|
|
1029
1038
|
}
|
|
1030
|
-
}
|
|
1031
|
-
|
|
1032
|
-
|
|
1039
|
+
});
|
|
1040
|
+
return result;
|
|
1041
|
+
};
|
|
1042
|
+
/**
|
|
1033
1043
|
* 向Store设置一组值,并触发事件携带options
|
|
1034
1044
|
* @param dataSet
|
|
1035
1045
|
* @options 传递给关联事件中 EventPayload中的options,一般在plugin中监听使用
|
|
1036
|
-
*/
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1046
|
+
*/ _proto.setData = function setData(dataSet, options) {
|
|
1047
|
+
var _this = this;
|
|
1048
|
+
this.debugLog("engine setData方法执行,参数为%o,%o。", dataSet, options);
|
|
1049
|
+
var newState = this.store.defaultState;
|
|
1050
|
+
Object.keys(dataSet).map(function(dataCode) {
|
|
1051
|
+
var entity = dataSet[dataCode];
|
|
1052
|
+
if (Array.isArray(entity)) {
|
|
1053
|
+
var mapping = _this.getDataBindMapping(dataCode);
|
|
1054
|
+
if (!mapping) {
|
|
1055
|
+
return;
|
|
1056
|
+
}
|
|
1057
|
+
if (!newState[mapping.dataViewId]) {
|
|
1058
|
+
newState[mapping.dataViewId] = {};
|
|
1059
|
+
}
|
|
1060
|
+
newState[mapping.dataViewId][mapping.controlId] = [];
|
|
1061
|
+
entity.map(function(row) {
|
|
1062
|
+
var newRow = JSONCopy(_this.store.emptyState[mapping.dataViewId][mapping.controlId]);
|
|
1063
|
+
var skipKey = [] //qiyu ObjectDataBind中会提前将相关key拿出来赋值,为了避免重复赋值,设置了此变量
|
|
1064
|
+
;
|
|
1065
|
+
Object.keys(row).map(function(fieldCode) {
|
|
1066
|
+
var _this_store_dataBindMapping_dataCode, _this_store_dataBindMapping_dataCode_fields;
|
|
1067
|
+
if (skipKey.includes(fieldCode)) {
|
|
1047
1068
|
return;
|
|
1048
1069
|
}
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
}
|
|
1052
|
-
newState[mapping.dataViewId][mapping.controlId] = [];
|
|
1053
|
-
entity.map(function(row) {
|
|
1054
|
-
var _this = _this4;
|
|
1055
|
-
var newRow = JSONCopy(_this4.store.emptyState[mapping.dataViewId][mapping.controlId]);
|
|
1056
|
-
var skipKey = [] //qiyu ObjectDataBind中会提前将相关key拿出来赋值,为了避免重复赋值,设置了此变量
|
|
1057
|
-
;
|
|
1058
|
-
Object.keys(row).map(function(fieldCode) {
|
|
1059
|
-
var ref, ref18;
|
|
1060
|
-
if (skipKey.includes(fieldCode)) {
|
|
1061
|
-
return;
|
|
1062
|
-
}
|
|
1063
|
-
var fieldMapping = (ref = _this.store.dataBindMapping[dataCode]) === null || ref === void 0 ? void 0 : (ref18 = ref.fields) === null || ref18 === void 0 ? void 0 : ref18.find(function(i) {
|
|
1064
|
-
return i.fieldCode === fieldCode;
|
|
1065
|
-
});
|
|
1066
|
-
if (fieldMapping) {
|
|
1067
|
-
if (_instanceof(fieldMapping.dataBind, DataBind) && row[fieldCode] !== undefined) {
|
|
1068
|
-
newRow[fieldMapping.controlId] = row[fieldCode];
|
|
1069
|
-
} else if (_instanceof(fieldMapping.dataBind, ObjectDataBind)) {
|
|
1070
|
-
var ref19;
|
|
1071
|
-
var objValue = JSONCopy((ref19 = _this.getEmptyState(fieldMapping.controlId)) !== null && ref19 !== void 0 ? ref19 : {});
|
|
1072
|
-
Object.keys(fieldMapping.dataBind).map(function(key) {
|
|
1073
|
-
var dataBind = fieldMapping.dataBind[key];
|
|
1074
|
-
if (row[dataBind.fieldCode] !== undefined) {
|
|
1075
|
-
objValue[key] = row[dataBind.fieldCode];
|
|
1076
|
-
}
|
|
1077
|
-
skipKey.push(dataBind.fieldCode);
|
|
1078
|
-
});
|
|
1079
|
-
newRow[fieldMapping.controlId] = objValue;
|
|
1080
|
-
}
|
|
1081
|
-
}
|
|
1082
|
-
});
|
|
1083
|
-
newState[mapping.dataViewId][mapping.controlId].push(newRow);
|
|
1070
|
+
var fieldMapping = (_this_store_dataBindMapping_dataCode = _this.store.dataBindMapping[dataCode]) === null || _this_store_dataBindMapping_dataCode === void 0 ? void 0 : (_this_store_dataBindMapping_dataCode_fields = _this_store_dataBindMapping_dataCode.fields) === null || _this_store_dataBindMapping_dataCode_fields === void 0 ? void 0 : _this_store_dataBindMapping_dataCode_fields.find(function(i) {
|
|
1071
|
+
return i.fieldCode === fieldCode;
|
|
1084
1072
|
});
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
if (skipKey1.includes(fieldCode)) {
|
|
1096
|
-
return;
|
|
1097
|
-
}
|
|
1098
|
-
var mapping = _this3.getDataBindMapping(dataCode, fieldCode);
|
|
1099
|
-
if (mapping) {
|
|
1100
|
-
if (!newState[mapping.dataViewId[0]]) {
|
|
1101
|
-
newState[mapping.dataViewId[0]] = {};
|
|
1102
|
-
}
|
|
1103
|
-
if (_instanceof(mapping.dataBind, DataBind) && entity[fieldCode] !== undefined) {
|
|
1104
|
-
newState[mapping.dataViewId[0]][mapping.controlId] = entity[fieldCode] !== undefined ? entity[fieldCode] : emptyState[mapping.dataViewId[0]][mapping.controlId];
|
|
1105
|
-
} else if (_instanceof(mapping.dataBind, ObjectDataBind)) {
|
|
1106
|
-
var ref;
|
|
1107
|
-
var objValue = (ref = _this3.getEmptyState(mapping.controlId)) !== null && ref !== void 0 ? ref : {};
|
|
1108
|
-
Object.keys(mapping.dataBind).map(function(key) {
|
|
1109
|
-
var dataBind = mapping.dataBind[key];
|
|
1110
|
-
if (entity[dataBind.fieldCode] !== undefined) {
|
|
1111
|
-
objValue[key] = entity[dataBind.fieldCode];
|
|
1112
|
-
}
|
|
1113
|
-
skipKey1.push(dataBind.fieldCode);
|
|
1114
|
-
});
|
|
1115
|
-
newState[mapping.dataViewId[0]][mapping.controlId] = objValue;
|
|
1073
|
+
if (fieldMapping) {
|
|
1074
|
+
if (_instanceof(fieldMapping.dataBind, DataBind) && row[fieldCode] !== undefined) {
|
|
1075
|
+
newRow[fieldMapping.controlId] = row[fieldCode];
|
|
1076
|
+
} else if (_instanceof(fieldMapping.dataBind, ObjectDataBind)) {
|
|
1077
|
+
var _this_getEmptyState;
|
|
1078
|
+
var objValue = JSONCopy((_this_getEmptyState = _this.getEmptyState(fieldMapping.controlId)) !== null && _this_getEmptyState !== void 0 ? _this_getEmptyState : {});
|
|
1079
|
+
Object.keys(fieldMapping.dataBind).map(function(key) {
|
|
1080
|
+
var dataBind = fieldMapping.dataBind[key];
|
|
1081
|
+
if (row[dataBind.fieldCode] !== undefined) {
|
|
1082
|
+
objValue[key] = row[dataBind.fieldCode];
|
|
1116
1083
|
}
|
|
1117
|
-
|
|
1118
|
-
|
|
1084
|
+
skipKey.push(dataBind.fieldCode);
|
|
1085
|
+
});
|
|
1086
|
+
newRow[fieldMapping.controlId] = objValue;
|
|
1087
|
+
}
|
|
1119
1088
|
}
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1089
|
+
});
|
|
1090
|
+
newState[mapping.dataViewId][mapping.controlId].push(newRow);
|
|
1091
|
+
});
|
|
1092
|
+
} else if (entity) {
|
|
1093
|
+
var _Object_keys;
|
|
1094
|
+
var skipKey = [] //qiyu ObjectDataBind中会提前将相关key拿出来赋值,为了避免重复赋值,设置了此变量
|
|
1095
|
+
;
|
|
1096
|
+
var emptyState = JSONCopy(_this.store.emptyState);
|
|
1097
|
+
if (!((_Object_keys = Object.keys(entity)) === null || _Object_keys === void 0 ? void 0 : _Object_keys.length)) {
|
|
1098
|
+
// newState = this.store.defaultState
|
|
1099
|
+
} else {
|
|
1100
|
+
Object.keys(entity).map(function(fieldCode) {
|
|
1101
|
+
if (skipKey.includes(fieldCode)) {
|
|
1102
|
+
return;
|
|
1103
|
+
}
|
|
1104
|
+
var mapping = _this.getDataBindMapping(dataCode, fieldCode);
|
|
1105
|
+
if (mapping) {
|
|
1106
|
+
if (!newState[mapping.dataViewId[0]]) {
|
|
1107
|
+
newState[mapping.dataViewId[0]] = {};
|
|
1108
|
+
}
|
|
1109
|
+
if (_instanceof(mapping.dataBind, DataBind) && entity[fieldCode] !== undefined) {
|
|
1110
|
+
newState[mapping.dataViewId[0]][mapping.controlId] = entity[fieldCode] !== undefined ? entity[fieldCode] : emptyState[mapping.dataViewId[0]][mapping.controlId];
|
|
1111
|
+
} else if (_instanceof(mapping.dataBind, ObjectDataBind)) {
|
|
1112
|
+
var _this_getEmptyState;
|
|
1113
|
+
var objValue = (_this_getEmptyState = _this.getEmptyState(mapping.controlId)) !== null && _this_getEmptyState !== void 0 ? _this_getEmptyState : {};
|
|
1114
|
+
Object.keys(mapping.dataBind).map(function(key) {
|
|
1115
|
+
var dataBind = mapping.dataBind[key];
|
|
1116
|
+
if (entity[dataBind.fieldCode] !== undefined) {
|
|
1117
|
+
objValue[key] = entity[dataBind.fieldCode];
|
|
1135
1118
|
}
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1119
|
+
skipKey.push(dataBind.fieldCode);
|
|
1120
|
+
});
|
|
1121
|
+
newState[mapping.dataViewId[0]][mapping.controlId] = objValue;
|
|
1122
|
+
}
|
|
1139
1123
|
}
|
|
1140
|
-
}
|
|
1141
|
-
}
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1124
|
+
});
|
|
1125
|
+
}
|
|
1126
|
+
var newMapping = _this.getDataBindMapping(dataCode);
|
|
1127
|
+
if (newMapping) {
|
|
1128
|
+
var _newMapping_fields;
|
|
1129
|
+
var mappingKeys = newMapping === null || newMapping === void 0 ? void 0 : (_newMapping_fields = newMapping.fields) === null || _newMapping_fields === void 0 ? void 0 : _newMapping_fields.map(function(item) {
|
|
1130
|
+
return item === null || item === void 0 ? void 0 : item.controlId;
|
|
1131
|
+
});
|
|
1132
|
+
var mappingValue = _this.getEmptyState(newMapping === null || newMapping === void 0 ? void 0 : newMapping.controlId);
|
|
1133
|
+
var _newState_newMapping_controlId;
|
|
1134
|
+
var mainStateKeys = Object.keys((_newState_newMapping_controlId = newState === null || newState === void 0 ? void 0 : newState[newMapping === null || newMapping === void 0 ? void 0 : newMapping.controlId]) !== null && _newState_newMapping_controlId !== void 0 ? _newState_newMapping_controlId : {});
|
|
1135
|
+
mappingKeys === null || mappingKeys === void 0 ? void 0 : mappingKeys.forEach(function(key) {
|
|
1136
|
+
if (!mainStateKeys.includes(key) && key !== "uid" && newState[newMapping === null || newMapping === void 0 ? void 0 : newMapping.controlId]) {
|
|
1137
|
+
if (Object.keys(newState).length) {
|
|
1138
|
+
Object.assign(newState[newMapping === null || newMapping === void 0 ? void 0 : newMapping.controlId], _defineProperty({}, key, mappingValue[key]));
|
|
1139
|
+
} else {
|
|
1140
|
+
Object.assign(newState, _defineProperty({}, newMapping.controlId, _defineProperty({}, key, mappingValue[key])));
|
|
1141
|
+
}
|
|
1142
|
+
}
|
|
1143
|
+
});
|
|
1144
|
+
_this.debugLog("engine setData方法默认值及表单数据组合完成,参数为%o。", newState);
|
|
1145
|
+
}
|
|
1145
1146
|
}
|
|
1146
|
-
}
|
|
1147
|
-
|
|
1148
|
-
|
|
1147
|
+
});
|
|
1148
|
+
this.debugLog("engine setData方法数据组合完成,参数为%o。", newState);
|
|
1149
|
+
this.setStates(newState, undefined, options);
|
|
1150
|
+
this.debugLog("engine setData方法执行完成。");
|
|
1151
|
+
};
|
|
1152
|
+
/**
|
|
1149
1153
|
* 获取控件的dataBind
|
|
1150
1154
|
* @param controlId
|
|
1151
|
-
* */
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
},
|
|
1156
|
-
{
|
|
1157
|
-
/**
|
|
1155
|
+
* */ _proto.getDataBind = function getDataBind(controlId) {
|
|
1156
|
+
return this.store.getDataBind(controlId);
|
|
1157
|
+
};
|
|
1158
|
+
/**
|
|
1158
1159
|
* 获取组件实例,传入rowIndex代表获取明细表内的控件实例,rowIndex传入-1代表获取表头内的实例
|
|
1159
1160
|
* @param controlId
|
|
1160
1161
|
* @param rowIndex
|
|
1161
|
-
*/
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
return instances[0];
|
|
1168
|
-
}
|
|
1169
|
-
return instances[rowIndex];
|
|
1170
|
-
} else {
|
|
1171
|
-
return instances[0];
|
|
1172
|
-
}
|
|
1173
|
-
} else {
|
|
1174
|
-
return undefined;
|
|
1162
|
+
*/ _proto.getInstance = function getInstance(controlId, rowIndex) {
|
|
1163
|
+
var instances = this.getInstances(controlId, rowIndex === -1);
|
|
1164
|
+
if (instances.length > 0) {
|
|
1165
|
+
if (rowIndex !== undefined) {
|
|
1166
|
+
if (rowIndex === -1) {
|
|
1167
|
+
return instances[0];
|
|
1175
1168
|
}
|
|
1169
|
+
return instances[rowIndex];
|
|
1170
|
+
} else {
|
|
1171
|
+
return instances[0];
|
|
1176
1172
|
}
|
|
1177
|
-
}
|
|
1178
|
-
|
|
1179
|
-
|
|
1173
|
+
} else {
|
|
1174
|
+
return undefined;
|
|
1175
|
+
}
|
|
1176
|
+
};
|
|
1177
|
+
/**
|
|
1180
1178
|
* 获取组件实例,明细表中的组件将会得到数组, 第二个参数为(false/不传入)则获取到的是明细表内不包含表头内实例的所有控件实例,传入true则获取到包含表头内实例的所有控件实例,表头内实例永远在下标0的位置
|
|
1181
1179
|
* @param controlId
|
|
1182
1180
|
* @param header 明细表内是否获取表头的控件
|
|
1183
|
-
*/
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1181
|
+
*/ _proto.getInstances = function getInstances(controlId) {
|
|
1182
|
+
var header = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
|
|
1183
|
+
// const cc = console
|
|
1184
|
+
// const label = '🐑 genInstances ' + controlId + ' ' + Date.now()
|
|
1185
|
+
// cc.time(label)
|
|
1186
|
+
if (controlId === undefined) {
|
|
1187
|
+
// cc.timeEnd(label)
|
|
1188
|
+
return this.runtime.flatInstances;
|
|
1189
|
+
}
|
|
1190
|
+
var instances = Array.from(this.runtime.instanceMap[controlId] || []);
|
|
1191
|
+
if (header) {
|
|
1192
|
+
// 如果能从flatInstances里边取到,就通过getInstanceInSubtableHeader方法取,取不到则换一种方式
|
|
1193
|
+
if (instances.length) {
|
|
1194
|
+
var instance = instances[0];
|
|
1195
|
+
if (this.inList(instance.id) !== undefined) {
|
|
1196
|
+
var headerInstance = this.getInstanceInSubtableHeader(instance);
|
|
1197
|
+
if (headerInstance) {
|
|
1198
|
+
instances.unshift(headerInstance);
|
|
1199
|
+
}
|
|
1192
1200
|
}
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
var headerColumn = subtable.props.headers.find(function(column) {
|
|
1216
|
-
return column.children.find(function(item) {
|
|
1217
|
-
return item.id === controlId;
|
|
1218
|
-
});
|
|
1219
|
-
});
|
|
1220
|
-
if (headerColumn) {
|
|
1221
|
-
var headerInstance1 = headerColumn.children.find(function(item) {
|
|
1222
|
-
return item.id === controlId;
|
|
1223
|
-
});
|
|
1224
|
-
if (headerInstance1) {
|
|
1225
|
-
instances.unshift(headerInstance1);
|
|
1226
|
-
}
|
|
1227
|
-
}
|
|
1201
|
+
} else {
|
|
1202
|
+
var _this_getControlIdMapping;
|
|
1203
|
+
var controlIdMapping = (_this_getControlIdMapping = this.getControlIdMapping()) !== null && _this_getControlIdMapping !== void 0 ? _this_getControlIdMapping : {};
|
|
1204
|
+
var _Object_entries_find;
|
|
1205
|
+
var _ref = _slicedToArray((_Object_entries_find = Object.entries(controlIdMapping).find(function(param) {
|
|
1206
|
+
var _param = _slicedToArray(param, 2), _ = _param[0], mapping = _param[1];
|
|
1207
|
+
return mapping.children && controlId in mapping.children;
|
|
1208
|
+
})) !== null && _Object_entries_find !== void 0 ? _Object_entries_find : [], 1), subtableId = _ref[0];
|
|
1209
|
+
if (subtableId) {
|
|
1210
|
+
var subtable = this.getInstance(subtableId);
|
|
1211
|
+
// @ts-ignore
|
|
1212
|
+
var headerColumn = subtable.props.headers.find(function(column) {
|
|
1213
|
+
return column.children.find(function(item) {
|
|
1214
|
+
return item.id === controlId;
|
|
1215
|
+
});
|
|
1216
|
+
});
|
|
1217
|
+
if (headerColumn) {
|
|
1218
|
+
var headerInstance1 = headerColumn.children.find(function(item) {
|
|
1219
|
+
return item.id === controlId;
|
|
1220
|
+
});
|
|
1221
|
+
if (headerInstance1) {
|
|
1222
|
+
instances.unshift(headerInstance1);
|
|
1228
1223
|
}
|
|
1229
1224
|
}
|
|
1230
1225
|
}
|
|
1231
|
-
// @ts-ignore
|
|
1232
|
-
return instances;
|
|
1233
1226
|
}
|
|
1234
|
-
}
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
value: value,
|
|
1251
|
-
rowIndex: rowIndex
|
|
1252
|
-
});
|
|
1253
|
-
}
|
|
1254
|
-
});
|
|
1255
|
-
} else {
|
|
1256
|
-
var _instance1;
|
|
1257
|
-
if (typeof instance === 'string') {
|
|
1258
|
-
_instance1 = this.getInstance(instance, rowIndex);
|
|
1259
|
-
} else {
|
|
1260
|
-
_instance1 = instance;
|
|
1261
|
-
}
|
|
1262
|
-
if (!_instance1) {
|
|
1263
|
-
return;
|
|
1264
|
-
}
|
|
1265
|
-
this.debugLog("[%o]: 修改instance: %o的%o属性,修改的值为%o。", _instance1.id, _instance1, props, value);
|
|
1266
|
-
updateValueFromKeys(_instance1.props, props, value);
|
|
1267
|
-
this.schemaEvent('schema-change', {
|
|
1268
|
-
instance: _instance1,
|
|
1227
|
+
}
|
|
1228
|
+
// @ts-ignore
|
|
1229
|
+
return instances;
|
|
1230
|
+
};
|
|
1231
|
+
_proto.setInstance = function setInstance(instance, props, value, rowIndex) {
|
|
1232
|
+
var _this = this;
|
|
1233
|
+
try {
|
|
1234
|
+
if (typeof instance === "string" && rowIndex === -1) {
|
|
1235
|
+
//修改明细表整列属性的逻辑
|
|
1236
|
+
var instances = this.getInstances(instance, rowIndex === -1);
|
|
1237
|
+
instances.map(function(_instance) {
|
|
1238
|
+
if (_instance) {
|
|
1239
|
+
_this.debugLog("[%o]: 修改instance: %o的%o属性,修改的值为%o。", _instance.id, _instance, props, value);
|
|
1240
|
+
updateValueFromKeys(_instance.props, props, value);
|
|
1241
|
+
_this.schemaEvent("schema-change", {
|
|
1242
|
+
instance: _instance,
|
|
1269
1243
|
props: props,
|
|
1270
1244
|
value: value,
|
|
1271
1245
|
rowIndex: rowIndex
|
|
1272
1246
|
});
|
|
1273
1247
|
}
|
|
1274
|
-
}
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
value: function getControlIdMapping() {
|
|
1282
|
-
return this.store.controlIdMapping;
|
|
1283
|
-
}
|
|
1284
|
-
},
|
|
1285
|
-
{
|
|
1286
|
-
key: "getDataBindMapping",
|
|
1287
|
-
value: function getDataBindMapping(dataCode, fieldCode) {
|
|
1288
|
-
if (!dataCode && !fieldCode) {
|
|
1289
|
-
return this.store.dataBindMapping;
|
|
1248
|
+
});
|
|
1249
|
+
} else {
|
|
1250
|
+
var _instance;
|
|
1251
|
+
if (typeof instance === "string") {
|
|
1252
|
+
_instance = this.getInstance(instance, rowIndex);
|
|
1253
|
+
} else {
|
|
1254
|
+
_instance = instance;
|
|
1290
1255
|
}
|
|
1291
|
-
|
|
1292
|
-
if (!mapping) {
|
|
1293
|
-
warn("No corresponding dataCode=".concat(dataCode, " was found"));
|
|
1256
|
+
if (!_instance) {
|
|
1294
1257
|
return;
|
|
1295
1258
|
}
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1259
|
+
this.debugLog("[%o]: 修改instance: %o的%o属性,修改的值为%o。", _instance.id, _instance, props, value);
|
|
1260
|
+
updateValueFromKeys(_instance.props, props, value);
|
|
1261
|
+
this.schemaEvent("schema-change", {
|
|
1262
|
+
instance: _instance,
|
|
1263
|
+
props: props,
|
|
1264
|
+
value: value,
|
|
1265
|
+
rowIndex: rowIndex
|
|
1301
1266
|
});
|
|
1302
|
-
if (!dataBindMapping) {
|
|
1303
|
-
warn("No corresponding fieldCode=".concat(fieldCode, " was found"));
|
|
1304
|
-
return;
|
|
1305
|
-
}
|
|
1306
|
-
return dataBindMapping;
|
|
1307
|
-
}
|
|
1308
|
-
},
|
|
1309
|
-
{
|
|
1310
|
-
key: "getAction",
|
|
1311
|
-
value: function getAction() {
|
|
1312
|
-
return this.actionManager;
|
|
1313
|
-
}
|
|
1314
|
-
},
|
|
1315
|
-
{
|
|
1316
|
-
key: "initDataManager",
|
|
1317
|
-
value: function initDataManager(callbackExecuter) {
|
|
1318
|
-
this.dataManager = new DataManager(callbackExecuter);
|
|
1319
1267
|
}
|
|
1320
|
-
}
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1268
|
+
} catch (e) {
|
|
1269
|
+
throw e;
|
|
1270
|
+
}
|
|
1271
|
+
};
|
|
1272
|
+
_proto.getControlIdMapping = function getControlIdMapping() {
|
|
1273
|
+
return this.store.controlIdMapping;
|
|
1274
|
+
};
|
|
1275
|
+
_proto.getDataBindMapping = function getDataBindMapping(dataCode, fieldCode) {
|
|
1276
|
+
if (!dataCode && !fieldCode) {
|
|
1277
|
+
return this.store.dataBindMapping;
|
|
1278
|
+
}
|
|
1279
|
+
var mapping = this.store.dataBindMapping[dataCode];
|
|
1280
|
+
if (!mapping) {
|
|
1281
|
+
warn("No corresponding dataCode=".concat(dataCode, " was found"));
|
|
1282
|
+
return;
|
|
1283
|
+
}
|
|
1284
|
+
if (!fieldCode) {
|
|
1285
|
+
return mapping;
|
|
1286
|
+
}
|
|
1287
|
+
var dataBindMapping = mapping.fields.find(function(item) {
|
|
1288
|
+
return item.fieldCode === fieldCode;
|
|
1289
|
+
});
|
|
1290
|
+
if (!dataBindMapping) {
|
|
1291
|
+
warn("No corresponding fieldCode=".concat(fieldCode, " was found"));
|
|
1292
|
+
return;
|
|
1293
|
+
}
|
|
1294
|
+
return dataBindMapping;
|
|
1295
|
+
};
|
|
1296
|
+
_proto.getAction = function getAction() {
|
|
1297
|
+
return this.actionManager;
|
|
1298
|
+
};
|
|
1299
|
+
_proto.initDataManager = function initDataManager(callbackExecuter) {
|
|
1300
|
+
this.dataManager = new DataManager(callbackExecuter);
|
|
1301
|
+
};
|
|
1302
|
+
_proto.getDataManager = function getDataManager() {
|
|
1303
|
+
return this.dataManager;
|
|
1304
|
+
};
|
|
1305
|
+
/**
|
|
1330
1306
|
* 判断控件的类型,返回当前控件的正确类型
|
|
1331
|
-
* */ function assertInstance(instance, types) {
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
{
|
|
1336
|
-
key: "getInstanceRowIndex",
|
|
1337
|
-
value: /**
|
|
1307
|
+
* */ _proto.assertInstance = function assertInstance(instance, types) {
|
|
1308
|
+
return isString(types) ? instance.type === types : types.includes(instance.type);
|
|
1309
|
+
};
|
|
1310
|
+
/**
|
|
1338
1311
|
* 获取控件在明细子表中的行下标,
|
|
1339
1312
|
* 如果控件在表头内,则返回-1
|
|
1340
1313
|
* 如果控件在表内,则返回行下标
|
|
1341
1314
|
* 如果控件不在明细表内,则返回undefined
|
|
1342
|
-
* */ function getInstanceRowIndex(instance) {
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
// @ts-ignore
|
|
1355
|
-
var index = instance.parent.children.findIndex(function(item) {
|
|
1356
|
-
return item === instance;
|
|
1357
|
-
});
|
|
1358
|
-
if (index > -1) {
|
|
1359
|
-
rowIndex = index;
|
|
1360
|
-
}
|
|
1361
|
-
}
|
|
1362
|
-
} else {
|
|
1363
|
-
rowIndex = this.getInstanceRowIndex(instance.parent);
|
|
1364
|
-
}
|
|
1365
|
-
return rowIndex;
|
|
1366
|
-
}
|
|
1367
|
-
},
|
|
1368
|
-
{
|
|
1369
|
-
key: "getInstanceParentControl",
|
|
1370
|
-
value: function getInstanceParentControl(instance, controlType) {
|
|
1371
|
-
if (!instance.parent) {
|
|
1372
|
-
return;
|
|
1373
|
-
}
|
|
1374
|
-
if (this.assertInstance(instance.parent, controlType)) {
|
|
1375
|
-
return instance.parent;
|
|
1376
|
-
}
|
|
1377
|
-
return this.getInstanceParentControl(instance.parent, controlType);
|
|
1378
|
-
}
|
|
1379
|
-
},
|
|
1380
|
-
{
|
|
1381
|
-
key: "getInstanceInSubtableHeader",
|
|
1382
|
-
value: function getInstanceInSubtableHeader(instance) {
|
|
1383
|
-
var rowIndex = this.getInstanceRowIndex(instance);
|
|
1384
|
-
if (rowIndex === undefined) {
|
|
1385
|
-
return;
|
|
1386
|
-
}
|
|
1387
|
-
if (rowIndex === -1) {
|
|
1388
|
-
return instance;
|
|
1389
|
-
}
|
|
1390
|
-
var columnInstance = this.assertInstance(instance, // @ts-ignore
|
|
1391
|
-
CONTROL_TYPE.SUBTABLE_COLUMN) ? instance : this.getInstanceParentControl(instance, // @ts-ignore
|
|
1392
|
-
CONTROL_TYPE.SUBTABLE_COLUMN);
|
|
1393
|
-
if (!columnInstance) {
|
|
1394
|
-
return;
|
|
1395
|
-
}
|
|
1396
|
-
var subtable = this.getInstanceParentControl(instance, // @ts-ignore
|
|
1397
|
-
CONTROL_TYPE.SUBTABLE);
|
|
1315
|
+
* */ _proto.getInstanceRowIndex = function getInstanceRowIndex(instance) {
|
|
1316
|
+
if (!instance.parent) {
|
|
1317
|
+
return;
|
|
1318
|
+
}
|
|
1319
|
+
var rowIndex;
|
|
1320
|
+
// @ts-ignore
|
|
1321
|
+
if (this.assertInstance(instance.parent, CONTROL_TYPE.SUBTABLE)) {
|
|
1322
|
+
// 表头内的控件
|
|
1323
|
+
// @ts-ignore
|
|
1324
|
+
if (this.assertInstance(instance, CONTROL_TYPE.SUBTABLE_COLUMN)) {
|
|
1325
|
+
rowIndex = -1;
|
|
1326
|
+
} else {
|
|
1398
1327
|
// @ts-ignore
|
|
1399
|
-
var
|
|
1400
|
-
|
|
1401
|
-
return column.id === columnInstance.id;
|
|
1328
|
+
var index = instance.parent.children.findIndex(function(item) {
|
|
1329
|
+
return item === instance;
|
|
1402
1330
|
});
|
|
1403
|
-
if (
|
|
1404
|
-
|
|
1405
|
-
}
|
|
1406
|
-
return headerColumn.children.find(// @ts-ignore
|
|
1407
|
-
function(item) {
|
|
1408
|
-
return item.id === instance.id;
|
|
1409
|
-
});
|
|
1410
|
-
}
|
|
1411
|
-
},
|
|
1412
|
-
{
|
|
1413
|
-
key: "setControlConfig",
|
|
1414
|
-
value: function setControlConfig() {
|
|
1415
|
-
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
1416
|
-
args[_key] = arguments[_key];
|
|
1331
|
+
if (index > -1) {
|
|
1332
|
+
rowIndex = index;
|
|
1417
1333
|
}
|
|
1418
|
-
var _runtime;
|
|
1419
|
-
return (_runtime = this.runtime).registerControlConfig.apply(_runtime, _toConsumableArray(args));
|
|
1420
|
-
}
|
|
1421
|
-
},
|
|
1422
|
-
{
|
|
1423
|
-
key: "getControlConfig",
|
|
1424
|
-
value: function getControlConfig(control) {
|
|
1425
|
-
return this.runtime.getControlConfig(control);
|
|
1426
|
-
}
|
|
1427
|
-
},
|
|
1428
|
-
{
|
|
1429
|
-
key: "inList",
|
|
1430
|
-
value: function inList(controlId) {
|
|
1431
|
-
var _controlIdMapping;
|
|
1432
|
-
var mapping = (_controlIdMapping = this.store.controlIdMapping) !== null && _controlIdMapping !== void 0 ? _controlIdMapping : {};
|
|
1433
|
-
var listKey = undefined;
|
|
1434
|
-
Object.keys(mapping).some(function(key) {
|
|
1435
|
-
var ref, ref23;
|
|
1436
|
-
var matched = (ref = mapping[key]) === null || ref === void 0 ? void 0 : (ref23 = ref.children) === null || ref23 === void 0 ? void 0 : ref23.hasOwnProperty(controlId);
|
|
1437
|
-
if (matched) {
|
|
1438
|
-
listKey = key;
|
|
1439
|
-
}
|
|
1440
|
-
return matched;
|
|
1441
|
-
});
|
|
1442
|
-
return listKey;
|
|
1443
1334
|
}
|
|
1335
|
+
} else {
|
|
1336
|
+
rowIndex = this.getInstanceRowIndex(instance.parent);
|
|
1444
1337
|
}
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1338
|
+
return rowIndex;
|
|
1339
|
+
};
|
|
1340
|
+
_proto.getInstanceParentControl = function getInstanceParentControl(instance, controlType) {
|
|
1341
|
+
if (!instance.parent) {
|
|
1342
|
+
return;
|
|
1343
|
+
}
|
|
1344
|
+
if (this.assertInstance(instance.parent, controlType)) {
|
|
1345
|
+
return instance.parent;
|
|
1346
|
+
}
|
|
1347
|
+
return this.getInstanceParentControl(instance.parent, controlType);
|
|
1348
|
+
};
|
|
1349
|
+
_proto.getInstanceInSubtableHeader = function getInstanceInSubtableHeader(instance) {
|
|
1350
|
+
var rowIndex = this.getInstanceRowIndex(instance);
|
|
1351
|
+
if (rowIndex === undefined) {
|
|
1352
|
+
return;
|
|
1353
|
+
}
|
|
1354
|
+
if (rowIndex === -1) {
|
|
1355
|
+
return instance;
|
|
1356
|
+
}
|
|
1357
|
+
var columnInstance = this.assertInstance(instance, // @ts-ignore
|
|
1358
|
+
CONTROL_TYPE.SUBTABLE_COLUMN) ? instance : this.getInstanceParentControl(instance, // @ts-ignore
|
|
1359
|
+
CONTROL_TYPE.SUBTABLE_COLUMN);
|
|
1360
|
+
if (!columnInstance) {
|
|
1361
|
+
return;
|
|
1362
|
+
}
|
|
1363
|
+
var subtable = this.getInstanceParentControl(instance, // @ts-ignore
|
|
1364
|
+
CONTROL_TYPE.SUBTABLE);
|
|
1365
|
+
// @ts-ignore
|
|
1366
|
+
var headerColumn = subtable.props.headers.find(// @ts-ignore
|
|
1367
|
+
function(column) {
|
|
1368
|
+
return column.id === columnInstance.id;
|
|
1369
|
+
});
|
|
1370
|
+
if (!headerColumn) {
|
|
1371
|
+
return;
|
|
1372
|
+
}
|
|
1373
|
+
return headerColumn.children.find(// @ts-ignore
|
|
1374
|
+
function(item) {
|
|
1375
|
+
return item.id === instance.id;
|
|
1376
|
+
});
|
|
1377
|
+
};
|
|
1378
|
+
_proto.setControlConfig = function setControlConfig() {
|
|
1379
|
+
for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
|
|
1380
|
+
args[_key] = arguments[_key];
|
|
1381
|
+
}
|
|
1382
|
+
var _this_runtime;
|
|
1383
|
+
return (_this_runtime = this.runtime).registerControlConfig.apply(_this_runtime, _toConsumableArray(args));
|
|
1384
|
+
};
|
|
1385
|
+
_proto.getControlConfig = function getControlConfig(control) {
|
|
1386
|
+
return this.runtime.getControlConfig(control);
|
|
1387
|
+
};
|
|
1388
|
+
_proto.inList = function inList(controlId) {
|
|
1389
|
+
var _this_store_controlIdMapping;
|
|
1390
|
+
var mapping = (_this_store_controlIdMapping = this.store.controlIdMapping) !== null && _this_store_controlIdMapping !== void 0 ? _this_store_controlIdMapping : {};
|
|
1391
|
+
var listKey = undefined;
|
|
1392
|
+
Object.keys(mapping).some(function(key) {
|
|
1393
|
+
var _mapping_key, _mapping_key_children;
|
|
1394
|
+
var matched = (_mapping_key = mapping[key]) === null || _mapping_key === void 0 ? void 0 : (_mapping_key_children = _mapping_key.children) === null || _mapping_key_children === void 0 ? void 0 : _mapping_key_children.hasOwnProperty(controlId);
|
|
1395
|
+
if (matched) {
|
|
1396
|
+
listKey = key;
|
|
1461
1397
|
}
|
|
1398
|
+
return matched;
|
|
1399
|
+
});
|
|
1400
|
+
return listKey;
|
|
1401
|
+
};
|
|
1402
|
+
// 注册外部控件
|
|
1403
|
+
Engine.register = function register() {
|
|
1404
|
+
for(var _len = arguments.length, arg = new Array(_len), _key = 0; _key < _len; _key++){
|
|
1405
|
+
arg[_key] = arguments[_key];
|
|
1462
1406
|
}
|
|
1463
|
-
|
|
1407
|
+
var _Runtime;
|
|
1408
|
+
return (_Runtime = Runtime).register.apply(_Runtime, _toConsumableArray(arg));
|
|
1409
|
+
};
|
|
1410
|
+
Engine.judgeControlIsRegistered = function judgeControlIsRegistered(control) {
|
|
1411
|
+
return Runtime.staticRegisteredTypes.has(control.Runtime.controlType);
|
|
1412
|
+
};
|
|
1464
1413
|
return Engine;
|
|
1465
1414
|
}(Watcher);
|
|
1466
1415
|
export { Engine };
|