vxe-table 4.1.15 → 4.1.17-beta.2
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/input/src/input.js +35 -11
- 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 +23 -2
- package/es/v-x-e-table/src/conf.js +10 -1
- package/lib/index.umd.js +161 -38
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +47 -14
- 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 +27 -2
- 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/input/src/input.ts +37 -12
- 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 +22 -2
- 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/input/src/input.js
CHANGED
|
@@ -283,12 +283,15 @@ export default defineComponent({
|
|
|
283
283
|
}
|
|
284
284
|
return '';
|
|
285
285
|
});
|
|
286
|
+
var computeFirstDayOfWeek = computed(function () {
|
|
287
|
+
var startDay = props.startDay, startWeek = props.startWeek;
|
|
288
|
+
return XEUtils.toNumber(XEUtils.isNumber(startDay) || XEUtils.isString(startDay) ? startDay : startWeek);
|
|
289
|
+
});
|
|
286
290
|
var computeWeekDatas = computed(function () {
|
|
287
291
|
var weeks = [];
|
|
288
292
|
var isDatePickerType = computeIsDatePickerType.value;
|
|
289
293
|
if (isDatePickerType) {
|
|
290
|
-
var
|
|
291
|
-
var sWeek = XEUtils.toNumber(XEUtils.isNumber(startDay) || XEUtils.isString(startDay) ? startDay : startWeek);
|
|
294
|
+
var sWeek = computeFirstDayOfWeek.value;
|
|
292
295
|
weeks.push(sWeek);
|
|
293
296
|
for (var index = 0; index < 6; index++) {
|
|
294
297
|
if (sWeek >= 6) {
|
|
@@ -435,6 +438,7 @@ export default defineComponent({
|
|
|
435
438
|
});
|
|
436
439
|
var computeWeekDates = computed(function () {
|
|
437
440
|
var dayDatas = computeDayDatas.value;
|
|
441
|
+
var firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
438
442
|
return dayDatas.map(function (list) {
|
|
439
443
|
var firstItem = list[0];
|
|
440
444
|
var item = {
|
|
@@ -444,7 +448,7 @@ export default defineComponent({
|
|
|
444
448
|
isCurrent: false,
|
|
445
449
|
isNow: false,
|
|
446
450
|
isNext: false,
|
|
447
|
-
label: XEUtils.getYearWeek(firstItem.date)
|
|
451
|
+
label: XEUtils.getYearWeek(firstItem.date, firstDayOfWeek)
|
|
448
452
|
};
|
|
449
453
|
return [item].concat(list);
|
|
450
454
|
});
|
|
@@ -610,6 +614,7 @@ export default defineComponent({
|
|
|
610
614
|
var type = props.type;
|
|
611
615
|
var valueFormat = props.valueFormat;
|
|
612
616
|
var dateLabelFormat = computeDateLabelFormat.value;
|
|
617
|
+
var firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
613
618
|
var dValue = null;
|
|
614
619
|
var dLabel = '';
|
|
615
620
|
if (value) {
|
|
@@ -621,7 +626,20 @@ export default defineComponent({
|
|
|
621
626
|
}
|
|
622
627
|
}
|
|
623
628
|
if (XEUtils.isValidDate(dValue)) {
|
|
624
|
-
dLabel = XEUtils.toDateString(dValue, dateLabelFormat);
|
|
629
|
+
dLabel = XEUtils.toDateString(dValue, dateLabelFormat, { firstDay: firstDayOfWeek });
|
|
630
|
+
// 由于年份和第几周是冲突的行为,所以需要特殊处理,判断是否跨年
|
|
631
|
+
if (dateLabelFormat && type === 'week') {
|
|
632
|
+
var firstWeekDate = XEUtils.getWhatWeek(dValue, 0, firstDayOfWeek, firstDayOfWeek);
|
|
633
|
+
if (firstWeekDate.getFullYear() < dValue.getFullYear()) {
|
|
634
|
+
var yyIndex = dateLabelFormat.indexOf('yyyy');
|
|
635
|
+
if (yyIndex > -1) {
|
|
636
|
+
var yyNum = Number(dLabel.substring(yyIndex, yyIndex + 4));
|
|
637
|
+
if (yyNum && !isNaN(yyNum)) {
|
|
638
|
+
dLabel = dLabel.replace("" + yyNum, "" + (yyNum - 1));
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
}
|
|
625
643
|
}
|
|
626
644
|
else {
|
|
627
645
|
dValue = null;
|
|
@@ -680,16 +698,17 @@ export default defineComponent({
|
|
|
680
698
|
var datetimePanelValue = reactData.datetimePanelValue;
|
|
681
699
|
var isDateTimeType = computeIsDateTimeType.value;
|
|
682
700
|
var dateValueFormat = computeDateValueFormat.value;
|
|
701
|
+
var firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
683
702
|
if (props.type === 'week') {
|
|
684
703
|
var sWeek = XEUtils.toNumber(props.selectDay);
|
|
685
|
-
date = XEUtils.getWhatWeek(date, 0, sWeek);
|
|
704
|
+
date = XEUtils.getWhatWeek(date, 0, sWeek, firstDayOfWeek);
|
|
686
705
|
}
|
|
687
706
|
else if (isDateTimeType) {
|
|
688
707
|
date.setHours(datetimePanelValue.getHours());
|
|
689
708
|
date.setMinutes(datetimePanelValue.getMinutes());
|
|
690
709
|
date.setSeconds(datetimePanelValue.getSeconds());
|
|
691
710
|
}
|
|
692
|
-
var inpVal = XEUtils.toDateString(date, dateValueFormat);
|
|
711
|
+
var inpVal = XEUtils.toDateString(date, dateValueFormat, { firstDay: firstDayOfWeek });
|
|
693
712
|
dateCheckMonth(date);
|
|
694
713
|
if (!XEUtils.isEqual(modelValue, inpVal)) {
|
|
695
714
|
emitModel(inpVal, { type: 'update' });
|
|
@@ -740,6 +759,7 @@ export default defineComponent({
|
|
|
740
759
|
}
|
|
741
760
|
else {
|
|
742
761
|
var isChange = false;
|
|
762
|
+
var firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
743
763
|
if (type === 'datetime') {
|
|
744
764
|
var dateValue = computeDateValue.value;
|
|
745
765
|
if (inputValue !== XEUtils.toDateString(dateValue, dateLabelFormat) || inputValue !== XEUtils.toDateString(inpDateVal, dateLabelFormat)) {
|
|
@@ -752,7 +772,7 @@ export default defineComponent({
|
|
|
752
772
|
else {
|
|
753
773
|
isChange = true;
|
|
754
774
|
}
|
|
755
|
-
reactData.inputValue = XEUtils.toDateString(inpDateVal, dateLabelFormat);
|
|
775
|
+
reactData.inputValue = XEUtils.toDateString(inpDateVal, dateLabelFormat, { firstDay: firstDayOfWeek });
|
|
756
776
|
if (isChange) {
|
|
757
777
|
dateChange(inpDateVal);
|
|
758
778
|
}
|
|
@@ -1192,17 +1212,18 @@ export default defineComponent({
|
|
|
1192
1212
|
}
|
|
1193
1213
|
else {
|
|
1194
1214
|
var offsetDay = datePanelValue || XEUtils.getWhatDay(Date.now(), 0, 'first');
|
|
1215
|
+
var firstDayOfWeek = computeFirstDayOfWeek.value;
|
|
1195
1216
|
if (isLeftArrow) {
|
|
1196
1217
|
offsetDay = XEUtils.getWhatDay(offsetDay, -1);
|
|
1197
1218
|
}
|
|
1198
1219
|
else if (isUpArrow) {
|
|
1199
|
-
offsetDay = XEUtils.getWhatWeek(offsetDay, -1);
|
|
1220
|
+
offsetDay = XEUtils.getWhatWeek(offsetDay, -1, firstDayOfWeek);
|
|
1200
1221
|
}
|
|
1201
1222
|
else if (isRightArrow) {
|
|
1202
1223
|
offsetDay = XEUtils.getWhatDay(offsetDay, 1);
|
|
1203
1224
|
}
|
|
1204
1225
|
else if (isDwArrow) {
|
|
1205
|
-
offsetDay = XEUtils.getWhatWeek(offsetDay, 1);
|
|
1226
|
+
offsetDay = XEUtils.getWhatWeek(offsetDay, 1, firstDayOfWeek);
|
|
1206
1227
|
}
|
|
1207
1228
|
dateMoveDay(offsetDay);
|
|
1208
1229
|
}
|
|
@@ -2037,8 +2058,11 @@ export default defineComponent({
|
|
|
2037
2058
|
initValue();
|
|
2038
2059
|
});
|
|
2039
2060
|
watch(computeDateLabelFormat, function () {
|
|
2040
|
-
|
|
2041
|
-
|
|
2061
|
+
var isDatePickerType = computeIsDatePickerType.value;
|
|
2062
|
+
if (isDatePickerType) {
|
|
2063
|
+
dateParseValue(reactData.datePanelValue);
|
|
2064
|
+
reactData.inputValue = reactData.datePanelLabel;
|
|
2065
|
+
}
|
|
2042
2066
|
});
|
|
2043
2067
|
nextTick(function () {
|
|
2044
2068
|
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
|
@@ -1107,7 +1107,7 @@ export default defineComponent({
|
|
|
1107
1107
|
fullAllDataRowIdData[rowid] = rest;
|
|
1108
1108
|
fullDataRowIdData[rowid] = rest;
|
|
1109
1109
|
}
|
|
1110
|
-
}, { children: treeOpts.mapChildren });
|
|
1110
|
+
}, { children: treeOpts.transform ? treeOpts.mapChildren : treeOpts.children });
|
|
1111
1111
|
}
|
|
1112
1112
|
else {
|
|
1113
1113
|
afterFullData.forEach(function (row, index) {
|
|
@@ -2433,7 +2433,7 @@ export default defineComponent({
|
|
|
2433
2433
|
}
|
|
2434
2434
|
XEUtils.eachTree(rows, function (childRow, index, items, path, parent, nodes) {
|
|
2435
2435
|
var rowid = getRowid($xetable, childRow);
|
|
2436
|
-
var rest = { row: childRow, rowid: rowid, seq: -1, index:
|
|
2436
|
+
var rest = { row: childRow, rowid: rowid, seq: -1, index: index, _index: -1, $index: -1, items: items, parent: parent, level: parentLevel + nodes.length };
|
|
2437
2437
|
fullDataRowIdData[rowid] = rest;
|
|
2438
2438
|
fullAllDataRowIdData[rowid] = rest;
|
|
2439
2439
|
}, treeOpts);
|
|
@@ -2441,6 +2441,7 @@ export default defineComponent({
|
|
|
2441
2441
|
if (transform) {
|
|
2442
2442
|
row[mapChildren] = rows;
|
|
2443
2443
|
}
|
|
2444
|
+
updateAfterDataIndex();
|
|
2444
2445
|
return rows;
|
|
2445
2446
|
});
|
|
2446
2447
|
},
|
|
@@ -2765,6 +2766,26 @@ export default defineComponent({
|
|
|
2765
2766
|
}
|
|
2766
2767
|
return rowList;
|
|
2767
2768
|
},
|
|
2769
|
+
/**
|
|
2770
|
+
* 只对 tree-config 有效,获取行的父级
|
|
2771
|
+
*/
|
|
2772
|
+
getParentRow: function (rowOrRowid) {
|
|
2773
|
+
var treeConfig = props.treeConfig;
|
|
2774
|
+
var fullDataRowIdData = internalData.fullDataRowIdData;
|
|
2775
|
+
if (rowOrRowid && treeConfig) {
|
|
2776
|
+
var rowid = void 0;
|
|
2777
|
+
if (XEUtils.isString(rowOrRowid)) {
|
|
2778
|
+
rowid = rowOrRowid;
|
|
2779
|
+
}
|
|
2780
|
+
else {
|
|
2781
|
+
rowid = getRowid($xetable, rowOrRowid);
|
|
2782
|
+
}
|
|
2783
|
+
if (rowid) {
|
|
2784
|
+
return fullDataRowIdData[rowid] ? fullDataRowIdData[rowid].parent : null;
|
|
2785
|
+
}
|
|
2786
|
+
}
|
|
2787
|
+
return null;
|
|
2788
|
+
},
|
|
2768
2789
|
/**
|
|
2769
2790
|
* 根据行的唯一主键获取行
|
|
2770
2791
|
* @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
|