diff --git a/src/components/date-picker/base/confirm.vue b/src/components/date-picker/base/confirm.vue index 00f1e44..b656fed 100644 --- a/src/components/date-picker/base/confirm.vue +++ b/src/components/date-picker/base/confirm.vue @@ -1,37 +1,47 @@ diff --git a/src/components/date-picker/picker/date-picker.js b/src/components/date-picker/picker/date-picker.js index cd61627..4ac8131 100644 --- a/src/components/date-picker/picker/date-picker.js +++ b/src/components/date-picker/picker/date-picker.js @@ -5,6 +5,7 @@ import RangeDatePickerPanel from '../panel/Date/date-range.vue'; import { oneOf } from '../../../utils/assist'; export default { + name: 'CalendarPicker', mixins: [Picker], props: { type: { diff --git a/src/components/date-picker/picker/time-picker.js b/src/components/date-picker/picker/time-picker.js index f876b5c..5731389 100644 --- a/src/components/date-picker/picker/time-picker.js +++ b/src/components/date-picker/picker/time-picker.js @@ -3,7 +3,7 @@ import TimePickerPanel from '../panel/Time/time.vue'; import RangeTimePickerPanel from '../panel/Time/time-range.vue'; import Options from '../time-mixins'; -import { oneOf } from '../../../utils/assist'; +import { findComponentsDownward, oneOf } from '../../../utils/assist'; export default { mixins: [Picker, Options], @@ -30,4 +30,14 @@ export default { }; } }, + watch: { + visible(visible){ + if (visible) { + this.$nextTick(() => { + const spinners = findComponentsDownward(this, 'TimeSpinner'); + spinners.forEach(instance => instance.updateScroll()); + }); + } + } + } }; diff --git a/src/styles/components/date-picker.less b/src/styles/components/date-picker.less index ac4d57b..01a73ed 100644 --- a/src/styles/components/date-picker.less +++ b/src/styles/components/date-picker.less @@ -44,17 +44,18 @@ margin: 2px; color: @btn-disable-color; } + &-cell:hover, &-focused{ + em{ + background: @date-picker-cell-hover-bg; + } + } + &-cell{ span&{ width: 28px; height: 28px; cursor: pointer; } - &:hover{ - em{ - background: @date-picker-cell-hover-bg; - } - } &-prev-month,&-next-month{ em{ color: @btn-disable-color; @@ -154,6 +155,11 @@ margin: 0; } } + + .@{date-picker-prefix-cls}-cells-cell-focused{ + background-color: tint(@primary-color, 80%); + } + } &-header{ @@ -169,6 +175,11 @@ } } } + &-btn-pulse{ + background-color: tint(@primary-color, 80%) !important; + border-radius: @border-radius-small; + transition: background-color @transition-time @ease-in-out; + } &-prev-btn{ float: left; &-arrow-double{ @@ -216,6 +227,10 @@ max-height: none; width: auto; } + + &-focused input{ + .active(); + } } .@{picker-prefix-cls} { @@ -289,9 +304,9 @@ color: @link-active-color; } } - & > span&-time-disabled{ - color: @btn-disable-color; - cursor: @cursor-disabled; + + &-time{ + float: left; } } } diff --git a/src/styles/components/time-picker.less b/src/styles/components/time-picker.less index 6d47494..9f76f18 100644 --- a/src/styles/components/time-picker.less +++ b/src/styles/components/time-picker.less @@ -70,6 +70,9 @@ color: @primary-color; background: @background-color-select-hover; } + &-focused{ + background-color: tint(@primary-color, 80%); + } } } @@ -165,4 +168,4 @@ } } } -} \ No newline at end of file +} diff --git a/test/unit/specs/date-picker.spec.js b/test/unit/specs/date-picker.spec.js index e2583ae..3c74e58 100644 --- a/test/unit/specs/date-picker.spec.js +++ b/test/unit/specs/date-picker.spec.js @@ -116,7 +116,7 @@ describe('DatePicker.vue', () => { `); const picker = vm.$children[0]; - picker.handleIconClick(); + picker.handleFocus({type: 'focus'}); vm.$nextTick(() => { const displayField = vm.$el.querySelector('.ivu-input'); const clickableCells = vm.$el.querySelectorAll('.ivu-date-picker-cells-cell'); @@ -169,7 +169,7 @@ describe('DatePicker.vue', () => { }); const picker = vm.$children[0]; - picker.handleIconClick(); + picker.handleFocus({type: 'focus'}); vm.$nextTick(() => { const panel = vm.$el.querySelector('.ivu-picker-panel-content'); const dayPanel = panel.querySelector('[class="ivu-date-picker-cells"]'); @@ -243,7 +243,7 @@ describe('DatePicker.vue', () => { `); const picker = vm.$children[0]; - picker.handleIconClick(); + picker.handleFocus({type: 'focus'}); vm.$nextTick(() => { const displayField = vm.$el.querySelector('.ivu-input'); const clickableCells = vm.$el.querySelectorAll('.ivu-date-picker-cells-cell'); @@ -266,9 +266,11 @@ describe('DatePicker.vue', () => { // it should be closed by now expect(picker.visible).to.equal(false); // open picker again - picker.handleIconClick(); + picker.handleFocus({type: 'focus'}); + picker.visible = true; - vm.$nextTick(() => { + + vm.$nextTick(() => { expect(picker.visible).to.equal(true); expect(JSON.stringify(picker.internalValue)).to.equal('[null,null]'); expect(displayField.value).to.equal(''); @@ -355,7 +357,7 @@ describe('DatePicker.vue', () => { `); const picker = vm.$children[0]; - picker.handleIconClick(); + picker.handleFocus({type: 'focus'}); vm.$nextTick(() => { const now = new Date(); const labels = vm.$el.querySelectorAll('.ivu-picker-panel-body .ivu-date-picker-header-label'); diff --git a/test/unit/specs/time-spinner.spec.js b/test/unit/specs/time-spinner.spec.js index 984255c..512645d 100644 --- a/test/unit/specs/time-spinner.spec.js +++ b/test/unit/specs/time-spinner.spec.js @@ -11,7 +11,7 @@ describe('TimePicker.vue', () => { `); const picker = vm.$children[0]; - picker.handleIconClick(); // open the picker panels + picker.handleFocus({type: 'focus'}); // open the picker panels vm.$nextTick(() => { const spiners = picker.$el.querySelectorAll('.ivu-time-picker-cells-list'); @@ -28,7 +28,7 @@ describe('TimePicker.vue', () => { `); const picker = vm.$children[0]; - picker.handleIconClick(); // open the picker panels + picker.handleFocus({type: 'focus'}); // open the picker panels vm.$nextTick(() => { const spiners = picker.$el.querySelectorAll('.ivu-time-picker-cells-list'); @@ -44,7 +44,7 @@ describe('TimePicker.vue', () => { `); const picker = vm.$children[0]; - picker.handleIconClick(); // open the picker panels + picker.handleFocus({type: 'focus'}); // open the picker panels vm.$nextTick(() => { const spiners = picker.$el.querySelectorAll('.ivu-time-picker-cells-list'); -- libgit2 0.21.4