Commit 2537c26d18f5c924087e9a45f6c8ae5bf59702a8
1 parent
b27858dd
add dateLabel to time panel
Showing
1 changed file
with
13 additions
and
15 deletions
Show diff stats
src/components/date-picker/panel/time-range.vue
@@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
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']"> | 5 | <div :class="[timePrefixCls + '-header']"> |
6 | - <template v-if="showDate">{{ visibleDate }}</template> | 6 | + <template v-if="showDate">{{ leftDatePanelLabel }}</template> |
7 | <template v-else>{{ t('i.datepicker.startTime') }}</template> | 7 | <template v-else>{{ t('i.datepicker.startTime') }}</template> |
8 | </div> | 8 | </div> |
9 | <time-spinner | 9 | <time-spinner |
@@ -21,7 +21,7 @@ | @@ -21,7 +21,7 @@ | ||
21 | </div> | 21 | </div> |
22 | <div :class="[prefixCls + '-content', prefixCls + '-content-right']"> | 22 | <div :class="[prefixCls + '-content', prefixCls + '-content-right']"> |
23 | <div :class="[timePrefixCls + '-header']"> | 23 | <div :class="[timePrefixCls + '-header']"> |
24 | - <template v-if="showDate">{{ visibleDateEnd }}</template> | 24 | + <template v-if="showDate">{{ rightDatePanelLabel }}</template> |
25 | <template v-else>{{ t('i.datepicker.endTime') }}</template> | 25 | <template v-else>{{ t('i.datepicker.endTime') }}</template> |
26 | </div> | 26 | </div> |
27 | <time-spinner | 27 | <time-spinner |
@@ -51,7 +51,7 @@ | @@ -51,7 +51,7 @@ | ||
51 | import Mixin from './mixin'; | 51 | import Mixin from './mixin'; |
52 | import Locale from '../../../mixins/locale'; | 52 | import Locale from '../../../mixins/locale'; |
53 | 53 | ||
54 | - import { initTimeDate, toDate, formatDate } from '../util'; | 54 | + import { initTimeDate, toDate, formatDate, formatDateLabels } from '../util'; |
55 | 55 | ||
56 | const prefixCls = 'ivu-picker-panel'; | 56 | const prefixCls = 'ivu-picker-panel'; |
57 | const timePrefixCls = 'ivu-time-picker'; | 57 | const timePrefixCls = 'ivu-time-picker'; |
@@ -95,19 +95,11 @@ | @@ -95,19 +95,11 @@ | ||
95 | showSeconds () { | 95 | showSeconds () { |
96 | return (this.format || '').indexOf('ss') !== -1; | 96 | return (this.format || '').indexOf('ss') !== -1; |
97 | }, | 97 | }, |
98 | - visibleDate () { | ||
99 | - const date = this.date || initTimeDate(); | ||
100 | - const tYear = this.t('i.datepicker.year'); | ||
101 | - const month = date.getMonth() + 1; | ||
102 | - const tMonth = this.t(`i.datepicker.month${month}`); | ||
103 | - return `${date.getFullYear()}${tYear} ${tMonth}`; | 98 | + leftDatePanelLabel () { |
99 | + return this.panelLabelConfig(this.date); | ||
104 | }, | 100 | }, |
105 | - visibleDateEnd () { | ||
106 | - const date = this.dateEnd || initTimeDate(); | ||
107 | - const tYear = this.t('i.datepicker.year'); | ||
108 | - const month = date.getMonth() + 1; | ||
109 | - const tMonth = this.t(`i.datepicker.month${month}`); | ||
110 | - return `${date.getFullYear()}${tYear} ${tMonth}`; | 101 | + rightDatePanelLabel () { |
102 | + return this.panelLabelConfig(this.dateEnd); | ||
111 | } | 103 | } |
112 | }, | 104 | }, |
113 | watch: { | 105 | watch: { |
@@ -136,6 +128,12 @@ | @@ -136,6 +128,12 @@ | ||
136 | } | 128 | } |
137 | }, | 129 | }, |
138 | methods: { | 130 | methods: { |
131 | + panelLabelConfig (date) { | ||
132 | + const locale = this.t('i.locale'); | ||
133 | + const datePanelLabel = this.t('i.datepicker.datePanelLabel'); | ||
134 | + const { labels, separator } = formatDateLabels(locale, datePanelLabel, date || initTimeDate()); | ||
135 | + return [labels[0].label, separator, labels[1].label].join(''); | ||
136 | + }, | ||
139 | handleClear() { | 137 | handleClear() { |
140 | this.date = initTimeDate(); | 138 | this.date = initTimeDate(); |
141 | this.dateEnd = initTimeDate(); | 139 | this.dateEnd = initTimeDate(); |