mirror of https://github.com/ElemeFE/element
DateTimePicker: changeToNow cheks disabledDate (#9470)
parent
8e466dda90
commit
1b59561e3f
|
@ -333,8 +333,12 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
changeToNow() {
|
changeToNow() {
|
||||||
|
// NOTE: not a permanent solution
|
||||||
|
// consider disable "now" button in the future
|
||||||
|
if (!this.disabledDate || !this.disabledDate(new Date())) {
|
||||||
this.date = new Date();
|
this.date = new Date();
|
||||||
this.emit(this.date);
|
this.emit(this.date);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
confirm() {
|
confirm() {
|
||||||
|
|
|
@ -1025,65 +1025,27 @@ describe('DatePicker', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('default value', () => {
|
it('now button: can not choose disabled date', done => {
|
||||||
it('single', done => {
|
|
||||||
let defaultValue = '2000-10-01';
|
|
||||||
let expectValue = [new Date(2000, 9, 1), new Date(2000, 9, 2)];
|
|
||||||
|
|
||||||
vm = createVue({
|
vm = createVue({
|
||||||
template: '<el-date-picker type="daterange" v-model="value" ref="compo" :default-value="defaultValue" />',
|
template: '<el-date-picker type="datetime" v-model="value" ref="compo" :pickerOptions="pickerOptions" />',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
value: '',
|
value: '',
|
||||||
defaultValue
|
pickerOptions: {
|
||||||
|
disabledDate() { return true; }
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}, true);
|
}, true);
|
||||||
|
vm.$refs.compo.$el.querySelector('input').focus();
|
||||||
vm.$el.querySelector('input').focus();
|
|
||||||
setTimeout(_ => {
|
setTimeout(_ => {
|
||||||
const $el = vm.$refs.compo.picker.$el;
|
// click now button
|
||||||
const defaultEls = $el.querySelectorAll('.el-date-table td.default');
|
vm.$refs.compo.picker.$el.querySelector('.el-picker-panel__footer .el-button--text').click();
|
||||||
expect(defaultEls.length).to.equal(1);
|
|
||||||
defaultEls[0].click();
|
|
||||||
setTimeout(_ => {
|
setTimeout(_ => {
|
||||||
$el.querySelector('.el-date-table td.default + td').click();
|
expect(vm.value).to.equal('');
|
||||||
setTimeout(_ => {
|
|
||||||
expect(vm.value).to.eql(expectValue);
|
|
||||||
done();
|
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', () => {
|
||||||
|
|
Loading…
Reference in New Issue