snows-utils
Version:
a practical custom toolkit
1 lines • 14.6 kB
JavaScript
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("vue"));else if("function"==typeof define&&define.amd)define(["vue"],t);else{var n="object"==typeof exports?t(require("vue")):t(e.vue);for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(self,(e=>(()=>{"use strict";var t={748:t=>{t.exports=e}},n={};function r(e){var o=n[e];if(void 0!==o)return o.exports;var l=n[e]={exports:{}};return t[e](l,l.exports,r),l.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{r.r(o),r.d(o,{addParamOnLocation:()=>B,arr2percentage:()=>A,arr2tree:()=>S,bigScreenAdapterMixin:()=>re,debounce:()=>V,decimalLen:()=>O,deepClone:()=>K,default:()=>ie,dialogDrag:()=>J,dialogDragHeight:()=>Q,dialogDragScale:()=>ee,dialogDragWidth:()=>G,dialogFullScreen:()=>te,focus:()=>ne,getAllParamsByUrl:()=>q,getDataType:()=>j,getParamKeyByUrl:()=>Y,isArr:()=>W,isDecimal:()=>T,isFunc:()=>C,isLeapyear:()=>k,isNull:()=>_,isNum:()=>I,isObj:()=>P,isStr:()=>z,isUndef:()=>X,isUrl:()=>U,local:()=>le,num2MoneyFormat:()=>F,num2chineseStr:()=>D,num2micrometer:()=>$,randomNum:()=>N,removeHTMLAndAtrr:()=>R,removeMicromete:()=>E,splitChunk:()=>b,str2num:()=>M,throttle:()=>Z,transformEmail:()=>L,transformPhone:()=>H,useBigScreenAdapter:()=>oe});const e={splitChunk:(e,t)=>"Array"===Object.prototype.toString.call(e).slice(8,-1)&&"Number"===Object.prototype.toString.call(parseInt(t)).slice(8,-1)?e.reduce(((e,n,r)=>{const o=parseInt(r/parseInt(t));return e[o]||(e[o]=[]),e[o].push(n),e}),[]):[],arr2tree(e,t,n,r,o,l){let i=t||"id",s=n||"parentId",a=r||"children",c=o||!1,u=l||!1;var d={},p={},m=[];for(let t of e){let e=t[s];null==d[e]&&(d[e]=[]),p[t[i]]=t,d[e].push(t)}for(let t of e)null==p[t[s]]&&m.push(t);for(let e of m)h(e);function h(e){if(null!==d[e[i]]&&(e[a]=d[e[i]]),e[a]){c&&(e.hasChild=!0);for(let t of e[a])h(t)}else c&&(e.hasChild=!1),u&&delete e[a]}function g(e,t){e.__level__=t,e.children&&e.children.length&&e.children.forEach((e=>g(e,t+1)))}return m.forEach((e=>g(e,0))),m},arr2percentage(e,t=2){if("Array"!==Object.prototype.toString.call(e).slice(8,-1))throw new Error(`${e} is not a Array`);let n=e.reduce((function(e,t){return e+(isNaN(t)?0:t)}),0);if(0===n)return 0;let r=Math.pow(10,t),o=e.map((function(e){return(isNaN(e)?0:e)/n*r*100})),l=100*r,i=o.map((function(e){return Math.floor(e)})),s=i.reduce((function(e,t){return e+t}),0),a=o.map((function(e,t){return e-i[t]}));for(;s<l;){let e=Number.NEGATIVE_INFINITY,t=null;for(let n=0,r=a.length;n<r;++n)a[n]>e&&(e=a[n],t=n);++i[t],a[t]=0,++s}return i.map((e=>e/r))}},t=e,n={width:"1",height:"1"},l=parseFloat(1.7777777777777777.toFixed(5)),i={data:()=>({drawTiming:null}),mounted(){this.calcRate(),window.addEventListener("resize",this.resize)},beforeDestroy(){window.removeEventListener("resize",this.resize)},methods:{calcRate(){const e=document.getElementById("bigScreenContainer");if(!e)return;e.style.width="1920px",e.style.height="1080px",e.style.position="absolute",e.style.top="50%",e.style.left="50%",e.style.transformOrigin="left top";const t=parseFloat((window.innerWidth/window.innerHeight).toFixed(5));e&&(t>l?(n.width=(window.innerHeight*l/1920).toFixed(5),n.height=(window.innerHeight/1080).toFixed(5),e.style.transform=`scale(${n.width}, ${n.height}) translate(-50%, -50%)`):(n.height=(window.innerWidth/l/1080).toFixed(5),n.width=(window.innerWidth/1920).toFixed(5),e.style.transform=`scale(${n.width}, ${n.height}) translate(-50%, -50%)`))},resize(){clearTimeout(this.drawTiming),this.drawTiming=setTimeout((()=>{this.calcRate()}),200)}}},s=e=>Object.prototype.toString.call(e).slice(8,-1),a=e=>"Number"===s(e),c={getDataType:s,isStr:e=>"String"===s(e),isNum:a,isArr:e=>"Array"===s(e),isObj:e=>"Object"===s(e),isFunc:e=>"Function"===s(e),isNull:e=>"Null"===s(e),isUndef:e=>"Undefined"===s(e)},u={isLeapyear(e){if(a(1*e))return e%100!=0&&e%4==0||e%400==0;throw new Error(`${e} 不是一个年份 `)},removeHTMLAndAtrr:e=>e?e.replace(/<\/?.+?>/g,"").replace(/ /g,""):"",deepClone(e){let t=Array.isArray(e),n="[object Object]"===Object.prototype.toString.call(e);if(t){let t=[];for(let n=0;n<e.length;n++)t[n]=deepClone(e[n]);return t}if(n){let t={};for(let n in e)t[n]=deepClone(e[n]);return t}return e},debounce(e,t=500){let n=null;return function(){n&&clearTimeout(n),n=setTimeout((()=>{e.apply(this,arguments),n=null}),t)}},throttle(e,t=500){let n,r;return function(...o){let l=Date.now(),i=this;if(r||(r=l),clearTimeout(n),l-r>t)return r=l,e.apply(i,o),void clearTimeout(n);n=setTimeout((function(){r=Date.now(),n=null,e.apply(i,o)}),t)}}},d={prefix:"__l_",get(e){return JSON.parse(localStorage.getItem(this.prefix+e)?localStorage.getItem(this.prefix+e):'{"value":null}').value},set(e,t){localStorage.setItem(this.prefix+e,JSON.stringify({value:t}))},del(e){localStorage.removeItem(this.prefix+e)},clear(){localStorage.clear()}},p={isDecimal:e=>"number"==typeof e&&-1!=(e+"").indexOf("."),decimalLen(e){if(e instanceof p)return-1!=(e+"").indexOf(".")?(e+"").split(".")[1].length:0;throw new Error(e+" is not a Number")},num2chineseStr(e){if(!/^\d*(\.\d*)?$/.test(e))return"Number is wrong!";let t=new Array("零","一","二","三","四","五","六","七","八","九"),n=new Array("","十","百","千","万","亿","点",""),r=(""+e).replace(/(^0*)/g,"").split("."),o=0,l="";for(let e=r[0].length-1;e>=0;e--){switch(o){case 0:l=n[7]+l;break;case 4:new RegExp("0{4}\\d{"+(r[0].length-e-1)+"}$").test(r[0])||(l=n[4]+l);break;case 8:l=n[5]+l,n[7]=n[5],o=0}o%4==2&&0!=r[0].charAt(e+2)&&0==r[0].charAt(e+1)&&(l=t[0]+l),0!=r[0].charAt(e)&&(l=t[r[0].charAt(e)]+n[o%4]+l),o++}if(r.length>1){l+=n[6];for(let e=0;e<r[1].length;e++)l+=t[r[1].charAt(e)]}return l},num2MoneyFormat(e){if(!/^(0|[1-9]\d*)(\.\d+)?$/.test(e))return"数据非法";let t="仟佰拾亿仟佰拾万仟佰拾圆角分",n="",r=(e+="00").indexOf(".");r>=0&&(e=e.substring(0,r)+e.substr(r+1,2)),t=t.substr(t.length-e.length);for(let r=0;r<e.length;r++)n+="零壹贰叁肆伍陆柒捌玖".charAt(e.charAt(r))+t.charAt(r);return n.replace(/零(仟|佰|拾|角)/g,"零").replace(/(零)+/g,"零").replace(/零(万|亿|圆)/g,"$1").replace(/(亿)万|壹(拾)/g,"$1$2").replace(/^圆零?|零分/g,"").replace(/圆$/g,"圆整")},num2micrometer(e){let t=String(p(e).toFixed(0)-0);return isNaN(t)?e:t.replace(/\d(?=(?:\d{3})+\b)/g,"$&,")},removeMicromete:e=>e?e=(e=e.toString()).replace(/,/gi,""):e,randomNum(e,t){switch(arguments.length){case 1:return parseInt(Math.random()*e+1,10);case 2:return parseInt(Math.random()*(t-e+1)+e,10);default:return 0}},isMoney:e=>/^(([1-9]{1}\d*)|(0{1}))(\.\d{1,2})?$/.test(e)},m=p,h={transformEmail(e){let t="";if(String(e).indexOf("@")>0){const n=e.split("@");let r="";if(n[0].length>4)for(let e=0;e<n[0].length-4;e++)r+="*";t=n[0].substr(0,3)+r+n[0].substr(n[0].length-1)+"@"+n[1]}return t},transformPhone(e){let t="";return e.length>7&&(t=e.substr(0,3)+"****"+e.substr(7)),t},str2num(e){let t="";for(let n=0;n<e.length;++n)t+=e[n].charCodeAt()-65;return t},isEmail:e=>/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(e),isPhone:e=>/^(1[3-9])\d{9}$/.test(e)},g={isUrl:e=>/^(http|https):\/\/([\w.]+\/?)\S*/.test(e),getParamKeyByUrl(e,t){var n=new RegExp(`(^|&)${t}=([^&]*)(&|$)`);let r=null;return-1!=e.indexOf("?")&&(r=e.split("?")[1].match(n)),null!=r?r[2]:null},getAllParamsByUrl(e){let t={};if("String"!=Object.prototype.toString.call(e).slice(8,-1))return t;let n=e.split("?")[1];return n?(n.split("&").forEach((e=>{e.split("=")[0]&&(t[e.split("=")[0]]=e.split("=")[1])})),t):t},addParamOnLocation(e,t){var n=function(e,t,n){if(!n)return e;var r=new RegExp("([?&])"+t+"=.*?(&|$)","i"),o=-1!==e.indexOf("?")?"&":"?";return e.match(r)?e.replace(r,"$1"+t+"="+n+"$2"):e+o+t+"="+n}(window.location.href,e,t);window.history.replaceState({path:n},"",n)}},f=g;var y=r(748),w=r.n(y);const x={dialogDrag(e="dialogDrag"){w().directive(e,{bind(e){const t=e.querySelector(".el-dialog__header"),n=e.querySelector(".el-dialog");t.style.cursor="move";const r=n.currentStyle||window.getComputedStyle(n,null);t.onmousedown=e=>{const o=e.clientX-t.offsetLeft,l=e.clientY-t.offsetTop;let i,s;r.left.includes("%")?(i=+document.body.clientWidth*(+r.left.replace(/\%/g,"")/100),s=+document.body.clientHeight*(+r.top.replace(/\%/g,"")/100)):(i=+r.left.replace(/\px/g,""),s=+r.top.replace(/\px/g,"")),document.onmousemove=function(e){const t=e.clientX-o,r=e.clientY-l;n.style.left=`${t+i}px`,n.style.top=`${r+s}px`},document.onmouseup=function(e){document.onmousemove=null,document.onmouseup=null}}}})},dialogDragWidth(e="dialogDragWidth"){w().directive(e,{bind(e){const t=e.querySelector(".el-dialog");let n=document.createElement("div");t.appendChild(n),n.style.cursor="ew-resize",n.style.position="absolute",n.style.height="100%",n.style.width="10px",n.style.right="0px",n.style.top="0px",n.onmousedown=e=>{let n=t.clientWidth,r=t.offsetLeft,o=e.clientX;document.onmousemove=function(e){e.preventDefault(),o>r+n-10&&o<r+n&&(o>e.clientX&&t.clientWidth>=300&&(t.style.width=n-2*(o-e.clientX)+"px"),o<e.clientX&&(t.style.width=n+2*(e.clientX-o)+"px"))},document.onmouseup=function(){document.onmousemove=null,document.onmouseup=null}}}})},dialogDragHeight(e="dialogDragHeight"){w().directive(e,{bind(e){const t=e.querySelector(".el-dialog");let n=document.createElement("div");t.appendChild(n),n.style.cursor="ns-resize",n.style.position="absolute",n.style.height="10px",n.style.width="100%",n.style.left="0px",n.style.bottom="0px",n.onmousedown=n=>{let r=t.offsetTop,o=e.scrollTop,l=n.clientY,i=t.clientHeight;document.onmousemove=function(e){e.preventDefault(),o+l>r+i-20&&o+l<r+i&&(l>e.clientY&&t.clientHeight>=200&&(t.style.height=i-(l-e.clientY)+"px"),l<e.clientY&&(t.style.height=i+(e.clientY-l)+"px"))},document.onmouseup=function(){document.onmousemove=null,document.onmouseup=null}}}})},dialogDragScale(e="dialogDragScale"){w().directive(e,{bind(e){const t=e.querySelector(".el-dialog");let n=document.createElement("div");t.appendChild(n),n.style.cursor="ew-resize",n.style.position="absolute",n.style.height="100%",n.style.width="10px",n.style.right="0px",n.style.top="0px",n.onmousedown=e=>{let n=t.clientWidth,r=t.offsetLeft,o=e.clientX;document.onmousemove=function(e){e.preventDefault(),o>r+n-10&&o<r+n&&(o>e.clientX&&t.clientWidth>=300&&(t.style.width=n-2*(o-e.clientX)+"px"),o<e.clientX&&(t.style.width=n+2*(e.clientX-o)+"px"))},document.onmouseup=function(){document.onmousemove=null,document.onmouseup=null}};let r=document.createElement("div");t.appendChild(r),r.style.cursor="ns-resize",r.style.position="absolute",r.style.height="10px",r.style.width="100%",r.style.left="0px",r.style.bottom="0px",r.onmousedown=n=>{let r=t.offsetTop,o=e.scrollTop,l=n.clientY,i=t.clientHeight;document.onmousemove=function(e){e.preventDefault(),o+l>r+i-20&&o+l<r+i&&(l>e.clientY&&t.clientHeight>=200&&(t.style.height=i-(l-e.clientY)+"px"),l<e.clientY&&(t.style.height=i+(e.clientY-l)+"px"))},document.onmouseup=function(){document.onmousemove=null,document.onmouseup=null}};let o=document.createElement("div");t.appendChild(o),o.style.cursor="se-resize",o.style.position="absolute",o.style.height="10px",o.style.width="10px",o.style.right="0px",o.style.bottom="0px",o.style.zIndex="99",o.style.backgroundImage="linear-gradient(to right bottom, #fff 50%, #bbb 10%)",o.onmousedown=e=>{let n=e.clientX,r=e.clientX-o.offsetLeft,l=e.clientY-o.offsetTop;document.onmousemove=function(e){e.preventDefault();let o=e.clientX-r+(e.clientX-n),i=e.clientY-l;t.style.width=o>300?`${o}px`:"300px",t.style.height=i>200?`${i}px`:"200px"},document.onmouseup=function(){document.onmousemove=null,document.onmouseup=null}}}})},dialogFullScreen(e="dialogFullScreen"){w().directive(e,{bind(e){let t=!1,n=0,r=0,o=0;const l=e.querySelector(".el-dialog__header"),i=e.querySelector(".el-dialog");i.style.overflow="auto",l.onselectstart=new Function("return false"),l.ondblclick=()=>{0==t?(r=i.clientHeight,n=i.clientWidth,o=i.style.marginTop,i.style.left=0,i.style.top=0,i.style.height="100VH",i.style.width="100VW",i.style.marginTop=0,t=!0,l.style.cursor="pointer",l.onmousedown=null):("move"!=l.style.cursor&&(l.style.cursor="pointer"),i.style.width=n+"px",i.style.height=r+"px",i.style.marginTop=o,t=!1)}}})},focus(e="focus"){w().directive(e,{inserted:function(e){e.querySelector("input").focus(),e.querySelector("input").select()}})},ellipsis(e="ellipsis"){w().directive(e,{omponentUpdated:function(e){e.clientWidth<e.scrollWidth?(e.title=e.innerHTML,e.style.overflow="hidden",e.style.textOverflow="ellipsis",e.style.whiteSpace="nowrap",e.style.wordWrap="break-word"):(e.removeAttribute("title"),e.style.overflow="visible",e.style.textOverflow="clip",e.style.whiteSpace="normal")}})}};let v=null;const b=t.splitChunk,S=t.arr2tree,A=t.arr2percentage,T=m.isDecimal,O=m.decimalLen,D=m.num2chineseStr,F=m.num2MoneyFormat,$=m.num2micrometer,E=m.removeMicromete,N=m.randomNum,L=h.transformEmail,H=h.transformPhone,M=h.str2num,j=c.getDataType,W=c.isArr,C=c.isFunc,_=c.isNull,I=c.isNum,P=c.isObj,z=c.isStr,X=c.isUndef,U=f.isUrl,Y=f.getParamKeyByUrl,q=f.getAllParamsByUrl,B=f.addParamOnLocation,k=u.isLeapyear,R=u.removeHTMLAndAtrr,K=u.deepClone,V=u.debounce,Z=u.throttle,J=x.dialogDrag,G=x.dialogDragWidth,Q=x.dialogDragHeight,ee=x.dialogDragScale,te=x.dialogFullScreen,ne=x.focus,re=i,oe=()=>{const e={width:"1",height:"1"},t=parseFloat(1.7777777777777777.toFixed(5)),n=()=>{const n=document.getElementById("bigScreenContainer");if(!n)return;n.style.width="1920px",n.style.height="1080px",n.style.position="absolute",n.style.top="50%",n.style.left="50%",n.style.transformOrigin="left top";const r=parseFloat((window.innerWidth/window.innerHeight).toFixed(5));n&&(r>t?(e.width=(window.innerHeight*t/1920).toFixed(5),e.height=(window.innerHeight/1080).toFixed(5),n.style.transform=`scale(${e.width}, ${e.height}) translate(-50%, -50%)`):(e.height=(window.innerWidth/t/1080).toFixed(5),e.width=(window.innerWidth/1920).toFixed(5),n.style.transform=`scale(${e.width}, ${e.height}) translate(-50%, -50%)`))},r=()=>{clearTimeout(v),v=setTimeout((()=>{n()}),200)};return(0,y.onMounted)((()=>{n(),window.addEventListener("resize",r)})),(0,y.onUnmounted)((()=>{window.removeEventListener("resize",r)})),e},le=d,ie={...t,...m,...h,...c,...f,...u,...x,Local:d,bigScreenAdapterMixin:re,useBigScreenAdapter:oe}})(),o})()));