@pit-front-end/components
Version:
湖南创智艾泰克科技有限公司
2 lines (1 loc) • 2.72 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),h=require("./money-input.js"),b=require("./use-money-input.js"),V=n.defineComponent({name:"PitMoneyInput",inheritAttrs:!1,__name:"money-input",props:h.moneyInputProps,emits:h.moneyInputEmits,setup(g,{emit:s}){const l=g,m=n.ref(),{modelValue:c}=b.useMoneyInput(l),u=n.reactive({moneyValue:c.value});n.watch(()=>c.value,e=>{u.moneyValue=e,a.formatNumber(u.moneyValue)});const a={decimalFun2(e,t,r){if(!e)return"0";if(r==1)e=Number((e*1).toFixed(t));else{let o=Math.pow(10,t);e=Math.floor(e*o)/o}return(e*1).toFixed(t)},amountThousandsConversion(e){if(e===""||e===null||e===".00"||e===void 0)return"";if(e==="-")return"-";let t="";Number(e)<0&&(e=(e+"").substring(1),t="-"),e=e+"";let r=e.split(".")[0].split("").reverse(),o="",p="";e.indexOf(".")>-1&&(e.split(".")[1]!==null&&e.split(".")[1]!==void 0?(e.split(".")[1].length>l.bit&&(e=a.decimalFun2(Number(e),l.bit,2)),l.bit>0?o="."+e.split(".")[1]:o=""):o="");for(let i=0;i<r.length;i++)p+=r[i]+((i+1)%3===0&&i+1!==r.length?",":"");let d=t+""+p.split("").reverse().join("")+o;return l.showComma||(d=d.replace(/,/g,"")),d},formatNumber(e){const t=m.value.$el.getElementsByTagName("input")[0];s("change",e),e=e+"";const r=t.selectionStart,o=(e.slice(0,r).match(/,/g)||[]).length,p=e.replace(/,/g,""),d=a.amountThousandsConversion(p.replace(/[^\d\.-]/g,"")),i=(d.slice(0,r).match(/,/g)||[]).length,f=r+i-o;n.nextTick(()=>{u.moneyValue=d,n.nextTick(()=>{t.selectionStart=f,t.selectionEnd=f})})},moneyChange(){const e=u.moneyValue?(u.moneyValue+"").replace(/,/g,"").replace(new RegExp(/(\d+)(\.)(\d*)(\2*)(\d*)/g),"$1$2$3$5"):"";let t=Object.is(Number(e),NaN)||e===""?"":e;l.min==0&&!isNaN(Number(t))&&Number(t)<l.min?(s("update:modelValue",0),s("blur",0)):(s("update:modelValue",t),s("blur",t))},clear(){s("update:modelValue","")}};return(e,t)=>{const r=n.resolveComponent("el-input");return n.openBlock(),n.createBlock(r,{ref_key:"moneyRef",ref:m,modelValue:u.moneyValue,"onUpdate:modelValue":t[0]||(t[0]=o=>u.moneyValue=o),modelModifiers:{trim:!0},placeholder:l.placeholder,maxlength:l.maxlength,"show-word-limit":l.showWordLimit,disabled:l.disabled,onInput:t[1]||(t[1]=o=>a.formatNumber(u.moneyValue)),onKeyup:n.withKeys(a.moneyChange,["enter"]),onClear:a.clear,onBlur:a.moneyChange},n.createSlots({_:2},[e.template==="append"?{name:"append",fn:n.withCtx(()=>[n.createTextVNode(" 元 ")]),key:"0"}:void 0,e.template==="tenThousandYuan"?{name:"append",fn:n.withCtx(()=>[n.createTextVNode("万元")]),key:"1"}:void 0]),1032,["modelValue","placeholder","maxlength","show-word-limit","disabled","onKeyup","onClear","onBlur"])}}});exports.default=V;