fix
This commit is contained in:
279
src/tool/util.js
279
src/tool/util.js
@@ -1,170 +1,197 @@
|
||||
const isEmail = (email)=>{
|
||||
let reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/
|
||||
let result = reg.test(email)
|
||||
return result
|
||||
const isEmail = (email) => {
|
||||
let reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/
|
||||
let result = reg.test(email)
|
||||
return result
|
||||
}
|
||||
|
||||
const getUploadUrl = () => {
|
||||
let url = process.env.VUE_APP_BASE_URL || ''
|
||||
// let url = "http://18.167.251.121:10086"
|
||||
return url
|
||||
}
|
||||
|
||||
const getUploadUrl = () =>{
|
||||
let url = process.env.VUE_APP_BASE_URL || ''
|
||||
// let url = "http://18.167.251.121:10086"
|
||||
return url
|
||||
}
|
||||
|
||||
function dataURLtoBlob(dataurl) {
|
||||
var arr = dataurl.split(',');
|
||||
var mime = arr[0].match(/:(.*?);/)[1];
|
||||
var bstr =atob(arr[1]);
|
||||
var n = bstr.length;
|
||||
var u8arr =new Uint8Array(n);
|
||||
while (n--) {
|
||||
u8arr[n] = bstr.charCodeAt(n);
|
||||
}
|
||||
return new Blob([u8arr], {type: mime });
|
||||
var arr = dataurl.split(',');
|
||||
var mime = arr[0].match(/:(.*?);/)[1];
|
||||
var bstr = atob(arr[1]);
|
||||
var n = bstr.length;
|
||||
var u8arr = new Uint8Array(n);
|
||||
while (n--) {
|
||||
u8arr[n] = bstr.charCodeAt(n);
|
||||
}
|
||||
return new Blob([u8arr], { type: mime });
|
||||
}
|
||||
|
||||
function blobToFile(blob, fileName){
|
||||
blob.lastModifiedDate =new Date();
|
||||
blob.name = fileName;
|
||||
return blob;
|
||||
function blobToFile(blob, fileName) {
|
||||
blob.lastModifiedDate = new Date();
|
||||
blob.name = fileName;
|
||||
return blob;
|
||||
}
|
||||
|
||||
//下载图片
|
||||
function downloadIamge (imgsrc, name) { // 下载图片地址和图片名
|
||||
function downloadIamge(imgsrc, name) { // 下载图片地址和图片名
|
||||
var image = new Image()
|
||||
// 解决跨域 Canvas 污染问题
|
||||
image.setAttribute('crossOrigin', 'anonymous')
|
||||
image.onload = function () {
|
||||
var canvas = document.createElement('canvas')
|
||||
canvas.width = image.width
|
||||
canvas.height = image.height
|
||||
var context = canvas.getContext('2d')
|
||||
context.drawImage(image, 0, 0, image.width, image.height)
|
||||
var url = canvas.toDataURL('image/jpeg') // 得到图片的base64编码数据
|
||||
var a = document.createElement('a') // 生成一个a元素
|
||||
var event = new MouseEvent('click') // 创建一个单击事件
|
||||
a.download = name || 'generate' // 设置图片名称
|
||||
a.href = url // 将生成的URL设置为a.href属性
|
||||
a.target='_blank'
|
||||
a.dispatchEvent(event) // 触发a的单击事件
|
||||
var canvas = document.createElement('canvas')
|
||||
canvas.width = image.width
|
||||
canvas.height = image.height
|
||||
var context = canvas.getContext('2d')
|
||||
context.drawImage(image, 0, 0, image.width, image.height)
|
||||
var url = canvas.toDataURL('image/jpeg') // 得到图片的base64编码数据
|
||||
var a = document.createElement('a') // 生成一个a元素
|
||||
var event = new MouseEvent('click') // 创建一个单击事件
|
||||
a.download = name || 'generate' // 设置图片名称
|
||||
a.href = url // 将生成的URL设置为a.href属性
|
||||
a.target = '_blank'
|
||||
a.dispatchEvent(event) // 触发a的单击事件
|
||||
}
|
||||
image.src = imgsrc
|
||||
}
|
||||
|
||||
function dataURLtoFile(dataurl, filename){
|
||||
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
|
||||
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
|
||||
while(n--){
|
||||
u8arr[n] = bstr.charCodeAt(n);
|
||||
}
|
||||
var blob = dataURLtoBlob(dataurl);
|
||||
return blobToFile(blob, filename);
|
||||
function dataURLtoFile(dataurl, filename) {
|
||||
var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
|
||||
bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
|
||||
while (n--) {
|
||||
u8arr[n] = bstr.charCodeAt(n);
|
||||
}
|
||||
var blob = dataURLtoBlob(dataurl);
|
||||
return blobToFile(blob, filename);
|
||||
}
|
||||
|
||||
const base64toFile = (dataurl, filename = 'file') => {
|
||||
let arr = dataurl.split(',')
|
||||
let mime = arr[0].match(/:(.*?);/)[1]
|
||||
let suffix = mime.split('/')[1]
|
||||
let bstr = atob(arr[1])
|
||||
let n = bstr.length
|
||||
let u8arr = new Uint8Array(n)
|
||||
while (n--) {
|
||||
u8arr[n] = bstr.charCodeAt(n)
|
||||
}
|
||||
return new File([u8arr], `${filename}.${suffix}`, {
|
||||
type: mime
|
||||
})
|
||||
let arr = dataurl.split(',')
|
||||
let mime = arr[0].match(/:(.*?);/)[1]
|
||||
let suffix = mime.split('/')[1]
|
||||
let bstr = atob(arr[1])
|
||||
let n = bstr.length
|
||||
let u8arr = new Uint8Array(n)
|
||||
while (n--) {
|
||||
u8arr[n] = bstr.charCodeAt(n)
|
||||
}
|
||||
return new File([u8arr], `${filename}.${suffix}`, {
|
||||
type: mime
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
function rgbToHsv([R, G, B]) {
|
||||
R /= 255
|
||||
G /= 255
|
||||
B /= 255
|
||||
const max = Math.max(R, G, B)
|
||||
const min = Math.min(R, G, B)
|
||||
const delta = max - min
|
||||
var H,S,V
|
||||
R /= 255
|
||||
G /= 255
|
||||
B /= 255
|
||||
const max = Math.max(R, G, B)
|
||||
const min = Math.min(R, G, B)
|
||||
const delta = max - min
|
||||
var H, S, V
|
||||
if (delta === 0) {
|
||||
H = 0;
|
||||
H = 0;
|
||||
} else if (max === R) {
|
||||
H = ((G - B) / delta) % 6;
|
||||
H = ((G - B) / delta) % 6;
|
||||
} else if (max === G) {
|
||||
H = (B - R) / delta + 2;
|
||||
H = (B - R) / delta + 2;
|
||||
} else { // max === B
|
||||
H = (R - G) / delta + 4;
|
||||
H = (R - G) / delta + 4;
|
||||
}
|
||||
H = Math.round(H * 60); // 范围为 0-360
|
||||
if(H<0){
|
||||
H = 360+H
|
||||
if (H < 0) {
|
||||
H = 360 + H
|
||||
}
|
||||
if (max === 0) {
|
||||
S = 0;
|
||||
S = 0;
|
||||
} else {
|
||||
S = delta / max;
|
||||
S = delta / max;
|
||||
}
|
||||
S = Math.round(S*100); // 范围为 0-100
|
||||
V = Math.round(max*100); // 范围为 0-100
|
||||
return [H, S, V]
|
||||
}
|
||||
S = Math.round(S * 100); // 范围为 0-100
|
||||
V = Math.round(max * 100); // 范围为 0-100
|
||||
return [H, S, V]
|
||||
}
|
||||
|
||||
const formatTime = (timestamp, fmt) =>{
|
||||
// date = new Date(), fmt = 'MM/dd/yyyy';
|
||||
let date = new Date();
|
||||
date.setTime(timestamp * 1000);
|
||||
const formatTime = (timestamp, fmt) => {
|
||||
// date = new Date(), fmt = 'MM/dd/yyyy';
|
||||
let date = new Date();
|
||||
date.setTime(timestamp * 1000);
|
||||
|
||||
if (!fmt) {
|
||||
formatRule ? (fmt = formatRule) : (fmt = "YYYY-MM-DD hh:mm:ss");
|
||||
}
|
||||
// console.log(formatRule)
|
||||
let o = {
|
||||
'M+': date.getMonth() + 1, // 月份
|
||||
'D+': date.getDate(), // 日
|
||||
'h+': date.getHours(), // 小时
|
||||
'm+': date.getMinutes(), // 分
|
||||
's+': date.getSeconds(), // 秒
|
||||
'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
|
||||
'S+': date.getMilliseconds(), // 毫秒
|
||||
'a': date.getHours() > 12
|
||||
? 'PM'
|
||||
: 'AM' // 上午还是下午
|
||||
};
|
||||
if (/(Y+)/.test(fmt)) {
|
||||
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
|
||||
}
|
||||
if(/(a)/.test(fmt)&&o['h+']>12){
|
||||
o['h+'] = o['h+'] - 12
|
||||
}
|
||||
for (let 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)));
|
||||
}
|
||||
}
|
||||
if (!fmt) {
|
||||
formatRule ? (fmt = formatRule) : (fmt = "YYYY-MM-DD hh:mm:ss");
|
||||
}
|
||||
// console.log(formatRule)
|
||||
let o = {
|
||||
'M+': date.getMonth() + 1, // 月份
|
||||
'D+': date.getDate(), // 日
|
||||
'h+': date.getHours(), // 小时
|
||||
'm+': date.getMinutes(), // 分
|
||||
's+': date.getSeconds(), // 秒
|
||||
'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
|
||||
'S+': date.getMilliseconds(), // 毫秒
|
||||
'a': date.getHours() > 12
|
||||
? 'PM'
|
||||
: 'AM' // 上午还是下午
|
||||
};
|
||||
if (/(Y+)/.test(fmt)) {
|
||||
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
|
||||
}
|
||||
if (/(a)/.test(fmt) && o['h+'] > 12) {
|
||||
o['h+'] = o['h+'] - 12
|
||||
}
|
||||
for (let 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;
|
||||
return fmt;
|
||||
}
|
||||
|
||||
const isMoible = () => {
|
||||
let is_mobile = navigator.userAgent.toLowerCase().match(/(ipad|ipod|iphone|android|coolpad|mmp|smartphone|midp|wap|xoom|symbian|j2me|blackberry|wince)/i) != null;
|
||||
if(is_mobile){
|
||||
return true
|
||||
}else{
|
||||
return false
|
||||
}
|
||||
let is_mobile = navigator.userAgent.toLowerCase().match(/(ipad|ipod|iphone|android|coolpad|mmp|smartphone|midp|wap|xoom|symbian|j2me|blackberry|wince)/i) != null;
|
||||
if (is_mobile) {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
export{
|
||||
isEmail,
|
||||
getUploadUrl,
|
||||
dataURLtoFile,
|
||||
blobToFile,
|
||||
base64toFile,
|
||||
rgbToHsv,
|
||||
formatTime,
|
||||
dataURLtoBlob,
|
||||
isMoible,
|
||||
function getBrowserInfo() {//获取是什么浏览器
|
||||
var agent = navigator.userAgent.toLowerCase();
|
||||
var userAgent = navigator.userAgent;
|
||||
var regStr_ie = /msie [\d.]+;/gi;
|
||||
var regStr_ff = /firefox\/[\d.]+/gi
|
||||
var regStr_chrome = /chrome\/[\d.]+/gi;
|
||||
var regStr_saf = /safari\/[\d.]+/gi;
|
||||
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
|
||||
var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
|
||||
console.log(isIE,isEdge);
|
||||
//IE
|
||||
if (agent.indexOf("msie") > 0) {
|
||||
return agent.match(regStr_ie);
|
||||
}
|
||||
//firefox
|
||||
if (agent.indexOf("firefox") > 0) {
|
||||
return agent.match(regStr_ff);
|
||||
}
|
||||
//Chrome
|
||||
if (agent.indexOf("chrome") > 0) {
|
||||
return agent.match(regStr_chrome);
|
||||
}
|
||||
//Safari
|
||||
if (agent.indexOf("safari") > 0 && agent.indexOf("chrome") < 0) {
|
||||
return agent.match(regStr_saf);
|
||||
}
|
||||
}
|
||||
export {
|
||||
isEmail,
|
||||
getUploadUrl,
|
||||
dataURLtoFile,
|
||||
blobToFile,
|
||||
base64toFile,
|
||||
rgbToHsv,
|
||||
formatTime,
|
||||
dataURLtoBlob,
|
||||
isMoible,
|
||||
downloadIamge,
|
||||
getBrowserInfo,
|
||||
}
|
||||
Reference in New Issue
Block a user