vxe-table 4.2.2 → 4.2.4-beta.0
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/filter/src/hook.js +2 -1
- package/es/footer/src/footer.js +5 -5
- package/es/header/src/header.js +6 -6
- package/es/header/style.css +1 -5
- package/es/input/src/input.js +138 -33
- package/es/input/style.css +42 -13
- package/es/keyboard/src/hook.js +5 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/src/body.js +15 -11
- package/es/table/src/table.js +58 -48
- package/es/table/src/util.js +2 -2
- package/es/tools/log.js +1 -1
- package/es/v-x-e-table/index.js +1 -1
- package/helper/vetur/attributes.json +31 -19
- package/helper/vetur/tags.json +3 -0
- package/lib/filter/src/hook.js +2 -1
- package/lib/filter/src/hook.min.js +1 -1
- package/lib/footer/src/footer.js +5 -5
- package/lib/footer/src/footer.min.js +1 -1
- package/lib/header/src/header.js +6 -6
- package/lib/header/src/header.min.js +1 -1
- package/lib/header/style/style.css +1 -5
- package/lib/header/style/style.min.css +1 -1
- package/lib/index.umd.js +345 -121
- package/lib/index.umd.min.js +1 -1
- package/lib/input/src/input.js +180 -35
- package/lib/input/src/input.min.js +1 -1
- package/lib/input/style/style.css +42 -13
- package/lib/input/style/style.min.css +1 -1
- package/lib/keyboard/src/hook.js +7 -1
- package/lib/keyboard/src/hook.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/src/body.js +15 -11
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/table.js +65 -56
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +1 -1
- package/lib/table/src/util.min.js +1 -1
- package/lib/tools/log.js +1 -1
- package/lib/tools/log.min.js +1 -1
- package/lib/v-x-e-table/index.js +1 -1
- package/lib/v-x-e-table/index.min.js +1 -1
- package/package.json +1 -1
- package/packages/filter/src/hook.ts +3 -2
- package/packages/footer/src/footer.ts +5 -5
- package/packages/header/src/header.ts +6 -6
- package/packages/input/src/input.ts +142 -34
- package/packages/keyboard/src/hook.ts +6 -2
- package/packages/table/src/body.ts +15 -11
- package/packages/table/src/table.ts +57 -46
- package/packages/table/src/util.ts +2 -2
- package/packages/tools/dom.ts +1 -1
- package/styles/header.scss +1 -1
- package/styles/input.scss +16 -4
- package/types/input.d.ts +11 -0
- package/types/table.d.ts +3 -1
package/es/filter/src/hook.js
CHANGED
|
@@ -198,7 +198,8 @@ var tableFilterHook = {
|
|
|
198
198
|
var elemStore_1 = internalData.elemStore;
|
|
199
199
|
var fixed_1 = column.fixed;
|
|
200
200
|
return $xetable.scrollToColumn(column).then(function () {
|
|
201
|
-
var
|
|
201
|
+
var headerWrapperRef = elemStore_1[(fixed_1 || 'main') + "-header-wrapper"] || elemStore_1['main-header-wrapper'];
|
|
202
|
+
var headerWrapperElem = headerWrapperRef ? headerWrapperRef.value : null;
|
|
202
203
|
if (headerWrapperElem) {
|
|
203
204
|
var filterBtnElem = headerWrapperElem.querySelector(".vxe-header--column." + column.id + " .vxe-filter--btn");
|
|
204
205
|
triggerEvent(filterBtnElem, 'click');
|
package/es/footer/src/footer.js
CHANGED
|
@@ -83,11 +83,11 @@ export default defineComponent({
|
|
|
83
83
|
var fixedType = props.fixedType;
|
|
84
84
|
var elemStore = tableInternalData.elemStore;
|
|
85
85
|
var prefix = (fixedType || 'main') + "-footer-";
|
|
86
|
-
elemStore[prefix + "wrapper"] = refElem
|
|
87
|
-
elemStore[prefix + "table"] = refFooterTable
|
|
88
|
-
elemStore[prefix + "colgroup"] = refFooterColgroup
|
|
89
|
-
elemStore[prefix + "list"] = refFooterTFoot
|
|
90
|
-
elemStore[prefix + "xSpace"] = refFooterXSpace
|
|
86
|
+
elemStore[prefix + "wrapper"] = refElem;
|
|
87
|
+
elemStore[prefix + "table"] = refFooterTable;
|
|
88
|
+
elemStore[prefix + "colgroup"] = refFooterColgroup;
|
|
89
|
+
elemStore[prefix + "list"] = refFooterTFoot;
|
|
90
|
+
elemStore[prefix + "xSpace"] = refFooterXSpace;
|
|
91
91
|
});
|
|
92
92
|
});
|
|
93
93
|
onUnmounted(function () {
|
package/es/header/src/header.js
CHANGED
|
@@ -136,12 +136,12 @@ export default defineComponent({
|
|
|
136
136
|
var internalData = $xetable.internalData;
|
|
137
137
|
var elemStore = internalData.elemStore;
|
|
138
138
|
var prefix = (fixedType || 'main') + "-header-";
|
|
139
|
-
elemStore[prefix + "wrapper"] = refElem
|
|
140
|
-
elemStore[prefix + "table"] = refHeaderTable
|
|
141
|
-
elemStore[prefix + "colgroup"] = refHeaderColgroup
|
|
142
|
-
elemStore[prefix + "list"] = refHeaderTHead
|
|
143
|
-
elemStore[prefix + "xSpace"] = refHeaderXSpace
|
|
144
|
-
elemStore[prefix + "repair"] = refHeaderBorderRepair
|
|
139
|
+
elemStore[prefix + "wrapper"] = refElem;
|
|
140
|
+
elemStore[prefix + "table"] = refHeaderTable;
|
|
141
|
+
elemStore[prefix + "colgroup"] = refHeaderColgroup;
|
|
142
|
+
elemStore[prefix + "list"] = refHeaderTHead;
|
|
143
|
+
elemStore[prefix + "xSpace"] = refHeaderXSpace;
|
|
144
|
+
elemStore[prefix + "repair"] = refHeaderBorderRepair;
|
|
145
145
|
uploadColumn();
|
|
146
146
|
});
|
|
147
147
|
});
|
package/es/header/style.css
CHANGED
|
@@ -62,11 +62,7 @@
|
|
|
62
62
|
|
|
63
63
|
.vxe-header--column {
|
|
64
64
|
position: relative;
|
|
65
|
-
font-weight: 700;
|
|
66
|
-
-webkit-user-select: none;
|
|
67
|
-
-moz-user-select: none;
|
|
68
|
-
-ms-user-select: none;
|
|
69
|
-
user-select: none; }
|
|
65
|
+
font-weight: 700; }
|
|
70
66
|
.vxe-header--column.col--ellipsis > .vxe-cell {
|
|
71
67
|
display: flex;
|
|
72
68
|
align-items: center; }
|
package/es/input/src/input.js
CHANGED
|
@@ -7,7 +7,7 @@ import { hasClass, getAbsolutePos, getEventTargetNode } from '../../tools/dom';
|
|
|
7
7
|
import { GlobalEvent, hasEventKey, EVENT_KEYS } from '../../tools/event';
|
|
8
8
|
import { toStringTimeDate, getDateQuarter } from './date';
|
|
9
9
|
import { handleNumber, toFloatValueFixed } from './number';
|
|
10
|
-
var yearSize =
|
|
10
|
+
var yearSize = 12;
|
|
11
11
|
var monthSize = 20;
|
|
12
12
|
var quarterSize = 8;
|
|
13
13
|
export default defineComponent({
|
|
@@ -27,6 +27,7 @@ export default defineComponent({
|
|
|
27
27
|
form: String,
|
|
28
28
|
className: String,
|
|
29
29
|
size: { type: String, default: function () { return GlobalConfig.input.size || GlobalConfig.size; } },
|
|
30
|
+
multiple: Boolean,
|
|
30
31
|
// number、integer、float
|
|
31
32
|
min: { type: [String, Number], default: null },
|
|
32
33
|
max: { type: [String, Number], default: null },
|
|
@@ -164,6 +165,34 @@ export default defineComponent({
|
|
|
164
165
|
var computeDateMaxTime = computed(function () {
|
|
165
166
|
return props.maxDate ? XEUtils.toStringDate(props.maxDate) : null;
|
|
166
167
|
});
|
|
168
|
+
var computeSupportMultiples = computed(function () {
|
|
169
|
+
return ['date', 'week', 'month', 'quarter', 'year'].includes(props.type);
|
|
170
|
+
});
|
|
171
|
+
var computeDateListValue = computed(function () {
|
|
172
|
+
var modelValue = props.modelValue, multiple = props.multiple;
|
|
173
|
+
var isDatePickerType = computeIsDatePickerType.value;
|
|
174
|
+
var dateValueFormat = computeDateValueFormat.value;
|
|
175
|
+
if (multiple && modelValue && isDatePickerType) {
|
|
176
|
+
return XEUtils.toValueString(modelValue).split(',').map(function (item) {
|
|
177
|
+
var date = parseDate(item, dateValueFormat);
|
|
178
|
+
if (XEUtils.isValidDate(date)) {
|
|
179
|
+
return date;
|
|
180
|
+
}
|
|
181
|
+
return null;
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
return [];
|
|
185
|
+
});
|
|
186
|
+
var computeDateMultipleValue = computed(function () {
|
|
187
|
+
var dateListValue = computeDateListValue.value;
|
|
188
|
+
var dateValueFormat = computeDateValueFormat.value;
|
|
189
|
+
return dateListValue.map(function (date) { return XEUtils.toDateString(date, dateValueFormat); });
|
|
190
|
+
});
|
|
191
|
+
var computeDateMultipleLabel = computed(function () {
|
|
192
|
+
var dateListValue = computeDateListValue.value;
|
|
193
|
+
var dateLabelFormat = computeDateLabelFormat.value;
|
|
194
|
+
return dateListValue.map(function (date) { return XEUtils.toDateString(date, dateLabelFormat); }).join(', ');
|
|
195
|
+
});
|
|
167
196
|
var computeDateValueFormat = computed(function () {
|
|
168
197
|
var type = props.type;
|
|
169
198
|
return type === 'time' ? 'HH:mm:ss' : (props.valueFormat || (type === 'datetime' ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd'));
|
|
@@ -221,14 +250,17 @@ export default defineComponent({
|
|
|
221
250
|
var years = [];
|
|
222
251
|
if (selectMonth && currentDate) {
|
|
223
252
|
var currFullYear = currentDate.getFullYear();
|
|
224
|
-
var
|
|
225
|
-
|
|
226
|
-
|
|
253
|
+
var selectFullYear = selectMonth.getFullYear();
|
|
254
|
+
var startYearDate = new Date(selectFullYear - selectFullYear % yearSize, 0, 1);
|
|
255
|
+
for (var index = -4; index < yearSize + 4; index++) {
|
|
256
|
+
var date = XEUtils.getWhatYear(startYearDate, index, 'first');
|
|
227
257
|
var itemFullYear = date.getFullYear();
|
|
228
258
|
years.push({
|
|
229
259
|
date: date,
|
|
230
260
|
isCurrent: true,
|
|
261
|
+
isPrev: index < 0,
|
|
231
262
|
isNow: currFullYear === itemFullYear,
|
|
263
|
+
isNext: index >= yearSize,
|
|
232
264
|
year: itemFullYear
|
|
233
265
|
});
|
|
234
266
|
}
|
|
@@ -447,8 +479,8 @@ export default defineComponent({
|
|
|
447
479
|
return minuteList;
|
|
448
480
|
});
|
|
449
481
|
var computeInpReadonly = computed(function () {
|
|
450
|
-
var type = props.type, readonly = props.readonly, editable = props.editable;
|
|
451
|
-
return readonly || !editable || type === 'week' || type === 'quarter';
|
|
482
|
+
var type = props.type, readonly = props.readonly, editable = props.editable, multiple = props.multiple;
|
|
483
|
+
return readonly || multiple || !editable || type === 'week' || type === 'quarter';
|
|
452
484
|
});
|
|
453
485
|
var computeInputType = computed(function () {
|
|
454
486
|
var type = props.type;
|
|
@@ -537,10 +569,13 @@ export default defineComponent({
|
|
|
537
569
|
};
|
|
538
570
|
var hidePanelTimeout;
|
|
539
571
|
var hidePanel = function () {
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
572
|
+
return new Promise(function (resolve) {
|
|
573
|
+
reactData.visiblePanel = false;
|
|
574
|
+
hidePanelTimeout = window.setTimeout(function () {
|
|
575
|
+
reactData.animatVisible = false;
|
|
576
|
+
resolve();
|
|
577
|
+
}, 350);
|
|
578
|
+
});
|
|
544
579
|
};
|
|
545
580
|
var clearValueEvent = function (evnt, value) {
|
|
546
581
|
var type = props.type;
|
|
@@ -607,7 +642,7 @@ export default defineComponent({
|
|
|
607
642
|
var inputValue = reactData.inputValue;
|
|
608
643
|
if (isDatePickerType) {
|
|
609
644
|
dateParseValue(inputValue);
|
|
610
|
-
reactData.inputValue = reactData.datePanelLabel;
|
|
645
|
+
reactData.inputValue = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
|
|
611
646
|
}
|
|
612
647
|
};
|
|
613
648
|
/**
|
|
@@ -637,7 +672,7 @@ export default defineComponent({
|
|
|
637
672
|
return props.min === null || XEUtils.toNumber(num) >= XEUtils.toNumber(props.min);
|
|
638
673
|
};
|
|
639
674
|
var dateRevert = function () {
|
|
640
|
-
reactData.inputValue = reactData.datePanelLabel;
|
|
675
|
+
reactData.inputValue = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
|
|
641
676
|
};
|
|
642
677
|
var dateCheckMonth = function (date) {
|
|
643
678
|
var month = XEUtils.getWhatMonth(date, 0, 'first');
|
|
@@ -646,7 +681,7 @@ export default defineComponent({
|
|
|
646
681
|
}
|
|
647
682
|
};
|
|
648
683
|
var dateChange = function (date) {
|
|
649
|
-
var modelValue = props.modelValue;
|
|
684
|
+
var modelValue = props.modelValue, multiple = props.multiple;
|
|
650
685
|
var datetimePanelValue = reactData.datetimePanelValue;
|
|
651
686
|
var isDateTimeType = computeIsDateTimeType.value;
|
|
652
687
|
var dateValueFormat = computeDateValueFormat.value;
|
|
@@ -662,8 +697,39 @@ export default defineComponent({
|
|
|
662
697
|
}
|
|
663
698
|
var inpVal = XEUtils.toDateString(date, dateValueFormat, { firstDay: firstDayOfWeek });
|
|
664
699
|
dateCheckMonth(date);
|
|
665
|
-
if (
|
|
666
|
-
|
|
700
|
+
if (multiple) {
|
|
701
|
+
// 如果为多选
|
|
702
|
+
var dateMultipleValue = computeDateMultipleValue.value;
|
|
703
|
+
if (isDateTimeType) {
|
|
704
|
+
// 如果是datetime特殊类型
|
|
705
|
+
var dateListValue = computeDateListValue.value;
|
|
706
|
+
var datetimeRest_1 = [];
|
|
707
|
+
dateListValue.forEach(function (item) {
|
|
708
|
+
if (item && !XEUtils.isDateSame(date, item, 'yyyyMMdd')) {
|
|
709
|
+
item.setHours(datetimePanelValue.getHours());
|
|
710
|
+
item.setMinutes(datetimePanelValue.getMinutes());
|
|
711
|
+
item.setSeconds(datetimePanelValue.getSeconds());
|
|
712
|
+
datetimeRest_1.push(item);
|
|
713
|
+
}
|
|
714
|
+
});
|
|
715
|
+
datetimeRest_1.push(date);
|
|
716
|
+
emitModel(datetimeRest_1.map(function (date) { return XEUtils.toDateString(date, dateValueFormat); }).join(','), { type: 'update' });
|
|
717
|
+
}
|
|
718
|
+
else {
|
|
719
|
+
// 如果是日期类型
|
|
720
|
+
if (dateMultipleValue.some(function (val) { return XEUtils.isEqual(val, inpVal); })) {
|
|
721
|
+
emitModel(dateMultipleValue.filter(function (val) { return !XEUtils.isEqual(val, inpVal); }).join(','), { type: 'update' });
|
|
722
|
+
}
|
|
723
|
+
else {
|
|
724
|
+
emitModel(dateMultipleValue.concat([inpVal]).join(','), { type: 'update' });
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
else {
|
|
729
|
+
// 如果为单选
|
|
730
|
+
if (!XEUtils.isEqual(modelValue, inpVal)) {
|
|
731
|
+
emitModel(inpVal, { type: 'update' });
|
|
732
|
+
}
|
|
667
733
|
}
|
|
668
734
|
};
|
|
669
735
|
var afterCheckValue = function () {
|
|
@@ -933,8 +999,10 @@ export default defineComponent({
|
|
|
933
999
|
};
|
|
934
1000
|
var dateTodayMonthEvent = function (evnt) {
|
|
935
1001
|
dateNowHandle();
|
|
936
|
-
|
|
937
|
-
|
|
1002
|
+
if (!props.multiple) {
|
|
1003
|
+
dateChange(reactData.currentDate);
|
|
1004
|
+
hidePanel();
|
|
1005
|
+
}
|
|
938
1006
|
inputMethods.dispatchEvent('date-today', { type: props.type }, evnt);
|
|
939
1007
|
};
|
|
940
1008
|
var dateNextEvent = function (evnt) {
|
|
@@ -973,7 +1041,7 @@ export default defineComponent({
|
|
|
973
1041
|
return disabledMethod && disabledMethod({ type: datePanelType, viewType: datePanelType, date: item.date, $input: $xeinput });
|
|
974
1042
|
};
|
|
975
1043
|
var dateSelectItem = function (date) {
|
|
976
|
-
var type = props.type;
|
|
1044
|
+
var type = props.type, multiple = props.multiple;
|
|
977
1045
|
var datePanelType = reactData.datePanelType;
|
|
978
1046
|
if (type === 'month') {
|
|
979
1047
|
if (datePanelType === 'year') {
|
|
@@ -982,12 +1050,16 @@ export default defineComponent({
|
|
|
982
1050
|
}
|
|
983
1051
|
else {
|
|
984
1052
|
dateChange(date);
|
|
985
|
-
|
|
1053
|
+
if (!multiple) {
|
|
1054
|
+
hidePanel();
|
|
1055
|
+
}
|
|
986
1056
|
}
|
|
987
1057
|
}
|
|
988
1058
|
else if (type === 'year') {
|
|
989
1059
|
dateChange(date);
|
|
990
|
-
|
|
1060
|
+
if (!multiple) {
|
|
1061
|
+
hidePanel();
|
|
1062
|
+
}
|
|
991
1063
|
}
|
|
992
1064
|
else if (type === 'quarter') {
|
|
993
1065
|
if (datePanelType === 'year') {
|
|
@@ -996,7 +1068,9 @@ export default defineComponent({
|
|
|
996
1068
|
}
|
|
997
1069
|
else {
|
|
998
1070
|
dateChange(date);
|
|
999
|
-
|
|
1071
|
+
if (!multiple) {
|
|
1072
|
+
hidePanel();
|
|
1073
|
+
}
|
|
1000
1074
|
}
|
|
1001
1075
|
}
|
|
1002
1076
|
else {
|
|
@@ -1010,7 +1084,9 @@ export default defineComponent({
|
|
|
1010
1084
|
}
|
|
1011
1085
|
else {
|
|
1012
1086
|
dateChange(date);
|
|
1013
|
-
|
|
1087
|
+
if (!multiple) {
|
|
1088
|
+
hidePanel();
|
|
1089
|
+
}
|
|
1014
1090
|
}
|
|
1015
1091
|
}
|
|
1016
1092
|
};
|
|
@@ -1088,8 +1164,11 @@ export default defineComponent({
|
|
|
1088
1164
|
dateTimeChangeEvent(evnt);
|
|
1089
1165
|
};
|
|
1090
1166
|
var dateConfirmEvent = function () {
|
|
1167
|
+
var type = props.type;
|
|
1091
1168
|
var dateValue = computeDateValue.value;
|
|
1092
|
-
|
|
1169
|
+
if (type === 'datetime') {
|
|
1170
|
+
dateChange(dateValue || reactData.currentDate);
|
|
1171
|
+
}
|
|
1093
1172
|
hidePanel();
|
|
1094
1173
|
};
|
|
1095
1174
|
var dateMinuteEvent = function (evnt, item) {
|
|
@@ -1311,8 +1390,9 @@ export default defineComponent({
|
|
|
1311
1390
|
reactData.visiblePanel = true;
|
|
1312
1391
|
}, 10);
|
|
1313
1392
|
updateZindex();
|
|
1314
|
-
updatePlacement();
|
|
1393
|
+
return updatePlacement();
|
|
1315
1394
|
}
|
|
1395
|
+
return nextTick();
|
|
1316
1396
|
};
|
|
1317
1397
|
var datePickerOpenEvent = function (evnt) {
|
|
1318
1398
|
var readonly = props.readonly;
|
|
@@ -1488,10 +1568,12 @@ export default defineComponent({
|
|
|
1488
1568
|
return label;
|
|
1489
1569
|
};
|
|
1490
1570
|
var renderDateDayTable = function () {
|
|
1571
|
+
var multiple = props.multiple;
|
|
1491
1572
|
var datePanelType = reactData.datePanelType, datePanelValue = reactData.datePanelValue;
|
|
1492
1573
|
var dateValue = computeDateValue.value;
|
|
1493
1574
|
var dateHeaders = computeDateHeaders.value;
|
|
1494
1575
|
var dayDatas = computeDayDatas.value;
|
|
1576
|
+
var dateListValue = computeDateListValue.value;
|
|
1495
1577
|
var matchFormat = 'yyyyMMdd';
|
|
1496
1578
|
return [
|
|
1497
1579
|
h('table', {
|
|
@@ -1514,7 +1596,7 @@ export default defineComponent({
|
|
|
1514
1596
|
'is--now': item.isNow,
|
|
1515
1597
|
'is--next': item.isNext,
|
|
1516
1598
|
'is--disabled': isDateDisabled(item),
|
|
1517
|
-
'is--selected': XEUtils.isDateSame(dateValue, item.date, matchFormat),
|
|
1599
|
+
'is--selected': multiple ? dateListValue.some(function (val) { return XEUtils.isDateSame(val, item.date, matchFormat); }) : XEUtils.isDateSame(dateValue, item.date, matchFormat),
|
|
1518
1600
|
'is--hover': XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
|
|
1519
1601
|
},
|
|
1520
1602
|
onClick: function () { return dateSelectEvent(item); },
|
|
@@ -1526,10 +1608,12 @@ export default defineComponent({
|
|
|
1526
1608
|
];
|
|
1527
1609
|
};
|
|
1528
1610
|
var renderDateWeekTable = function () {
|
|
1611
|
+
var multiple = props.multiple;
|
|
1529
1612
|
var datePanelType = reactData.datePanelType, datePanelValue = reactData.datePanelValue;
|
|
1530
1613
|
var dateValue = computeDateValue.value;
|
|
1531
1614
|
var weekHeaders = computeWeekHeaders.value;
|
|
1532
1615
|
var weekDates = computeWeekDates.value;
|
|
1616
|
+
var dateListValue = computeDateListValue.value;
|
|
1533
1617
|
var matchFormat = 'yyyyMMdd';
|
|
1534
1618
|
return [
|
|
1535
1619
|
h('table', {
|
|
@@ -1544,7 +1628,7 @@ export default defineComponent({
|
|
|
1544
1628
|
}))
|
|
1545
1629
|
]),
|
|
1546
1630
|
h('tbody', weekDates.map(function (rows) {
|
|
1547
|
-
var isSelected = rows.some(function (item) { return XEUtils.isDateSame(dateValue, item.date, matchFormat); });
|
|
1631
|
+
var isSelected = multiple ? rows.some(function (item) { return dateListValue.some(function (val) { return XEUtils.isDateSame(val, item.date, matchFormat); }); }) : rows.some(function (item) { return XEUtils.isDateSame(dateValue, item.date, matchFormat); });
|
|
1548
1632
|
var isHover = rows.some(function (item) { return XEUtils.isDateSame(datePanelValue, item.date, matchFormat); });
|
|
1549
1633
|
return h('tr', rows.map(function (item) {
|
|
1550
1634
|
return h('td', {
|
|
@@ -1567,9 +1651,11 @@ export default defineComponent({
|
|
|
1567
1651
|
];
|
|
1568
1652
|
};
|
|
1569
1653
|
var renderDateMonthTable = function () {
|
|
1654
|
+
var multiple = props.multiple;
|
|
1570
1655
|
var datePanelType = reactData.datePanelType, datePanelValue = reactData.datePanelValue;
|
|
1571
1656
|
var dateValue = computeDateValue.value;
|
|
1572
1657
|
var monthDatas = computeMonthDatas.value;
|
|
1658
|
+
var dateListValue = computeDateListValue.value;
|
|
1573
1659
|
var matchFormat = 'yyyyMM';
|
|
1574
1660
|
return [
|
|
1575
1661
|
h('table', {
|
|
@@ -1587,7 +1673,7 @@ export default defineComponent({
|
|
|
1587
1673
|
'is--now': item.isNow,
|
|
1588
1674
|
'is--next': item.isNext,
|
|
1589
1675
|
'is--disabled': isDateDisabled(item),
|
|
1590
|
-
'is--selected': XEUtils.isDateSame(dateValue, item.date, matchFormat),
|
|
1676
|
+
'is--selected': multiple ? dateListValue.some(function (val) { return XEUtils.isDateSame(val, item.date, matchFormat); }) : XEUtils.isDateSame(dateValue, item.date, matchFormat),
|
|
1591
1677
|
'is--hover': XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
|
|
1592
1678
|
},
|
|
1593
1679
|
onClick: function () { return dateSelectEvent(item); },
|
|
@@ -1599,9 +1685,11 @@ export default defineComponent({
|
|
|
1599
1685
|
];
|
|
1600
1686
|
};
|
|
1601
1687
|
var renderDateQuarterTable = function () {
|
|
1688
|
+
var multiple = props.multiple;
|
|
1602
1689
|
var datePanelType = reactData.datePanelType, datePanelValue = reactData.datePanelValue;
|
|
1603
1690
|
var dateValue = computeDateValue.value;
|
|
1604
1691
|
var quarterDatas = computeQuarterDatas.value;
|
|
1692
|
+
var dateListValue = computeDateListValue.value;
|
|
1605
1693
|
var matchFormat = 'yyyyq';
|
|
1606
1694
|
return [
|
|
1607
1695
|
h('table', {
|
|
@@ -1619,7 +1707,7 @@ export default defineComponent({
|
|
|
1619
1707
|
'is--now': item.isNow,
|
|
1620
1708
|
'is--next': item.isNext,
|
|
1621
1709
|
'is--disabled': isDateDisabled(item),
|
|
1622
|
-
'is--selected': XEUtils.isDateSame(dateValue, item.date, matchFormat),
|
|
1710
|
+
'is--selected': multiple ? dateListValue.some(function (val) { return XEUtils.isDateSame(val, item.date, matchFormat); }) : XEUtils.isDateSame(dateValue, item.date, matchFormat),
|
|
1623
1711
|
'is--hover': XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
|
|
1624
1712
|
},
|
|
1625
1713
|
onClick: function () { return dateSelectEvent(item); },
|
|
@@ -1631,9 +1719,11 @@ export default defineComponent({
|
|
|
1631
1719
|
];
|
|
1632
1720
|
};
|
|
1633
1721
|
var renderDateYearTable = function () {
|
|
1722
|
+
var multiple = props.multiple;
|
|
1634
1723
|
var datePanelType = reactData.datePanelType, datePanelValue = reactData.datePanelValue;
|
|
1635
1724
|
var dateValue = computeDateValue.value;
|
|
1636
1725
|
var yearDatas = computeYearDatas.value;
|
|
1726
|
+
var dateListValue = computeDateListValue.value;
|
|
1637
1727
|
var matchFormat = 'yyyy';
|
|
1638
1728
|
return [
|
|
1639
1729
|
h('table', {
|
|
@@ -1646,10 +1736,12 @@ export default defineComponent({
|
|
|
1646
1736
|
return h('tr', rows.map(function (item) {
|
|
1647
1737
|
return h('td', {
|
|
1648
1738
|
class: {
|
|
1649
|
-
'is--
|
|
1739
|
+
'is--prev': item.isPrev,
|
|
1650
1740
|
'is--current': item.isCurrent,
|
|
1651
1741
|
'is--now': item.isNow,
|
|
1652
|
-
'is--
|
|
1742
|
+
'is--next': item.isNext,
|
|
1743
|
+
'is--disabled': isDateDisabled(item),
|
|
1744
|
+
'is--selected': multiple ? dateListValue.some(function (val) { return XEUtils.isDateSame(val, item.date, matchFormat); }) : XEUtils.isDateSame(dateValue, item.date, matchFormat),
|
|
1653
1745
|
'is--hover': XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
|
|
1654
1746
|
},
|
|
1655
1747
|
onClick: function () { return dateSelectEvent(item); },
|
|
@@ -1675,6 +1767,7 @@ export default defineComponent({
|
|
|
1675
1767
|
return renderDateDayTable();
|
|
1676
1768
|
};
|
|
1677
1769
|
var renderDatePanel = function () {
|
|
1770
|
+
var multiple = props.multiple;
|
|
1678
1771
|
var datePanelType = reactData.datePanelType;
|
|
1679
1772
|
var isDisabledPrevDateBtn = computeIsDisabledPrevDateBtn.value;
|
|
1680
1773
|
var isDisabledNextDateBtn = computeIsDisabledNextDateBtn.value;
|
|
@@ -1723,7 +1816,16 @@ export default defineComponent({
|
|
|
1723
1816
|
h('i', {
|
|
1724
1817
|
class: 'vxe-icon--caret-right'
|
|
1725
1818
|
})
|
|
1726
|
-
])
|
|
1819
|
+
]),
|
|
1820
|
+
multiple && computeSupportMultiples.value ? h('span', {
|
|
1821
|
+
class: 'vxe-input--date-picker-btn vxe-input--date-picker-confirm-btn'
|
|
1822
|
+
}, [
|
|
1823
|
+
h('button', {
|
|
1824
|
+
class: 'vxe-input--date-picker-confirm',
|
|
1825
|
+
type: 'button',
|
|
1826
|
+
onClick: dateConfirmEvent
|
|
1827
|
+
}, GlobalConfig.i18n('vxe.button.confirm'))
|
|
1828
|
+
]) : null
|
|
1727
1829
|
])
|
|
1728
1830
|
]),
|
|
1729
1831
|
h('div', {
|
|
@@ -1983,7 +2085,10 @@ export default defineComponent({
|
|
|
1983
2085
|
inputElem.blur();
|
|
1984
2086
|
reactData.isActivated = false;
|
|
1985
2087
|
return nextTick();
|
|
1986
|
-
}
|
|
2088
|
+
},
|
|
2089
|
+
showPanel: showPanel,
|
|
2090
|
+
hidePanel: hidePanel,
|
|
2091
|
+
updatePlacement: updatePlacement
|
|
1987
2092
|
};
|
|
1988
2093
|
Object.assign($xeinput, inputMethods);
|
|
1989
2094
|
watch(function () { return props.modelValue; }, function (val) {
|
|
@@ -2007,7 +2112,7 @@ export default defineComponent({
|
|
|
2007
2112
|
var isDatePickerType = computeIsDatePickerType.value;
|
|
2008
2113
|
if (isDatePickerType) {
|
|
2009
2114
|
dateParseValue(reactData.datePanelValue);
|
|
2010
|
-
reactData.inputValue = reactData.datePanelLabel;
|
|
2115
|
+
reactData.inputValue = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
|
|
2011
2116
|
}
|
|
2012
2117
|
});
|
|
2013
2118
|
nextTick(function () {
|
package/es/input/style.css
CHANGED
|
@@ -271,7 +271,10 @@
|
|
|
271
271
|
.vxe-input--time-picker-confirm {
|
|
272
272
|
position: absolute;
|
|
273
273
|
right: 0;
|
|
274
|
-
top: 0;
|
|
274
|
+
top: 0; }
|
|
275
|
+
|
|
276
|
+
.vxe-input--time-picker-confirm,
|
|
277
|
+
.vxe-input--date-picker-confirm {
|
|
275
278
|
outline: 0;
|
|
276
279
|
border: 1px solid #dcdfe6;
|
|
277
280
|
border-radius: 4px;
|
|
@@ -279,10 +282,12 @@
|
|
|
279
282
|
color: #fff;
|
|
280
283
|
border-color: #409eff;
|
|
281
284
|
background-color: #409eff; }
|
|
282
|
-
.vxe-input--time-picker-confirm:hover
|
|
285
|
+
.vxe-input--time-picker-confirm:hover,
|
|
286
|
+
.vxe-input--date-picker-confirm:hover {
|
|
283
287
|
background-color: #5faeff;
|
|
284
288
|
border-color: #5faeff; }
|
|
285
|
-
.vxe-input--time-picker-confirm:active
|
|
289
|
+
.vxe-input--time-picker-confirm:active,
|
|
290
|
+
.vxe-input--date-picker-confirm:active {
|
|
286
291
|
background-color: #3196ff;
|
|
287
292
|
border-color: #3196ff; }
|
|
288
293
|
|
|
@@ -316,8 +321,6 @@
|
|
|
316
321
|
.vxe-input--date-picker-btn {
|
|
317
322
|
display: inline-block;
|
|
318
323
|
display: flex;
|
|
319
|
-
border-radius: 4px;
|
|
320
|
-
border: 1px solid #dcdfe6;
|
|
321
324
|
align-items: center;
|
|
322
325
|
justify-content: center;
|
|
323
326
|
background-color: #fff; }
|
|
@@ -370,6 +373,8 @@
|
|
|
370
373
|
.vxe-input--date-picker-body td.is--selected {
|
|
371
374
|
color: #fff;
|
|
372
375
|
background-color: #409eff; }
|
|
376
|
+
.vxe-input--date-picker-body td.is--selected.is--prev, .vxe-input--date-picker-body td.is--selected.is--next {
|
|
377
|
+
background-color: #73b8ff; }
|
|
373
378
|
.vxe-input--date-picker-body td.is--selected .vxe-input--date-label,
|
|
374
379
|
.vxe-input--date-picker-body td.is--selected .vxe-input--date-festival {
|
|
375
380
|
color: #fff; }
|
|
@@ -558,8 +563,13 @@
|
|
|
558
563
|
height: 30px;
|
|
559
564
|
line-height: 30px; }
|
|
560
565
|
.vxe-input--panel .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-btn {
|
|
561
|
-
width: 30px;
|
|
562
566
|
margin-left: 8px; }
|
|
567
|
+
.vxe-input--panel .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-prev-btn,
|
|
568
|
+
.vxe-input--panel .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-current-btn,
|
|
569
|
+
.vxe-input--panel .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-next-btn {
|
|
570
|
+
width: 30px;
|
|
571
|
+
border-radius: 4px;
|
|
572
|
+
border: 1px solid #dcdfe6; }
|
|
563
573
|
.vxe-input--panel .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-label,
|
|
564
574
|
.vxe-input--panel .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-btn {
|
|
565
575
|
padding: 0 9px; }
|
|
@@ -590,7 +600,8 @@
|
|
|
590
600
|
height: 48px; }
|
|
591
601
|
.vxe-input--panel .vxe-input--date-picker-body th {
|
|
592
602
|
height: 30px; }
|
|
593
|
-
.vxe-input--panel .vxe-input--time-picker-confirm
|
|
603
|
+
.vxe-input--panel .vxe-input--time-picker-confirm,
|
|
604
|
+
.vxe-input--panel .vxe-input--date-picker-confirm {
|
|
594
605
|
height: 30px;
|
|
595
606
|
padding: 0 9px; }
|
|
596
607
|
.vxe-input--panel .vxe-input--date-label {
|
|
@@ -621,8 +632,13 @@
|
|
|
621
632
|
height: 29px;
|
|
622
633
|
line-height: 29px; }
|
|
623
634
|
.vxe-input--panel.size--medium .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-btn {
|
|
624
|
-
width: 29px;
|
|
625
635
|
margin-left: 7px; }
|
|
636
|
+
.vxe-input--panel.size--medium .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-prev-btn,
|
|
637
|
+
.vxe-input--panel.size--medium .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-current-btn,
|
|
638
|
+
.vxe-input--panel.size--medium .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-next-btn {
|
|
639
|
+
width: 29px;
|
|
640
|
+
border-radius: 4px;
|
|
641
|
+
border: 1px solid #dcdfe6; }
|
|
626
642
|
.vxe-input--panel.size--medium .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-label,
|
|
627
643
|
.vxe-input--panel.size--medium .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-btn {
|
|
628
644
|
padding: 0 8px; }
|
|
@@ -653,7 +669,8 @@
|
|
|
653
669
|
height: 46px; }
|
|
654
670
|
.vxe-input--panel.size--medium .vxe-input--date-picker-body th {
|
|
655
671
|
height: 29px; }
|
|
656
|
-
.vxe-input--panel.size--medium .vxe-input--time-picker-confirm
|
|
672
|
+
.vxe-input--panel.size--medium .vxe-input--time-picker-confirm,
|
|
673
|
+
.vxe-input--panel.size--medium .vxe-input--date-picker-confirm {
|
|
657
674
|
height: 29px;
|
|
658
675
|
padding: 0 8px; }
|
|
659
676
|
.vxe-input--panel.size--medium .vxe-input--date-label {
|
|
@@ -684,8 +701,13 @@
|
|
|
684
701
|
height: 28px;
|
|
685
702
|
line-height: 28px; }
|
|
686
703
|
.vxe-input--panel.size--small .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-btn {
|
|
687
|
-
width: 28px;
|
|
688
704
|
margin-left: 6px; }
|
|
705
|
+
.vxe-input--panel.size--small .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-prev-btn,
|
|
706
|
+
.vxe-input--panel.size--small .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-current-btn,
|
|
707
|
+
.vxe-input--panel.size--small .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-next-btn {
|
|
708
|
+
width: 28px;
|
|
709
|
+
border-radius: 4px;
|
|
710
|
+
border: 1px solid #dcdfe6; }
|
|
689
711
|
.vxe-input--panel.size--small .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-label,
|
|
690
712
|
.vxe-input--panel.size--small .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-btn {
|
|
691
713
|
padding: 0 7px; }
|
|
@@ -716,7 +738,8 @@
|
|
|
716
738
|
height: 44px; }
|
|
717
739
|
.vxe-input--panel.size--small .vxe-input--date-picker-body th {
|
|
718
740
|
height: 28px; }
|
|
719
|
-
.vxe-input--panel.size--small .vxe-input--time-picker-confirm
|
|
741
|
+
.vxe-input--panel.size--small .vxe-input--time-picker-confirm,
|
|
742
|
+
.vxe-input--panel.size--small .vxe-input--date-picker-confirm {
|
|
720
743
|
height: 28px;
|
|
721
744
|
padding: 0 7px; }
|
|
722
745
|
.vxe-input--panel.size--small .vxe-input--date-label {
|
|
@@ -747,8 +770,13 @@
|
|
|
747
770
|
height: 27px;
|
|
748
771
|
line-height: 27px; }
|
|
749
772
|
.vxe-input--panel.size--mini .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-btn {
|
|
750
|
-
width: 27px;
|
|
751
773
|
margin-left: 5px; }
|
|
774
|
+
.vxe-input--panel.size--mini .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-prev-btn,
|
|
775
|
+
.vxe-input--panel.size--mini .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-current-btn,
|
|
776
|
+
.vxe-input--panel.size--mini .vxe-input--date-picker-btn-wrapper .vxe-input--date-picker-next-btn {
|
|
777
|
+
width: 27px;
|
|
778
|
+
border-radius: 4px;
|
|
779
|
+
border: 1px solid #dcdfe6; }
|
|
752
780
|
.vxe-input--panel.size--mini .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-label,
|
|
753
781
|
.vxe-input--panel.size--mini .vxe-input--date-picker-type-wrapper .vxe-input--date-picker-btn {
|
|
754
782
|
padding: 0 6px; }
|
|
@@ -779,7 +807,8 @@
|
|
|
779
807
|
height: 42px; }
|
|
780
808
|
.vxe-input--panel.size--mini .vxe-input--date-picker-body th {
|
|
781
809
|
height: 26px; }
|
|
782
|
-
.vxe-input--panel.size--mini .vxe-input--time-picker-confirm
|
|
810
|
+
.vxe-input--panel.size--mini .vxe-input--time-picker-confirm,
|
|
811
|
+
.vxe-input--panel.size--mini .vxe-input--date-picker-confirm {
|
|
783
812
|
height: 27px;
|
|
784
813
|
padding: 0 6px; }
|
|
785
814
|
.vxe-input--panel.size--mini .vxe-input--date-label {
|
package/es/keyboard/src/hook.js
CHANGED
|
@@ -62,7 +62,11 @@ var tableKeyboardHook = {
|
|
|
62
62
|
var elemStore = internalData.elemStore;
|
|
63
63
|
var disX_1 = evnt.clientX;
|
|
64
64
|
var disY_1 = evnt.clientY;
|
|
65
|
-
var
|
|
65
|
+
var bodyWrapperRef = elemStore[(column.fixed || 'main') + "-body-wrapper"] || elemStore['main-body-wrapper'];
|
|
66
|
+
var bodyWrapperElem_1 = bodyWrapperRef ? bodyWrapperRef.value : null;
|
|
67
|
+
if (!bodyWrapperElem_1) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
66
70
|
var checkboxRangeElem_1 = bodyWrapperElem_1.querySelector('.vxe-table--checkbox-range');
|
|
67
71
|
var domMousemove_1 = document.onmousemove;
|
|
68
72
|
var domMouseup_1 = document.onmouseup;
|