DatePicker: fix format week, fixed #2774 (#3687)

pull/3720/head
cinwell.li 2017-03-24 15:44:23 +08:00 committed by baiyaaaaa
parent 0409c63916
commit 43bb065e69
2 changed files with 11 additions and 14 deletions

View File

@ -296,14 +296,8 @@
this.date.setMonth(value.getMonth());
this.date.setDate(value.getDate());
} else if (this.selectionMode === 'week') {
let date = formatDate(value.date, this.format || 'yyyywWW');
const week = this.week = value.week;
date = /WW/.test(date)
? date.replace(/WW/, week < 10 ? '0' + week : week)
: date.replace(/W/, week);
this.$emit('pick', date);
this.week = value.week;
this.$emit('pick', value.date);
}
this.resetDate();

View File

@ -49,6 +49,7 @@ const DEFAULT_FORMATS = {
month: 'yyyy-MM',
datetime: 'yyyy-MM-dd HH:mm:ss',
time: 'HH:mm:ss',
week: 'yyyywWW',
timerange: 'HH:mm:ss',
daterange: 'yyyy-MM-dd',
datetimerange: 'yyyy-MM-dd HH:mm:ss',
@ -105,12 +106,14 @@ const TYPE_VALUE_RESOLVER_MAP = {
}
},
week: {
formatter(value) {
if (value instanceof Date) {
const weekNumber = getWeekNumber(value);
return value.getFullYear() + 'w' + (weekNumber > 9 ? weekNumber : '0' + weekNumber);
}
return value;
formatter(value, format) {
let date = formatDate(value, format);
const week = getWeekNumber(value);
date = /WW/.test(date)
? date.replace(/WW/, week < 10 ? '0' + week : week)
: date.replace(/W/, week);
return date;
},
parser(text) {
const array = (text || '').split('w');