@byteluck-fe/model-driven-engine 4.37.0-lx2 → 5.3.1-1-zt
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/README.md +30 -30
- package/dist/esm/common/ActionManager.js +4 -4
- package/dist/esm/common/Engine.js +111 -188
- package/dist/esm/common/Runtime.js +9 -5
- package/dist/esm/common/Store.js +15 -13
- package/dist/esm/common/checkerValue.js +1 -1
- package/dist/esm/common/proxyState.js +52 -45
- package/dist/esm/plugins/CalcPlugin.js +43 -43
- package/dist/esm/plugins/ControlsEventPlugin.js +11 -1
- package/dist/esm/plugins/StylePlugin.js +32 -10
- package/dist/esm/utils/runtimeUtils.js +2 -1
- package/dist/index.umd.js +40 -6
- package/dist/types/common/ActionManager.d.ts +14 -14
- package/dist/types/common/DataManager.d.ts +10 -10
- package/dist/types/common/Engine.d.ts +201 -209
- package/dist/types/common/OkWorker.d.ts +13 -13
- package/dist/types/common/Plugin.d.ts +6 -6
- package/dist/types/common/Runtime.d.ts +31 -31
- package/dist/types/common/Store.d.ts +54 -54
- package/dist/types/common/checkerValue.d.ts +3 -3
- package/dist/types/common/index.d.ts +2 -2
- package/dist/types/common/proxyState.d.ts +30 -33
- package/dist/types/index.d.ts +3 -3
- package/dist/types/plugins/CalcPlugin.d.ts +121 -121
- package/dist/types/plugins/ControlsEventPlugin.d.ts +17 -15
- package/dist/types/plugins/ES6ModulePlugin.d.ts +27 -27
- package/dist/types/plugins/LifecycleEventPlugin.d.ts +15 -15
- package/dist/types/plugins/StylePlugin.d.ts +13 -12
- package/dist/types/plugins/index.d.ts +5 -5
- package/dist/types/utils/index.d.ts +1 -1
- package/dist/types/utils/runtimeUtils.d.ts +5 -5
- package/package.json +10 -6
package/README.md
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
# Engine
|
|
2
|
-
运行态引擎
|
|
3
|
-
|
|
4
|
-
```
|
|
5
|
-
│ index.ts // 入口文件
|
|
6
|
-
│
|
|
7
|
-
├─common // 引擎相关
|
|
8
|
-
│ ActionManager.ts // utils操作管理
|
|
9
|
-
│ checkerValue.ts // 表单值校验器
|
|
10
|
-
│ DataManager.ts // 数据源容器
|
|
11
|
-
│ Engine.ts // 引擎
|
|
12
|
-
│ index.ts // 入口
|
|
13
|
-
│ OkWorker.ts // 无用
|
|
14
|
-
│ Plugin.ts // 插件
|
|
15
|
-
│ proxyState.ts // 劫持引擎表单数据
|
|
16
|
-
│ Runtime.ts // 控件注册和创建
|
|
17
|
-
│ Store.ts // 数据管理
|
|
18
|
-
│
|
|
19
|
-
├─plugins
|
|
20
|
-
│ CalcPlugin.ts // 计算公式插件
|
|
21
|
-
│ ControlsEventPlugin.ts // 控件二开事件插件
|
|
22
|
-
│ ES6ModulePlugin.ts //
|
|
23
|
-
│ index.ts
|
|
24
|
-
│ LifecycleEventPlugin.ts // 页面生命周期事件
|
|
25
|
-
│ StylePlugin.ts // css二开
|
|
26
|
-
│
|
|
27
|
-
└─utils
|
|
28
|
-
index.ts
|
|
29
|
-
runtimeUtils.ts // 工具函数
|
|
30
|
-
```
|
|
1
|
+
# Engine
|
|
2
|
+
运行态引擎
|
|
3
|
+
|
|
4
|
+
```
|
|
5
|
+
│ index.ts // 入口文件
|
|
6
|
+
│
|
|
7
|
+
├─common // 引擎相关
|
|
8
|
+
│ ActionManager.ts // utils操作管理
|
|
9
|
+
│ checkerValue.ts // 表单值校验器
|
|
10
|
+
│ DataManager.ts // 数据源容器
|
|
11
|
+
│ Engine.ts // 引擎
|
|
12
|
+
│ index.ts // 入口
|
|
13
|
+
│ OkWorker.ts // 无用
|
|
14
|
+
│ Plugin.ts // 插件
|
|
15
|
+
│ proxyState.ts // 劫持引擎表单数据
|
|
16
|
+
│ Runtime.ts // 控件注册和创建
|
|
17
|
+
│ Store.ts // 数据管理
|
|
18
|
+
│
|
|
19
|
+
├─plugins
|
|
20
|
+
│ CalcPlugin.ts // 计算公式插件
|
|
21
|
+
│ ControlsEventPlugin.ts // 控件二开事件插件
|
|
22
|
+
│ ES6ModulePlugin.ts //
|
|
23
|
+
│ index.ts
|
|
24
|
+
│ LifecycleEventPlugin.ts // 页面生命周期事件
|
|
25
|
+
│ StylePlugin.ts // css二开
|
|
26
|
+
│
|
|
27
|
+
└─utils
|
|
28
|
+
index.ts
|
|
29
|
+
runtimeUtils.ts // 工具函数
|
|
30
|
+
```
|
|
@@ -182,11 +182,11 @@ export var ActionManager = /*#__PURE__*/ function() {
|
|
|
182
182
|
_class_call_check(this, ActionManager);
|
|
183
183
|
_define_property(this, "actionMap", new Map());
|
|
184
184
|
_define_property(this, "buildinActions", {});
|
|
185
|
-
/**
|
|
186
|
-
* 执行action的时候,作为第二个参数传递给方法,可以通过外部挂载
|
|
185
|
+
/**
|
|
186
|
+
* 执行action的时候,作为第二个参数传递给方法,可以通过外部挂载
|
|
187
187
|
*/ _define_property(this, "actionUtils", {});
|
|
188
|
-
/**
|
|
189
|
-
* 用于存储es module解析出来的源码,CustomVueControlPlugin
|
|
188
|
+
/**
|
|
189
|
+
* 用于存储es module解析出来的源码,CustomVueControlPlugin
|
|
190
190
|
*/ _define_property(this, "sources", {});
|
|
191
191
|
}
|
|
192
192
|
_create_class(ActionManager, [
|
|
@@ -325,7 +325,7 @@ function _ts_generator(thisArg, body) {
|
|
|
325
325
|
}
|
|
326
326
|
}
|
|
327
327
|
import { isDataBind } from '@byteluck-fe/model-driven-core';
|
|
328
|
-
import { CONTROL_BASE_TYPE, CONTROL_TYPE, DEFAULT_LOCALE, error, genNonDuplicateId, isString, JSONCopy, log,
|
|
328
|
+
import { CONTROL_BASE_TYPE, CONTROL_TYPE, DEFAULT_LOCALE, error, genNonDuplicateId, isString, JSONCopy, log, updateValueFromKeys, warn, Watcher, isBuiltInControls } from '@byteluck-fe/model-driven-shared';
|
|
329
329
|
import { Runtime } from './Runtime';
|
|
330
330
|
import { Store } from './Store';
|
|
331
331
|
import { findItem, proxyState } from './proxyState';
|
|
@@ -351,18 +351,18 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
351
351
|
_this = _call_super(this, Engine), _define_property(_this, "store", void 0), _define_property(_this, "rawStore", {}), _define_property(_this, "parent", void 0), // 提供注册运行态控件以及实例化控件的能力
|
|
352
352
|
_define_property(_this, "runtime", void 0), // 提供子线程处理脚本以及修改数据的能力
|
|
353
353
|
// public worker: OkWorker
|
|
354
|
-
_define_property(_this, "isMounted", false), _define_property(_this, "id", genNonDuplicateId(8)), _define_property(_this, "externalParams", void 0), // 提供外部注册插件,在不同的hooks触发时执行固定函数的能力
|
|
354
|
+
_define_property(_this, "isMounted", false), _define_property(_this, "id", genNonDuplicateId(8)), _define_property(_this, "externalParams", void 0), _define_property(_this, "children", void 0), // 提供外部注册插件,在不同的hooks触发时执行固定函数的能力
|
|
355
355
|
_define_property(_this, "__plugins", void 0), _define_property(_this, "__pluginsApplied", false), _define_property(_this, "$options", void 0), _define_property(_this, "actionManager", new ActionManager()), _define_property(_this, "dataManager", void 0), _define_property(_this, "_jobTasks", []), _define_property(_this, "createControlInstance", _this.createInstance);
|
|
356
356
|
_this.$options = Object.freeze(props);
|
|
357
357
|
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,
|
|
358
|
-
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;
|
|
359
|
-
RulesMessage.setLocale(language);
|
|
358
|
+
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, messagesI18n = _this_$options.messagesI18n, children = _this_$options.children;
|
|
360
359
|
_this.debug = debug;
|
|
361
360
|
_this.runtime = new Runtime({
|
|
362
361
|
schema: schema,
|
|
363
362
|
beforeCreateInstance: beforeCreateInstance
|
|
364
363
|
});
|
|
365
364
|
_this.externalParams = externalParams;
|
|
365
|
+
_this.children = children;
|
|
366
366
|
_this.store = new Store({
|
|
367
367
|
instance: _this.runtime.instance
|
|
368
368
|
});
|
|
@@ -437,7 +437,7 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
437
437
|
{
|
|
438
438
|
key: "_proxyStateBeforeSetCallback",
|
|
439
439
|
value: function _proxyStateBeforeSetCallback(state, key, newValue, oldValue) {
|
|
440
|
-
var
|
|
440
|
+
var instance = findItem(this.runtime.flatInstances, key, this.runtime.instanceMap);
|
|
441
441
|
// 找不到控件说明不是改动控件上的字段,直接通过
|
|
442
442
|
if (!instance) {
|
|
443
443
|
return newValue;
|
|
@@ -487,8 +487,7 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
487
487
|
key: "_handlerArrayUpdate",
|
|
488
488
|
value: function _handlerArrayUpdate(state, key, type, args, result) {
|
|
489
489
|
var _this = this;
|
|
490
|
-
var
|
|
491
|
-
var subtable = instanceItem.instance;
|
|
490
|
+
var subtable = findItem(this.runtime.flatInstances, key, this.runtime.instanceMap);
|
|
492
491
|
// if (!(subtable instanceof RuntimeListControl)) return
|
|
493
492
|
if (!((subtable === null || subtable === void 0 ? void 0 : subtable.controlType) === CONTROL_BASE_TYPE.LIST)) return;
|
|
494
493
|
// 新增多行方法
|
|
@@ -519,7 +518,6 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
519
518
|
createdNewRows = createRows(newRowLengths);
|
|
520
519
|
createdNewRowsData = args;
|
|
521
520
|
(_subtable_children = subtable.children)[type].apply(_subtable_children, _to_consumable_array(createdNewRows));
|
|
522
|
-
this.runtime.getFlatInstances();
|
|
523
521
|
break;
|
|
524
522
|
case 'splice':
|
|
525
523
|
if (args.length > 2) {
|
|
@@ -537,7 +535,6 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
537
535
|
start,
|
|
538
536
|
replace
|
|
539
537
|
].concat(_to_consumable_array(createdNewRows)));
|
|
540
|
-
this.runtime.getFlatInstances();
|
|
541
538
|
// newValues.forEach((item: any, index) => {
|
|
542
539
|
// let newIndex = start + index
|
|
543
540
|
// this.setStates(item, newIndex, options)
|
|
@@ -553,14 +550,12 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
553
550
|
isDeleteLastOne = true;
|
|
554
551
|
}
|
|
555
552
|
(_subtable_children2 = subtable.children)[type].apply(_subtable_children2, _to_consumable_array(args));
|
|
556
|
-
this.runtime.getFlatInstances();
|
|
557
553
|
}
|
|
558
554
|
break;
|
|
559
555
|
default:
|
|
560
556
|
var // @ts-ignore
|
|
561
557
|
_subtable_children3;
|
|
562
558
|
(_subtable_children3 = subtable.children)[type].apply(_subtable_children3, _to_consumable_array(args));
|
|
563
|
-
this.runtime.getFlatInstances();
|
|
564
559
|
break;
|
|
565
560
|
}
|
|
566
561
|
if (type === 'splice') {
|
|
@@ -575,12 +570,19 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
575
570
|
}
|
|
576
571
|
var subtableData = this.getState(subtable.id);
|
|
577
572
|
this._handlerSubtableUpdateUid(subtableData);
|
|
573
|
+
this.runtime.getFlatInstances();
|
|
574
|
+
var rowIndexs = createdNewRows.map(function(item) {
|
|
575
|
+
var _item_children_, _item_children;
|
|
576
|
+
var subControl = item === null || item === void 0 ? void 0 : (_item_children = item.children) === null || _item_children === void 0 ? void 0 : (_item_children_ = _item_children[0]) === null || _item_children_ === void 0 ? void 0 : _item_children_.children[0];
|
|
577
|
+
return _this.getInstanceRowIndex(subControl);
|
|
578
|
+
});
|
|
578
579
|
this.emit('list-change', {
|
|
579
580
|
instance: subtable,
|
|
580
581
|
value: subtableData,
|
|
581
582
|
options: Object.assign({}, options, {
|
|
582
583
|
changed: createdNewRows,
|
|
583
584
|
data: createdNewRowsData,
|
|
585
|
+
rowIndexs: rowIndexs,
|
|
584
586
|
deleted: deleted !== null && deleted !== void 0 ? deleted : [],
|
|
585
587
|
jsonValue: JSON.stringify(subtableData),
|
|
586
588
|
isDeleteLastOne: isDeleteLastOne,
|
|
@@ -609,11 +611,12 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
609
611
|
{
|
|
610
612
|
key: "_handlerObjectUpdate",
|
|
611
613
|
value: function _handlerObjectUpdate(state, key, value, oldValue) {
|
|
612
|
-
var
|
|
614
|
+
var _this = this;
|
|
615
|
+
var instance = findItem(this.runtime.flatInstances, key, this.runtime.instanceMap);
|
|
613
616
|
if (!instance) {
|
|
614
617
|
return;
|
|
615
618
|
}
|
|
616
|
-
var index =
|
|
619
|
+
var index = this.getInstanceRowIndex(instance);
|
|
617
620
|
var options = eventOptionsTemp || {};
|
|
618
621
|
// if (instance instanceof RuntimeListControl) {
|
|
619
622
|
if (instance.controlType === CONTROL_BASE_TYPE.LIST && instance.type === CONTROL_TYPE.SUBTABLE) {
|
|
@@ -629,7 +632,6 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
629
632
|
row && newRows.push(row);
|
|
630
633
|
}
|
|
631
634
|
(_instance_children = instance.children).push.apply(_instance_children, _to_consumable_array(newRows));
|
|
632
|
-
this.runtime.getFlatInstances();
|
|
633
635
|
// 这里已经能拿到控件实例,所以在这里触发setStates,触发每一行每一个控件的change事件
|
|
634
636
|
// for (let i = 0; i < newValue.length; i++) {
|
|
635
637
|
// this.setStates(newValue[i], i, options)
|
|
@@ -637,8 +639,14 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
637
639
|
var deleted = oldValue !== null && oldValue !== void 0 ? oldValue : [];
|
|
638
640
|
if ((options === null || options === void 0 ? void 0 : options.setData) === true) {
|
|
639
641
|
deleted = [];
|
|
640
|
-
}
|
|
642
|
+
} else {}
|
|
643
|
+
this.runtime.getFlatInstances();
|
|
641
644
|
this._handlerSubtableUpdateUid(newValue);
|
|
645
|
+
var rowIndexs = newRows.map(function(item) {
|
|
646
|
+
var _item_children_, _item_children;
|
|
647
|
+
var subControl = item === null || item === void 0 ? void 0 : (_item_children = item.children) === null || _item_children === void 0 ? void 0 : (_item_children_ = _item_children[0]) === null || _item_children_ === void 0 ? void 0 : _item_children_.children[0];
|
|
648
|
+
return _this.getInstanceRowIndex(subControl);
|
|
649
|
+
});
|
|
642
650
|
this.emit('list-change', {
|
|
643
651
|
instance: instance,
|
|
644
652
|
value: value,
|
|
@@ -646,6 +654,7 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
646
654
|
// @ts-ignore
|
|
647
655
|
changed: newRows,
|
|
648
656
|
data: newValue,
|
|
657
|
+
rowIndexs: rowIndexs,
|
|
649
658
|
deleted: deleted,
|
|
650
659
|
// deleted: oldValue ?? [],
|
|
651
660
|
type: 'push',
|
|
@@ -949,9 +958,9 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
949
958
|
}
|
|
950
959
|
},
|
|
951
960
|
{
|
|
952
|
-
/**
|
|
953
|
-
* 设置payload的options,提供在不是使用标准api修改state的时候可以传递options,会在本次任务执行完成之后清空
|
|
954
|
-
* @param options 需要携带的options
|
|
961
|
+
/**
|
|
962
|
+
* 设置payload的options,提供在不是使用标准api修改state的时候可以传递options,会在本次任务执行完成之后清空
|
|
963
|
+
* @param options 需要携带的options
|
|
955
964
|
* */ key: "setPayloadOptions",
|
|
956
965
|
value: function setPayloadOptions(options) {
|
|
957
966
|
eventOptionsTemp = options;
|
|
@@ -968,9 +977,9 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
968
977
|
}
|
|
969
978
|
},
|
|
970
979
|
{
|
|
971
|
-
/**
|
|
972
|
-
* 向Store设置一组值,明细表必须全量赋值,并触发事件(触发事件是根据组件在页面中的顺序逐个触发)
|
|
973
|
-
* @param states
|
|
980
|
+
/**
|
|
981
|
+
* 向Store设置一组值,明细表必须全量赋值,并触发事件(触发事件是根据组件在页面中的顺序逐个触发)
|
|
982
|
+
* @param states
|
|
974
983
|
*/ key: "setStates",
|
|
975
984
|
value: function setStates(states, rowIndex, options) {
|
|
976
985
|
var _this = this;
|
|
@@ -997,55 +1006,11 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
997
1006
|
}
|
|
998
1007
|
},
|
|
999
1008
|
{
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
})[0];
|
|
1006
|
-
if (key) {
|
|
1007
|
-
return titleData[key];
|
|
1008
|
-
} else {
|
|
1009
|
-
return titleData;
|
|
1010
|
-
}
|
|
1011
|
-
}
|
|
1012
|
-
},
|
|
1013
|
-
{
|
|
1014
|
-
//理想-获取系统字段
|
|
1015
|
-
key: "getSystemField",
|
|
1016
|
-
value: function getSystemField(key) {
|
|
1017
|
-
var _this_externalParams;
|
|
1018
|
-
var systemCodesMap = [
|
|
1019
|
-
'creator',
|
|
1020
|
-
'process_location',
|
|
1021
|
-
'create_time',
|
|
1022
|
-
'uid',
|
|
1023
|
-
'update_time',
|
|
1024
|
-
'process_status',
|
|
1025
|
-
'process_instance_id',
|
|
1026
|
-
'process_key'
|
|
1027
|
-
];
|
|
1028
|
-
var arr = ((_this_externalParams = this.externalParams) === null || _this_externalParams === void 0 ? void 0 : _this_externalParams.data.data_set.values.filter(function(a) {
|
|
1029
|
-
return systemCodesMap.some(function(k) {
|
|
1030
|
-
return k == a.code;
|
|
1031
|
-
});
|
|
1032
|
-
})) || [];
|
|
1033
|
-
if (key) {
|
|
1034
|
-
var _arr_filter_;
|
|
1035
|
-
return (_arr_filter_ = arr.filter(function(a) {
|
|
1036
|
-
return a.code == key;
|
|
1037
|
-
})[0]) === null || _arr_filter_ === void 0 ? void 0 : _arr_filter_.value;
|
|
1038
|
-
} else {
|
|
1039
|
-
return arr;
|
|
1040
|
-
}
|
|
1041
|
-
}
|
|
1042
|
-
},
|
|
1043
|
-
{
|
|
1044
|
-
/**
|
|
1045
|
-
* 通过dataCode和fieldCode来获取控件的值
|
|
1046
|
-
* @param dataCode 模型编码 - 如果是主表的话就是主表的模型编码,明细子表的话就是子表的模型编码
|
|
1047
|
-
* @param fieldCode 字段编码 - 控件绑定的数据项的编码
|
|
1048
|
-
* @param rowIndex 行下标 - 如果是明细子表中的控件需要提供
|
|
1009
|
+
/**
|
|
1010
|
+
* 通过dataCode和fieldCode来获取控件的值
|
|
1011
|
+
* @param dataCode 模型编码 - 如果是主表的话就是主表的模型编码,明细子表的话就是子表的模型编码
|
|
1012
|
+
* @param fieldCode 字段编码 - 控件绑定的数据项的编码
|
|
1013
|
+
* @param rowIndex 行下标 - 如果是明细子表中的控件需要提供
|
|
1049
1014
|
* */ key: "getField",
|
|
1050
1015
|
value: function getField(dataCode, fieldCode, rowIndex) {
|
|
1051
1016
|
if (!fieldCode) {
|
|
@@ -1117,27 +1082,31 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1117
1082
|
var _controlIdMapping_key2;
|
|
1118
1083
|
obj[(_controlIdMapping_key2 = controlIdMapping[key]) === null || _controlIdMapping_key2 === void 0 ? void 0 : _controlIdMapping_key2.dataBind.fieldCode] = getFieldData[key];
|
|
1119
1084
|
} 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) {
|
|
1120
|
-
|
|
1121
|
-
//
|
|
1122
|
-
|
|
1123
|
-
var
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
var
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1085
|
+
if (!Array.isArray(getFieldData[key])) {
|
|
1086
|
+
// obj[controlIdMapping[key]?.dataBind.dataCode] = ''
|
|
1087
|
+
} else {
|
|
1088
|
+
var _controlIdMapping_key3, _getFieldData_key;
|
|
1089
|
+
// 明细字表只循环一层明细子表未递归
|
|
1090
|
+
obj[(_controlIdMapping_key3 = controlIdMapping[key]) === null || _controlIdMapping_key3 === void 0 ? void 0 : _controlIdMapping_key3.dataBind.dataCode] = (_getFieldData_key = getFieldData[key]) === null || _getFieldData_key === void 0 ? void 0 : _getFieldData_key.map(function(item) {
|
|
1091
|
+
var objChi = {};
|
|
1092
|
+
for(var keyChi in item){
|
|
1093
|
+
var _controlIdMapping_key_children_keyChi;
|
|
1094
|
+
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;
|
|
1095
|
+
//未绑定字段的控件,直接抛弃
|
|
1096
|
+
if (fieldCode !== '') {
|
|
1097
|
+
if (fieldCode) {
|
|
1098
|
+
objChi[fieldCode] = item[keyChi];
|
|
1099
|
+
} else {
|
|
1100
|
+
for(var keyChi1 in item[keyChi]){
|
|
1101
|
+
var _controlIdMapping_key_children_keyChi1;
|
|
1102
|
+
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];
|
|
1103
|
+
}
|
|
1135
1104
|
}
|
|
1136
1105
|
}
|
|
1137
1106
|
}
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
}
|
|
1107
|
+
return objChi;
|
|
1108
|
+
});
|
|
1109
|
+
}
|
|
1141
1110
|
} else if (controlIdMapping[key]) {
|
|
1142
1111
|
// 兼容一个控件需要绑定多个字段的情况
|
|
1143
1112
|
for(var keyChi in getFieldData[key]){
|
|
@@ -1156,13 +1125,13 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1156
1125
|
}
|
|
1157
1126
|
},
|
|
1158
1127
|
{
|
|
1159
|
-
/**
|
|
1160
|
-
* 通过dataCode和fieldCode来设置控件的值
|
|
1161
|
-
* @param dataCode 模型编码 - 如果是主表的话就是主表的模型编码,明细子表的话就是子表的模型编码
|
|
1162
|
-
* @param fieldCode 字段编码 - 控件绑定的数据项的编码
|
|
1163
|
-
* @param value 修改的值
|
|
1164
|
-
* @param rowIndex 行下标 - 如果是明细子表中的控件需要提供
|
|
1165
|
-
* @param options 触发事件携带的参数
|
|
1128
|
+
/**
|
|
1129
|
+
* 通过dataCode和fieldCode来设置控件的值
|
|
1130
|
+
* @param dataCode 模型编码 - 如果是主表的话就是主表的模型编码,明细子表的话就是子表的模型编码
|
|
1131
|
+
* @param fieldCode 字段编码 - 控件绑定的数据项的编码
|
|
1132
|
+
* @param value 修改的值
|
|
1133
|
+
* @param rowIndex 行下标 - 如果是明细子表中的控件需要提供
|
|
1134
|
+
* @param options 触发事件携带的参数
|
|
1166
1135
|
* */ key: "setField",
|
|
1167
1136
|
value: function setField(dataCode, fieldCode, value, rowIndex, options) {
|
|
1168
1137
|
var dataBindMapping = this.getDataBindMapping(dataCode, fieldCode);
|
|
@@ -1190,12 +1159,12 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1190
1159
|
}
|
|
1191
1160
|
},
|
|
1192
1161
|
{
|
|
1193
|
-
/**
|
|
1194
|
-
* 通过dataCode和 state来给一组控件赋值,并触发事件携带options
|
|
1195
|
-
* @param dataCode 需要赋值的目标模型
|
|
1196
|
-
* @param state 赋值对象,以fieldCode为key组成的对象
|
|
1197
|
-
* @param rowIndex 行下标,给明细子表赋值时指定赋值某行
|
|
1198
|
-
* @param options 触发事件携带的参数
|
|
1162
|
+
/**
|
|
1163
|
+
* 通过dataCode和 state来给一组控件赋值,并触发事件携带options
|
|
1164
|
+
* @param dataCode 需要赋值的目标模型
|
|
1165
|
+
* @param state 赋值对象,以fieldCode为key组成的对象
|
|
1166
|
+
* @param rowIndex 行下标,给明细子表赋值时指定赋值某行
|
|
1167
|
+
* @param options 触发事件携带的参数
|
|
1199
1168
|
* */ key: "setFields",
|
|
1200
1169
|
value: function setFields(dataCode, state, rowIndex, options) {
|
|
1201
1170
|
var _this = this;
|
|
@@ -1236,10 +1205,10 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1236
1205
|
}
|
|
1237
1206
|
},
|
|
1238
1207
|
{
|
|
1239
|
-
/**
|
|
1240
|
-
* 通过dataCode来将state转化为标准的state结构
|
|
1241
|
-
* @param dataCode 需要转换的目标模型code
|
|
1242
|
-
* @param state 值对象,以fieldCode为key组成的对象
|
|
1208
|
+
/**
|
|
1209
|
+
* 通过dataCode来将state转化为标准的state结构
|
|
1210
|
+
* @param dataCode 需要转换的目标模型code
|
|
1211
|
+
* @param state 值对象,以fieldCode为key组成的对象
|
|
1243
1212
|
* */ key: "buildFields",
|
|
1244
1213
|
value: function buildFields(dataCode, state) {
|
|
1245
1214
|
var _this = this;
|
|
@@ -1280,10 +1249,10 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1280
1249
|
}
|
|
1281
1250
|
},
|
|
1282
1251
|
{
|
|
1283
|
-
/**
|
|
1284
|
-
* 向Store设置一组值,并触发事件携带options
|
|
1285
|
-
* @param dataSet
|
|
1286
|
-
* @options 传递给关联事件中 EventPayload中的options,一般在plugin中监听使用
|
|
1252
|
+
/**
|
|
1253
|
+
* 向Store设置一组值,并触发事件携带options
|
|
1254
|
+
* @param dataSet
|
|
1255
|
+
* @options 传递给关联事件中 EventPayload中的options,一般在plugin中监听使用
|
|
1287
1256
|
*/ key: "setData",
|
|
1288
1257
|
value: function setData(dataSet, options) {
|
|
1289
1258
|
var _this = this;
|
|
@@ -1416,23 +1385,24 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1416
1385
|
this.setStates(newState, undefined, _object_spread({
|
|
1417
1386
|
setData: true
|
|
1418
1387
|
}, options));
|
|
1388
|
+
this.runtime.getFlatInstances();
|
|
1419
1389
|
this.debugLog("engine setData方法执行完成。");
|
|
1420
1390
|
}
|
|
1421
1391
|
},
|
|
1422
1392
|
{
|
|
1423
|
-
/**
|
|
1424
|
-
* 获取控件的dataBind
|
|
1425
|
-
* @param controlId
|
|
1393
|
+
/**
|
|
1394
|
+
* 获取控件的dataBind
|
|
1395
|
+
* @param controlId
|
|
1426
1396
|
* */ key: "getDataBind",
|
|
1427
1397
|
value: function getDataBind(controlId) {
|
|
1428
1398
|
return this.store.getDataBind(controlId);
|
|
1429
1399
|
}
|
|
1430
1400
|
},
|
|
1431
1401
|
{
|
|
1432
|
-
/**
|
|
1433
|
-
* 获取组件实例,传入rowIndex代表获取明细表内的控件实例,rowIndex传入-1代表获取表头内的实例
|
|
1434
|
-
* @param controlId
|
|
1435
|
-
* @param rowIndex
|
|
1402
|
+
/**
|
|
1403
|
+
* 获取组件实例,传入rowIndex代表获取明细表内的控件实例,rowIndex传入-1代表获取表头内的实例
|
|
1404
|
+
* @param controlId
|
|
1405
|
+
* @param rowIndex
|
|
1436
1406
|
*/ key: "getInstance",
|
|
1437
1407
|
value: function getInstance(controlId, rowIndex) {
|
|
1438
1408
|
var instances = this.getInstances(controlId, rowIndex === -1);
|
|
@@ -1451,10 +1421,10 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1451
1421
|
}
|
|
1452
1422
|
},
|
|
1453
1423
|
{
|
|
1454
|
-
/**
|
|
1455
|
-
* 获取组件实例,明细表中的组件将会得到数组, 第二个参数为(false/不传入)则获取到的是明细表内不包含表头内实例的所有控件实例,传入true则获取到包含表头内实例的所有控件实例,表头内实例永远在下标0的位置
|
|
1456
|
-
* @param controlId
|
|
1457
|
-
* @param header 明细表内是否获取表头的控件
|
|
1424
|
+
/**
|
|
1425
|
+
* 获取组件实例,明细表中的组件将会得到数组, 第二个参数为(false/不传入)则获取到的是明细表内不包含表头内实例的所有控件实例,传入true则获取到包含表头内实例的所有控件实例,表头内实例永远在下标0的位置
|
|
1426
|
+
* @param controlId
|
|
1427
|
+
* @param header 明细表内是否获取表头的控件
|
|
1458
1428
|
*/ // getInstances(
|
|
1459
1429
|
// controlId?: string,
|
|
1460
1430
|
// header: boolean = false
|
|
@@ -1520,12 +1490,16 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1520
1490
|
var instances = Array.from(this.runtime.instanceMap[controlId] || []);
|
|
1521
1491
|
if (header) {
|
|
1522
1492
|
// 如果能从flatInstances里边取到,就通过getInstanceInSubtableHeader方法取,取不到则换一种方式
|
|
1523
|
-
if (instances.length) {
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1493
|
+
// if (instances.length) {
|
|
1494
|
+
// const instance: RuntimeControl = instances[0]
|
|
1495
|
+
// const headerInstance = this.findSubtableHeadersControl(instance.id)
|
|
1496
|
+
// if (headerInstance !== undefined) {
|
|
1497
|
+
// instances.unshift(headerInstance)
|
|
1498
|
+
// }
|
|
1499
|
+
// }
|
|
1500
|
+
var headerInstance = this.findSubtableHeadersControl(controlId);
|
|
1501
|
+
if (headerInstance !== undefined) {
|
|
1502
|
+
instances.unshift(headerInstance);
|
|
1529
1503
|
}
|
|
1530
1504
|
}
|
|
1531
1505
|
// @ts-ignore
|
|
@@ -1576,57 +1550,6 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1576
1550
|
}
|
|
1577
1551
|
}
|
|
1578
1552
|
},
|
|
1579
|
-
{
|
|
1580
|
-
/**
|
|
1581
|
-
* 前端二开新增方法,支持给多选控件动态赋值选项和默认值
|
|
1582
|
-
* ctx.setInstance('zQX4ViR3c0', 'options', [{ label:'初级:N<2年', value: '初级' },{ label:'高级:N>2年', value: '高级' }]);
|
|
1583
|
-
* ctx.setState('zQX4ViR3c0',['初级'])
|
|
1584
|
-
* 将以上两个方法封装成一个新的方法setInstanceAndState
|
|
1585
|
-
* ctx.setInstanceAndState('uexLafJeGH', 'options', [{ label:'初级:N<2年', value: '初级' ,checked: true},{ label:'初级:N>2年', value: '高级' }]);
|
|
1586
|
-
* 可同时设置选项和默认值
|
|
1587
|
-
* @param instance
|
|
1588
|
-
* @param props
|
|
1589
|
-
* @param value
|
|
1590
|
-
* @param rowIndex
|
|
1591
|
-
*/ key: "setInstanceAndState",
|
|
1592
|
-
value: function setInstanceAndState(instance, props, value, rowIndex) {
|
|
1593
|
-
this.setInstance(instance, props, value, rowIndex);
|
|
1594
|
-
if (value && Array.isArray(value)) {
|
|
1595
|
-
var stateValues = [];
|
|
1596
|
-
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
1597
|
-
try {
|
|
1598
|
-
for(var _iterator = value[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
1599
|
-
var item = _step.value;
|
|
1600
|
-
if (item.checked) {
|
|
1601
|
-
stateValues.push(item.value);
|
|
1602
|
-
}
|
|
1603
|
-
}
|
|
1604
|
-
} catch (err) {
|
|
1605
|
-
_didIteratorError = true;
|
|
1606
|
-
_iteratorError = err;
|
|
1607
|
-
} finally{
|
|
1608
|
-
try {
|
|
1609
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
1610
|
-
_iterator.return();
|
|
1611
|
-
}
|
|
1612
|
-
} finally{
|
|
1613
|
-
if (_didIteratorError) {
|
|
1614
|
-
throw _iteratorError;
|
|
1615
|
-
}
|
|
1616
|
-
}
|
|
1617
|
-
}
|
|
1618
|
-
if (stateValues.length > 0) {
|
|
1619
|
-
var instanceId = '';
|
|
1620
|
-
if (typeof instance !== 'string') {
|
|
1621
|
-
instanceId = instance.id;
|
|
1622
|
-
} else {
|
|
1623
|
-
instanceId = instance;
|
|
1624
|
-
}
|
|
1625
|
-
this.setState(instanceId, stateValues, rowIndex);
|
|
1626
|
-
}
|
|
1627
|
-
}
|
|
1628
|
-
}
|
|
1629
|
-
},
|
|
1630
1553
|
{
|
|
1631
1554
|
key: "getControlIdMapping",
|
|
1632
1555
|
value: function getControlIdMapping() {
|
|
@@ -1641,7 +1564,7 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1641
1564
|
}
|
|
1642
1565
|
var mapping = this.store.dataBindMapping[dataCode];
|
|
1643
1566
|
if (!mapping) {
|
|
1644
|
-
warn(
|
|
1567
|
+
// warn(`No corresponding dataCode=${dataCode} was found`)
|
|
1645
1568
|
return;
|
|
1646
1569
|
}
|
|
1647
1570
|
if (!fieldCode) {
|
|
@@ -1651,7 +1574,7 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1651
1574
|
return item.fieldCode === fieldCode;
|
|
1652
1575
|
});
|
|
1653
1576
|
if (!dataBindMapping) {
|
|
1654
|
-
warn(
|
|
1577
|
+
// warn(`No corresponding fieldCode=${fieldCode} was found`)
|
|
1655
1578
|
return;
|
|
1656
1579
|
}
|
|
1657
1580
|
return dataBindMapping;
|
|
@@ -1677,27 +1600,27 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1677
1600
|
},
|
|
1678
1601
|
{
|
|
1679
1602
|
key: "assertInstance",
|
|
1680
|
-
value: /**
|
|
1681
|
-
* 判断控件的类型,返回当前控件的正确类型
|
|
1603
|
+
value: /**
|
|
1604
|
+
* 判断控件的类型,返回当前控件的正确类型
|
|
1682
1605
|
* */ function assertInstance(instance, types) {
|
|
1683
1606
|
return isString(types) ? instance.type === types : types.includes(instance.type);
|
|
1684
1607
|
}
|
|
1685
1608
|
},
|
|
1686
1609
|
{
|
|
1687
1610
|
key: "assertInstanceIsCustomControl",
|
|
1688
|
-
value: /**
|
|
1689
|
-
* 判断控件或控件类型是一个自定义控件
|
|
1611
|
+
value: /**
|
|
1612
|
+
* 判断控件或控件类型是一个自定义控件
|
|
1690
1613
|
* */ function assertInstanceIsCustomControl(instance) {
|
|
1691
1614
|
return !isBuiltInControls(isString(instance) ? instance : instance.type);
|
|
1692
1615
|
}
|
|
1693
1616
|
},
|
|
1694
1617
|
{
|
|
1695
1618
|
key: "getInstanceRowIndex",
|
|
1696
|
-
value: /**
|
|
1697
|
-
* 获取控件在明细子表中的行下标,
|
|
1698
|
-
* 如果控件在表头内,则返回-1
|
|
1699
|
-
* 如果控件在表内,则返回行下标
|
|
1700
|
-
* 如果控件不在明细表内,则返回undefined
|
|
1619
|
+
value: /**
|
|
1620
|
+
* 获取控件在明细子表中的行下标,
|
|
1621
|
+
* 如果控件在表头内,则返回-1
|
|
1622
|
+
* 如果控件在表内,则返回行下标
|
|
1623
|
+
* 如果控件不在明细表内,则返回undefined
|
|
1701
1624
|
* */ // public getInstanceRowIndex(
|
|
1702
1625
|
// instance: ControlRuntimeInstance<ControlsKeys> | RuntimeControl
|
|
1703
1626
|
// ) {
|
|
@@ -110,6 +110,7 @@ export var Runtime = /*#__PURE__*/ function(RegisterControls) {
|
|
|
110
110
|
var instanceMap = {};
|
|
111
111
|
var controlParentIdMap = {};
|
|
112
112
|
loop(this._instance, '', function(item, parentId) {
|
|
113
|
+
var _item_parent;
|
|
113
114
|
// 3.4.1 避免将subtable-row 放到 _flatInstances 中
|
|
114
115
|
//4.3.0-lh2 将自处注释掉,为使instance.parent能取到父级
|
|
115
116
|
// if (item.type === 'subtable-row' || item.type === 'subtable-column') {
|
|
@@ -129,6 +130,9 @@ export var Runtime = /*#__PURE__*/ function(RegisterControls) {
|
|
|
129
130
|
}
|
|
130
131
|
}
|
|
131
132
|
instances.push(item);
|
|
133
|
+
if (((_item_parent = item.parent) === null || _item_parent === void 0 ? void 0 : _item_parent.type) === CONTROL_TYPE.SUBTABLE_COLUMN && item.parent.parent === undefined) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
132
136
|
instanceMap[item.id].push(item);
|
|
133
137
|
});
|
|
134
138
|
this._flatInstances = instances;
|
|
@@ -277,16 +281,16 @@ function loop(control, parentId, callback) {
|
|
|
277
281
|
if (hasHeaderOrFooterControl(item, 'headers')) {
|
|
278
282
|
loop(item.props.headers, item.id, callback);
|
|
279
283
|
}
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
284
|
+
// if (hasHeaderOrFooterControl(item, 'footers')) {
|
|
285
|
+
// loop((item.props as any).footers, item.id, callback)
|
|
286
|
+
// }
|
|
283
287
|
});
|
|
284
288
|
}
|
|
285
289
|
function hasHeaderOrFooterControl(control, checkType) {
|
|
286
290
|
return checkType in control.props && isArray(control.props[checkType]);
|
|
287
291
|
}
|
|
288
|
-
/**
|
|
289
|
-
* 控件是否在视图中隐藏,遍历查找所有parent
|
|
292
|
+
/**
|
|
293
|
+
* 控件是否在视图中隐藏,遍历查找所有parent
|
|
290
294
|
* */ function getControlIsHide(control) {
|
|
291
295
|
if (control.props.isHide) {
|
|
292
296
|
return true;
|