update DatePicker

update DatePicker
This commit is contained in:
梁灏 2016-12-19 23:40:39 +08:00
parent f92ef70f46
commit 7c5ccdab4d
3 changed files with 73 additions and 27 deletions

View file

@ -73,8 +73,11 @@
}); });
} }
}, },
cells (cells) { cells: {
handler (cells) {
this.readCells = cells; this.readCells = cells;
},
immediate: true
} }
}, },
computed: { computed: {

View file

@ -248,7 +248,32 @@
const value = event.target.value; const value = event.target.value;
let correctValue = ''; let correctValue = '';
const format = this.format || DEFAULT_FORMATS[this.type]; let correctDate = '';
const type = this.type;
const format = this.format || DEFAULT_FORMATS[type];
if (type === 'daterange' || type === 'timerange' || type === 'datetimerange') {
const parser = (
TYPE_VALUE_RESOLVER_MAP[type] ||
TYPE_VALUE_RESOLVER_MAP['default']
).parser;
const formatter = (
TYPE_VALUE_RESOLVER_MAP[type] ||
TYPE_VALUE_RESOLVER_MAP['default']
).formatter;
const parsedValue = parser(value, format);
if (parsedValue) {
// todo disabledDate
correctValue = formatter(parsedValue, format);
} else {
correctValue = oldValue;
}
correctDate = parsedValue;
} else {
const parsedDate = parseDate(value, format); const parsedDate = parseDate(value, format);
if (parsedDate instanceof Date) { if (parsedDate instanceof Date) {
@ -262,7 +287,8 @@
correctValue = oldValue; correctValue = oldValue;
} }
const correctDate = parseDate(correctValue, format); correctDate = parseDate(correctValue, format);
}
this.visualValue = correctValue; this.visualValue = correctValue;
event.target.value = correctValue; event.target.value = correctValue;

View file

@ -17,10 +17,12 @@
<i-col span="8"> <i-col span="8">
<date-picker <date-picker
type="daterange" type="daterange"
style="width:200px" style="width:300px"
placeholder="请选择日期" placeholder="请选择日期"
:value.sync="value2" :value.sync="value2"
align="right" align="right"
:editable="true"
:format="format"
:options="options2"></date-picker> :options="options2"></date-picker>
</i-col> </i-col>
</row> </row>
@ -34,37 +36,52 @@
value: '2016-12-25', value: '2016-12-25',
value2: ['2016-12-17', '2017-01-05'], value2: ['2016-12-17', '2017-01-05'],
options2: { options2: {
// disabledDate(time) {
//// console.log(time)
//// return time.getFullYear() < 2016;
//// return time.getTime() < Date.now() - 8.64e7;
//// return time && time.valueOf() < Date.now();
// if (time.getDate() === 22 || time.getDate() === 23) {
// return true;
// } else {
// return false;
// }
// },
shortcuts: [ shortcuts: [
{ {
text: '今天', text: '最近一周',
value () { value () {
// return new Date(); const end = new Date();
return '1/2/19' const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
return [start, end];
}, },
onClick (picker) { onClick (picker) {
console.log('点击了今天'); console.log('点击了最近一周');
} }
}, },
{ {
text: '昨天', text: '最近一个月',
value () { value () {
const date = new Date(); const end = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24); const start = new Date();
return date; start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
return [start, end];
}, },
onClick () { onClick () {
console.log('点击了昨天'); console.log('点击了最近一个月');
} }
}, },
{ {
text: '最近三个月', text: '最近三个月',
value () { value () {
const date = new Date(); const end = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); const start = new Date();
return date; start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
return [start, end];
}, },
onClick () { onClick () {
console.log('点击了一周前'); console.log('点击了最近三个月');
} }
} }
] ]