Merge pull request #1858 from SergioCrisostomo/fix-1851
Propagate type changes to panel
This commit is contained in:
commit
8c4cc38379
2 changed files with 55 additions and 1 deletions
|
@ -23,6 +23,17 @@ export default {
|
||||||
},
|
},
|
||||||
value: {}
|
value: {}
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
type(value){
|
||||||
|
const typeMap = {
|
||||||
|
year: 'year',
|
||||||
|
month: 'month',
|
||||||
|
date: 'day'
|
||||||
|
};
|
||||||
|
const validType = oneOf(value, Object.keys(typeMap));
|
||||||
|
if (validType) this.Panel.selectionMode = typeMap[value];
|
||||||
|
}
|
||||||
|
},
|
||||||
created () {
|
created () {
|
||||||
if (!this.currentValue) {
|
if (!this.currentValue) {
|
||||||
if (this.type === 'daterange' || this.type === 'datetimerange') {
|
if (this.type === 'daterange' || this.type === 'datetimerange') {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { createVue, destroyVM, stringToDate } from '../util';
|
import { createVue, destroyVM, stringToDate, promissedTick } from '../util';
|
||||||
|
|
||||||
describe('DatePicker.vue', () => {
|
describe('DatePicker.vue', () => {
|
||||||
let vm;
|
let vm;
|
||||||
|
@ -76,6 +76,49 @@ describe('DatePicker.vue', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should change type progamatically', done => {
|
||||||
|
vm = createVue({
|
||||||
|
template: '<Date-picker :type="dateType"></Date-picker>',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dateType: 'month'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const picker = vm.$children[0];
|
||||||
|
picker.handleIconClick();
|
||||||
|
vm.$nextTick(() => {
|
||||||
|
const panel = vm.$el.querySelector('.ivu-picker-panel-content');
|
||||||
|
const dayPanel = panel.querySelector('[class="ivu-date-picker-cells"]');
|
||||||
|
const monthPanel = panel.querySelector('.ivu-date-picker-cells-month');
|
||||||
|
const yearPanel = panel.querySelector('.ivu-date-picker-cells-year');
|
||||||
|
|
||||||
|
expect(dayPanel.style.display).to.equal('none');
|
||||||
|
expect(monthPanel.style.display).to.equal('');
|
||||||
|
expect(yearPanel.style.display).to.equal('none');
|
||||||
|
|
||||||
|
expect(picker.type).to.equal('month');
|
||||||
|
expect(picker.selectionMode).to.equal('month');
|
||||||
|
|
||||||
|
vm.dateType = 'year';
|
||||||
|
promissedTick(picker)
|
||||||
|
.then(() => {
|
||||||
|
expect(picker.type).to.equal('year');
|
||||||
|
expect(picker.selectionMode).to.equal('year');
|
||||||
|
|
||||||
|
vm.dateType = 'date';
|
||||||
|
return promissedTick(picker);
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
|
expect(picker.type).to.equal('date');
|
||||||
|
expect(picker.selectionMode).to.equal('day');
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('should have same behavior after a reset as before the reset', done => {
|
it('should have same behavior after a reset as before the reset', done => {
|
||||||
vm = createVue(`
|
vm = createVue(`
|
||||||
<Date-picker type="datetimerange"></Date-picker>
|
<Date-picker type="datetimerange"></Date-picker>
|
||||||
|
|
Loading…
Add table
Reference in a new issue