Commit 154bb8226efbc006782aab2c75594a4fbe211e58
1 parent
4beb8e75
DatePicker&TimePicker add global setting, #5592
Showing
2 changed files
with
89 additions
and
11 deletions
Show diff stats
src/components/date-picker/picker.vue
@@ -22,14 +22,13 @@ | @@ -22,14 +22,13 @@ | ||
22 | @on-input-change="handleInputChange" | 22 | @on-input-change="handleInputChange" |
23 | @on-focus="handleFocus" | 23 | @on-focus="handleFocus" |
24 | @on-blur="handleBlur" | 24 | @on-blur="handleBlur" |
25 | - @on-click="handleIconClick" | ||
26 | @click.native="handleFocus" | 25 | @click.native="handleFocus" |
27 | @keydown.native="handleKeydown" | 26 | @keydown.native="handleKeydown" |
28 | @mouseenter.native="handleInputMouseenter" | 27 | @mouseenter.native="handleInputMouseenter" |
29 | @mouseleave.native="handleInputMouseleave" | 28 | @mouseleave.native="handleInputMouseleave" |
30 | - | ||
31 | - :icon="iconType" | ||
32 | - ></i-input> | 29 | + > |
30 | + <Icon @click="handleIconClick" :type="arrowType" :custom="customArrowType" :size="arrowSize" slot="suffix" /> | ||
31 | + </i-input> | ||
33 | </slot> | 32 | </slot> |
34 | </div> | 33 | </div> |
35 | <transition name="transition-drop"> | 34 | <transition name="transition-drop"> |
@@ -80,6 +79,7 @@ | @@ -80,6 +79,7 @@ | ||
80 | 79 | ||
81 | import iInput from '../../components/input/input.vue'; | 80 | import iInput from '../../components/input/input.vue'; |
82 | import Drop from '../../components/select/dropdown.vue'; | 81 | import Drop from '../../components/select/dropdown.vue'; |
82 | + import Icon from '../../components/icon/icon.vue'; | ||
83 | import {directive as clickOutside} from 'v-click-outside-x'; | 83 | import {directive as clickOutside} from 'v-click-outside-x'; |
84 | import TransferDom from '../../directives/transfer-dom'; | 84 | import TransferDom from '../../directives/transfer-dom'; |
85 | import { oneOf } from '../../utils/assist'; | 85 | import { oneOf } from '../../utils/assist'; |
@@ -121,7 +121,7 @@ | @@ -121,7 +121,7 @@ | ||
121 | 121 | ||
122 | export default { | 122 | export default { |
123 | mixins: [ Emitter ], | 123 | mixins: [ Emitter ], |
124 | - components: { iInput, Drop }, | 124 | + components: { iInput, Drop, Icon }, |
125 | directives: { clickOutside, TransferDom }, | 125 | directives: { clickOutside, TransferDom }, |
126 | props: { | 126 | props: { |
127 | format: { | 127 | format: { |
@@ -268,12 +268,6 @@ | @@ -268,12 +268,6 @@ | ||
268 | opened () { | 268 | opened () { |
269 | return this.open === null ? this.visible : this.open; | 269 | return this.open === null ? this.visible : this.open; |
270 | }, | 270 | }, |
271 | - iconType () { | ||
272 | - let icon = 'ios-calendar-outline'; | ||
273 | - if (this.type === 'time' || this.type === 'timerange') icon = 'ios-time-outline'; | ||
274 | - if (this.showClose) icon = 'ios-close-circle'; | ||
275 | - return icon; | ||
276 | - }, | ||
277 | transition () { | 271 | transition () { |
278 | const bottomPlaced = this.placement.match(/^bottom/); | 272 | const bottomPlaced = this.placement.match(/^bottom/); |
279 | return bottomPlaced ? 'slide-up' : 'slide-down'; | 273 | return bottomPlaced ? 'slide-up' : 'slide-down'; |
@@ -283,6 +277,80 @@ | @@ -283,6 +277,80 @@ | ||
283 | }, | 277 | }, |
284 | isConfirm(){ | 278 | isConfirm(){ |
285 | return this.confirm || this.type === 'datetime' || this.type === 'datetimerange' || this.multiple; | 279 | return this.confirm || this.type === 'datetime' || this.type === 'datetimerange' || this.multiple; |
280 | + }, | ||
281 | + // 3.4.0, global setting customArrow 有值时,arrow 赋值空 | ||
282 | + arrowType () { | ||
283 | + let type = ''; | ||
284 | + | ||
285 | + if (this.type === 'time' || this.type === 'timerange') { | ||
286 | + type = 'ios-time-outline'; | ||
287 | + | ||
288 | + if (this.$IVIEW) { | ||
289 | + if (this.$IVIEW.timePicker.customIcon) { | ||
290 | + type = ''; | ||
291 | + } else if (this.$IVIEW.timePicker.icon) { | ||
292 | + type = this.$IVIEW.timePicker.icon; | ||
293 | + } | ||
294 | + } | ||
295 | + } else { | ||
296 | + type = 'ios-calendar-outline'; | ||
297 | + | ||
298 | + if (this.$IVIEW) { | ||
299 | + if (this.$IVIEW.datePicker.customIcon) { | ||
300 | + type = ''; | ||
301 | + } else if (this.$IVIEW.datePicker.icon) { | ||
302 | + type = this.$IVIEW.datePicker.icon; | ||
303 | + } | ||
304 | + } | ||
305 | + } | ||
306 | + | ||
307 | + if (this.showClose) type = 'ios-close-circle'; | ||
308 | + | ||
309 | + return type; | ||
310 | + }, | ||
311 | + // 3.4.0, global setting | ||
312 | + customArrowType () { | ||
313 | + let type = ''; | ||
314 | + | ||
315 | + if (!this.showClose) { | ||
316 | + if (this.type === 'time' || this.type === 'timerange') { | ||
317 | + if (this.$IVIEW) { | ||
318 | + if (this.$IVIEW.timePicker.customIcon) { | ||
319 | + type = this.$IVIEW.timePicker.customIcon; | ||
320 | + } | ||
321 | + } | ||
322 | + } else { | ||
323 | + if (this.$IVIEW) { | ||
324 | + if (this.$IVIEW.datePicker.customIcon) { | ||
325 | + type = this.$IVIEW.datePicker.customIcon; | ||
326 | + } | ||
327 | + } | ||
328 | + } | ||
329 | + } | ||
330 | + | ||
331 | + return type; | ||
332 | + }, | ||
333 | + // 3.4.0, global setting | ||
334 | + arrowSize () { | ||
335 | + let size = ''; | ||
336 | + | ||
337 | + if (!this.showClose) { | ||
338 | + if (this.type === 'time' || this.type === 'timerange') { | ||
339 | + if (this.$IVIEW) { | ||
340 | + if (this.$IVIEW.timePicker.iconSize) { | ||
341 | + size = this.$IVIEW.timePicker.iconSize; | ||
342 | + } | ||
343 | + } | ||
344 | + } else { | ||
345 | + if (this.$IVIEW) { | ||
346 | + if (this.$IVIEW.datePicker.iconSize) { | ||
347 | + size = this.$IVIEW.datePicker.iconSize; | ||
348 | + } | ||
349 | + } | ||
350 | + } | ||
351 | + } | ||
352 | + | ||
353 | + return size; | ||
286 | } | 354 | } |
287 | }, | 355 | }, |
288 | methods: { | 356 | methods: { |
src/index.js
@@ -201,6 +201,16 @@ const install = function(Vue, opts = {}) { | @@ -201,6 +201,16 @@ const install = function(Vue, opts = {}) { | ||
201 | arrow: opts.colorPicker ? opts.colorPicker.arrow ? opts.colorPicker.arrow : '' : '', | 201 | arrow: opts.colorPicker ? opts.colorPicker.arrow ? opts.colorPicker.arrow : '' : '', |
202 | customArrow: opts.colorPicker ? opts.colorPicker.customArrow ? opts.colorPicker.customArrow : '' : '', | 202 | customArrow: opts.colorPicker ? opts.colorPicker.customArrow ? opts.colorPicker.customArrow : '' : '', |
203 | arrowSize: opts.colorPicker ? opts.colorPicker.arrowSize ? opts.colorPicker.arrowSize : '' : '' | 203 | arrowSize: opts.colorPicker ? opts.colorPicker.arrowSize ? opts.colorPicker.arrowSize : '' : '' |
204 | + }, | ||
205 | + datePicker: { | ||
206 | + icon: opts.datePicker ? opts.datePicker.icon ? opts.datePicker.icon : '' : '', | ||
207 | + customIcon: opts.datePicker ? opts.datePicker.customIcon ? opts.datePicker.customIcon : '' : '', | ||
208 | + iconSize: opts.datePicker ? opts.datePicker.iconSize ? opts.datePicker.iconSize : '' : '' | ||
209 | + }, | ||
210 | + timePicker: { | ||
211 | + icon: opts.timePicker ? opts.timePicker.icon ? opts.timePicker.icon : '' : '', | ||
212 | + customIcon: opts.timePicker ? opts.timePicker.customIcon ? opts.timePicker.customIcon : '' : '', | ||
213 | + iconSize: opts.timePicker ? opts.timePicker.iconSize ? opts.timePicker.iconSize : '' : '' | ||
204 | } | 214 | } |
205 | }; | 215 | }; |
206 | 216 |