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.
- package/es/edit/src/hook.js +20 -10
- package/es/grid/src/grid.js +1 -1
- package/es/input/src/input.js +46 -32
- package/es/radio/src/button.js +25 -9
- package/es/radio/src/group.js +1 -0
- package/es/radio/src/radio.js +24 -8
- package/es/table/src/table.js +25 -4
- package/es/v-x-e-table/src/conf.js +10 -1
- package/lib/edit/src/hook.js +30 -12
- package/lib/edit/src/hook.min.js +1 -1
- package/lib/grid/src/grid.js +1 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +219 -76
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +62 -35
- package/lib/input/src/input.min.js +1 -1
- package/lib/radio/src/button.js +36 -12
- package/lib/radio/src/button.min.js +1 -1
- package/lib/radio/src/group.js +6 -0
- package/lib/radio/src/group.min.js +1 -1
- package/lib/radio/src/radio.js +35 -11
- package/lib/radio/src/radio.min.js +1 -1
- package/lib/table/src/table.js +37 -4
- package/lib/table/src/table.min.js +1 -1
- package/lib/v-x-e-table/src/conf.js +11 -1
- package/lib/v-x-e-table/src/conf.min.js +1 -1
- package/package.json +3 -3
- package/packages/edit/src/hook.ts +19 -10
- package/packages/grid/src/grid.ts +1 -1
- package/packages/input/src/input.ts +49 -30
- package/packages/radio/src/button.ts +27 -8
- package/packages/radio/src/group.ts +1 -0
- package/packages/radio/src/radio.ts +26 -7
- package/packages/table/src/table.ts +24 -4
- package/packages/v-x-e-table/src/conf.ts +10 -1
- package/types/input.d.ts +2 -2
- package/types/radio-button.d.ts +5 -0
- package/types/radio-group.d.ts +5 -0
- package/types/radio.d.ts +5 -0
- package/types/table.d.ts +4 -0
- package/types/v-x-e-table/setup.d.ts +4 -0
package/es/edit/src/hook.js
CHANGED
|
@@ -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[
|
|
75
|
+
var parentRowId = item[parentField];
|
|
75
76
|
var rowid = getRowid($xetable, item);
|
|
76
|
-
var matchObj = parentRowId ? XEUtils.findTree(tableFullTreeData, function (item) { return parentRowId === item[
|
|
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[
|
|
82
|
+
var parentChilds = parentRow[children];
|
|
82
83
|
if (!XEUtils.isArray(parentChilds)) {
|
|
83
|
-
parentChilds = parentRow[
|
|
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[
|
|
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[
|
|
181
|
-
errLog('vxe.error.errProp', [treeOpts.parentField + "=" + item[treeOpts.parentField], treeOpts.parentField + "=" + parentRow_1[
|
|
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[
|
|
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 =
|
|
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
|
}
|
package/es/grid/src/grid.js
CHANGED
|
@@ -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);
|
package/es/input/src/input.js
CHANGED
|
@@ -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
|
|
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 =
|
|
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
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
2041
|
-
|
|
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);
|
package/es/radio/src/button.js
CHANGED
|
@@ -11,7 +11,8 @@ export default defineComponent({
|
|
|
11
11
|
title: [String, Number],
|
|
12
12
|
content: [String, Number],
|
|
13
13
|
disabled: Boolean,
|
|
14
|
-
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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'
|
package/es/radio/src/group.js
CHANGED
|
@@ -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: [
|
package/es/radio/src/radio.js
CHANGED
|
@@ -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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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'
|
package/es/table/src/table.js
CHANGED
|
@@ -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); },
|
|
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; },
|
|
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
|
-
|
|
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
|
package/lib/edit/src/hook.js
CHANGED
|
@@ -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[
|
|
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[
|
|
127
|
-
},
|
|
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[
|
|
139
|
+
var parentChilds = parentRow[children];
|
|
134
140
|
|
|
135
141
|
if (!_xeUtils.default.isArray(parentChilds)) {
|
|
136
|
-
parentChilds = parentRow[
|
|
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[
|
|
258
|
-
},
|
|
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[
|
|
271
|
-
(0, _utils.errLog)('vxe.error.errProp', [treeOpts.parentField + "=" + item[treeOpts.parentField], treeOpts.parentField + "=" + parentRow_1[
|
|
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[
|
|
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 =
|
|
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'));
|
package/lib/edit/src/hook.min.js
CHANGED
|
@@ -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;
|
package/lib/grid/src/grid.js
CHANGED
|
@@ -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) {
|