@byteluck-fe/model-driven-engine 1.7.6-bete.14 → 1.7.6-bete.18
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.
|
@@ -480,7 +480,6 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
480
480
|
}
|
|
481
481
|
};
|
|
482
482
|
_proto._handlerArrayUpdate = function _handlerArrayUpdate(state, key, type, args, result) {
|
|
483
|
-
var _this = this;
|
|
484
483
|
var cc = console;
|
|
485
484
|
cc.time("㊗️ _handlerArrayUpdate findItem" + key);
|
|
486
485
|
var subtable = findItem(this.runtime.flatInstances, key);
|
|
@@ -490,11 +489,11 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
490
489
|
var createRows = function(len) {
|
|
491
490
|
// @ts-ignore
|
|
492
491
|
var newRows = [];
|
|
493
|
-
for(
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
}
|
|
492
|
+
// for (let i = 0; i < len; i++) {
|
|
493
|
+
// // @ts-ignore
|
|
494
|
+
// const row = this.listControlCreateRow(subtable, 'subtable-row')
|
|
495
|
+
// row && newRows.push(row)
|
|
496
|
+
// }
|
|
498
497
|
// @ts-ignore
|
|
499
498
|
return newRows;
|
|
500
499
|
};
|
|
@@ -578,6 +577,13 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
578
577
|
var now = Date.now();
|
|
579
578
|
cc.log("㊗️_handlerObjectUpdate findItem " + key, value, oldValue);
|
|
580
579
|
cc.time("㊗️_handlerObjectUpdate findItem " + key + " " + now);
|
|
580
|
+
// 1. header -> instance
|
|
581
|
+
// 2. 如何判断应该 给 subtableInstance.children中 push
|
|
582
|
+
// JUTODO
|
|
583
|
+
// 1. 修改生成的key的规则,去除[index]
|
|
584
|
+
// 2. 新增一个查找 subtable上的 _rowPropsList 的对应key instance的函数A
|
|
585
|
+
// 3. 判断 当前的key 应该调用 A 或者是 findItem
|
|
586
|
+
// 4.
|
|
581
587
|
var instance = findItem(this.runtime.flatInstances, key);
|
|
582
588
|
cc.timeEnd("㊗️_handlerObjectUpdate findItem " + key + " " + now);
|
|
583
589
|
if (!instance) {
|
|
@@ -586,18 +592,26 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
586
592
|
var index = this.getInstanceRowIndex(instance);
|
|
587
593
|
var options = eventOptionsTemp || {};
|
|
588
594
|
if (_instanceof(instance, RuntimeListControl)) {
|
|
589
|
-
|
|
590
|
-
_instance_children;
|
|
595
|
+
if (instance.controlType) {}
|
|
591
596
|
instance.children.length = 0;
|
|
592
597
|
var newValue = value;
|
|
593
598
|
// @ts-ignore
|
|
594
599
|
var newRows = [];
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
600
|
+
// JUTODO 这里template就是headers对应的 subtable-columns
|
|
601
|
+
// JUTODO 需要新增一种 subtableRow 的数据结构
|
|
602
|
+
// 同时,可以以其中一行进行缓存,作为 subtable-headers-columns 的公共列的instance
|
|
603
|
+
// 究竟要去 subtableRow 中取 props 还是 去 公共header instance 取?
|
|
604
|
+
// 答:始终应该取 subtableRow 的props,因为它是从 subtable-headers-columns 里copy下来的,并且可能会被同行的其他列修改
|
|
605
|
+
// const rowID =
|
|
606
|
+
// const subtableRow = genSubTableRowInstanceFromHeaders(instance.props.headers)
|
|
607
|
+
// instance.setRowPropsList()
|
|
608
|
+
// for (let i = 0; i < newValue.length; i++) {
|
|
609
|
+
// // @ts-ignore
|
|
610
|
+
// const row = this.listControlCreateRow(instance, 'subtable-row')
|
|
611
|
+
// row && newRows.push(row)
|
|
612
|
+
// }
|
|
613
|
+
// @ts-ignore
|
|
614
|
+
// instance.children.push(...newRows)
|
|
601
615
|
this.runtime.getFlatInstances();
|
|
602
616
|
// 这里已经能拿到控件实例,所以在这里触发setStates,触发每一行每一个控件的change事件
|
|
603
617
|
// for (let i = 0; i < newValue.length; i++) {
|
|
@@ -644,20 +658,21 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
644
658
|
var row = this.runtime.createControlInstance(rowType);
|
|
645
659
|
if (!row) return;
|
|
646
660
|
if (_instanceof(row, RuntimeLayoutControl)) {
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
(_row_children = row.children).push.apply(_row_children, _toConsumableArray(columns));
|
|
661
|
+
// const template = JSONCopy(instance.props.headers) as any
|
|
662
|
+
// @ts-ignore
|
|
663
|
+
// const columns = this.createControl(template) as unknown as any[]
|
|
664
|
+
// row.children.push(...columns)
|
|
652
665
|
}
|
|
653
666
|
return row;
|
|
654
667
|
};
|
|
655
668
|
_proto.listControlAddRow = function listControlAddRow(instance) {
|
|
656
669
|
var // @ts-ignore
|
|
657
670
|
rowType = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "subtable-row";
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
671
|
+
// JUTODO 这似乎是个二开api
|
|
672
|
+
throw new Error("该api已废弃");
|
|
673
|
+
// const row = this.listControlCreateRow(instance, rowType)
|
|
674
|
+
// if (!row) return
|
|
675
|
+
// instance.children.push(row)
|
|
661
676
|
};
|
|
662
677
|
// payload应该是runtimeSchema和value,然后通过runTimeSchema去找需要修改的data里边的key
|
|
663
678
|
_proto.emit = function emit(eventKey, payload) {
|
|
@@ -1038,6 +1053,7 @@ var Engine = /*#__PURE__*/ function(Watcher) {
|
|
|
1038
1053
|
var _this = this;
|
|
1039
1054
|
this.debugLog("engine setData方法执行,参数为%o,%o。", dataSet, options);
|
|
1040
1055
|
var newState = {};
|
|
1056
|
+
debugger;
|
|
1041
1057
|
Object.keys(dataSet).map(function(dataCode) {
|
|
1042
1058
|
var entity = dataSet[dataCode];
|
|
1043
1059
|
if (Array.isArray(entity)) {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// import { RuntimeSubTableColumnControl } from '@byteluck-fe/model-driven-core'
|
|
2
|
+
// import { RuntimeControl } from '@byteluck-fe/model-driven-core'
|
|
3
|
+
import cloneDeep from "lodash.clonedeep";
|
|
4
|
+
export function genSubTableRowInstanceFromHeaders(// headers: RuntimeSubTableColumnControl[]
|
|
5
|
+
headers) {
|
|
6
|
+
var subtableRow = headers.reduce(function(pre, cur) {
|
|
7
|
+
var children = cur.children;
|
|
8
|
+
children.forEach(function(control) {
|
|
9
|
+
pre[control.id] = cloneDeep(control.props);
|
|
10
|
+
});
|
|
11
|
+
return pre;
|
|
12
|
+
}, {});
|
|
13
|
+
return subtableRow;
|
|
14
|
+
}
|