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

View File

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