Commit 2f8104a3212dd42d4d9b07b3e98816a7c4ee65d3

Authored by 梁灏
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,18 +360,21 @@
360 } 360 }
361 }, 361 },
362 changeFirstPosition (newPos) { 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,18 +413,21 @@
410 } 413 }
411 }, 414 },
412 changeSecondPosition (newPos) { 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 },