Commit 2f8104a3212dd42d4d9b07b3e98816a7c4ee65d3
1 parent
bb1a3c38
update Slider
Showing
1 changed file
with
28 additions
and
22 deletions
Show diff stats
src/components/slider/slider.vue
... | ... | @@ -360,18 +360,21 @@ |
360 | 360 | } |
361 | 361 | }, |
362 | 362 | changeFirstPosition (newPos) { |
363 | - if (newPos >= 0 && (newPos <= this.secondPosition)) { | |
364 | - const lengthPerStep = 100 / ((this.max - this.min) / this.step); | |
365 | - const steps = Math.round(newPos / lengthPerStep); | |
363 | + if (newPos < 0) { | |
364 | + newPos = 0; | |
365 | + } else if (newPos > this.secondPosition) { | |
366 | + newPos = this.secondPosition; | |
367 | + } | |
368 | + const lengthPerStep = 100 / ((this.max - this.min) / this.step); | |
369 | + const steps = Math.round(newPos / lengthPerStep); | |
366 | 370 | |
367 | - this.currentValue = [Math.round(steps * lengthPerStep * (this.max - this.min) * 0.01 + this.min), this.currentValue[1]]; | |
368 | - this.setFirstPosition(this.currentValue[0]); | |
369 | - if (!this.firstDragging) { | |
370 | - if (this.currentValue[0] !== this.oldFirstValue) { | |
371 | - this.$emit('on-change', this.currentValue); | |
372 | - this.dispatch('FormItem', 'on-form-change', this.currentValue); | |
373 | - this.oldFirstValue = this.currentValue[0]; | |
374 | - } | |
371 | + this.currentValue = [Math.round(steps * lengthPerStep * (this.max - this.min) * 0.01 + this.min), this.currentValue[1]]; | |
372 | + this.setFirstPosition(this.currentValue[0]); | |
373 | + if (!this.firstDragging) { | |
374 | + if (this.currentValue[0] !== this.oldFirstValue) { | |
375 | + this.$emit('on-change', this.currentValue); | |
376 | + this.dispatch('FormItem', 'on-form-change', this.currentValue); | |
377 | + this.oldFirstValue = this.currentValue[0]; | |
375 | 378 | } |
376 | 379 | } |
377 | 380 | }, |
... | ... | @@ -410,18 +413,21 @@ |
410 | 413 | } |
411 | 414 | }, |
412 | 415 | changeSecondPosition (newPos) { |
413 | - if (newPos >= this.firstPosition && (newPos <= 100)) { | |
414 | - const lengthPerStep = 100 / ((this.max - this.min) / this.step); | |
415 | - const steps = Math.round(newPos / lengthPerStep); | |
416 | + if (newPos > 100) { | |
417 | + newPos = 100; | |
418 | + } else if (newPos < this.firstPosition) { | |
419 | + newPos = this.firstPosition; | |
420 | + } | |
421 | + const lengthPerStep = 100 / ((this.max - this.min) / this.step); | |
422 | + const steps = Math.round(newPos / lengthPerStep); | |
416 | 423 | |
417 | - this.currentValue = [this.currentValue[0], Math.round(steps * lengthPerStep * (this.max - this.min) * 0.01 + this.min)]; | |
418 | - this.setSecondPosition(this.currentValue[1]); | |
419 | - if (!this.secondDragging) { | |
420 | - if (this.currentValue[1] !== this.oldSecondValue) { | |
421 | - this.$emit('on-change', this.currentValue); | |
422 | - this.dispatch('FormItem', 'on-form-change', this.currentValue); | |
423 | - this.oldSecondValue = this.currentValue[1]; | |
424 | - } | |
424 | + this.currentValue = [this.currentValue[0], Math.round(steps * lengthPerStep * (this.max - this.min) * 0.01 + this.min)]; | |
425 | + this.setSecondPosition(this.currentValue[1]); | |
426 | + if (!this.secondDragging) { | |
427 | + if (this.currentValue[1] !== this.oldSecondValue) { | |
428 | + this.$emit('on-change', this.currentValue); | |
429 | + this.dispatch('FormItem', 'on-form-change', this.currentValue); | |
430 | + this.oldSecondValue = this.currentValue[1]; | |
425 | 431 | } |
426 | 432 | } |
427 | 433 | }, | ... | ... |