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