mirror of
https://github.com/tenrok/vue2-datepicker.git
synced 2026-06-15 01:42:27 +03:00
feat: default-value supports Array for range (#395)
This commit is contained in:
@@ -128,9 +128,6 @@ export default {
|
||||
props: {
|
||||
value: {},
|
||||
defaultValue: {
|
||||
validator(value) {
|
||||
return !isNaN(new Date(value).getTime());
|
||||
},
|
||||
default() {
|
||||
const date = new Date();
|
||||
date.setHours(0, 0, 0, 0);
|
||||
|
||||
@@ -27,6 +27,11 @@ export default {
|
||||
calendarMaxDiff() {
|
||||
return Infinity;
|
||||
},
|
||||
defaultValues() {
|
||||
return Array.isArray(this.defaultValue)
|
||||
? this.defaultValue
|
||||
: [this.defaultValue, this.defaultValue];
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
value: {
|
||||
@@ -35,7 +40,7 @@ export default {
|
||||
this.innerValue = isValidRangeDate(this.value)
|
||||
? this.value
|
||||
: [new Date(NaN), new Date(NaN)];
|
||||
this.calendars = this.innerValue.map(v => getValidDate(v, this.defaultValue));
|
||||
this.calendars = this.innerValue.map((v, i) => getValidDate(v, this.defaultValues[i]));
|
||||
this.validateCalendars(1);
|
||||
},
|
||||
},
|
||||
@@ -108,6 +113,7 @@ export default {
|
||||
...this.$props,
|
||||
calendar,
|
||||
value: this.innerValue,
|
||||
defaultValue: this.defaultValues[index],
|
||||
getClasses: this.getRangeClasses,
|
||||
// don't update when range is true
|
||||
partialUpdate: false,
|
||||
|
||||
+2
-2
@@ -87,7 +87,7 @@
|
||||
|
||||
<script>
|
||||
import { parse, format, getWeek } from 'date-format-parse';
|
||||
import { isValidDate, isValidRangeDate, getValidDate } from './util/date';
|
||||
import { isValidDate, isValidRangeDate } from './util/date';
|
||||
import { pick, isObject, mergeDeep } from './util/base';
|
||||
import { getLocale, getLocaleFieldValue } from './locale';
|
||||
import Popup from './popup';
|
||||
@@ -306,7 +306,7 @@ export default {
|
||||
if (isObject(this.format) && typeof this.format.parse === 'function') {
|
||||
return this.format.parse(value, fmt);
|
||||
}
|
||||
const backupDate = getValidDate(this.defaultValue);
|
||||
const backupDate = new Date();
|
||||
return parse(value, fmt, { locale: this.locale.formatLocale, backupDate });
|
||||
},
|
||||
formatDate(date, fmt) {
|
||||
|
||||
@@ -43,15 +43,18 @@ export default {
|
||||
if (type === 'date') {
|
||||
this.openTimePanel();
|
||||
}
|
||||
const defaultValues = Array.isArray(this.defaultValue)
|
||||
? this.defaultValue
|
||||
: [this.defaultValue, this.defaultValue];
|
||||
let datetimes = dates.map((date, i) => {
|
||||
const time = isValidRangeDate(this.value) ? this.value[i] : this.defaultValue;
|
||||
const time = isValidRangeDate(this.value) ? this.value[i] : defaultValues[i];
|
||||
return assignTime(date, time);
|
||||
});
|
||||
if (datetimes[1].getTime() < datetimes[0].getTime()) {
|
||||
datetimes = [datetimes[0], datetimes[0]];
|
||||
}
|
||||
if (datetimes.some(this.disabledTime)) {
|
||||
datetimes = dates.map(date => assignTime(date, this.defaultValue));
|
||||
datetimes = dates.map((date, i) => assignTime(date, defaultValues[i]));
|
||||
if (datetimes.some(this.disabledTime)) {
|
||||
this.currentValue = datetimes;
|
||||
return;
|
||||
|
||||
@@ -53,9 +53,6 @@ export default {
|
||||
props: {
|
||||
value: {},
|
||||
defaultValue: {
|
||||
validator(value) {
|
||||
return !isNaN(new Date(value).getTime());
|
||||
},
|
||||
default() {
|
||||
const date = new Date();
|
||||
date.setHours(0, 0, 0, 0);
|
||||
|
||||
@@ -56,6 +56,9 @@ export default {
|
||||
},
|
||||
},
|
||||
render() {
|
||||
const defaultValues = Array.isArray(this.defaultValue)
|
||||
? this.defaultValue
|
||||
: [this.defaultValue, this.defaultValue];
|
||||
return (
|
||||
<div class="mx-range-wrapper">
|
||||
<TimePanel
|
||||
@@ -63,6 +66,7 @@ export default {
|
||||
props: {
|
||||
...this.$props,
|
||||
value: this.startValue,
|
||||
defaultValue: defaultValues[0],
|
||||
disabledTime: this.disabledStartTime,
|
||||
},
|
||||
on: {
|
||||
@@ -76,6 +80,7 @@ export default {
|
||||
props: {
|
||||
...this.$props,
|
||||
value: this.endValue,
|
||||
defaultValue: defaultValues[1],
|
||||
disabledTime: this.disabledEndTime,
|
||||
},
|
||||
on: {
|
||||
|
||||
Reference in New Issue
Block a user