vxe-pc-ui 3.15.22 → 3.15.24
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/date-panel/src/date-panel.js +34 -14
- package/es/date-panel/src/util.js +30 -3
- package/es/date-picker/src/date-picker.js +1 -1
- package/es/date-range-picker/src/date-range-picker.js +236 -134
- package/es/icon/style.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/tooltip/src/tooltip.js +34 -21
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/date-panel/src/date-panel.js +46 -15
- package/lib/date-panel/src/date-panel.min.js +1 -1
- package/lib/date-panel/src/util.js +31 -5
- package/lib/date-panel/src/util.min.js +1 -1
- package/lib/date-picker/src/date-picker.js +1 -1
- package/lib/date-picker/src/date-picker.min.js +1 -1
- package/lib/date-range-picker/src/date-range-picker.js +259 -142
- package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
- package/lib/icon/style/style.css +1 -1
- package/lib/icon/style/style.min.css +1 -1
- package/lib/index.umd.js +381 -192
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/tooltip/src/tooltip.js +36 -21
- package/lib/tooltip/src/tooltip.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +1 -1
- package/packages/date-panel/src/date-panel.ts +38 -15
- package/packages/date-panel/src/util.ts +31 -4
- package/packages/date-picker/src/date-picker.ts +1 -1
- package/packages/date-range-picker/src/date-range-picker.ts +238 -134
- package/packages/tooltip/src/tooltip.ts +41 -20
- package/types/components/date-panel.d.ts +15 -2
- package/types/components/date-range-picker.d.ts +5 -3
- package/types/components/tooltip.d.ts +1 -1
- package/types/ui/commands.d.ts +3 -3
- /package/es/icon/{iconfont.1783065884505.ttf → iconfont.1783233735491.ttf} +0 -0
- /package/es/icon/{iconfont.1783065884505.woff → iconfont.1783233735491.woff} +0 -0
- /package/es/icon/{iconfont.1783065884505.woff2 → iconfont.1783233735491.woff2} +0 -0
- /package/es/{iconfont.1783065884505.ttf → iconfont.1783233735491.ttf} +0 -0
- /package/es/{iconfont.1783065884505.woff → iconfont.1783233735491.woff} +0 -0
- /package/es/{iconfont.1783065884505.woff2 → iconfont.1783233735491.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1783065884505.ttf → iconfont.1783233735491.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1783065884505.woff → iconfont.1783233735491.woff} +0 -0
- /package/lib/icon/style/{iconfont.1783065884505.woff2 → iconfont.1783233735491.woff2} +0 -0
- /package/lib/{iconfont.1783065884505.ttf → iconfont.1783233735491.ttf} +0 -0
- /package/lib/{iconfont.1783065884505.woff → iconfont.1783233735491.woff} +0 -0
- /package/lib/{iconfont.1783065884505.woff2 → iconfont.1783233735491.woff2} +0 -0
|
@@ -37,6 +37,7 @@ export default {
|
|
|
37
37
|
type: [String, Number, Date],
|
|
38
38
|
default: () => getConfig().datePanel.endDate
|
|
39
39
|
},
|
|
40
|
+
defaultMode: String,
|
|
40
41
|
defaultDate: [String, Number, Date],
|
|
41
42
|
defaultTime: [String, Number, Date],
|
|
42
43
|
minDate: [String, Number, Date],
|
|
@@ -48,6 +49,7 @@ export default {
|
|
|
48
49
|
labelFormat: String,
|
|
49
50
|
valueFormat: String,
|
|
50
51
|
timeFormat: String,
|
|
52
|
+
valueSort: Boolean,
|
|
51
53
|
festivalMethod: {
|
|
52
54
|
type: Function,
|
|
53
55
|
default: () => getConfig().datePanel.festivalMethod
|
|
@@ -171,12 +173,14 @@ export default {
|
|
|
171
173
|
computeDateValue() {
|
|
172
174
|
const $xeDatePanel = this;
|
|
173
175
|
const props = $xeDatePanel;
|
|
174
|
-
const { value: modelValue } = props;
|
|
176
|
+
const { value: modelValue, defaultMode } = props;
|
|
175
177
|
const isDatePanelType = $xeDatePanel.computeIsDatePanelType;
|
|
176
178
|
const dateValueFormat = $xeDatePanel.computeDateValueFormat;
|
|
177
179
|
let val = null;
|
|
178
180
|
if (modelValue && isDatePanelType) {
|
|
179
|
-
const
|
|
181
|
+
const vals = XEUtils.isString(modelValue) ? modelValue.split(',') : modelValue;
|
|
182
|
+
const currVal = defaultMode === 'last' ? XEUtils.last(vals) : XEUtils.first(vals);
|
|
183
|
+
const date = $xeDatePanel.parseDate(currVal, dateValueFormat);
|
|
180
184
|
if (XEUtils.isValidDate(date)) {
|
|
181
185
|
val = date;
|
|
182
186
|
}
|
|
@@ -634,10 +638,10 @@ export default {
|
|
|
634
638
|
const props = $xeDatePanel;
|
|
635
639
|
const { type, multiple } = props;
|
|
636
640
|
if (type === 'time') {
|
|
637
|
-
return toStringTimeDate(value);
|
|
641
|
+
return toStringTimeDate(XEUtils.isArray(value) ? value : XEUtils.last(value));
|
|
638
642
|
}
|
|
639
643
|
if (XEUtils.isArray(value)) {
|
|
640
|
-
return XEUtils.toStringDate(value
|
|
644
|
+
return XEUtils.toStringDate(XEUtils.last(value), format);
|
|
641
645
|
}
|
|
642
646
|
if (XEUtils.isString(value)) {
|
|
643
647
|
return XEUtils.toStringDate(multiple ? XEUtils.last(value.split(',')) : value, format);
|
|
@@ -708,7 +712,7 @@ export default {
|
|
|
708
712
|
$xeDatePanel.handleChange('', { type: 'check' });
|
|
709
713
|
}
|
|
710
714
|
},
|
|
711
|
-
handleChange(value, evnt) {
|
|
715
|
+
handleChange(value, evnt, params) {
|
|
712
716
|
const $xeDatePanel = this;
|
|
713
717
|
const props = $xeDatePanel;
|
|
714
718
|
const reactData = $xeDatePanel.reactData;
|
|
@@ -720,20 +724,20 @@ export default {
|
|
|
720
724
|
const timeNum = dateVal ? dateVal.getTime() : null;
|
|
721
725
|
$xeDatePanel.emitModel(timeNum);
|
|
722
726
|
if (modelValue !== timeNum) {
|
|
723
|
-
$xeDatePanel.dispatchEvent('change', { value: timeNum }, evnt);
|
|
727
|
+
$xeDatePanel.dispatchEvent('change', { value: timeNum, currValue: params ? params.currValue : '' }, evnt);
|
|
724
728
|
}
|
|
725
729
|
}
|
|
726
730
|
else if (hasDateValueType(valueFormat)) {
|
|
727
731
|
const dateVal = parseDateValue(value, type, { valueFormat: dateValueFormat });
|
|
728
732
|
$xeDatePanel.emitModel(dateVal);
|
|
729
733
|
if (modelValue && dateVal ? XEUtils.toStringDate(modelValue).getTime() !== dateVal.getTime() : modelValue !== dateVal) {
|
|
730
|
-
$xeDatePanel.dispatchEvent('change', { value: dateVal }, evnt);
|
|
734
|
+
$xeDatePanel.dispatchEvent('change', { value: dateVal, currValue: params ? params.currValue : '' }, evnt);
|
|
731
735
|
}
|
|
732
736
|
}
|
|
733
737
|
else {
|
|
734
738
|
$xeDatePanel.emitModel(value);
|
|
735
739
|
if (XEUtils.toValueString(modelValue) !== value) {
|
|
736
|
-
$xeDatePanel.dispatchEvent('change', { value }, evnt);
|
|
740
|
+
$xeDatePanel.dispatchEvent('change', { value, currValue: params ? params.currValue : '' }, evnt);
|
|
737
741
|
}
|
|
738
742
|
}
|
|
739
743
|
},
|
|
@@ -807,7 +811,7 @@ export default {
|
|
|
807
811
|
const $xeDatePanel = this;
|
|
808
812
|
const props = $xeDatePanel;
|
|
809
813
|
const reactData = $xeDatePanel.reactData;
|
|
810
|
-
const { value: modelValue, multiple } = props;
|
|
814
|
+
const { value: modelValue, multiple, valueSort } = props;
|
|
811
815
|
const { datetimePanelValue } = reactData;
|
|
812
816
|
const isDateTimeType = $xeDatePanel.computeIsDateTimeType;
|
|
813
817
|
const dateValueFormat = $xeDatePanel.computeDateValueFormat;
|
|
@@ -831,7 +835,7 @@ export default {
|
|
|
831
835
|
if (isDateTimeType) {
|
|
832
836
|
// 如果是datetime特殊类型
|
|
833
837
|
const dateListValue = isReload ? [] : [...$xeDatePanel.computeDateListValue];
|
|
834
|
-
|
|
838
|
+
let datetimeRest = [];
|
|
835
839
|
const eqIndex = XEUtils.findIndexOf(dateListValue, val => XEUtils.isDateSame(date, val, 'yyyyMMdd'));
|
|
836
840
|
if (eqIndex === -1) {
|
|
837
841
|
if (overCount) {
|
|
@@ -853,27 +857,37 @@ export default {
|
|
|
853
857
|
datetimeRest.push(item);
|
|
854
858
|
}
|
|
855
859
|
});
|
|
856
|
-
|
|
860
|
+
// 排序
|
|
861
|
+
if (valueSort) {
|
|
862
|
+
datetimeRest = datetimeRest.sort((a, b) => a.getTime() - b.getTime());
|
|
863
|
+
}
|
|
864
|
+
$xeDatePanel.handleChange(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' }, { currValue: inpVal });
|
|
857
865
|
}
|
|
858
866
|
else {
|
|
859
867
|
const dateMultipleValue = isReload ? [] : $xeDatePanel.computeDateMultipleValue;
|
|
868
|
+
let dateRest = [];
|
|
860
869
|
// 如果是日期类型
|
|
861
870
|
if (dateMultipleValue.some(val => XEUtils.isEqual(val, inpVal))) {
|
|
862
|
-
|
|
871
|
+
dateRest = dateMultipleValue.filter(val => !XEUtils.isEqual(val, inpVal));
|
|
863
872
|
}
|
|
864
873
|
else {
|
|
865
874
|
if (overCount) {
|
|
866
875
|
// 如果超出最大多选数量
|
|
867
876
|
return;
|
|
868
877
|
}
|
|
869
|
-
|
|
878
|
+
dateRest = dateMultipleValue.concat([inpVal]);
|
|
879
|
+
}
|
|
880
|
+
// 排序
|
|
881
|
+
if (valueSort) {
|
|
882
|
+
dateRest = dateRest.sort();
|
|
870
883
|
}
|
|
884
|
+
$xeDatePanel.handleChange(dateRest.join(','), { type: 'update' }, { currValue: inpVal });
|
|
871
885
|
}
|
|
872
886
|
}
|
|
873
887
|
else {
|
|
874
888
|
// 如果为单选
|
|
875
889
|
if (!XEUtils.isEqual(modelValue, inpVal)) {
|
|
876
|
-
$xeDatePanel.handleChange(inpVal, { type: 'update' });
|
|
890
|
+
$xeDatePanel.handleChange(inpVal, { type: 'update' }, { currValue: inpVal });
|
|
877
891
|
}
|
|
878
892
|
}
|
|
879
893
|
},
|
|
@@ -1318,6 +1332,12 @@ export default {
|
|
|
1318
1332
|
const reactData = $xeDatePanel.reactData;
|
|
1319
1333
|
return reactData.inputValue;
|
|
1320
1334
|
},
|
|
1335
|
+
getViewType() {
|
|
1336
|
+
const $xeDatePanel = this;
|
|
1337
|
+
const reactData = $xeDatePanel.reactData;
|
|
1338
|
+
const { datePanelType } = reactData;
|
|
1339
|
+
return datePanelType;
|
|
1340
|
+
},
|
|
1321
1341
|
setPanelDate(date) {
|
|
1322
1342
|
const $xeDatePanel = this;
|
|
1323
1343
|
if (date) {
|
|
@@ -74,11 +74,11 @@ export function getDateQuarter(date) {
|
|
|
74
74
|
}
|
|
75
75
|
return 4;
|
|
76
76
|
}
|
|
77
|
-
export
|
|
77
|
+
export function parseDateValue(val, type, options) {
|
|
78
78
|
const { valueFormat } = options;
|
|
79
79
|
if (val) {
|
|
80
80
|
if (type === 'time') {
|
|
81
|
-
return toStringTimeDate(val);
|
|
81
|
+
return toStringTimeDate(XEUtils.isArray(val) ? val : XEUtils.last(val));
|
|
82
82
|
}
|
|
83
83
|
if (XEUtils.isNumber(val) || /^[0-9]{10,15}$/.test(`${val}`)) {
|
|
84
84
|
return new Date(Number(val));
|
|
@@ -86,10 +86,13 @@ export const parseDateValue = (val, type, options) => {
|
|
|
86
86
|
if (XEUtils.isString(val)) {
|
|
87
87
|
return XEUtils.toStringDate(XEUtils.last(val.split(',')), valueFormat);
|
|
88
88
|
}
|
|
89
|
+
if (XEUtils.isArray(val)) {
|
|
90
|
+
return XEUtils.toStringDate(XEUtils.last(val), valueFormat);
|
|
91
|
+
}
|
|
89
92
|
return XEUtils.toStringDate(val, valueFormat);
|
|
90
93
|
}
|
|
91
94
|
return null;
|
|
92
|
-
}
|
|
95
|
+
}
|
|
93
96
|
export function parseDateString(val, type, options) {
|
|
94
97
|
const dValue = parseDateValue(val, type, options);
|
|
95
98
|
return dValue ? XEUtils.toDateString(dValue, options.valueFormat) : '';
|
|
@@ -256,3 +259,27 @@ export function checkDateInputFormat(numStr, formatKey) {
|
|
|
256
259
|
}
|
|
257
260
|
return numVal;
|
|
258
261
|
}
|
|
262
|
+
export const getPrevMonth = (date) => {
|
|
263
|
+
const currtYear = date.getFullYear();
|
|
264
|
+
const currMonth = date.getMonth();
|
|
265
|
+
if (currMonth) {
|
|
266
|
+
date.setMonth(currMonth - 1);
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
date.setFullYear(currtYear - 1);
|
|
270
|
+
date.setMonth(11);
|
|
271
|
+
}
|
|
272
|
+
return date;
|
|
273
|
+
};
|
|
274
|
+
export const getNextMonth = (date) => {
|
|
275
|
+
const currtYear = date.getFullYear();
|
|
276
|
+
const currMonth = date.getMonth();
|
|
277
|
+
if (currMonth < 11) {
|
|
278
|
+
date.setMonth(currMonth + 1);
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
date.setFullYear(currtYear + 1);
|
|
282
|
+
date.setMonth(0);
|
|
283
|
+
}
|
|
284
|
+
return date;
|
|
285
|
+
};
|