@byteluck-fe/model-driven-engine 2.23.0-beta.1 → 2.23.0-beta.3
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/Engine.js +79 -73
- package/dist/index.umd.js +7 -7
- package/dist/types/common/Engine.d.ts +8 -1
- package/package.json +4 -4
|
@@ -341,7 +341,7 @@ function _ts_generator(thisArg, body) {
|
|
|
341
341
|
}
|
|
342
342
|
}
|
|
343
343
|
import { isDataBind } from '@byteluck-fe/model-driven-core';
|
|
344
|
-
import { CONTROL_BASE_TYPE, CONTROL_TYPE, DEFAULT_LOCALE, error, genNonDuplicateId, isString, JSONCopy, log,
|
|
344
|
+
import { CONTROL_BASE_TYPE, CONTROL_TYPE, DEFAULT_LOCALE, error, genNonDuplicateId, isString, JSONCopy, log, updateValueFromKeys, warn, Watcher, isBuiltInControls } from '@byteluck-fe/model-driven-shared';
|
|
345
345
|
import { Runtime } from './Runtime';
|
|
346
346
|
import { Store } from './Store';
|
|
347
347
|
import { findItem, proxyState } from './proxyState';
|
|
@@ -376,6 +376,7 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
376
376
|
_define_property(_assert_this_initialized(_this), "isMounted", false);
|
|
377
377
|
_define_property(_assert_this_initialized(_this), "id", genNonDuplicateId(8));
|
|
378
378
|
_define_property(_assert_this_initialized(_this), "externalParams", void 0);
|
|
379
|
+
_define_property(_assert_this_initialized(_this), "children", void 0);
|
|
379
380
|
// 提供外部注册插件,在不同的hooks触发时执行固定函数的能力
|
|
380
381
|
_define_property(_assert_this_initialized(_this), "__plugins", void 0);
|
|
381
382
|
_define_property(_assert_this_initialized(_this), "__pluginsApplied", false);
|
|
@@ -386,14 +387,15 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
386
387
|
_define_property(_assert_this_initialized(_this), "createControlInstance", _this.createInstance);
|
|
387
388
|
_this.$options = Object.freeze(props);
|
|
388
389
|
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,
|
|
389
|
-
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;
|
|
390
|
-
RulesMessage.setLocale(language)
|
|
390
|
+
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;
|
|
391
|
+
// RulesMessage.setLocale(language, messagesI18n)
|
|
391
392
|
_this.debug = debug;
|
|
392
393
|
_this.runtime = new Runtime({
|
|
393
394
|
schema: schema,
|
|
394
395
|
beforeCreateInstance: beforeCreateInstance
|
|
395
396
|
});
|
|
396
397
|
_this.externalParams = externalParams;
|
|
398
|
+
_this.children = children;
|
|
397
399
|
_this.store = new Store({
|
|
398
400
|
instance: _this.runtime.instance
|
|
399
401
|
});
|
|
@@ -976,9 +978,9 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
976
978
|
}
|
|
977
979
|
},
|
|
978
980
|
{
|
|
979
|
-
/**
|
|
980
|
-
* 设置payload的options,提供在不是使用标准api修改state的时候可以传递options,会在本次任务执行完成之后清空
|
|
981
|
-
* @param options 需要携带的options
|
|
981
|
+
/**
|
|
982
|
+
* 设置payload的options,提供在不是使用标准api修改state的时候可以传递options,会在本次任务执行完成之后清空
|
|
983
|
+
* @param options 需要携带的options
|
|
982
984
|
* */ key: "setPayloadOptions",
|
|
983
985
|
value: function setPayloadOptions(options) {
|
|
984
986
|
eventOptionsTemp = options;
|
|
@@ -995,9 +997,9 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
995
997
|
}
|
|
996
998
|
},
|
|
997
999
|
{
|
|
998
|
-
/**
|
|
999
|
-
* 向Store设置一组值,明细表必须全量赋值,并触发事件(触发事件是根据组件在页面中的顺序逐个触发)
|
|
1000
|
-
* @param states
|
|
1000
|
+
/**
|
|
1001
|
+
* 向Store设置一组值,明细表必须全量赋值,并触发事件(触发事件是根据组件在页面中的顺序逐个触发)
|
|
1002
|
+
* @param states
|
|
1001
1003
|
*/ key: "setStates",
|
|
1002
1004
|
value: function setStates(states, rowIndex, options) {
|
|
1003
1005
|
var _this = this;
|
|
@@ -1024,11 +1026,11 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1024
1026
|
}
|
|
1025
1027
|
},
|
|
1026
1028
|
{
|
|
1027
|
-
/**
|
|
1028
|
-
* 通过dataCode和fieldCode来获取控件的值
|
|
1029
|
-
* @param dataCode 模型编码 - 如果是主表的话就是主表的模型编码,明细子表的话就是子表的模型编码
|
|
1030
|
-
* @param fieldCode 字段编码 - 控件绑定的数据项的编码
|
|
1031
|
-
* @param rowIndex 行下标 - 如果是明细子表中的控件需要提供
|
|
1029
|
+
/**
|
|
1030
|
+
* 通过dataCode和fieldCode来获取控件的值
|
|
1031
|
+
* @param dataCode 模型编码 - 如果是主表的话就是主表的模型编码,明细子表的话就是子表的模型编码
|
|
1032
|
+
* @param fieldCode 字段编码 - 控件绑定的数据项的编码
|
|
1033
|
+
* @param rowIndex 行下标 - 如果是明细子表中的控件需要提供
|
|
1032
1034
|
* */ key: "getField",
|
|
1033
1035
|
value: function getField(dataCode, fieldCode, rowIndex) {
|
|
1034
1036
|
if (!fieldCode) {
|
|
@@ -1100,27 +1102,31 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1100
1102
|
var _controlIdMapping_key2;
|
|
1101
1103
|
obj[(_controlIdMapping_key2 = controlIdMapping[key]) === null || _controlIdMapping_key2 === void 0 ? void 0 : _controlIdMapping_key2.dataBind.fieldCode] = getFieldData[key];
|
|
1102
1104
|
} 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) {
|
|
1103
|
-
|
|
1104
|
-
//
|
|
1105
|
-
|
|
1106
|
-
var
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
var
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1105
|
+
if (!Array.isArray(getFieldData[key])) {
|
|
1106
|
+
// obj[controlIdMapping[key]?.dataBind.dataCode] = ''
|
|
1107
|
+
} else {
|
|
1108
|
+
var _controlIdMapping_key3, _getFieldData_key;
|
|
1109
|
+
// 明细字表只循环一层明细子表未递归
|
|
1110
|
+
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) {
|
|
1111
|
+
var objChi = {};
|
|
1112
|
+
for(var keyChi in item){
|
|
1113
|
+
var _controlIdMapping_key_children_keyChi;
|
|
1114
|
+
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;
|
|
1115
|
+
//未绑定字段的控件,直接抛弃
|
|
1116
|
+
if (fieldCode !== '') {
|
|
1117
|
+
if (fieldCode) {
|
|
1118
|
+
objChi[fieldCode] = item[keyChi];
|
|
1119
|
+
} else {
|
|
1120
|
+
for(var keyChi1 in item[keyChi]){
|
|
1121
|
+
var _controlIdMapping_key_children_keyChi1;
|
|
1122
|
+
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];
|
|
1123
|
+
}
|
|
1118
1124
|
}
|
|
1119
1125
|
}
|
|
1120
1126
|
}
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
}
|
|
1127
|
+
return objChi;
|
|
1128
|
+
});
|
|
1129
|
+
}
|
|
1124
1130
|
} else if (controlIdMapping[key]) {
|
|
1125
1131
|
// 兼容一个控件需要绑定多个字段的情况
|
|
1126
1132
|
for(var keyChi in getFieldData[key]){
|
|
@@ -1139,13 +1145,13 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1139
1145
|
}
|
|
1140
1146
|
},
|
|
1141
1147
|
{
|
|
1142
|
-
/**
|
|
1143
|
-
* 通过dataCode和fieldCode来设置控件的值
|
|
1144
|
-
* @param dataCode 模型编码 - 如果是主表的话就是主表的模型编码,明细子表的话就是子表的模型编码
|
|
1145
|
-
* @param fieldCode 字段编码 - 控件绑定的数据项的编码
|
|
1146
|
-
* @param value 修改的值
|
|
1147
|
-
* @param rowIndex 行下标 - 如果是明细子表中的控件需要提供
|
|
1148
|
-
* @param options 触发事件携带的参数
|
|
1148
|
+
/**
|
|
1149
|
+
* 通过dataCode和fieldCode来设置控件的值
|
|
1150
|
+
* @param dataCode 模型编码 - 如果是主表的话就是主表的模型编码,明细子表的话就是子表的模型编码
|
|
1151
|
+
* @param fieldCode 字段编码 - 控件绑定的数据项的编码
|
|
1152
|
+
* @param value 修改的值
|
|
1153
|
+
* @param rowIndex 行下标 - 如果是明细子表中的控件需要提供
|
|
1154
|
+
* @param options 触发事件携带的参数
|
|
1149
1155
|
* */ key: "setField",
|
|
1150
1156
|
value: function setField(dataCode, fieldCode, value, rowIndex, options) {
|
|
1151
1157
|
var dataBindMapping = this.getDataBindMapping(dataCode, fieldCode);
|
|
@@ -1173,12 +1179,12 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1173
1179
|
}
|
|
1174
1180
|
},
|
|
1175
1181
|
{
|
|
1176
|
-
/**
|
|
1177
|
-
* 通过dataCode和 state来给一组控件赋值,并触发事件携带options
|
|
1178
|
-
* @param dataCode 需要赋值的目标模型
|
|
1179
|
-
* @param state 赋值对象,以fieldCode为key组成的对象
|
|
1180
|
-
* @param rowIndex 行下标,给明细子表赋值时指定赋值某行
|
|
1181
|
-
* @param options 触发事件携带的参数
|
|
1182
|
+
/**
|
|
1183
|
+
* 通过dataCode和 state来给一组控件赋值,并触发事件携带options
|
|
1184
|
+
* @param dataCode 需要赋值的目标模型
|
|
1185
|
+
* @param state 赋值对象,以fieldCode为key组成的对象
|
|
1186
|
+
* @param rowIndex 行下标,给明细子表赋值时指定赋值某行
|
|
1187
|
+
* @param options 触发事件携带的参数
|
|
1182
1188
|
* */ key: "setFields",
|
|
1183
1189
|
value: function setFields(dataCode, state, rowIndex, options) {
|
|
1184
1190
|
var _this = this;
|
|
@@ -1219,10 +1225,10 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1219
1225
|
}
|
|
1220
1226
|
},
|
|
1221
1227
|
{
|
|
1222
|
-
/**
|
|
1223
|
-
* 通过dataCode来将state转化为标准的state结构
|
|
1224
|
-
* @param dataCode 需要转换的目标模型code
|
|
1225
|
-
* @param state 值对象,以fieldCode为key组成的对象
|
|
1228
|
+
/**
|
|
1229
|
+
* 通过dataCode来将state转化为标准的state结构
|
|
1230
|
+
* @param dataCode 需要转换的目标模型code
|
|
1231
|
+
* @param state 值对象,以fieldCode为key组成的对象
|
|
1226
1232
|
* */ key: "buildFields",
|
|
1227
1233
|
value: function buildFields(dataCode, state) {
|
|
1228
1234
|
var _this = this;
|
|
@@ -1263,10 +1269,10 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1263
1269
|
}
|
|
1264
1270
|
},
|
|
1265
1271
|
{
|
|
1266
|
-
/**
|
|
1267
|
-
* 向Store设置一组值,并触发事件携带options
|
|
1268
|
-
* @param dataSet
|
|
1269
|
-
* @options 传递给关联事件中 EventPayload中的options,一般在plugin中监听使用
|
|
1272
|
+
/**
|
|
1273
|
+
* 向Store设置一组值,并触发事件携带options
|
|
1274
|
+
* @param dataSet
|
|
1275
|
+
* @options 传递给关联事件中 EventPayload中的options,一般在plugin中监听使用
|
|
1270
1276
|
*/ key: "setData",
|
|
1271
1277
|
value: function setData(dataSet, options) {
|
|
1272
1278
|
var _this = this;
|
|
@@ -1404,19 +1410,19 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1404
1410
|
}
|
|
1405
1411
|
},
|
|
1406
1412
|
{
|
|
1407
|
-
/**
|
|
1408
|
-
* 获取控件的dataBind
|
|
1409
|
-
* @param controlId
|
|
1413
|
+
/**
|
|
1414
|
+
* 获取控件的dataBind
|
|
1415
|
+
* @param controlId
|
|
1410
1416
|
* */ key: "getDataBind",
|
|
1411
1417
|
value: function getDataBind(controlId) {
|
|
1412
1418
|
return this.store.getDataBind(controlId);
|
|
1413
1419
|
}
|
|
1414
1420
|
},
|
|
1415
1421
|
{
|
|
1416
|
-
/**
|
|
1417
|
-
* 获取组件实例,传入rowIndex代表获取明细表内的控件实例,rowIndex传入-1代表获取表头内的实例
|
|
1418
|
-
* @param controlId
|
|
1419
|
-
* @param rowIndex
|
|
1422
|
+
/**
|
|
1423
|
+
* 获取组件实例,传入rowIndex代表获取明细表内的控件实例,rowIndex传入-1代表获取表头内的实例
|
|
1424
|
+
* @param controlId
|
|
1425
|
+
* @param rowIndex
|
|
1420
1426
|
*/ key: "getInstance",
|
|
1421
1427
|
value: function getInstance(controlId, rowIndex) {
|
|
1422
1428
|
var instances = this.getInstances(controlId, rowIndex === -1);
|
|
@@ -1435,10 +1441,10 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1435
1441
|
}
|
|
1436
1442
|
},
|
|
1437
1443
|
{
|
|
1438
|
-
/**
|
|
1439
|
-
* 获取组件实例,明细表中的组件将会得到数组, 第二个参数为(false/不传入)则获取到的是明细表内不包含表头内实例的所有控件实例,传入true则获取到包含表头内实例的所有控件实例,表头内实例永远在下标0的位置
|
|
1440
|
-
* @param controlId
|
|
1441
|
-
* @param header 明细表内是否获取表头的控件
|
|
1444
|
+
/**
|
|
1445
|
+
* 获取组件实例,明细表中的组件将会得到数组, 第二个参数为(false/不传入)则获取到的是明细表内不包含表头内实例的所有控件实例,传入true则获取到包含表头内实例的所有控件实例,表头内实例永远在下标0的位置
|
|
1446
|
+
* @param controlId
|
|
1447
|
+
* @param header 明细表内是否获取表头的控件
|
|
1442
1448
|
*/ // getInstances(
|
|
1443
1449
|
// controlId?: string,
|
|
1444
1450
|
// header: boolean = false
|
|
@@ -1614,27 +1620,27 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1614
1620
|
},
|
|
1615
1621
|
{
|
|
1616
1622
|
key: "assertInstance",
|
|
1617
|
-
value: /**
|
|
1618
|
-
* 判断控件的类型,返回当前控件的正确类型
|
|
1623
|
+
value: /**
|
|
1624
|
+
* 判断控件的类型,返回当前控件的正确类型
|
|
1619
1625
|
* */ function assertInstance(instance, types) {
|
|
1620
1626
|
return isString(types) ? instance.type === types : types.includes(instance.type);
|
|
1621
1627
|
}
|
|
1622
1628
|
},
|
|
1623
1629
|
{
|
|
1624
1630
|
key: "assertInstanceIsCustomControl",
|
|
1625
|
-
value: /**
|
|
1626
|
-
* 判断控件或控件类型是一个自定义控件
|
|
1631
|
+
value: /**
|
|
1632
|
+
* 判断控件或控件类型是一个自定义控件
|
|
1627
1633
|
* */ function assertInstanceIsCustomControl(instance) {
|
|
1628
1634
|
return !isBuiltInControls(isString(instance) ? instance : instance.type);
|
|
1629
1635
|
}
|
|
1630
1636
|
},
|
|
1631
1637
|
{
|
|
1632
1638
|
key: "getInstanceRowIndex",
|
|
1633
|
-
value: /**
|
|
1634
|
-
* 获取控件在明细子表中的行下标,
|
|
1635
|
-
* 如果控件在表头内,则返回-1
|
|
1636
|
-
* 如果控件在表内,则返回行下标
|
|
1637
|
-
* 如果控件不在明细表内,则返回undefined
|
|
1639
|
+
value: /**
|
|
1640
|
+
* 获取控件在明细子表中的行下标,
|
|
1641
|
+
* 如果控件在表头内,则返回-1
|
|
1642
|
+
* 如果控件在表内,则返回行下标
|
|
1643
|
+
* 如果控件不在明细表内,则返回undefined
|
|
1638
1644
|
* */ // public getInstanceRowIndex(
|
|
1639
1645
|
// instance: ControlRuntimeInstance<ControlsKeys> | RuntimeControl
|
|
1640
1646
|
// ) {
|