@byteluck-fe/model-driven-engine 1.7.6-bete.13 → 1.7.6-bete.17

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(var i = 0; i < len; i++){
494
- // @ts-ignore
495
- var row = _this.listControlCreateRow(subtable, "subtable-row");
496
- row && newRows.push(row);
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,27 @@ var Engine = /*#__PURE__*/ function(Watcher) {
586
592
  var index = this.getInstanceRowIndex(instance);
587
593
  var options = eventOptionsTemp || {};
588
594
  if (_instanceof(instance, RuntimeListControl)) {
589
- var // @ts-ignore
590
- _instance_children;
595
+ // if (instance) {
596
+ // }
591
597
  instance.children.length = 0;
592
598
  var newValue = value;
593
599
  // @ts-ignore
594
600
  var newRows = [];
595
- for(var i = 0; i < newValue.length; i++){
596
- // @ts-ignore
597
- var row = this.listControlCreateRow(instance, "subtable-row");
598
- row && newRows.push(row);
599
- }
600
- (_instance_children = instance.children).push.apply(_instance_children, _toConsumableArray(newRows));
601
+ // JUTODO 这里template就是headers对应的 subtable-columns
602
+ // JUTODO 需要新增一种 subtableRow 的数据结构
603
+ // 同时,可以以其中一行进行缓存,作为 subtable-headers-columns 的公共列的instance
604
+ // 究竟要去 subtableRow 中取 props 还是 去 公共header instance 取?
605
+ // 答:始终应该取 subtableRow 的props,因为它是从 subtable-headers-columns 里copy下来的,并且可能会被同行的其他列修改
606
+ // const rowID =
607
+ // const subtableRow = genSubTableRowInstanceFromHeaders(instance.props.headers)
608
+ // instance.setRowPropsList()
609
+ // for (let i = 0; i < newValue.length; i++) {
610
+ // // @ts-ignore
611
+ // const row = this.listControlCreateRow(instance, 'subtable-row')
612
+ // row && newRows.push(row)
613
+ // }
614
+ // @ts-ignore
615
+ // instance.children.push(...newRows)
601
616
  this.runtime.getFlatInstances();
602
617
  // 这里已经能拿到控件实例,所以在这里触发setStates,触发每一行每一个控件的change事件
603
618
  // for (let i = 0; i < newValue.length; i++) {
@@ -644,20 +659,21 @@ var Engine = /*#__PURE__*/ function(Watcher) {
644
659
  var row = this.runtime.createControlInstance(rowType);
645
660
  if (!row) return;
646
661
  if (_instanceof(row, RuntimeLayoutControl)) {
647
- var _row_children;
648
- var template = JSONCopy(instance.props.headers);
649
- // @ts-ignore
650
- var columns = this.createControl(template);
651
- (_row_children = row.children).push.apply(_row_children, _toConsumableArray(columns));
662
+ // const template = JSONCopy(instance.props.headers) as any
663
+ // @ts-ignore
664
+ // const columns = this.createControl(template) as unknown as any[]
665
+ // row.children.push(...columns)
652
666
  }
653
667
  return row;
654
668
  };
655
669
  _proto.listControlAddRow = function listControlAddRow(instance) {
656
670
  var // @ts-ignore
657
671
  rowType = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "subtable-row";
658
- var row = this.listControlCreateRow(instance, rowType);
659
- if (!row) return;
660
- instance.children.push(row);
672
+ // JUTODO 这似乎是个二开api
673
+ throw new Error("该api已废弃");
674
+ // const row = this.listControlCreateRow(instance, rowType)
675
+ // if (!row) return
676
+ // instance.children.push(row)
661
677
  };
662
678
  // payload应该是runtimeSchema和value,然后通过runTimeSchema去找需要修改的data里边的key
663
679
  _proto.emit = function emit(eventKey, payload) {
@@ -1038,6 +1054,7 @@ var Engine = /*#__PURE__*/ function(Watcher) {
1038
1054
  var _this = this;
1039
1055
  this.debugLog("engine setData方法执行,参数为%o,%o。", dataSet, options);
1040
1056
  var newState = {};
1057
+ debugger;
1041
1058
  Object.keys(dataSet).map(function(dataCode) {
1042
1059
  var entity = dataSet[dataCode];
1043
1060
  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
+ }