一、时间相关的问题
1.获取以当前时间为截止时间的一个星期的时间段
function getOneWeek(){ var currentTime = new Date().getTime(); var previousTime = currentTime - 24*60*60*1000*6; var weekTime = { "previousTime":gettingTime(previousTime).split(" ")[0], "currentTime":gettingTime(currentTime).split(" ")[0] } return weekTime; }
2.时间戳转时间
Date.prototype.format = function(fmt) { var o = { "M+" : this.getMonth() + 1, //月份 "d+" : this.getDate(), //日 "h+" : this.getHours(), //小时 "m+" : this.getMinutes(), //分 "s+" : this.getSeconds(), //秒 "q+" : Math.floor((this.getMonth() + 3) / 3), //季度 "S" : this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for ( var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; }; function gettingTime(time, type){ if(time == "" || time == null){ return ""; }else{ var date = new Date(); date.setTime(time);
if(type=="date"){
return date.format("yyyy-MM-dd");
}else{
return date.format("yyyy-MM-dd hh:mm:ss");
}
}
}
二、js库
1.polyfill:主要用于去除不同浏览器之间对js实现的差异(典型做法是在IE浏览器中增加 window.XMLHttpRequest ,内部实现使用 ActiveXObject。)
直接在页面中引入文件即可:
<script src="//cdn.polyfill.io/v1/polyfill.min.js" async defer></script>
三、文字样式为渐变色
{ background-image:-webkit-linear-gradient(bottom,#1EC9FF,#FFF); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
四、导出
1.导出csv文件
/* * 导出csv文件 * @params refName 组件ref值 * @params data 要导出的数据 * @params csvName csv文件名 */ export function exportTableData(refName, data, csvName){ var arr = this.$refs[refName].columns; let csvHeader ={}; arr.map(item=>{ csvHeader[item.property] = item.label; }) let csv = ""; for(let key in csvHeader){ csv += csvHeader[key] + ","; } csv = csv.substr(0, csv.length - 1) + "\r\n"; for(let i in data){ for(let key in csvHeader){ csv += data[i][key] + ","; } csv = csv.substr(0, csv.length-1) + "\r\n"; } let content = new Blob(['\uFEFF' + csv], { type: "text/csv;charset=utf-8" }); let urlObject = window.URL || window.webkitURL || window; let url = urlObject.createObjectURL(content); let el = document.createElement("a"); el.href = url; el.download = csvName+".csv"; el.click(); urlObject.revokeObjectURL(url); }
五、复制信息
<span id="target" @click="copyIt">要复制的信息</span> copyIt(){ const range = document.createRange(); range.selectNode(document.getElementById("target")); const selection = window.getSelection(); if(selection.rangeCount > 0) selection.removeAllRanges(); selection.addRange(range); document.execCommand("copy"); alert("复制成功"); selection.removeRange(range); }
六、判断PC端还是手机端
var browser = { versions: function () { var u = navigator.userAgent, app = navigator.appVersion; return { //移动终端浏览器版本信息 trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto') > -1, //opera内核 webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核 gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核 mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端 ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端 android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器 iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器 iPad: u.indexOf('iPad') > -1, //是否iPad webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部 }; }(), language: (navigator.browserLanguage || navigator.language).toLowerCase() } if (browser.versions.mobile) {//判断是否是移动设备打开 var ua = navigator.userAgent.toLowerCase(); //获取判断用的对象 if (browser.versions.ios || browser.versions.android) { // 手机端浏览器打开 if (ua.match(/MicroMessenger/i) == "micromessenger" || ua.match(/WeiBo/i) == "weibo" || ua.match(/QQ/i) == "qq") {}else{} } }
七、多行文字省略
p{ width:400px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 11; // 显示多少行 overflow: hidden; }