Commit a2a78c382f7ceadd270b590ff6c7c275de6cbc85
1 parent
2dc27713
update DateTimePicker
update DateTimePicker
Showing
4 changed files
with
34 additions
and
12 deletions
Show diff stats
src/components/date-picker/panel/date-range.vue
@@ -117,7 +117,8 @@ | @@ -117,7 +117,8 @@ | ||
117 | <time-picker | 117 | <time-picker |
118 | v-ref:time-picker | 118 | v-ref:time-picker |
119 | v-show="isTime" | 119 | v-show="isTime" |
120 | - @on-pick="handleTimePick"></time-picker> | 120 | + @on-pick="handleTimePick" |
121 | + @on-pick-click="handlePickClick"></time-picker> | ||
121 | </div> | 122 | </div> |
122 | <Confirm | 123 | <Confirm |
123 | v-if="confirm" | 124 | v-if="confirm" |
@@ -145,6 +146,7 @@ | @@ -145,6 +146,7 @@ | ||
145 | const datePrefixCls = 'ivu-date-picker'; | 146 | const datePrefixCls = 'ivu-date-picker'; |
146 | 147 | ||
147 | export default { | 148 | export default { |
149 | + name: 'DatePicker', | ||
148 | mixins: [Mixin], | 150 | mixins: [Mixin], |
149 | components: { Icon, DateTable, YearTable, MonthTable, TimePicker, Confirm }, | 151 | components: { Icon, DateTable, YearTable, MonthTable, TimePicker, Confirm }, |
150 | data () { | 152 | data () { |
@@ -287,12 +289,14 @@ | @@ -287,12 +289,14 @@ | ||
287 | this.handleConfirm(); | 289 | this.handleConfirm(); |
288 | if (this.showTime) this.$refs.timePicker.handleClear(); | 290 | if (this.showTime) this.$refs.timePicker.handleClear(); |
289 | }, | 291 | }, |
290 | - resetView() { | 292 | + resetView(reset = false) { |
291 | this.leftCurrentView = 'date'; | 293 | this.leftCurrentView = 'date'; |
292 | this.rightCurrentView = 'date'; | 294 | this.rightCurrentView = 'date'; |
293 | 295 | ||
294 | this.leftTableYear = this.leftYear; | 296 | this.leftTableYear = this.leftYear; |
295 | this.rightTableYear = this.rightYear; | 297 | this.rightTableYear = this.rightYear; |
298 | + | ||
299 | + if (reset) this.isTime = false; | ||
296 | }, | 300 | }, |
297 | prevYear (direction) { | 301 | prevYear (direction) { |
298 | if (this[`${direction}CurrentView`] === 'year') { | 302 | if (this[`${direction}CurrentView`] === 'year') { |
@@ -394,6 +398,7 @@ | @@ -394,6 +398,7 @@ | ||
394 | }, | 398 | }, |
395 | compiled () { | 399 | compiled () { |
396 | if (this.showTime) { | 400 | if (this.showTime) { |
401 | + // todo 这里也到不了 | ||
397 | this.$refs.timePicker.date = this.minDate; | 402 | this.$refs.timePicker.date = this.minDate; |
398 | this.$refs.timePicker.dateEnd = this.maxDate; | 403 | this.$refs.timePicker.dateEnd = this.maxDate; |
399 | this.$refs.timePicker.value = this.value; | 404 | this.$refs.timePicker.value = this.value; |
src/components/date-picker/panel/date.vue
@@ -63,7 +63,8 @@ | @@ -63,7 +63,8 @@ | ||
63 | v-ref:time-picker | 63 | v-ref:time-picker |
64 | show-date | 64 | show-date |
65 | v-show="currentView === 'time'" | 65 | v-show="currentView === 'time'" |
66 | - @on-pick="handleTimePick"></time-picker> | 66 | + @on-pick="handleTimePick" |
67 | + @on-pick-click="handlePickClick"></time-picker> | ||
67 | </div> | 68 | </div> |
68 | <Confirm | 69 | <Confirm |
69 | v-if="confirm" | 70 | v-if="confirm" |
@@ -91,6 +92,7 @@ | @@ -91,6 +92,7 @@ | ||
91 | const datePrefixCls = 'ivu-date-picker'; | 92 | const datePrefixCls = 'ivu-date-picker'; |
92 | 93 | ||
93 | export default { | 94 | export default { |
95 | + name: 'DatePicker', | ||
94 | mixins: [Mixin], | 96 | mixins: [Mixin], |
95 | components: { Icon, DateTable, YearTable, MonthTable, TimePicker, Confirm }, | 97 | components: { Icon, DateTable, YearTable, MonthTable, TimePicker, Confirm }, |
96 | data () { | 98 | data () { |
src/components/date-picker/panel/time-range.vue
@@ -2,7 +2,10 @@ | @@ -2,7 +2,10 @@ | ||
2 | <div :class="classes"> | 2 | <div :class="classes"> |
3 | <div :class="[prefixCls + '-body']"> | 3 | <div :class="[prefixCls + '-body']"> |
4 | <div :class="[prefixCls + '-content', prefixCls + '-content-left']"> | 4 | <div :class="[prefixCls + '-content', prefixCls + '-content-left']"> |
5 | - <div :class="[timePrefixCls + '-header']">开始时间</div> | 5 | + <div :class="[timePrefixCls + '-header']"> |
6 | + <template v-if="showDate">{{ visibleDate }}</template> | ||
7 | + <template v-else>开始时间</template> | ||
8 | + </div> | ||
6 | <time-spinner | 9 | <time-spinner |
7 | v-ref:time-spinner | 10 | v-ref:time-spinner |
8 | :show-seconds="showSeconds" | 11 | :show-seconds="showSeconds" |
@@ -17,7 +20,10 @@ | @@ -17,7 +20,10 @@ | ||
17 | @on-pick-click="handlePickClick"></time-spinner> | 20 | @on-pick-click="handlePickClick"></time-spinner> |
18 | </div> | 21 | </div> |
19 | <div :class="[prefixCls + '-content', prefixCls + '-content-right']"> | 22 | <div :class="[prefixCls + '-content', prefixCls + '-content-right']"> |
20 | - <div :class="[timePrefixCls + '-header']">结束时间</div> | 23 | + <div :class="[timePrefixCls + '-header']"> |
24 | + <template v-if="showDate">{{ visibleDateEnd }}</template> | ||
25 | + <template v-else>结束时间</template> | ||
26 | + </div> | ||
21 | <time-spinner | 27 | <time-spinner |
22 | v-ref:time-spinner-end | 28 | v-ref:time-spinner-end |
23 | :show-seconds="showSeconds" | 29 | :show-seconds="showSeconds" |
@@ -57,6 +63,7 @@ | @@ -57,6 +63,7 @@ | ||
57 | prefixCls: prefixCls, | 63 | prefixCls: prefixCls, |
58 | timePrefixCls: timePrefixCls, | 64 | timePrefixCls: timePrefixCls, |
59 | format: 'HH:mm:ss', | 65 | format: 'HH:mm:ss', |
66 | + showDate: false, | ||
60 | date: initTimeDate(), | 67 | date: initTimeDate(), |
61 | dateEnd: initTimeDate(), | 68 | dateEnd: initTimeDate(), |
62 | value: '', | 69 | value: '', |
@@ -85,6 +92,14 @@ | @@ -85,6 +92,14 @@ | ||
85 | }, | 92 | }, |
86 | showSeconds () { | 93 | showSeconds () { |
87 | return (this.format || '').indexOf('ss') !== -1; | 94 | return (this.format || '').indexOf('ss') !== -1; |
95 | + }, | ||
96 | + visibleDate () { | ||
97 | + const date = this.date || initTimeDate(); | ||
98 | + return `${date.getFullYear()}年 ${date.getMonth() + 1}月`; | ||
99 | + }, | ||
100 | + visibleDateEnd () { | ||
101 | + const date = this.dateEnd || initTimeDate(); | ||
102 | + return `${date.getFullYear()}年 ${date.getMonth() + 1}月`; | ||
88 | } | 103 | } |
89 | }, | 104 | }, |
90 | watch: { | 105 | watch: { |
@@ -177,6 +192,9 @@ | @@ -177,6 +192,9 @@ | ||
177 | this.$refs.timeSpinner.updateScroll(); | 192 | this.$refs.timeSpinner.updateScroll(); |
178 | this.$refs.timeSpinnerEnd.updateScroll(); | 193 | this.$refs.timeSpinnerEnd.updateScroll(); |
179 | } | 194 | } |
195 | + }, | ||
196 | + compiled () { | ||
197 | + if (this.$parent && this.$parent.$options.name === 'DatePicker') this.showDate = true; | ||
180 | } | 198 | } |
181 | }; | 199 | }; |
182 | </script> | 200 | </script> |
183 | \ No newline at end of file | 201 | \ No newline at end of file |
src/components/date-picker/panel/time.vue
@@ -37,19 +37,13 @@ | @@ -37,19 +37,13 @@ | ||
37 | export default { | 37 | export default { |
38 | mixins: [Mixin], | 38 | mixins: [Mixin], |
39 | components: { TimeSpinner, Confirm }, | 39 | components: { TimeSpinner, Confirm }, |
40 | - props: { | ||
41 | - showDate: { | ||
42 | - type: Boolean, | ||
43 | - default: false | ||
44 | - } | ||
45 | - }, | ||
46 | data () { | 40 | data () { |
47 | return { | 41 | return { |
48 | prefixCls: prefixCls, | 42 | prefixCls: prefixCls, |
49 | timePrefixCls: timePrefixCls, | 43 | timePrefixCls: timePrefixCls, |
50 | date: initTimeDate(), | 44 | date: initTimeDate(), |
51 | value: '', | 45 | value: '', |
52 | -// showDate: false, | 46 | + showDate: false, |
53 | format: 'HH:mm:ss', | 47 | format: 'HH:mm:ss', |
54 | hours: '', | 48 | hours: '', |
55 | minutes: '', | 49 | minutes: '', |
@@ -109,6 +103,9 @@ | @@ -109,6 +103,9 @@ | ||
109 | updateScroll () { | 103 | updateScroll () { |
110 | this.$refs.timeSpinner.updateScroll(); | 104 | this.$refs.timeSpinner.updateScroll(); |
111 | } | 105 | } |
106 | + }, | ||
107 | + compiled () { | ||
108 | + if (this.$parent && this.$parent.$options.name === 'DatePicker') this.showDate = true; | ||
112 | } | 109 | } |
113 | }; | 110 | }; |
114 | </script> | 111 | </script> |
115 | \ No newline at end of file | 112 | \ No newline at end of file |