Commit 63bd0f7d3fda0cb15a6f83705f8c71ed2c7108f1
1 parent
4c683651
Add start-date prop to force placing of date picker in date
Showing
4 changed files
with
12 additions
and
3 deletions
Show diff stats
src/components/date-picker/panel/Date/date-panel-mixin.js
@@ -35,6 +35,9 @@ export default { | @@ -35,6 +35,9 @@ export default { | ||
35 | value: { | 35 | value: { |
36 | type: Array, | 36 | type: Array, |
37 | default: () => [initTimeDate(), initTimeDate()] | 37 | default: () => [initTimeDate(), initTimeDate()] |
38 | + }, | ||
39 | + startDate: { | ||
40 | + type: Date | ||
38 | } | 41 | } |
39 | }, | 42 | }, |
40 | computed: { | 43 | computed: { |
src/components/date-picker/panel/Date/date-range.vue
@@ -129,14 +129,16 @@ | @@ -129,14 +129,16 @@ | ||
129 | }, | 129 | }, |
130 | data(){ | 130 | data(){ |
131 | const [minDate, maxDate] = this.value.map(date => date || initTimeDate()); | 131 | const [minDate, maxDate] = this.value.map(date => date || initTimeDate()); |
132 | + const leftPanelDate = this.startDate ? this.startDate : minDate; | ||
133 | + | ||
132 | return { | 134 | return { |
133 | prefixCls: prefixCls, | 135 | prefixCls: prefixCls, |
134 | datePrefixCls: datePrefixCls, | 136 | datePrefixCls: datePrefixCls, |
135 | dates: this.value, | 137 | dates: this.value, |
136 | rangeState: {from: this.value[0], to: this.value[1], selecting: minDate && !maxDate}, | 138 | rangeState: {from: this.value[0], to: this.value[1], selecting: minDate && !maxDate}, |
137 | currentView: this.selectionMode || 'range', | 139 | currentView: this.selectionMode || 'range', |
138 | - leftPanelDate: minDate, | ||
139 | - rightPanelDate: new Date(minDate.getFullYear(), minDate.getMonth() + 1, minDate.getDate()) | 140 | + leftPanelDate: leftPanelDate, |
141 | + rightPanelDate: new Date(leftPanelDate.getFullYear(), leftPanelDate.getMonth() + 1, leftPanelDate.getDate()) | ||
140 | }; | 142 | }; |
141 | }, | 143 | }, |
142 | computed: { | 144 | computed: { |
src/components/date-picker/panel/Date/date.vue
@@ -97,7 +97,7 @@ | @@ -97,7 +97,7 @@ | ||
97 | datePrefixCls: datePrefixCls, | 97 | datePrefixCls: datePrefixCls, |
98 | currentView: this.selectionMode || 'date', | 98 | currentView: this.selectionMode || 'date', |
99 | dates: dates, | 99 | dates: dates, |
100 | - panelDate: dates[0] || new Date() | 100 | + panelDate: this.startDate || dates[0] || new Date() |
101 | }; | 101 | }; |
102 | }, | 102 | }, |
103 | computed: { | 103 | computed: { |
src/components/date-picker/picker.vue
@@ -39,6 +39,7 @@ | @@ -39,6 +39,7 @@ | ||
39 | :steps="steps" | 39 | :steps="steps" |
40 | :format="format" | 40 | :format="format" |
41 | :value="internalValue" | 41 | :value="internalValue" |
42 | + :start-date="startDate" | ||
42 | 43 | ||
43 | v-bind="ownPickerProps" | 44 | v-bind="ownPickerProps" |
44 | 45 | ||
@@ -204,6 +205,9 @@ | @@ -204,6 +205,9 @@ | ||
204 | type: Boolean, | 205 | type: Boolean, |
205 | default: false | 206 | default: false |
206 | }, | 207 | }, |
208 | + startDate: { | ||
209 | + type: Date | ||
210 | + }, | ||
207 | size: { | 211 | size: { |
208 | validator (value) { | 212 | validator (value) { |
209 | return oneOf(value, ['small', 'large', 'default']); | 213 | return oneOf(value, ['small', 'large', 'default']); |