DateTimePicker: changeToNow cheks disabledDate (#9470)

pull/9474/head
Jiewei Qian 2018-01-25 19:16:10 +08:00 committed by 杨奕
parent 8e466dda90
commit 1b59561e3f
2 changed files with 86 additions and 59 deletions

View File

@ -333,8 +333,12 @@
}, },
changeToNow() { changeToNow() {
this.date = new Date(); // NOTE: not a permanent solution
this.emit(this.date); // consider disable "now" button in the future
if (!this.disabledDate || !this.disabledDate(new Date())) {
this.date = new Date();
this.emit(this.date);
}
}, },
confirm() { confirm() {

View File

@ -1025,65 +1025,27 @@ describe('DatePicker', () => {
}); });
}); });
describe('default value', () => { it('now button: can not choose disabled date', done => {
it('single', done => { vm = createVue({
let defaultValue = '2000-10-01'; template: '<el-date-picker type="datetime" v-model="value" ref="compo" :pickerOptions="pickerOptions" />',
let expectValue = [new Date(2000, 9, 1), new Date(2000, 9, 2)]; data() {
return {
vm = createVue({ value: '',
template: '<el-date-picker type="daterange" v-model="value" ref="compo" :default-value="defaultValue" />', pickerOptions: {
data() { disabledDate() { return true; }
return { }
value: '', };
defaultValue }
}; }, true);
} vm.$refs.compo.$el.querySelector('input').focus();
}, true); setTimeout(_ => {
// click now button
vm.$el.querySelector('input').focus(); vm.$refs.compo.picker.$el.querySelector('.el-picker-panel__footer .el-button--text').click();
setTimeout(_ => { setTimeout(_ => {
const $el = vm.$refs.compo.picker.$el; expect(vm.value).to.equal('');
const defaultEls = $el.querySelectorAll('.el-date-table td.default'); done();
expect(defaultEls.length).to.equal(1);
defaultEls[0].click();
setTimeout(_ => {
$el.querySelector('.el-date-table td.default + td').click();
setTimeout(_ => {
expect(vm.value).to.eql(expectValue);
done();
}, DELAY);
}, DELAY);
}, DELAY); }, DELAY);
}); }, DELAY);
it('array', done => {
let defaultValue = ['2000-01-01', '2000-02-01'];
let expectValue = [new Date(2000, 0, 1), new Date(2000, 1, 1)];
vm = createVue({
template: '<el-date-picker type="daterange" v-model="value" ref="compo" :default-value="defaultValue" />',
data() {
return {
value: '',
defaultValue
};
}
}, true);
vm.$el.querySelector('input').focus();
setTimeout(_ => {
const defaultEls = vm.$refs.compo.picker.$el.querySelectorAll('.el-date-table td.default');
expect(defaultEls.length).to.equal(2);
defaultEls[0].click();
setTimeout(_ => {
defaultEls[1].click();
setTimeout(_ => {
expect(vm.value).to.eql(expectValue);
done();
}, DELAY);
}, DELAY);
}, DELAY);
});
}); });
}); });
@ -1260,6 +1222,67 @@ describe('DatePicker', () => {
}, DELAY); }, DELAY);
}, DELAY); }, DELAY);
}); });
describe('default value', () => {
it('single', done => {
let defaultValue = '2000-10-01';
let expectValue = [new Date(2000, 9, 1), new Date(2000, 9, 2)];
vm = createVue({
template: '<el-date-picker type="daterange" v-model="value" ref="compo" :default-value="defaultValue" />',
data() {
return {
value: '',
defaultValue
};
}
}, true);
vm.$el.querySelector('input').focus();
setTimeout(_ => {
const $el = vm.$refs.compo.picker.$el;
const defaultEls = $el.querySelectorAll('.el-date-table td.default');
expect(defaultEls.length).to.equal(1);
defaultEls[0].click();
setTimeout(_ => {
$el.querySelector('.el-date-table td.default + td').click();
setTimeout(_ => {
expect(vm.value).to.eql(expectValue);
done();
}, DELAY);
}, DELAY);
}, DELAY);
});
it('array', done => {
let defaultValue = ['2000-01-01', '2000-02-01'];
let expectValue = [new Date(2000, 0, 1), new Date(2000, 1, 1)];
vm = createVue({
template: '<el-date-picker type="daterange" v-model="value" ref="compo" :default-value="defaultValue" />',
data() {
return {
value: '',
defaultValue
};
}
}, true);
vm.$el.querySelector('input').focus();
setTimeout(_ => {
const defaultEls = vm.$refs.compo.picker.$el.querySelectorAll('.el-date-table td.default');
expect(defaultEls.length).to.equal(2);
defaultEls[0].click();
setTimeout(_ => {
defaultEls[1].click();
setTimeout(_ => {
expect(vm.value).to.eql(expectValue);
done();
}, DELAY);
}, DELAY);
}, DELAY);
});
});
}); });
describe('type:datetimerange', () => { describe('type:datetimerange', () => {