slider组件 step为小数时回不到100的bug

This commit is contained in:
bin.yang 2018-04-02 11:18:14 +08:00
parent 12739c33fa
commit 3b71312aac

View file

@ -327,11 +327,10 @@
if (type === 'min') newPos = this.checkLimits([newPos, this.maxPosition])[0];
else newPos = this.checkLimits([this.minPosition, newPos])[1];
const modulus = newPos % this.step;
const modulus = this.handleDecimal(newPos,this.step)
const value = this.currentValue;
value[index] = newPos - modulus;
this.currentValue = [...value];
if (!this.dragging) {
if (this.currentValue[index] !== this.oldValue[index]) {
this.emitChange();
@ -339,7 +338,18 @@
}
}
},
handleDecimal(pos,step){
if(step<1){
let sl = step.toString(),
multiple = 1,
m = 0;
try {
m += sl.split('.')[1].length;
} catch (e) {}
multiple = Math.pow(10,m);
return (pos * multiple) % (step * multiple) / multiple;
}else return pos % step;
},
emitChange(){
const value = this.range ? this.exportValue : this.exportValue[0];
this.$emit('on-change', value);