@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(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,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
- var // @ts-ignore
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
- 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));
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
- 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));
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
- var row = this.listControlCreateRow(instance, rowType);
659
- if (!row) return;
660
- instance.children.push(row);
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
+ }