vxe-table 4.1.16 → 4.1.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.
Files changed (41) hide show
  1. package/es/edit/src/hook.js +20 -10
  2. package/es/grid/src/grid.js +1 -1
  3. package/es/input/src/input.js +46 -32
  4. package/es/radio/src/button.js +25 -9
  5. package/es/radio/src/group.js +1 -0
  6. package/es/radio/src/radio.js +24 -8
  7. package/es/table/src/table.js +25 -4
  8. package/es/v-x-e-table/src/conf.js +10 -1
  9. package/lib/edit/src/hook.js +30 -12
  10. package/lib/edit/src/hook.min.js +1 -1
  11. package/lib/grid/src/grid.js +1 -1
  12. package/lib/grid/src/grid.min.js +1 -1
  13. package/lib/index.umd.js +219 -76
  14. package/lib/index.umd.min.js +1 -1
  15. package/lib/input/src/input.js +62 -35
  16. package/lib/input/src/input.min.js +1 -1
  17. package/lib/radio/src/button.js +36 -12
  18. package/lib/radio/src/button.min.js +1 -1
  19. package/lib/radio/src/group.js +6 -0
  20. package/lib/radio/src/group.min.js +1 -1
  21. package/lib/radio/src/radio.js +35 -11
  22. package/lib/radio/src/radio.min.js +1 -1
  23. package/lib/table/src/table.js +37 -4
  24. package/lib/table/src/table.min.js +1 -1
  25. package/lib/v-x-e-table/src/conf.js +11 -1
  26. package/lib/v-x-e-table/src/conf.min.js +1 -1
  27. package/package.json +3 -3
  28. package/packages/edit/src/hook.ts +19 -10
  29. package/packages/grid/src/grid.ts +1 -1
  30. package/packages/input/src/input.ts +49 -30
  31. package/packages/radio/src/button.ts +27 -8
  32. package/packages/radio/src/group.ts +1 -0
  33. package/packages/radio/src/radio.ts +26 -7
  34. package/packages/table/src/table.ts +24 -4
  35. package/packages/v-x-e-table/src/conf.ts +10 -1
  36. package/types/input.d.ts +2 -2
  37. package/types/radio-button.d.ts +5 -0
  38. package/types/radio-group.d.ts +5 -0
  39. package/types/radio.d.ts +5 -0
  40. package/types/table.d.ts +4 -0
  41. package/types/v-x-e-table/setup.d.ts +4 -0
@@ -69,18 +69,19 @@ var editHook = {
69
69
  function insertTreeRow(newRecords, isAppend) {
70
70
  var tableFullTreeData = internalData.tableFullTreeData, afterFullData = internalData.afterFullData, fullDataRowIdData = internalData.fullDataRowIdData, fullAllDataRowIdData = internalData.fullAllDataRowIdData;
71
71
  var treeOpts = computeTreeOpts.value;
72
+ var rowField = treeOpts.rowField, parentField = treeOpts.parentField, children = treeOpts.children, mapChildren = treeOpts.mapChildren;
72
73
  var funcName = isAppend ? 'push' : 'unshift';
73
74
  newRecords.forEach(function (item) {
74
- var parentRowId = item[treeOpts.parentField];
75
+ var parentRowId = item[parentField];
75
76
  var rowid = getRowid($xetable, item);
76
- var matchObj = parentRowId ? XEUtils.findTree(tableFullTreeData, function (item) { return parentRowId === item[treeOpts.rowField]; }, treeOpts) : null;
77
+ var matchObj = parentRowId ? XEUtils.findTree(tableFullTreeData, function (item) { return parentRowId === item[rowField]; }, { children: mapChildren }) : null;
77
78
  if (matchObj) {
78
79
  var parentRow = matchObj.item;
79
80
  var parentRest = fullAllDataRowIdData[getRowid($xetable, parentRow)];
80
81
  var parentLevel = parentRest ? parentRest.level : 0;
81
- var parentChilds = parentRow[treeOpts.children];
82
+ var parentChilds = parentRow[children];
82
83
  if (!XEUtils.isArray(parentChilds)) {
83
- parentChilds = parentRow[treeOpts.children] = [];
84
+ parentChilds = parentRow[children] = [];
84
85
  }
85
86
  parentChilds[funcName](item);
86
87
  var rest = { row: item, rowid: rowid, seq: -1, index: -1, _index: -1, $index: -1, items: parentChilds, parent: parent, level: parentLevel + 1 };
@@ -124,7 +125,7 @@ var editHook = {
124
125
  var mergeList = reactData.mergeList, editStore = reactData.editStore;
125
126
  var tableFullTreeData = internalData.tableFullTreeData, afterFullData = internalData.afterFullData, tableFullData = internalData.tableFullData, fullDataRowIdData = internalData.fullDataRowIdData, fullAllDataRowIdData = internalData.fullAllDataRowIdData;
126
127
  var treeOpts = computeTreeOpts.value;
127
- var transform = treeOpts.transform;
128
+ var transform = treeOpts.transform, rowField = treeOpts.rowField, mapChildren = treeOpts.mapChildren;
128
129
  if (!XEUtils.isArray(records)) {
129
130
  records = [records];
130
131
  }
@@ -167,7 +168,7 @@ var editHook = {
167
168
  else {
168
169
  // 如果为虚拟树
169
170
  if (treeConfig && transform) {
170
- var matchObj_1 = XEUtils.findTree(tableFullTreeData, function (item) { return row[treeOpts.rowField] === item[treeOpts.rowField]; }, treeOpts);
171
+ var matchObj_1 = XEUtils.findTree(tableFullTreeData, function (item) { return row[rowField] === item[rowField]; }, { children: mapChildren });
171
172
  if (matchObj_1) {
172
173
  var parentRow_1 = matchObj_1.parent;
173
174
  var parentChilds_1 = matchObj_1.items;
@@ -177,13 +178,13 @@ var editHook = {
177
178
  var rowid = getRowid($xetable, item);
178
179
  if (process.env.NODE_ENV === 'development') {
179
180
  if (item[treeOpts.parentField]) {
180
- if (parentRow_1 && item[treeOpts.parentField] !== parentRow_1[treeOpts.rowField]) {
181
- errLog('vxe.error.errProp', [treeOpts.parentField + "=" + item[treeOpts.parentField], treeOpts.parentField + "=" + parentRow_1[treeOpts.rowField]]);
181
+ if (parentRow_1 && item[treeOpts.parentField] !== parentRow_1[rowField]) {
182
+ errLog('vxe.error.errProp', [treeOpts.parentField + "=" + item[treeOpts.parentField], treeOpts.parentField + "=" + parentRow_1[rowField]]);
182
183
  }
183
184
  }
184
185
  }
185
186
  if (parentRow_1) {
186
- item[treeOpts.parentField] = parentRow_1[treeOpts.rowField];
187
+ item[treeOpts.parentField] = parentRow_1[rowField];
187
188
  }
188
189
  parentChilds_1.splice(matchObj_1.index + i, 0, item);
189
190
  var rest = { row: item, rowid: rowid, seq: -1, index: -1, _index: -1, $index: -1, items: parentChilds_1, parent: parentRow_1, level: parentLevel_1 + 1 };
@@ -202,7 +203,16 @@ var editHook = {
202
203
  if (treeConfig) {
203
204
  throw new Error(getLog('vxe.error.noTree', ['insert']));
204
205
  }
205
- var afIndex_1 = $xetable.findRowIndexOf(afterFullData, row);
206
+ var afIndex_1 = -1;
207
+ // 如果是可视索引
208
+ if (XEUtils.isNumber(row)) {
209
+ if (row < afterFullData.length) {
210
+ afIndex_1 = row;
211
+ }
212
+ }
213
+ else {
214
+ afIndex_1 = $xetable.findRowIndexOf(afterFullData, row);
215
+ }
206
216
  if (afIndex_1 === -1) {
207
217
  throw new Error(errLog('vxe.error.unableInsert'));
208
218
  }
@@ -1059,7 +1059,7 @@ export default defineComponent({
1059
1059
  var proxyOpts = computeProxyOpts.value;
1060
1060
  var formOpts = computeFormOpts.value;
1061
1061
  if (proxyConfig && (data || (proxyOpts.form && formOpts.data))) {
1062
- errLog('errConflicts', ['grid.data', 'grid.proxy-config']);
1062
+ errLog('vxe.error.errConflicts', ['grid.data', 'grid.proxy-config']);
1063
1063
  }
1064
1064
  if (columns && columns.length) {
1065
1065
  $xegrid.loadColumn(columns);
@@ -137,6 +137,13 @@ export default defineComponent({
137
137
  getRefMaps: function () { return refMaps; }
138
138
  };
139
139
  var inputMethods = {};
140
+ var parseDate = function (value, format) {
141
+ var type = props.type;
142
+ if (type === 'time') {
143
+ return toStringTimeDate(value);
144
+ }
145
+ return XEUtils.toStringDate(value, format);
146
+ };
140
147
  var computeIsDateTimeType = computed(function () {
141
148
  var type = props.type;
142
149
  return type === 'time' || type === 'datetime';
@@ -187,18 +194,12 @@ export default defineComponent({
187
194
  return type === 'time' ? 'HH:mm:ss' : (props.valueFormat || (type === 'datetime' ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd'));
188
195
  });
189
196
  var computeDateValue = computed(function () {
190
- var modelValue = props.modelValue, type = props.type;
197
+ var modelValue = props.modelValue;
191
198
  var isDatePickerType = computeIsDatePickerType.value;
192
199
  var dateValueFormat = computeDateValueFormat.value;
193
200
  var val = null;
194
201
  if (modelValue && isDatePickerType) {
195
- var date = void 0;
196
- if (type === 'time') {
197
- date = toStringTimeDate(modelValue);
198
- }
199
- else {
200
- date = XEUtils.toStringDate(modelValue, dateValueFormat);
201
- }
202
+ var date = parseDate(modelValue, dateValueFormat);
202
203
  if (XEUtils.isValidDate(date)) {
203
204
  val = date;
204
205
  }
@@ -283,12 +284,15 @@ export default defineComponent({
283
284
  }
284
285
  return '';
285
286
  });
287
+ var computeFirstDayOfWeek = computed(function () {
288
+ var startDay = props.startDay, startWeek = props.startWeek;
289
+ return XEUtils.toNumber(XEUtils.isNumber(startDay) || XEUtils.isString(startDay) ? startDay : startWeek);
290
+ });
286
291
  var computeWeekDatas = computed(function () {
287
292
  var weeks = [];
288
293
  var isDatePickerType = computeIsDatePickerType.value;
289
294
  if (isDatePickerType) {
290
- var startDay = props.startDay, startWeek = props.startWeek;
291
- var sWeek = XEUtils.toNumber(XEUtils.isNumber(startDay) || XEUtils.isString(startDay) ? startDay : startWeek);
295
+ var sWeek = computeFirstDayOfWeek.value;
292
296
  weeks.push(sWeek);
293
297
  for (var index = 0; index < 6; index++) {
294
298
  if (sWeek >= 6) {
@@ -435,6 +439,7 @@ export default defineComponent({
435
439
  });
436
440
  var computeWeekDates = computed(function () {
437
441
  var dayDatas = computeDayDatas.value;
442
+ var firstDayOfWeek = computeFirstDayOfWeek.value;
438
443
  return dayDatas.map(function (list) {
439
444
  var firstItem = list[0];
440
445
  var item = {
@@ -444,7 +449,7 @@ export default defineComponent({
444
449
  isCurrent: false,
445
450
  isNow: false,
446
451
  isNext: false,
447
- label: XEUtils.getYearWeek(firstItem.date)
452
+ label: XEUtils.getYearWeek(firstItem.date, firstDayOfWeek)
448
453
  };
449
454
  return [item].concat(list);
450
455
  });
@@ -610,18 +615,27 @@ export default defineComponent({
610
615
  var type = props.type;
611
616
  var valueFormat = props.valueFormat;
612
617
  var dateLabelFormat = computeDateLabelFormat.value;
618
+ var firstDayOfWeek = computeFirstDayOfWeek.value;
613
619
  var dValue = null;
614
620
  var dLabel = '';
615
621
  if (value) {
616
- if (type === 'time') {
617
- dValue = toStringTimeDate(value);
618
- }
619
- else {
620
- dValue = XEUtils.toStringDate(value, valueFormat);
621
- }
622
+ dValue = parseDate(value, valueFormat);
622
623
  }
623
624
  if (XEUtils.isValidDate(dValue)) {
624
- dLabel = XEUtils.toDateString(dValue, dateLabelFormat);
625
+ dLabel = XEUtils.toDateString(dValue, dateLabelFormat, { firstDay: firstDayOfWeek });
626
+ // 由于年份和第几周是冲突的行为,所以需要特殊处理,判断是否跨年
627
+ if (dateLabelFormat && type === 'week') {
628
+ var firstWeekDate = XEUtils.getWhatWeek(dValue, 0, firstDayOfWeek, firstDayOfWeek);
629
+ if (firstWeekDate.getFullYear() < dValue.getFullYear()) {
630
+ var yyIndex = dateLabelFormat.indexOf('yyyy');
631
+ if (yyIndex > -1) {
632
+ var yyNum = Number(dLabel.substring(yyIndex, yyIndex + 4));
633
+ if (yyNum && !isNaN(yyNum)) {
634
+ dLabel = dLabel.replace("" + yyNum, "" + (yyNum - 1));
635
+ }
636
+ }
637
+ }
638
+ }
625
639
  }
626
640
  else {
627
641
  dValue = null;
@@ -680,16 +694,17 @@ export default defineComponent({
680
694
  var datetimePanelValue = reactData.datetimePanelValue;
681
695
  var isDateTimeType = computeIsDateTimeType.value;
682
696
  var dateValueFormat = computeDateValueFormat.value;
697
+ var firstDayOfWeek = computeFirstDayOfWeek.value;
683
698
  if (props.type === 'week') {
684
699
  var sWeek = XEUtils.toNumber(props.selectDay);
685
- date = XEUtils.getWhatWeek(date, 0, sWeek);
700
+ date = XEUtils.getWhatWeek(date, 0, sWeek, firstDayOfWeek);
686
701
  }
687
702
  else if (isDateTimeType) {
688
703
  date.setHours(datetimePanelValue.getHours());
689
704
  date.setMinutes(datetimePanelValue.getMinutes());
690
705
  date.setSeconds(datetimePanelValue.getSeconds());
691
706
  }
692
- var inpVal = XEUtils.toDateString(date, dateValueFormat);
707
+ var inpVal = XEUtils.toDateString(date, dateValueFormat, { firstDay: firstDayOfWeek });
693
708
  dateCheckMonth(date);
694
709
  if (!XEUtils.isEqual(modelValue, inpVal)) {
695
710
  emitModel(inpVal, { type: 'update' });
@@ -723,13 +738,7 @@ export default defineComponent({
723
738
  }
724
739
  else if (isDatePickerType) {
725
740
  if (inputValue) {
726
- var inpDateVal = void 0;
727
- if (type === 'time') {
728
- inpDateVal = toStringTimeDate(inputValue);
729
- }
730
- else {
731
- inpDateVal = XEUtils.toStringDate(inputValue, dateLabelFormat);
732
- }
741
+ var inpDateVal = parseDate(inputValue, dateLabelFormat);
733
742
  if (XEUtils.isValidDate(inpDateVal)) {
734
743
  if (type === 'time') {
735
744
  inpDateVal = XEUtils.toDateString(inpDateVal, dateLabelFormat);
@@ -740,6 +749,7 @@ export default defineComponent({
740
749
  }
741
750
  else {
742
751
  var isChange = false;
752
+ var firstDayOfWeek = computeFirstDayOfWeek.value;
743
753
  if (type === 'datetime') {
744
754
  var dateValue = computeDateValue.value;
745
755
  if (inputValue !== XEUtils.toDateString(dateValue, dateLabelFormat) || inputValue !== XEUtils.toDateString(inpDateVal, dateLabelFormat)) {
@@ -752,7 +762,7 @@ export default defineComponent({
752
762
  else {
753
763
  isChange = true;
754
764
  }
755
- reactData.inputValue = XEUtils.toDateString(inpDateVal, dateLabelFormat);
765
+ reactData.inputValue = XEUtils.toDateString(inpDateVal, dateLabelFormat, { firstDay: firstDayOfWeek });
756
766
  if (isChange) {
757
767
  dateChange(inpDateVal);
758
768
  }
@@ -1192,17 +1202,18 @@ export default defineComponent({
1192
1202
  }
1193
1203
  else {
1194
1204
  var offsetDay = datePanelValue || XEUtils.getWhatDay(Date.now(), 0, 'first');
1205
+ var firstDayOfWeek = computeFirstDayOfWeek.value;
1195
1206
  if (isLeftArrow) {
1196
1207
  offsetDay = XEUtils.getWhatDay(offsetDay, -1);
1197
1208
  }
1198
1209
  else if (isUpArrow) {
1199
- offsetDay = XEUtils.getWhatWeek(offsetDay, -1);
1210
+ offsetDay = XEUtils.getWhatWeek(offsetDay, -1, firstDayOfWeek);
1200
1211
  }
1201
1212
  else if (isRightArrow) {
1202
1213
  offsetDay = XEUtils.getWhatDay(offsetDay, 1);
1203
1214
  }
1204
1215
  else if (isDwArrow) {
1205
- offsetDay = XEUtils.getWhatWeek(offsetDay, 1);
1216
+ offsetDay = XEUtils.getWhatWeek(offsetDay, 1, firstDayOfWeek);
1206
1217
  }
1207
1218
  dateMoveDay(offsetDay);
1208
1219
  }
@@ -2037,8 +2048,11 @@ export default defineComponent({
2037
2048
  initValue();
2038
2049
  });
2039
2050
  watch(computeDateLabelFormat, function () {
2040
- dateParseValue(reactData.datePanelValue);
2041
- reactData.inputValue = reactData.datePanelLabel;
2051
+ var isDatePickerType = computeIsDatePickerType.value;
2052
+ if (isDatePickerType) {
2053
+ dateParseValue(reactData.datePanelValue);
2054
+ reactData.inputValue = reactData.datePanelLabel;
2055
+ }
2042
2056
  });
2043
2057
  nextTick(function () {
2044
2058
  GlobalEvent.on($xeinput, 'mousewheel', handleGlobalMousewheelEvent);
@@ -11,7 +11,8 @@ export default defineComponent({
11
11
  title: [String, Number],
12
12
  content: [String, Number],
13
13
  disabled: Boolean,
14
- size: { type: String, default: function () { return GlobalConfig.radio.size || GlobalConfig.size; } }
14
+ strict: { type: Boolean, default: function () { return GlobalConfig.radioButton.strict; } },
15
+ size: { type: String, default: function () { return GlobalConfig.radioButton.size || GlobalConfig.size; } }
15
16
  },
16
17
  emits: [
17
18
  'update:modelValue',
@@ -34,6 +35,9 @@ export default defineComponent({
34
35
  var computeName = computed(function () {
35
36
  return $xeradiogroup ? $xeradiogroup.name : null;
36
37
  });
38
+ var computeStrict = computed(function () {
39
+ return $xeradiogroup ? $xeradiogroup.props.strict : props.strict;
40
+ });
37
41
  var computeChecked = computed(function () {
38
42
  var modelValue = props.modelValue, label = props.label;
39
43
  return $xeradiogroup ? $xeradiogroup.props.modelValue === label : modelValue === label;
@@ -44,16 +48,27 @@ export default defineComponent({
44
48
  }
45
49
  };
46
50
  Object.assign($xeradiobutton, radioButtonMethods);
51
+ var handleValue = function (label, evnt) {
52
+ if ($xeradiogroup) {
53
+ $xeradiogroup.handleChecked({ label: label }, evnt);
54
+ }
55
+ else {
56
+ emit('update:modelValue', label);
57
+ radioButtonMethods.dispatchEvent('change', { label: label }, evnt);
58
+ }
59
+ };
47
60
  var changeEvent = function (evnt) {
48
- var label = props.label;
49
61
  var isDisabled = computeDisabled.value;
50
62
  if (!isDisabled) {
51
- if ($xeradiogroup) {
52
- $xeradiogroup.handleChecked({ label: label }, evnt);
53
- }
54
- else {
55
- emit('update:modelValue', label);
56
- radioButtonMethods.dispatchEvent('change', { label: label }, evnt);
63
+ handleValue(props.label, evnt);
64
+ }
65
+ };
66
+ var clickEvent = function (evnt) {
67
+ var isDisabled = computeDisabled.value;
68
+ var isStrict = computeStrict.value;
69
+ if (!isDisabled && !isStrict) {
70
+ if (props.label === ($xeradiogroup ? $xeradiogroup.props.modelValue : props.modelValue)) {
71
+ handleValue(null, evnt);
57
72
  }
58
73
  }
59
74
  };
@@ -76,7 +91,8 @@ export default defineComponent({
76
91
  name: name,
77
92
  checked: checked,
78
93
  disabled: isDisabled,
79
- onChange: changeEvent
94
+ onChange: changeEvent,
95
+ onClick: clickEvent
80
96
  }),
81
97
  h('span', {
82
98
  class: 'vxe-radio--label'
@@ -7,6 +7,7 @@ export default defineComponent({
7
7
  props: {
8
8
  modelValue: [String, Number, Boolean],
9
9
  disabled: Boolean,
10
+ strict: { type: Boolean, default: function () { return GlobalConfig.radio.strict; } },
10
11
  size: { type: String, default: function () { return GlobalConfig.radio.size || GlobalConfig.size; } }
11
12
  },
12
13
  emits: [
@@ -12,6 +12,7 @@ export default defineComponent({
12
12
  content: [String, Number],
13
13
  disabled: Boolean,
14
14
  name: String,
15
+ strict: { type: Boolean, default: function () { return GlobalConfig.radio.strict; } },
15
16
  size: { type: String, default: function () { return GlobalConfig.radio.size || GlobalConfig.size; } }
16
17
  },
17
18
  emits: [
@@ -35,20 +36,34 @@ export default defineComponent({
35
36
  var computeName = computed(function () {
36
37
  return $xeradiogroup ? $xeradiogroup.name : props.name;
37
38
  });
39
+ var computeStrict = computed(function () {
40
+ return $xeradiogroup ? $xeradiogroup.props.strict : props.strict;
41
+ });
38
42
  var computeChecked = computed(function () {
39
43
  var modelValue = props.modelValue, label = props.label;
40
44
  return $xeradiogroup ? $xeradiogroup.props.modelValue === label : modelValue === label;
41
45
  });
46
+ var handleValue = function (label, evnt) {
47
+ if ($xeradiogroup) {
48
+ $xeradiogroup.handleChecked({ label: label }, evnt);
49
+ }
50
+ else {
51
+ emit('update:modelValue', label);
52
+ radioMethods.dispatchEvent('change', { label: label }, evnt);
53
+ }
54
+ };
42
55
  var changeEvent = function (evnt) {
43
- var label = props.label;
44
56
  var isDisabled = computeDisabled.value;
45
57
  if (!isDisabled) {
46
- if ($xeradiogroup) {
47
- $xeradiogroup.handleChecked({ label: label }, evnt);
48
- }
49
- else {
50
- emit('update:modelValue', label);
51
- radioMethods.dispatchEvent('change', { label: label }, evnt);
58
+ handleValue(props.label, evnt);
59
+ }
60
+ };
61
+ var clickEvent = function (evnt) {
62
+ var isDisabled = computeDisabled.value;
63
+ var isStrict = computeStrict.value;
64
+ if (!isDisabled && !isStrict) {
65
+ if (props.label === ($xeradiogroup ? $xeradiogroup.props.modelValue : props.modelValue)) {
66
+ handleValue(null, evnt);
52
67
  }
53
68
  }
54
69
  };
@@ -77,7 +92,8 @@ export default defineComponent({
77
92
  name: name,
78
93
  checked: checked,
79
94
  disabled: isDisabled,
80
- onChange: changeEvent
95
+ onChange: changeEvent,
96
+ onClick: clickEvent
81
97
  }),
82
98
  h('span', {
83
99
  class: 'vxe-radio--icon'
@@ -2741,15 +2741,16 @@ export default defineComponent({
2741
2741
  */
2742
2742
  getCheckboxRecords: function (isFull) {
2743
2743
  var treeConfig = props.treeConfig;
2744
- var tableFullData = internalData.tableFullData, afterFullData = internalData.afterFullData;
2744
+ var tableFullData = internalData.tableFullData, afterFullData = internalData.afterFullData, afterTreeFullData = internalData.afterTreeFullData, tableFullTreeData = internalData.tableFullTreeData;
2745
2745
  var treeOpts = computeTreeOpts.value;
2746
2746
  var checkboxOpts = computeCheckboxOpts.value;
2747
+ var transform = treeOpts.transform, children = treeOpts.children, mapChildren = treeOpts.mapChildren;
2747
2748
  var property = checkboxOpts.checkField;
2748
2749
  var rowList = [];
2749
- var currTableData = isFull ? tableFullData : afterFullData;
2750
+ var currTableData = isFull ? (transform ? tableFullTreeData : tableFullData) : (transform ? afterTreeFullData : afterFullData);
2750
2751
  if (property) {
2751
2752
  if (treeConfig) {
2752
- rowList = XEUtils.filterTree(currTableData, function (row) { return XEUtils.get(row, property); }, treeOpts);
2753
+ rowList = XEUtils.filterTree(currTableData, function (row) { return XEUtils.get(row, property); }, { children: transform ? mapChildren : children });
2753
2754
  }
2754
2755
  else {
2755
2756
  rowList = currTableData.filter(function (row) { return XEUtils.get(row, property); });
@@ -2758,7 +2759,7 @@ export default defineComponent({
2758
2759
  else {
2759
2760
  var selection_1 = reactData.selection;
2760
2761
  if (treeConfig) {
2761
- rowList = XEUtils.filterTree(currTableData, function (row) { return $xetable.findRowIndexOf(selection_1, row) > -1; }, treeOpts);
2762
+ rowList = XEUtils.filterTree(currTableData, function (row) { return $xetable.findRowIndexOf(selection_1, row) > -1; }, { children: transform ? mapChildren : children });
2762
2763
  }
2763
2764
  else {
2764
2765
  rowList = currTableData.filter(function (row) { return $xetable.findRowIndexOf(selection_1, row) > -1; });
@@ -2766,6 +2767,26 @@ export default defineComponent({
2766
2767
  }
2767
2768
  return rowList;
2768
2769
  },
2770
+ /**
2771
+ * 只对 tree-config 有效,获取行的父级
2772
+ */
2773
+ getParentRow: function (rowOrRowid) {
2774
+ var treeConfig = props.treeConfig;
2775
+ var fullDataRowIdData = internalData.fullDataRowIdData;
2776
+ if (rowOrRowid && treeConfig) {
2777
+ var rowid = void 0;
2778
+ if (XEUtils.isString(rowOrRowid)) {
2779
+ rowid = rowOrRowid;
2780
+ }
2781
+ else {
2782
+ rowid = getRowid($xetable, rowOrRowid);
2783
+ }
2784
+ if (rowid) {
2785
+ return fullDataRowIdData[rowid] ? fullDataRowIdData[rowid].parent : null;
2786
+ }
2787
+ }
2788
+ return null;
2789
+ },
2769
2790
  /**
2770
2791
  * 根据行的唯一主键获取行
2771
2792
  * @param {String/Number} rowid 行主键
@@ -284,7 +284,16 @@ var GlobalConfig = {
284
284
  // transfer: false
285
285
  },
286
286
  radio: {
287
- // size: null
287
+ // size: null,
288
+ strict: true
289
+ },
290
+ radioButton: {
291
+ // size: null,
292
+ strict: true
293
+ },
294
+ radioGroup: {
295
+ // size: null,
296
+ strict: true
288
297
  },
289
298
  checkbox: {
290
299
  // size: null
@@ -118,22 +118,28 @@ var editHook = {
118
118
  fullDataRowIdData = internalData.fullDataRowIdData,
119
119
  fullAllDataRowIdData = internalData.fullAllDataRowIdData;
120
120
  var treeOpts = computeTreeOpts.value;
121
+ var rowField = treeOpts.rowField,
122
+ parentField = treeOpts.parentField,
123
+ children = treeOpts.children,
124
+ mapChildren = treeOpts.mapChildren;
121
125
  var funcName = isAppend ? 'push' : 'unshift';
122
126
  newRecords.forEach(function (item) {
123
- var parentRowId = item[treeOpts.parentField];
127
+ var parentRowId = item[parentField];
124
128
  var rowid = (0, _util.getRowid)($xetable, item);
125
129
  var matchObj = parentRowId ? _xeUtils.default.findTree(tableFullTreeData, function (item) {
126
- return parentRowId === item[treeOpts.rowField];
127
- }, treeOpts) : null;
130
+ return parentRowId === item[rowField];
131
+ }, {
132
+ children: mapChildren
133
+ }) : null;
128
134
 
129
135
  if (matchObj) {
130
136
  var parentRow = matchObj.item;
131
137
  var parentRest = fullAllDataRowIdData[(0, _util.getRowid)($xetable, parentRow)];
132
138
  var parentLevel = parentRest ? parentRest.level : 0;
133
- var parentChilds = parentRow[treeOpts.children];
139
+ var parentChilds = parentRow[children];
134
140
 
135
141
  if (!_xeUtils.default.isArray(parentChilds)) {
136
- parentChilds = parentRow[treeOpts.children] = [];
142
+ parentChilds = parentRow[children] = [];
137
143
  }
138
144
 
139
145
  parentChilds[funcName](item);
@@ -206,7 +212,9 @@ var editHook = {
206
212
  fullDataRowIdData = internalData.fullDataRowIdData,
207
213
  fullAllDataRowIdData = internalData.fullAllDataRowIdData;
208
214
  var treeOpts = computeTreeOpts.value;
209
- var transform = treeOpts.transform;
215
+ var transform = treeOpts.transform,
216
+ rowField = treeOpts.rowField,
217
+ mapChildren = treeOpts.mapChildren;
210
218
 
211
219
  if (!_xeUtils.default.isArray(records)) {
212
220
  records = [records];
@@ -254,8 +262,10 @@ var editHook = {
254
262
  // 如果为虚拟树
255
263
  if (treeConfig && transform) {
256
264
  var matchObj_1 = _xeUtils.default.findTree(tableFullTreeData, function (item) {
257
- return row[treeOpts.rowField] === item[treeOpts.rowField];
258
- }, treeOpts);
265
+ return row[rowField] === item[rowField];
266
+ }, {
267
+ children: mapChildren
268
+ });
259
269
 
260
270
  if (matchObj_1) {
261
271
  var parentRow_1 = matchObj_1.parent;
@@ -267,14 +277,14 @@ var editHook = {
267
277
 
268
278
  if (process.env.NODE_ENV === 'development') {
269
279
  if (item[treeOpts.parentField]) {
270
- if (parentRow_1 && item[treeOpts.parentField] !== parentRow_1[treeOpts.rowField]) {
271
- (0, _utils.errLog)('vxe.error.errProp', [treeOpts.parentField + "=" + item[treeOpts.parentField], treeOpts.parentField + "=" + parentRow_1[treeOpts.rowField]]);
280
+ if (parentRow_1 && item[treeOpts.parentField] !== parentRow_1[rowField]) {
281
+ (0, _utils.errLog)('vxe.error.errProp', [treeOpts.parentField + "=" + item[treeOpts.parentField], treeOpts.parentField + "=" + parentRow_1[rowField]]);
272
282
  }
273
283
  }
274
284
  }
275
285
 
276
286
  if (parentRow_1) {
277
- item[treeOpts.parentField] = parentRow_1[treeOpts.rowField];
287
+ item[treeOpts.parentField] = parentRow_1[rowField];
278
288
  }
279
289
 
280
290
  parentChilds_1.splice(matchObj_1.index + i, 0, item);
@@ -304,7 +314,15 @@ var editHook = {
304
314
  throw new Error((0, _utils.getLog)('vxe.error.noTree', ['insert']));
305
315
  }
306
316
 
307
- var afIndex_1 = $xetable.findRowIndexOf(afterFullData, row);
317
+ var afIndex_1 = -1; // 如果是可视索引
318
+
319
+ if (_xeUtils.default.isNumber(row)) {
320
+ if (row < afterFullData.length) {
321
+ afIndex_1 = row;
322
+ }
323
+ } else {
324
+ afIndex_1 = $xetable.findRowIndexOf(afterFullData, row);
325
+ }
308
326
 
309
327
  if (afIndex_1 === -1) {
310
328
  throw new Error((0, _utils.errLog)('vxe.error.unableInsert'));
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_util=require("../../table/src/util"),_dom=require("../../tools/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__spreadArray=function(e,t){for(var r=0,l=t.length,n=e.length;r<l;r++,n++)e[n]=t[r];return e},tableEditMethodKeys=["insert","insertAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getActiveRecord","getSelectedCell","clearActived","clearSelected","isActiveByRow","setActiveRow","setActiveCell","setSelectCell"],editHook={setupTable:function(x){function v(e,t){var r=t.model;t.editRender&&(r.value=(0,_util.getCellValue)(e,t),r.update=!1)}function n(e,t){var r=t.model;t.editRender&&r.update&&((0,_util.setCellValue)(e,t,r.value),r.update=!1,r.value=null)}function r(){var e=o.value;!e||(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}var h=x.props,R=x.reactData,_=x.internalData,o=x.getRefMaps().refElem,e=x.getComputeMaps(),s=e.computeMouseOpts,p=e.computeEditOpts,w=e.computeCheckboxOpts,C=e.computeTreeOpts,g={},m={};function a(){var e=R.editStore,t=R.tableColumn,r=p.value,e=e.actived,l=e.row,e=e.column;(l||e)&&("row"===r.mode?t.forEach(function(e){return n(l,e)}):n(l,e))}function b(e,t){var a=_.tableFullTreeData,i=_.afterFullData,u=_.fullDataRowIdData,c=_.fullAllDataRowIdData,d=C.value,s=t?"push":"unshift";e.forEach(function(e){var t,r,l=e[d.parentField],n=(0,_util.getRowid)(x,e),o=l?_xeUtils.default.findTree(a,function(e){return l===e[d.rowField]},d):null;e=o?(t=o.item,o=(r=c[(0,_util.getRowid)(x,t)])?r.level:0,r=t[d.children],(r=!_xeUtils.default.isArray(r)?t[d.children]=[]:r)[s](e),{row:e,rowid:n,seq:-1,index:-1,_index:-1,$index:-1,items:r,parent:parent,level:o+1}):("development"===process.env.NODE_ENV&&l&&(0,_utils.warnLog)("vxe.error.unableInsert"),i[s](e),a[s](e),{row:e,rowid:n,seq:-1,index:-1,_index:-1,$index:-1,items:a,parent:null,level:0}),u[n]=e,c[n]=e})}return g={insert:function(e){return g.insertAt(e,null)},insertAt:function(e,t){var r=h.treeConfig,l=R.mergeList,n=R.editStore,o=_.tableFullTreeData,a=_.afterFullData,i=_.tableFullData,u=_.fullDataRowIdData,c=_.fullAllDataRowIdData,d=C.value,s=d.transform,f=(e=!_xeUtils.default.isArray(e)?[e]:e).map(function(e){return x.defineField(Object.assign({},e))});if(t)if(-1===t)r&&s?b(f,!0):(a.push.apply(a,f),i.push.apply(i,f),l.forEach(function(e){var t=e.row,r=e.rowspan;t+r>a.length&&(e.rowspan=r+f.length)}));else if(r&&s){var v,p,w,g=_xeUtils.default.findTree(o,function(e){return t[d.rowField]===e[d.rowField]},d);g?(v=g.parent,p=g.items,o=c[(0,_util.getRowid)(x,v)],w=o?o.level:0,f.forEach(function(e,t){var r=(0,_util.getRowid)(x,e);"development"===process.env.NODE_ENV&&e[d.parentField]&&v&&e[d.parentField]!==v[d.rowField]&&(0,_utils.errLog)("vxe.error.errProp",[d.parentField+"="+e[d.parentField],d.parentField+"="+v[d.rowField]]),v&&(e[d.parentField]=v[d.rowField]),p.splice(g.index+t,0,e);e={row:e,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,items:p,parent:v,level:w+1};u[r]=e,c[r]=e})):("development"===process.env.NODE_ENV&&(0,_utils.warnLog)("vxe.error.unableInsert"),b(f,!0))}else{if(r)throw new Error((0,_utils.getLog)("vxe.error.noTree",["insert"]));var m=x.findRowIndexOf(a,t);if(-1===m)throw new Error((0,_utils.errLog)("vxe.error.unableInsert"));a.splice.apply(a,__spreadArray([m,0],f)),i.splice.apply(i,__spreadArray([x.findRowIndexOf(i,t),0],f)),l.forEach(function(e){var t=e.row,r=e.rowspan;m<t?e.row=t+f.length:m<t+r&&(e.rowspan=r+f.length)})}else r&&s?b(f,!1):(a.unshift.apply(a,f),i.unshift.apply(i,f),l.forEach(function(e){var t=e.row;0<t&&(e.row=t+f.length)}));return(n=n.insertList).unshift.apply(n,f),x.updateFooter(),x.cacheRowMap(),x.handleTableData(r&&s),r&&s||x.updateAfterDataIndex(),x.checkSelectionStatus(),R.scrollYLoad&&x.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return x.updateCellAreas(),x.recalculate()}).then(function(){return{row:f.length?f[f.length-1]:null,rows:f}})},remove:function(e){var t=h.treeConfig,r=R.mergeList,l=R.editStore,n=R.selection,o=_.tableFullTreeData,a=_.afterFullData,i=_.tableFullData,u=w.value,c=C.value,d=c.transform,s=l.actived,f=l.removeList,v=l.insertList,u=u.checkField,p=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=i,e.forEach(function(e){x.isInsertByRow(e)||f.push(e)}),u||e.forEach(function(e){e=x.findRowIndexOf(n,e);-1<e&&n.splice(e,1)}),i===e?(e=p=i.slice(0),_.tableFullData=[],_.afterFullData=[],x.clearMergeCells()):t&&d?e.forEach(function(e){var t=(0,_util.getRowid)(x,e),r=_xeUtils.default.findTree(o,function(e){return t===(0,_util.getRowid)(x,e)},c);r&&(r=r.items.splice(r.index,1),p.push(r[0]));e=x.findRowIndexOf(a,e);-1<e&&a.splice(e,1)}):e.forEach(function(e){var t=x.findRowIndexOf(i,e);-1<t&&(t=i.splice(t,1),p.push(t[0]));var l=x.findRowIndexOf(a,e);-1<l&&(r.forEach(function(e){var t=e.row,r=e.rowspan;l<t?e.row=t-1:l<t+r&&(e.rowspan=r-1)}),a.splice(l,1))}),s.row&&-1<x.findRowIndexOf(e,s.row)&&g.clearActived(),e.forEach(function(e){e=x.findRowIndexOf(v,e);-1<e&&v.splice(e,1)}),x.updateFooter(),x.cacheRowMap(),x.handleTableData(t&&d),t&&d||x.updateAfterDataIndex(),x.checkSelectionStatus(),R.scrollYLoad&&x.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return x.updateCellAreas(),x.recalculate()}).then(function(){return{row:p.length?p[p.length-1]:null,rows:p}})},removeCheckboxRow:function(){return g.remove(x.getCheckboxRecords()).then(function(e){return x.clearCheckboxRow(),e})},removeRadioRow:function(){var e=x.getRadioRecord();return g.remove(e||[]).then(function(e){return x.clearRadioRow(),e})},removeCurrentRow:function(){var e=x.getCurrentRecord();return g.remove(e||[]).then(function(e){return x.clearCurrentRow(),e})},getRecordset:function(){return{insertRecords:g.getInsertRecords(),removeRecords:g.getRemoveRecords(),updateRecords:g.getUpdateRecords()}},getInsertRecords:function(){var e=h.treeConfig,t=R.editStore,r=_.tableFullTreeData,l=_.tableFullData,n=C.value,t=t.insertList,o=[];return t.length&&(e&&n.transform?t.forEach(function(e){var t=(0,_util.getRowid)(x,e);_xeUtils.default.findTree(r,function(e){return t===(0,_util.getRowid)(x,e)},n)&&o.push(e)}):t.forEach(function(e){-1<x.findRowIndexOf(l,e)&&o.push(e)})),o},getRemoveRecords:function(){return R.editStore.removeList},getUpdateRecords:function(){var e=h.keepSource,t=h.treeConfig,r=_.tableFullData,l=C.value;return e?(a(),t?_xeUtils.default.filterTree(r,function(e){return x.isUpdateByRow(e)},l):r.filter(function(e){return x.isUpdateByRow(e)})):[]},getActiveRecord:function(){var e=R.editStore,t=_.afterFullData,r=o.value,l=e.actived,e=l.args,l=l.row;return e&&-1<x.findRowIndexOf(t,l)&&r.querySelectorAll(".vxe-body--column.col--actived").length?Object.assign({},e):null},getSelectedCell:function(){var e=R.editStore.selected,t=e.args,e=e.column;return t&&e?Object.assign({},t):null},clearActived:function(e){var t=R.editStore.actived,r=t.row,l=t.column;return(r||l)&&(a(),t.args=null,t.row=null,t.column=null,x.updateFooter(),x.dispatchEvent("edit-closed",{row:r,rowIndex:x.getRowIndex(r),$rowIndex:x.getVMRowIndex(r),column:l,columnIndex:x.getColumnIndex(l),$columnIndex:x.getVMColumnIndex(l)},e||null)),(x.clearValidate?x.clearValidate():(0,_vue.nextTick)()).then(function(){return x.recalculate()})},clearSelected:function(){var e=R.editStore.selected;return e.row=null,e.column=null,r(),(0,_vue.nextTick)()},isActiveByRow:function(e){return R.editStore.actived.row===e},setActiveRow:function(e){var t=_.visibleColumn;return x.setActiveCell(e,_xeUtils.default.find(t,function(e){return(0,_utils.isEnableConf)(e.editRender)}))},setActiveCell:function(t,e){var r=h.editConfig,l=_xeUtils.default.isString(e)?x.getColumnByField(e):e;return t&&l&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(l.editRender)?x.scrollToRow(t,l).then(function(){var e=x.getCell(t,l);return e&&(m.handleActived({row:t,rowIndex:x.getRowIndex(t),column:l,columnIndex:x.getColumnIndex(l),cell:e,$table:x}),_._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell:function(e,t){var r=R.tableData,l=_.visibleColumn,n=p.value,t=_xeUtils.default.isString(t)?x.getColumnByField(t):t;return e&&t&&"manual"!==n.trigger&&(-1<(n=x.findRowIndexOf(r,e))&&t&&(r=x.getCell(e,t),r={row:e,rowIndex:n,column:t,columnIndex:l.indexOf(t),cell:r},x.handleSelected(r,{}))),(0,_vue.nextTick)()}},m={handleActived:function(e,t){var r,l=h.editConfig,n=h.mouseConfig,o=R.editStore,a=R.tableColumn,i=p.value,u=i.mode,c=i.activeMethod,d=o.actived,s=e.row,f=e.column,i=f.editRender,o=e.cell=e.cell||x.getCell(s,f);return(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(i)&&o&&(d.row!==s||"cell"===u&&d.column!==f?(r="edit-disabled",c&&!c(e)||(n&&(g.clearSelected(),x.clearCellAreas&&(x.clearCellAreas(),x.clearCopyCellArea())),x.closeTooltip(),g.clearActived(t),r="edit-actived",f.renderHeight=o.offsetHeight,d.args=e,d.row=s,d.column=f,"row"===u?a.forEach(function(e){return v(s,e)}):v(s,f),(0,_vue.nextTick)(function(){m.handleFocus(e,t)})),x.dispatchEvent(r,{row:s,rowIndex:x.getRowIndex(s),$rowIndex:x.getVMRowIndex(s),column:f,columnIndex:x.getColumnIndex(f),$columnIndex:x.getVMColumnIndex(f)},t)):(r=d.column,n&&(g.clearSelected(),x.clearCellAreas&&(x.clearCellAreas(),x.clearCopyCellArea())),r!==f&&((n=r.model).update&&(0,_util.setCellValue)(s,r,n.value),x.clearValidate&&x.clearValidate()),f.renderHeight=o.offsetHeight,d.args=e,d.column=f,setTimeout(function(){m.handleFocus(e,t)})),x.focus()),(0,_vue.nextTick)()},handleFocus:function(e){var t,r,l=e.row,n=e.column,o=e.cell,a=n.editRender;(0,_utils.isEnableConf)(a)&&(t=_vXETable.renderer.get(a.name),r=a.autofocus,e=a.autoselect,a=void 0,(a=!(a=r?o.querySelector(r):a)&&t&&t.autofocus?o.querySelector(t.autofocus):a)?(a.focus(),e?a.select():_dom.browse.msie&&((a=a.createTextRange()).collapse(!1),a.select())):x.scrollToRow(l,n))},handleSelected:function(e,t){var r=h.mouseConfig,l=R.editStore,n=s.value,o=p.value,a=l.actived,i=l.selected,u=e.row,c=e.column,d=r&&n.selected;return!d||i.row===u&&i.column===c||(a.row!==u||"cell"===o.mode&&a.column!==c)&&(g.clearActived(t),g.clearSelected(),x.clearCellAreas&&(x.clearCellAreas(),x.clearCopyCellArea()),i.args=e,i.row=u,i.column=c,d&&m.addCellSelectedClass(),x.focus()),(0,_vue.nextTick)()},addCellSelectedClass:function(){var e=R.editStore.selected,t=e.row,e=e.column;r(),t&&e&&((e=x.getCell(t,e))&&(0,_dom.addClass)(e,"col--selected"))}},__assign(__assign({},g),m)},setupGrid:function(e){return e.extendTableMethods(tableEditMethodKeys)}},_default=editHook;exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_vXETable=require("../../v-x-e-table"),_utils=require("../../tools/utils"),_util=require("../../table/src/util"),_dom=require("../../tools/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var __assign=function(){return(__assign=Object.assign||function(e){for(var t,r=1,l=arguments.length;r<l;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)},__spreadArray=function(e,t){for(var r=0,l=t.length,n=e.length;r<l;r++,n++)e[n]=t[r];return e},tableEditMethodKeys=["insert","insertAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getActiveRecord","getSelectedCell","clearActived","clearSelected","isActiveByRow","setActiveRow","setActiveCell","setSelectCell"],editHook={setupTable:function(R){function v(e,t){var r=t.model;t.editRender&&(r.value=(0,_util.getCellValue)(e,t),r.update=!1)}function n(e,t){var r=t.model;t.editRender&&r.update&&((0,_util.setCellValue)(e,t,r.value),r.update=!1,r.value=null)}function r(){var e=o.value;!e||(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")}var _=R.props,C=R.reactData,b=R.internalData,o=R.getRefMaps().refElem,e=R.getComputeMaps(),s=e.computeMouseOpts,p=e.computeEditOpts,w=e.computeCheckboxOpts,I=e.computeTreeOpts,g={},m={};function a(){var e=C.editStore,t=C.tableColumn,r=p.value,e=e.actived,l=e.row,e=e.column;(l||e)&&("row"===r.mode?t.forEach(function(e){return n(l,e)}):n(l,e))}function A(e,t){var a=b.tableFullTreeData,i=b.afterFullData,u=b.fullDataRowIdData,c=b.fullAllDataRowIdData,r=I.value,d=r.rowField,s=r.parentField,f=r.children,v=r.mapChildren,p=t?"push":"unshift";e.forEach(function(e){var t,r,l=e[s],n=(0,_util.getRowid)(R,e),o=l?_xeUtils.default.findTree(a,function(e){return l===e[d]},{children:v}):null;e=o?(t=o.item,o=(r=c[(0,_util.getRowid)(R,t)])?r.level:0,r=t[f],(r=!_xeUtils.default.isArray(r)?t[f]=[]:r)[p](e),{row:e,rowid:n,seq:-1,index:-1,_index:-1,$index:-1,items:r,parent:parent,level:o+1}):("development"===process.env.NODE_ENV&&l&&(0,_utils.warnLog)("vxe.error.unableInsert"),i[p](e),a[p](e),{row:e,rowid:n,seq:-1,index:-1,_index:-1,$index:-1,items:a,parent:null,level:0}),u[n]=e,c[n]=e})}return g={insert:function(e){return g.insertAt(e,null)},insertAt:function(e,t){var r=_.treeConfig,l=C.mergeList,n=C.editStore,o=b.tableFullTreeData,a=b.afterFullData,i=b.tableFullData,u=b.fullDataRowIdData,c=b.fullAllDataRowIdData,d=I.value,s=d.transform,f=d.rowField,v=d.mapChildren,p=(e=!_xeUtils.default.isArray(e)?[e]:e).map(function(e){return R.defineField(Object.assign({},e))});if(t)if(-1===t)r&&s?A(p,!0):(a.push.apply(a,p),i.push.apply(i,p),l.forEach(function(e){var t=e.row,r=e.rowspan;t+r>a.length&&(e.rowspan=r+p.length)}));else if(r&&s){var w,g,m,h=_xeUtils.default.findTree(o,function(e){return t[f]===e[f]},{children:v});h?(w=h.parent,g=h.items,v=c[(0,_util.getRowid)(R,w)],m=v?v.level:0,p.forEach(function(e,t){var r=(0,_util.getRowid)(R,e);"development"===process.env.NODE_ENV&&e[d.parentField]&&w&&e[d.parentField]!==w[f]&&(0,_utils.errLog)("vxe.error.errProp",[d.parentField+"="+e[d.parentField],d.parentField+"="+w[f]]),w&&(e[d.parentField]=w[f]),g.splice(h.index+t,0,e);e={row:e,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,items:g,parent:w,level:m+1};u[r]=e,c[r]=e})):("development"===process.env.NODE_ENV&&(0,_utils.warnLog)("vxe.error.unableInsert"),A(p,!0))}else{if(r)throw new Error((0,_utils.getLog)("vxe.error.noTree",["insert"]));var x=-1;if(_xeUtils.default.isNumber(t)?t<a.length&&(x=t):x=R.findRowIndexOf(a,t),-1===x)throw new Error((0,_utils.errLog)("vxe.error.unableInsert"));a.splice.apply(a,__spreadArray([x,0],p)),i.splice.apply(i,__spreadArray([R.findRowIndexOf(i,t),0],p)),l.forEach(function(e){var t=e.row,r=e.rowspan;x<t?e.row=t+p.length:x<t+r&&(e.rowspan=r+p.length)})}else r&&s?A(p,!1):(a.unshift.apply(a,p),i.unshift.apply(i,p),l.forEach(function(e){var t=e.row;0<t&&(e.row=t+p.length)}));return(n=n.insertList).unshift.apply(n,p),R.updateFooter(),R.cacheRowMap(),R.handleTableData(r&&s),r&&s||R.updateAfterDataIndex(),R.checkSelectionStatus(),C.scrollYLoad&&R.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return R.updateCellAreas(),R.recalculate()}).then(function(){return{row:p.length?p[p.length-1]:null,rows:p}})},remove:function(e){var t=_.treeConfig,r=C.mergeList,l=C.editStore,n=C.selection,o=b.tableFullTreeData,a=b.afterFullData,i=b.tableFullData,u=w.value,c=I.value,d=c.transform,s=l.actived,f=l.removeList,v=l.insertList,u=u.checkField,p=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=i,e.forEach(function(e){R.isInsertByRow(e)||f.push(e)}),u||e.forEach(function(e){e=R.findRowIndexOf(n,e);-1<e&&n.splice(e,1)}),i===e?(e=p=i.slice(0),b.tableFullData=[],b.afterFullData=[],R.clearMergeCells()):t&&d?e.forEach(function(e){var t=(0,_util.getRowid)(R,e),r=_xeUtils.default.findTree(o,function(e){return t===(0,_util.getRowid)(R,e)},c);r&&(r=r.items.splice(r.index,1),p.push(r[0]));e=R.findRowIndexOf(a,e);-1<e&&a.splice(e,1)}):e.forEach(function(e){var t=R.findRowIndexOf(i,e);-1<t&&(t=i.splice(t,1),p.push(t[0]));var l=R.findRowIndexOf(a,e);-1<l&&(r.forEach(function(e){var t=e.row,r=e.rowspan;l<t?e.row=t-1:l<t+r&&(e.rowspan=r-1)}),a.splice(l,1))}),s.row&&-1<R.findRowIndexOf(e,s.row)&&g.clearActived(),e.forEach(function(e){e=R.findRowIndexOf(v,e);-1<e&&v.splice(e,1)}),R.updateFooter(),R.cacheRowMap(),R.handleTableData(t&&d),t&&d||R.updateAfterDataIndex(),R.checkSelectionStatus(),C.scrollYLoad&&R.updateScrollYSpace(),(0,_vue.nextTick)().then(function(){return R.updateCellAreas(),R.recalculate()}).then(function(){return{row:p.length?p[p.length-1]:null,rows:p}})},removeCheckboxRow:function(){return g.remove(R.getCheckboxRecords()).then(function(e){return R.clearCheckboxRow(),e})},removeRadioRow:function(){var e=R.getRadioRecord();return g.remove(e||[]).then(function(e){return R.clearRadioRow(),e})},removeCurrentRow:function(){var e=R.getCurrentRecord();return g.remove(e||[]).then(function(e){return R.clearCurrentRow(),e})},getRecordset:function(){return{insertRecords:g.getInsertRecords(),removeRecords:g.getRemoveRecords(),updateRecords:g.getUpdateRecords()}},getInsertRecords:function(){var e=_.treeConfig,t=C.editStore,r=b.tableFullTreeData,l=b.tableFullData,n=I.value,t=t.insertList,o=[];return t.length&&(e&&n.transform?t.forEach(function(e){var t=(0,_util.getRowid)(R,e);_xeUtils.default.findTree(r,function(e){return t===(0,_util.getRowid)(R,e)},n)&&o.push(e)}):t.forEach(function(e){-1<R.findRowIndexOf(l,e)&&o.push(e)})),o},getRemoveRecords:function(){return C.editStore.removeList},getUpdateRecords:function(){var e=_.keepSource,t=_.treeConfig,r=b.tableFullData,l=I.value;return e?(a(),t?_xeUtils.default.filterTree(r,function(e){return R.isUpdateByRow(e)},l):r.filter(function(e){return R.isUpdateByRow(e)})):[]},getActiveRecord:function(){var e=C.editStore,t=b.afterFullData,r=o.value,l=e.actived,e=l.args,l=l.row;return e&&-1<R.findRowIndexOf(t,l)&&r.querySelectorAll(".vxe-body--column.col--actived").length?Object.assign({},e):null},getSelectedCell:function(){var e=C.editStore.selected,t=e.args,e=e.column;return t&&e?Object.assign({},t):null},clearActived:function(e){var t=C.editStore.actived,r=t.row,l=t.column;return(r||l)&&(a(),t.args=null,t.row=null,t.column=null,R.updateFooter(),R.dispatchEvent("edit-closed",{row:r,rowIndex:R.getRowIndex(r),$rowIndex:R.getVMRowIndex(r),column:l,columnIndex:R.getColumnIndex(l),$columnIndex:R.getVMColumnIndex(l)},e||null)),(R.clearValidate?R.clearValidate():(0,_vue.nextTick)()).then(function(){return R.recalculate()})},clearSelected:function(){var e=C.editStore.selected;return e.row=null,e.column=null,r(),(0,_vue.nextTick)()},isActiveByRow:function(e){return C.editStore.actived.row===e},setActiveRow:function(e){var t=b.visibleColumn;return R.setActiveCell(e,_xeUtils.default.find(t,function(e){return(0,_utils.isEnableConf)(e.editRender)}))},setActiveCell:function(t,e){var r=_.editConfig,l=_xeUtils.default.isString(e)?R.getColumnByField(e):e;return t&&l&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(l.editRender)?R.scrollToRow(t,l).then(function(){var e=R.getCell(t,l);return e&&(m.handleActived({row:t,rowIndex:R.getRowIndex(t),column:l,columnIndex:R.getColumnIndex(l),cell:e,$table:R}),b._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell:function(e,t){var r=C.tableData,l=b.visibleColumn,n=p.value,t=_xeUtils.default.isString(t)?R.getColumnByField(t):t;return e&&t&&"manual"!==n.trigger&&(-1<(n=R.findRowIndexOf(r,e))&&t&&(r=R.getCell(e,t),r={row:e,rowIndex:n,column:t,columnIndex:l.indexOf(t),cell:r},R.handleSelected(r,{}))),(0,_vue.nextTick)()}},m={handleActived:function(e,t){var r,l=_.editConfig,n=_.mouseConfig,o=C.editStore,a=C.tableColumn,i=p.value,u=i.mode,c=i.activeMethod,d=o.actived,s=e.row,f=e.column,i=f.editRender,o=e.cell=e.cell||R.getCell(s,f);return(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(i)&&o&&(d.row!==s||"cell"===u&&d.column!==f?(r="edit-disabled",c&&!c(e)||(n&&(g.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea())),R.closeTooltip(),g.clearActived(t),r="edit-actived",f.renderHeight=o.offsetHeight,d.args=e,d.row=s,d.column=f,"row"===u?a.forEach(function(e){return v(s,e)}):v(s,f),(0,_vue.nextTick)(function(){m.handleFocus(e,t)})),R.dispatchEvent(r,{row:s,rowIndex:R.getRowIndex(s),$rowIndex:R.getVMRowIndex(s),column:f,columnIndex:R.getColumnIndex(f),$columnIndex:R.getVMColumnIndex(f)},t)):(r=d.column,n&&(g.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea())),r!==f&&((n=r.model).update&&(0,_util.setCellValue)(s,r,n.value),R.clearValidate&&R.clearValidate()),f.renderHeight=o.offsetHeight,d.args=e,d.column=f,setTimeout(function(){m.handleFocus(e,t)})),R.focus()),(0,_vue.nextTick)()},handleFocus:function(e){var t,r,l=e.row,n=e.column,o=e.cell,a=n.editRender;(0,_utils.isEnableConf)(a)&&(t=_vXETable.renderer.get(a.name),r=a.autofocus,e=a.autoselect,a=void 0,(a=!(a=r?o.querySelector(r):a)&&t&&t.autofocus?o.querySelector(t.autofocus):a)?(a.focus(),e?a.select():_dom.browse.msie&&((a=a.createTextRange()).collapse(!1),a.select())):R.scrollToRow(l,n))},handleSelected:function(e,t){var r=_.mouseConfig,l=C.editStore,n=s.value,o=p.value,a=l.actived,i=l.selected,u=e.row,c=e.column,d=r&&n.selected;return!d||i.row===u&&i.column===c||(a.row!==u||"cell"===o.mode&&a.column!==c)&&(g.clearActived(t),g.clearSelected(),R.clearCellAreas&&(R.clearCellAreas(),R.clearCopyCellArea()),i.args=e,i.row=u,i.column=c,d&&m.addCellSelectedClass(),R.focus()),(0,_vue.nextTick)()},addCellSelectedClass:function(){var e=C.editStore.selected,t=e.row,e=e.column;r(),t&&e&&((e=R.getCell(t,e))&&(0,_dom.addClass)(e,"col--selected"))}},__assign(__assign({},g),m)},setupGrid:function(e){return e.extendTableMethods(tableEditMethodKeys)}},_default=editHook;exports.default=_default;
@@ -1426,7 +1426,7 @@ var _default2 = (0, _vue.defineComponent)({
1426
1426
  var formOpts = computeFormOpts.value;
1427
1427
 
1428
1428
  if (proxyConfig && (data || proxyOpts.form && formOpts.data)) {
1429
- (0, _utils.errLog)('errConflicts', ['grid.data', 'grid.proxy-config']);
1429
+ (0, _utils.errLog)('vxe.error.errConflicts', ['grid.data', 'grid.proxy-config']);
1430
1430
  }
1431
1431
 
1432
1432
  if (columns && columns.length) {