You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
2.4 KiB
101 lines
2.4 KiB
import { validatenull } from '@/echart/util' |
|
export const uuid = () => { |
|
var s = []; |
|
var hexDigits = "0123456789abcdef"; |
|
for (var i = 0; i < 36; i++) { |
|
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1); |
|
} |
|
s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010 |
|
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01 |
|
s[8] = s[13] = s[18] = s[23] = "-"; |
|
|
|
var uuid = s.join(""); |
|
return uuid; |
|
} |
|
export const createFile = () => { |
|
return { |
|
title: "文件夹", |
|
name: "文件夹", |
|
index: uuid(), |
|
menu: true, |
|
children: [] |
|
} |
|
} |
|
export const compare = (propertyName) => { |
|
return function (object1, object2) { |
|
var value1 = object1[propertyName]; |
|
var value2 = object2[propertyName]; |
|
if (value2 < value1) { |
|
return -1; |
|
} else if (value2 > value1) { |
|
return 1; |
|
} else { |
|
return 0; |
|
} |
|
} |
|
} |
|
|
|
export const funEval = (value) => { |
|
return new Function("return " + value + ";")(); |
|
} |
|
|
|
|
|
export const getFunction = (fun, def) => { |
|
if (!validatenull(fun)) { |
|
try { |
|
return funEval(fun) |
|
} catch { |
|
return () => { } |
|
} |
|
} else if (def) return () => { } |
|
} |
|
export const getJson = (str) => { |
|
if (validatenull(str)) return {}; |
|
else if (typeof str == "string") { |
|
try { |
|
return JSON.parse(str); |
|
} catch { |
|
return {} |
|
} |
|
} else { |
|
return str; |
|
} |
|
} |
|
export const checkUrl = (url) => { |
|
var reg = /http(s)?:\/\/([\w-.]+)+(:[0-9]+)?.*$/; |
|
if (!reg.test(url)) { |
|
return false; |
|
} |
|
else { |
|
return true |
|
} |
|
} |
|
export const loadScript = (type = 'js', url, dom = "body") => { |
|
let flag = false; |
|
return new Promise((resolve) => { |
|
const head = dom == 'head' ? document.getElementsByTagName('head')[0] : document.body; |
|
for (let i = 0; i < head.children.length; i++) { |
|
let ele = head.children[i] |
|
if ((ele.src || '').indexOf(url) !== -1) { |
|
flag = true; |
|
resolve(); |
|
} |
|
} |
|
if (flag) return; |
|
let script; |
|
if (type === 'js') { |
|
script = document.createElement('script'); |
|
script.type = 'text/javascript'; |
|
script.src = url; |
|
} else if (type === 'css') { |
|
script = document.createElement('link'); |
|
script.rel = 'stylesheet'; |
|
script.type = 'text/css'; |
|
script.href = url; |
|
} |
|
head.appendChild(script); |
|
script.onload = function () { |
|
resolve(); |
|
}; |
|
}); |
|
};
|
|
|