vuux
Version:
Vue3 Nuxt3 Nuxt4 组件库
2 lines (1 loc) • 1.94 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const v=require("vue"),o=require("../../../Toast/src/toast.cjs"),y=require("@vuux/utils"),M=(e,r,l,a,s)=>{const i=v.ref(!1),N=v.ref(!1),d=n=>{e.focusSelect&&n.currentTarget instanceof HTMLInputElement&&n.currentTarget.select(),i.value=!0,s("focus")},T=()=>{i.value=!1,s("blur",a.value)},m=n=>{let u=a.value?Number(a.value):NaN;if(!isNaN(u)&&e.precision!==void 0){const f=Math.pow(10,e.precision);u=Math.round(u*f)/f,a.value!==u&&(o.open("小数位数必须小于或等于"+e.precision),v.nextTick(()=>{a.value=void 0})),a.value=u}!isNaN(u)&&u>Number(e.max)?(o.open("值必须小于或等于"+e.max),v.nextTick(()=>{a.value=void 0})):!isNaN(u)&&u<Number(e.min)&&(o.open("值必须大于或等于"+e.min),v.nextTick(()=>{a.value=void 0})),s("input",a.value)},h=v.computed(()=>{const{readonly:n,disabled:u}=e;return{"is-readonly":n,"is-disabled":u}}),t=v.ref(null),c=()=>{t.value&&(clearInterval(t.value),t.value=null)},I=()=>{e.disabled||e.readonly||l.value&&(l.value.stepUp(),a.value=Number(l.value.value),t.value=setTimeout(()=>{t.value=setInterval(()=>{l.value&&(l.value.stepUp(),a.value=Number(l.value.value),Number(l.value.value)>=Number(e.max)&&c())},80)},250))},w=()=>{e.disabled||e.readonly||l.value&&(l.value.stepDown(),a.value=Number(l.value.value),t.value=setTimeout(()=>{t.value=setInterval(()=>{l.value&&(l.value.stepDown(),a.value=Number(l.value.value),Number(l.value.value)<=Number(e.min)&&c())},80)},250))},x=()=>{e.clear&&(a.value=void 0,s("clear"))},b=n=>{i.value||n.preventDefault()};return v.watch(()=>a.value,n=>{e.clear&&(N.value=y.Utils.isNoNull(n))}),v.onMounted(()=>{r.value&&r.value.addEventListener("wheel",b,{passive:!1})}),v.onUnmounted(()=>{r.value&&r.value.removeEventListener("wheel",b)}),{isFocus:i,isClear:N,classNames:h,onFocus:d,onBlur:T,onInput:m,onPlus:I,onMinus:w,handleClear:x,onClearTimer:c}};exports.useInputNumber=M;