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 | }, | ... | ... |