@byteluck-fe/model-driven-engine 2.8.1-beta1 → 2.9.0-alpha.1

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.
@@ -180,26 +180,33 @@ export var Runtime = /*#__PURE__*/ function(RegisterControls) {
180
180
  {
181
181
  key: "allRules",
182
182
  get: function get() {
183
- var antdRules = {};
184
- var ruleItems = {};
183
+ var defaultAntdRules = {};
184
+ var defaultRule = {};
185
+ var defaultFieldRules = {};
185
186
  loopDataViewControl(this._instance, function(dataView) {
186
187
  var result = Runtime.staticGetRules(dataView.type, dataView.props);
187
- ruleItems[dataView.id] = JSONCopy(result[0]);
188
- antdRules[dataView.id] = JSONCopy(result[0]);
188
+ defaultRule[dataView.id] = JSONCopy(result[0]);
189
+ defaultAntdRules[dataView.id] = JSONCopy(result[0]);
190
+ defaultFieldRules[dataView.id] = JSONCopy(result[0]);
189
191
  loopFormControl(dataView.children, function(item) {
190
192
  // if (
191
193
  // item instanceof RuntimeFormControl ||
192
194
  // item instanceof RuntimeListControl
193
195
  // ) {
194
196
  if (item.controlType === CONTROL_BASE_TYPE.FORM || item.controlType === CONTROL_BASE_TYPE.LIST) {
195
- buildControlRules(ruleItems[dataView.id].fields, item);
196
- buildControlAntdRules(antdRules[dataView.id].fields, item);
197
+ buildControlRules(defaultRule[dataView.id].fields, item, true);
198
+ buildControlAntdRules(defaultAntdRules[dataView.id].fields, item, true);
199
+ buildFieldCodeRules(defaultFieldRules[dataView.id].fields, item, true);
197
200
  }
198
201
  });
199
202
  });
200
203
  return {
201
- rules: ruleItems,
202
- antdRules: antdRules
204
+ rules: this.rules,
205
+ antdRules: this.antdRules,
206
+ fieldCodeRules: this.fieldCodeRules,
207
+ defaultAntdRules: defaultAntdRules,
208
+ defaultRule: defaultRule,
209
+ defaultFieldRules: defaultFieldRules
203
210
  };
204
211
  }
205
212
  },
@@ -307,6 +314,7 @@ function hasHeaderOrFooterControl(control, checkType) {
307
314
  }
308
315
  function buildControlRules(data, // @ts-ignore
309
316
  item) {
317
+ var isSubtableDefaultRules = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
310
318
  if (getControlIsHide(item)) {
311
319
  return;
312
320
  }
@@ -322,7 +330,11 @@ item) {
322
330
  type: "array",
323
331
  fields: {}
324
332
  };
325
- item.children.forEach(function(row, index) {
333
+ (isSubtableDefaultRules === true ? [
334
+ {
335
+ children: item.props.headers
336
+ }
337
+ ] : item.children).forEach(function(row, index) {
326
338
  loopFormSchema(row.children, function(formControl) {
327
339
  if (itemRules.fields) {
328
340
  if (!itemRules.fields[index]) {
@@ -347,6 +359,7 @@ item) {
347
359
  }
348
360
  function buildFieldCodeRules(data, // @ts-ignore
349
361
  item) {
362
+ var isSubtableDefaultRules = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
350
363
  if (getControlIsHide(item)) {
351
364
  return;
352
365
  }
@@ -378,7 +391,11 @@ item) {
378
391
  type: "array",
379
392
  fields: {}
380
393
  };
381
- item.children.forEach(function(row, index) {
394
+ (isSubtableDefaultRules === true ? [
395
+ {
396
+ children: item.props.headers
397
+ }
398
+ ] : item.children).forEach(function(row, index) {
382
399
  loopFormSchema(row.children, function(formControl) {
383
400
  if (itemRules.fields) {
384
401
  if (!itemRules.fields[index]) {
@@ -425,6 +442,7 @@ function findFields(childResult) {
425
442
  }
426
443
  function buildControlAntdRules(antdRules, // @ts-ignore
427
444
  item) {
445
+ var isSubtableDefaultRules = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
428
446
  if (getControlIsHide(item)) {
429
447
  return;
430
448
  }
@@ -435,7 +453,11 @@ item) {
435
453
  antdRules[item.id] = result;
436
454
  } else if (item.type === CONTROL_TYPE.SUBTABLE && item.children.length) {
437
455
  antdRules[item.id] = [];
438
- item.children.forEach(function(row) {
456
+ (isSubtableDefaultRules === true ? [
457
+ {
458
+ children: item.props.headers
459
+ }
460
+ ] : item.children).forEach(function(row) {
439
461
  var rules = {};
440
462
  loopFormSchema(row.children, function(formControl) {
441
463
  // rules[formControl.id] = (formControl as RuntimeFormControl).rules
@@ -77,10 +77,9 @@ var Store = /*#__PURE__*/ function() {
77
77
  value: function setState(controlId, value, rowIndex) {
78
78
  var _this = this;
79
79
  var controlInfo = this.controlIdMapping[controlId];
80
- var noProxyValue = JSONCopy(value);
81
80
  if (controlInfo !== undefined) {
82
81
  //qiyu 按照对象赋值,Object.assign会触发多次key的change事件
83
- this.state[controlInfo.dataView][controlId] = noProxyValue;
82
+ this.state[controlInfo.dataView][controlId] = value;
84
83
  // if (
85
84
  // controlInfo.dataBind instanceof ObjectDataBind &&
86
85
  // isPlainObject(value)
@@ -99,7 +98,7 @@ var Store = /*#__PURE__*/ function() {
99
98
  Object.keys(children).map(function(childControlId) {
100
99
  if (childControlId === controlId) {
101
100
  if (_this.state[dataView][subtableId][rowIndex]) {
102
- _this.state[dataView][subtableId][rowIndex][controlId] = noProxyValue;
101
+ _this.state[dataView][subtableId][rowIndex][controlId] = value;
103
102
  }
104
103
  }
105
104
  });
@@ -107,7 +106,7 @@ var Store = /*#__PURE__*/ function() {
107
106
  });
108
107
  } else {
109
108
  //不存在的 controlId,直接被挂载到外部key
110
- this.state[controlId] = noProxyValue;
109
+ this.state[controlId] = value;
111
110
  }
112
111
  }
113
112
  }
@@ -24,7 +24,7 @@ function _unsupported_iterable_to_array(o, minLen) {
24
24
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
25
25
  }
26
26
  var cc = console;
27
- import { CONTROL_BASE_TYPE, error, logerror, JSONCopy } from "@byteluck-fe/model-driven-shared";
27
+ import { CONTROL_BASE_TYPE, error, logerror } from "@byteluck-fe/model-driven-shared";
28
28
  var proxyArrayApi = [
29
29
  "splice",
30
30
  "push",
@@ -125,7 +125,7 @@ function ArrayHandler(target, propertyKey, value, thisKey, callback) {
125
125
  return Reflect.get(target, propertyKey, receiver);
126
126
  },
127
127
  set: function set(target, propertyKey, value, receiver) {
128
- var newValue = JSONCopy(value);
128
+ var newValue = value;
129
129
  // @ts-ignore
130
130
  var oldValue = target[propertyKey];
131
131
  var concatKey = thisKey === "" ? propertyKey : thisKey + "." + propertyKey;
@@ -142,14 +142,14 @@ function ArrayHandler(target, propertyKey, value, thisKey, callback) {
142
142
  }
143
143
  }
144
144
  var _reProxyState;
145
- newValue = (_reProxyState = reProxyState(newValue)) !== null && _reProxyState !== void 0 ? _reProxyState : newValue;
145
+ newValue = (_reProxyState = reProxyState(value)) !== null && _reProxyState !== void 0 ? _reProxyState : newValue;
146
146
  // 先设置值,然后再进行触发回调,确保回调内拿到的是最新的值
147
147
  var setResult;
148
148
  // TODO 数组拦截操作需要重构,优化现有逻辑
149
149
  // TODO 直接操作下标改动明细表时,没有对行数据进行checker
150
150
  if (Array.isArray(target)) {
151
151
  // 操作数组的时候,不需要使用拼接的thisKey,先判断执行的是否是违规操作,违规操作的话会报错,不允许继续执行,正常操作的话,返回一个回调函数,用于在值修改完之后触发
152
- var nextHandler = ArrayHandler(target, propertyKey, newValue, thisKey, callback);
152
+ var nextHandler = ArrayHandler(target, propertyKey, value, thisKey, callback);
153
153
  setResult = Reflect.set(target, propertyKey, newValue, receiver);
154
154
  if (nextHandler) {
155
155
  nextHandler();
@@ -171,7 +171,7 @@ function ArrayHandler(target, propertyKey, value, thisKey, callback) {
171
171
  return true;
172
172
  }
173
173
  setResult = Reflect.set(target, propertyKey, newValue, receiver);
174
- callback.call(null, target, concatKey, newValue, oldValue);
174
+ callback.call(null, target, concatKey, value, oldValue);
175
175
  }
176
176
  // 不返回falsy 值(即 false、0、null、undefined、空字符串等)
177
177
  //fix: TypeError: Proxy object's 'set' trap returned falsy value for property 'length'
@@ -213,7 +213,7 @@ export var ControlsEventPlugin = /*#__PURE__*/ function() {
213
213
  switch(_state.label){
214
214
  case 0:
215
215
  // 初始化state的时候不触发change事件,必须在engine mounted以后才触发
216
- if ((eventKey === "change" || eventKey === "list-change") && !_this.engine.isMounted) {
216
+ if (eventKey === "change" && !_this.engine.isMounted) {
217
217
  return [
218
218
  2
219
219
  ];
@@ -1,10 +1,4 @@
1
- /*
2
- * @Author: zhaoxiaoyang zhaoxiaoyang@byteluck.com
3
- * @Date: 2022-04-15 14:06:03
4
- * @LastEditors: zhaoxiaoyang zhaoxiaoyang@byteluck.com
5
- * @LastEditTime: 2023-11-30 16:38:47
6
- * @FilePath: /model-driven/packages/engine/src/plugins/StylePlugin.ts
7
- */ function _class_call_check(instance, Constructor) {
1
+ function _class_call_check(instance, Constructor) {
8
2
  if (!(instance instanceof Constructor)) {
9
3
  throw new TypeError("Cannot call a class as a function");
10
4
  }