EASYAIuniappNewUI/dist/build/mp-weixin/node-modules/uview-plus/components/u-slider/u-slider.js
2025-02-08 18:50:38 +08:00

2 lines
5.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";const t=require("../../../../common/vendor.js"),e={name:"u-slider",mixins:[t.mpMixin,t.mixin,t.props$13],emits:["start","changing","change","update:modelValue"],data:()=>({startX:0,status:"end",newValue:0,distanceX:0,startValue0:0,startValue:0,barStyle0:{},barStyle:{},sliderRect:{left:0,width:0}}),watch:{modelValue(t){"end"==this.status&&this.updateValue(this.modelValue,!1)}},created(){},async mounted(){this.useNative||this.$uGetRect(".u-slider__base").then((t=>{this.sliderRect=t,0==this.sliderRect.width&&console.info("如在弹窗等元素中使用请使用v-if来显示滑块否则无法计算长度。"),this.init()}))},methods:{addStyle:t.addStyle,getPx:t.getPx,init(){this.isRange?(this.updateValue(this.rangeValue[0],!1,0),this.updateValue(this.rangeValue[1],!1,1)):this.updateValue(this.modelValue,!1)},changingHandler(t){const{value:e}=t.detail;this.$emit("update:modelValue",e),this.$emit("changing",e)},changeHandler(t){const{value:e}=t.detail;this.$emit("update:modelValue",e),this.$emit("change",e)},onTouchStart(t,e=1){if(this.disabled)return;this.startX=0;let i=t.touches[0];this.startX=i.clientX,this.isRange?(this.startValue0=this.format(this.rangeValue[0],0),this.startValue=this.format(this.rangeValue[1],1)):this.startValue=this.format(this.modelValue),this.status="start";let s=0;s=i.clientX,this.distanceX=s-this.sliderRect.left,this.newValue=this.distanceX/this.sliderRect.width*(this.max-this.min)+parseFloat(this.min),this.status="moving",this.$emit("changing"),this.updateValue(this.newValue,!0,e)},onTouchMove(t,e=1){if(this.disabled)return;"start"==this.status&&this.$emit("start");let i=0;i=t.touches[0].clientX,this.distanceX=i-this.sliderRect.left,this.newValue=this.distanceX/this.sliderRect.width*(this.max-this.min)+parseFloat(this.min),this.status="moving",this.$emit("changing"),this.updateValue(this.newValue,!0,e)},onTouchEnd(t,e=1){this.disabled||("moving"===this.status&&(this.updateValue(this.newValue,!1,e),this.$emit("change")),this.status="end")},onTouchStart2(t,e=1){this.isRange},onTouchMove2(t,e=1){this.isRange},onTouchEnd2(t,e=1){this.isRange},onClick(t){if(this.disabled)return;let e=t.detail.x-this.sliderRect.left;this.newValue=e/this.sliderRect.width*(this.max-this.min)+parseFloat(this.min),this.updateValue(this.newValue,!1,1)},updateValue(t,e,i=1){let s=this.format(t,i);s>this.max&&(s=this.max);let a={width:Math.min((s-this.min)/(this.max-this.min)*this.sliderRect.width,this.sliderRect.width)+"px"};switch(1==e?a.transition="none":delete a.transition,this.isRange?(this.rangeValue[i]=s,this.$emit("update:modelValue",this.rangeValue)):this.$emit("update:modelValue",s),i){case 0:this.barStyle0={...a};break;case 1:this.barStyle={...a}}},format(t,e=1){if(!this.isRange)return Math.round(Math.max(this.min,Math.min(t,this.max))/parseInt(this.step))*parseInt(this.step);switch(e){case 0:return Math.round(Math.max(this.min,Math.min(t,this.rangeValue[1]-parseInt(this.step),this.max))/parseInt(this.step))*parseInt(this.step);case 1:return Math.round(Math.max(this.min,this.rangeValue[0]+parseInt(this.step),Math.min(t,this.max))/parseInt(this.step))*parseInt(this.step)}}}};const i=t._export_sfc(e,[["render",function(e,i,s,a,h,n){return t.e({a:!e.useNative||e.isRange},!e.useNative||e.isRange?t.e({b:t.s({height:e.height,backgroundColor:e.inactiveColor}),c:t.o(((...t)=>n.onClick&&n.onClick(...t))),d:t.s(h.barStyle),e:t.s({height:e.height,marginTop:"-"+e.height,backgroundColor:e.activeColor}),f:e.isRange},e.isRange?{g:t.s(h.barStyle0),h:t.s({height:e.height,marginTop:"-"+e.height,backgroundColor:e.inactiveColor})}:{},{i:e.isRange&&e.showValue},e.isRange&&e.showValue?{j:t.t(this.rangeValue[0]),k:n.getPx(h.barStyle0.width)+n.getPx(e.blockSize)/2+"px"}:{},{l:e.isRange&&e.showValue},e.isRange&&e.showValue?{m:t.t(this.rangeValue[1]),n:n.getPx(h.barStyle.width)+n.getPx(e.blockSize)/2+"px"}:{},{o:e.isRange},e.isRange?t.e({p:e.$slots.default||e.$slots.$default},e.$slots.default||e.$slots.$default?{}:{q:t.s(e.blockStyle),r:t.s({height:n.getPx(e.blockSize,!0),width:n.getPx(e.blockSize,!0),backgroundColor:e.blockColor})},{s:t.o((t=>n.onTouchStart(t,0))),t:t.o((t=>n.onTouchMove(t,0))),v:t.o((t=>n.onTouchEnd(t,0))),w:t.o((t=>n.onTouchEnd(t,0))),x:n.getPx(h.barStyle0.width)+n.getPx(e.blockSize)/2+"px"}):{},{y:e.$slots.default||e.$slots.$default},e.$slots.default||e.$slots.$default?{}:{z:t.s(e.blockStyle),A:t.s({height:n.getPx(e.blockSize,!0),width:n.getPx(e.blockSize,!0),backgroundColor:e.blockColor})},{B:t.o(((...t)=>n.onTouchStart&&n.onTouchStart(...t))),C:t.o(((...t)=>n.onTouchMove&&n.onTouchMove(...t))),D:t.o(((...t)=>n.onTouchEnd&&n.onTouchEnd(...t))),E:t.o(((...t)=>n.onTouchEnd&&n.onTouchEnd(...t))),F:n.getPx(h.barStyle.width)+n.getPx(e.blockSize)/2+"px",G:t.o(((...t)=>n.onClick&&n.onClick(...t))),H:t.o((t=>n.onTouchStart2(t,1))),I:t.o((t=>n.onTouchMove2(t,1))),J:t.o((t=>n.onTouchEnd2(t,1))),K:t.o((t=>n.onTouchEnd2(t,1))),L:t.n(e.disabled?"u-slider--disabled":""),M:e.isRange&&e.showValue?n.getPx(e.blockSize)+24+"px":n.getPx(e.blockSize)+"px",N:e.showValue&&!e.isRange},e.showValue&&!e.isRange?{O:t.t(e.modelValue)}:{}):{P:e.min,Q:e.max,R:e.step,S:e.modelValue,T:e.activeColor,U:e.inactiveColor,V:n.getPx(e.blockSize),W:e.blockColor,X:e.showValue,Y:e.disabled,Z:t.o(((...t)=>n.changingHandler&&n.changingHandler(...t))),aa:t.o(((...t)=>n.changeHandler&&n.changeHandler(...t)))},{ab:t.s(n.addStyle(e.customStyle))})}],["__scopeId","data-v-534a5085"]]);wx.createComponent(i);