Commit 90ebd5a72cd2f18e9cb43c248052a9266c15bbbc
1 parent
eed57084
Expose changed date component
Showing
6 changed files
with
14 additions
and
14 deletions
Show diff stats
src/components/date-picker/panel/Date/date-range.vue
| ... | ... | @@ -317,7 +317,7 @@ |
| 317 | 317 | this.changePanelDate(otherPanel, 'Month', 1, false); |
| 318 | 318 | } |
| 319 | 319 | }, |
| 320 | - handleRangePick (val) { | |
| 320 | + handleRangePick (val, type) { | |
| 321 | 321 | if (this.rangeState.selecting || this.currentView === 'time'){ |
| 322 | 322 | if (this.currentView === 'time'){ |
| 323 | 323 | this.dates = val; |
| ... | ... | @@ -330,7 +330,7 @@ |
| 330 | 330 | selecting: false |
| 331 | 331 | }; |
| 332 | 332 | } |
| 333 | - this.handleConfirm(false); | |
| 333 | + this.handleConfirm(false, type || 'date'); | |
| 334 | 334 | } else { |
| 335 | 335 | this.rangeState = { |
| 336 | 336 | from: val, | ... | ... |
src/components/date-picker/panel/Date/date.vue
| ... | ... | @@ -188,14 +188,14 @@ |
| 188 | 188 | else this.pickerTable = this.getTableType(this.currentView); |
| 189 | 189 | |
| 190 | 190 | }, |
| 191 | - handlePick (value) { | |
| 191 | + handlePick (value, type) { | |
| 192 | 192 | const {selectionMode, panelDate} = this; |
| 193 | 193 | if (selectionMode === 'year') value = new Date(value.getFullYear(), 0, 1); |
| 194 | 194 | else if (selectionMode === 'month') value = new Date(panelDate.getFullYear(), value.getMonth(), 1); |
| 195 | 195 | else value = new Date(value); |
| 196 | 196 | |
| 197 | 197 | this.dates = [value]; |
| 198 | - this.$emit('on-pick', value); | |
| 198 | + this.$emit('on-pick', value, false, type || selectionMode); | |
| 199 | 199 | }, |
| 200 | 200 | }, |
| 201 | 201 | }; | ... | ... |
src/components/date-picker/panel/Time/time-range.vue
| ... | ... | @@ -142,7 +142,7 @@ |
| 142 | 142 | // judge endTime > startTime? |
| 143 | 143 | if (dateEnd < dateStart) dateEnd = dateStart; |
| 144 | 144 | |
| 145 | - if (emit) this.$emit('on-pick', [dateStart, dateEnd], true); | |
| 145 | + if (emit) this.$emit('on-pick', [dateStart, dateEnd], 'time'); | |
| 146 | 146 | }, |
| 147 | 147 | handleStartChange (date) { |
| 148 | 148 | this.handleChange(date, {}); | ... | ... |
src/components/date-picker/panel/Time/time.vue
src/components/date-picker/panel/panel-mixin.js
| ... | ... | @@ -44,8 +44,8 @@ export default { |
| 44 | 44 | this.handleConfirm(); |
| 45 | 45 | // if (this.showTime) this.$refs.timePicker.handleClear(); |
| 46 | 46 | }, |
| 47 | - handleConfirm(visible) { | |
| 48 | - this.$emit('on-pick', this.dates, visible); | |
| 47 | + handleConfirm(visible, type) { | |
| 48 | + this.$emit('on-pick', this.dates, visible, type || this.type); | |
| 49 | 49 | }, |
| 50 | 50 | onToggleVisibility(open){ |
| 51 | 51 | const {timeSpinner, timeSpinnerEnd} = this.$refs; | ... | ... |
src/components/date-picker/picker.vue
| ... | ... | @@ -272,7 +272,7 @@ |
| 272 | 272 | const isValidDate = newDate.reduce((valid, date) => valid && date instanceof Date, true); |
| 273 | 273 | |
| 274 | 274 | if (newValue !== oldValue && !isDisabled && isValidDate) { |
| 275 | - this.emitChange(); | |
| 275 | + this.emitChange(this.type); | |
| 276 | 276 | this.internalValue = newDate; |
| 277 | 277 | } else { |
| 278 | 278 | this.forceInputRerender++; |
| ... | ... | @@ -299,7 +299,7 @@ |
| 299 | 299 | this.internalValue = this.internalValue.map(() => null); |
| 300 | 300 | this.$emit('on-clear'); |
| 301 | 301 | this.dispatch('FormItem', 'on-form-change', ''); |
| 302 | - this.emitChange(); | |
| 302 | + this.emitChange(this.type); | |
| 303 | 303 | this.reset(); |
| 304 | 304 | |
| 305 | 305 | setTimeout( |
| ... | ... | @@ -307,9 +307,9 @@ |
| 307 | 307 | 500 // delay to improve dropdown close visual effect |
| 308 | 308 | ); |
| 309 | 309 | }, |
| 310 | - emitChange () { | |
| 310 | + emitChange (type) { | |
| 311 | 311 | this.$nextTick(() => { |
| 312 | - this.$emit('on-change', this.publicStringValue); | |
| 312 | + this.$emit('on-change', this.publicStringValue, type); | |
| 313 | 313 | this.dispatch('FormItem', 'on-form-change', this.publicStringValue); |
| 314 | 314 | }); |
| 315 | 315 | }, |
| ... | ... | @@ -366,7 +366,7 @@ |
| 366 | 366 | return formatter(value, this.format || format); |
| 367 | 367 | } |
| 368 | 368 | }, |
| 369 | - onPick(dates, visible = false) { | |
| 369 | + onPick(dates, visible = false, type) { | |
| 370 | 370 | if (this.multiple){ |
| 371 | 371 | const pickedTimeStamp = dates.getTime(); |
| 372 | 372 | const indexOfPickedDate = this.internalValue.findIndex(date => date && date.getTime() === pickedTimeStamp); |
| ... | ... | @@ -379,7 +379,7 @@ |
| 379 | 379 | |
| 380 | 380 | if (!this.isConfirm) this.onSelectionModeChange(this.type); // reset the selectionMode |
| 381 | 381 | if (!this.isConfirm) this.visible = visible; |
| 382 | - this.emitChange(); | |
| 382 | + this.emitChange(type); | |
| 383 | 383 | }, |
| 384 | 384 | onPickSuccess(){ |
| 385 | 385 | this.visible = false; | ... | ... |