UNPKG

vue3-help

Version:

Vue3 帮助工程

1 lines 3.4 kB
import dayjs from"dayjs";import validate from"./validate";const formatter={formatTime:(t,e)=>{t.toString().length<13&&(t*=1e3);const r=new Date(t),n=r.getFullYear(),i=r.getMonth()+1,s=r.getDate(),a=r.getHours(),o=r.getMinutes(),u=r.getSeconds();function d(t){return t<10?`0${t}`:t}return e=(e=(e=(e=(e=(e=e.replace("yyyy",`${n}`)).replace("MM",`${d(i)}`)).replace("dd",`${d(s)}`)).replace("hh",`${d(a)}`)).replace("mm",`${d(o)}`)).replace("ss",`${d(u)}`)},toActivityDate:t=>formatter.dateFormat("MM-DD 周W hh:mm",t),dateFormat:(t="YYYY-MM-DD",e=new Date)=>{const r=new Date(e),n=["日","一","二","三","四","五","六"],i={"M+":r.getMonth()+1,"D+":r.getDate(),"h+":r.getHours(),"m+":r.getMinutes(),"s+":r.getSeconds(),"q+":Math.floor((r.getMonth()+3)/3),S:r.getMilliseconds(),W:r.getDay()};for(var s in/(Y+)/.test(t)&&(t=t.replace(RegExp.$1,(r.getFullYear()+"").substr(4-RegExp.$1.length))),i)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,"W"==RegExp.$1?n[i[s]]:1==RegExp.$1.length?i[s]:("00"+i[s]).substr((""+i[s]).length)));return t},date:(t,e)=>{"string"==typeof t&&(t=new Date(t).getTime()),t.toString().length<13&&(t*=1e3);const r=new Date(t);return e=(e=(e=(e=(e=(e=e.replace(/Y+/,r.getFullYear().toString())).replace(/m+/,(r.getMonth()+1).toString().padStart(2,"0"))).replace(/d+/,r.getDate().toString().padStart(2,"0"))).replace(/H+/,r.getHours().toString().padStart(2,"0"))).replace(/i+/,r.getMinutes().toString().padStart(2,"0"))).replace(/s+/,r.getSeconds().toString().padStart(2,"0"))},formatPhone:t=>t.toString().slice(0,3).padEnd(7,"*")+t.toString().slice(-4),parseNumber:t=>{if(t<1e4)return{num:t,unit:""};if(t>9999&&t<1e8){const e=(Math.floor(t/1e3)/10).toFixed(1);return"0"==e.charAt(e.length-1)?{num:e.substring(0,e.length-2),unit:"万"}:{num:e,unit:"万"}}return t>99999999?{num:"9999",unit:"万+"}:{num:0,unit:""}},phoneHide:t=>t.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),jsonParse:t=>{try{return JSON.parse(t)}catch(e){return t}},JSONToObject:t=>t&&validate.isJson(t)?JSON.parse(t):t,splitAddress:t=>{let e="",r="",n="";return-1!==t.indexOf("省")&&(e=t.split("省")[0]+"省",t=t.substring(t.indexOf("省")+1)),-1!==t.indexOf("市")&&(r=t.split("市")[0]+"市",t=t.substring(t.indexOf("市")+1)),-1!==t.indexOf("区")&&(n=t.split("区")[0]+"区",t=t.substring(t.indexOf("区")+1)),-1!==t.indexOf("县")&&(n=t.split("县")[0]+"县",t=t.substring(t.indexOf("县")+1)),{province:e,city:r,area:n,address:t}},qiniuUrlScale:(t,e)=>{if(!["https://static.oss.chinnshi.com","https://dev.qiniu.imshini.com","https://test.oss.chinnshi.com","https://stage.oss.chinnshi.com","https://rod.oss.chinnshi.com"].some(e=>-1!==t.indexOf(e)))return t;if(-1==t.indexOf("http"))return t;if(0==t.indexOf("blob:"))return t;try{if(!t)return"";let r="";return r=-1==t.indexOf("?")?t:t.split("?")[0],validate.isVideo(r)?t.includes("vframe")?t:r+"?vframe/jpg/offset/0":r+`?imageMogr2/auto-orient/interlace/1/thumbnail/${e}x`}catch(t){return""}},qiniuUrlCustom:(t,e)=>{try{if(!t)return"";let r="";return r=-1==t.indexOf("?")?t:t.split("?")[0],r+e}catch(e){return t||""}},formatNumber:(t,e=0)=>{t=Number(t);const r=Math.round(t*Math.pow(10,e))/Math.pow(10,e);return r%1==0?r.toFixed(0):r.toFixed(e)},getHourAndMinuteDifference:(t,e=dayjs())=>{const r=dayjs(t),n=dayjs(e),i=r.diff(n,"minute");return{hours:Math.floor(i/60),minutes:i%60}},kbToM:t=>(t/1024/1024).toFixed(2)};export default formatter;