@pit-front-end/components
Version:
湖南创智艾泰克科技有限公司
2 lines (1 loc) • 3.03 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue"),g=require("./input-formatter.js"),b=require("./use-input-formatter.js"),x=a.defineComponent({name:"PitInputFormatter",inheritAttrs:!1,__name:"input-formatter",props:g.inputFormatterProps,emits:g.inputFormatterEmits,setup(F,{emit:s}){const r=F,n=a.reactive({inlineFormatter:()=>{},describeInline:{int:!0,fixed:0,max:Math.pow(10,10),min:-Math.pow(10,10),maxLen:10,minLen:0,negative:!0}}),{modelValue:d}=b.useInputFormatter(r);a.onMounted(()=>{i.initFormatter(),Object.assign(n.describeInline,r.describe)});const i={upFirstStr(e){return e?e[0].toUpperCase()+e.slice(1):""},initFormatter(){if(!r.formatterPreset)return;if(r.formatter){n.inlineFormatter=r.formatter;return}const e=i["formatter"+i.upFirstStr(r.formatterPreset)];if(!e){n.inlineFormatter=()=>{console.warn(`this is no formatter${i.upFirstStr(r.formatterPreset)}`),console.warn("you maybe want this. 米: distance、温度:temperature")};return}n.inlineFormatter=e},formatterNumberLimit(e){let{int:o,negative:p,min:u,max:c,fixed:m,maxLen:f}=n.describeInline,t=""+e;if(t=t.replace(/^0\d+/,"").replace(/[^\d.-]/g,"").replace(/^\./g,"").replace(/\.{2,}/g,".").replace(".","$#$").replace(/\./g,"").replace("$#$","."),p?t=t.slice(0,1)+t.slice(1).replace(/-/g,""):t=t.replace(/-/g,""),m){const l=new RegExp(`^(-)*(\\d+)\\.(\\d{0,${m}}).*$`);t=t.replace(l,"$1$2.$3")}if(!m&&o&&(t=t.replace(/\./gi,"")),f){let[l,h]=[0,0];t.match(/\./)&&(l+=1,h=m),t.match(/^-/)?(l+=1,u=-Math.pow(10,f-h-l)+1):c=Math.pow(10,f-h-l)-1}return!isNaN(parseFloat(t))&&t>c&&(r.maxMinChange&&(t=c),r.maxMinChange||(t=n.oldValued)),!isNaN(parseFloat(t))&&t<u&&(r.maxMinChange&&(t=u),r.maxMinChange||(t=n.oldValued)),t},formatterDistance(e){return n.describeInline.fixed=3,i.formatterNumberLimit(e)},formatterTemperature(e){return Object.assign(n.describeInline,{fixed:3,max:99,min:-99}),i.formatterNumberLimit(e)},formatterPeople(e){return Object.assign(n.describeInline,{int:!0,negative:!1,max:Math.pow(10,8),min:-Math.pow(10,8)}),i.formatterNumberLimit(e)},formatterNull(e){return e},handleBlur(e){e&&e.currentTarget,s("blur",r.modelValue)},handleClear(){s("clear",r.modelValue)},handleFocus(e){n.valued=e&&e.currentTarget||"",s("focus",r.modelValue)},handleInput(e){n.oldValued=r.modelValue;const o=n.inlineFormatter(e,n.describeInline)||"";s("update:modelValue",o)}};return(e,o)=>{const p=a.resolveComponent("el-input");return a.openBlock(),a.createBlock(p,a.mergeProps({modelValue:a.unref(d),"onUpdate:modelValue":o[0]||(o[0]=u=>a.isRef(d)?d.value=u:null),disabled:r.disabled},e.$attrs,{placeholder:r.placeholder,readonly:r.readonly,onBlur:i.handleBlur,onClear:i.handleClear,onInput:i.handleInput,onFocus:i.handleFocus}),a.createSlots({_:2},[r.plain?void 0:{name:"append",fn:a.withCtx(()=>[a.createTextVNode(a.toDisplayString(r.unit),1)]),key:"0"}]),1040,["modelValue","disabled","placeholder","readonly","onBlur","onClear","onInput","onFocus"])}}});exports.default=x;