fastlion-amis
Version:
一种MIS页面生成工具
224 lines (223 loc) • 8.06 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.tools = void 0;
/**
*
* @param variable -url上的变量明 最推荐
*/
var getUrlSearchParams = function (variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == variable) {
return pair[1];
}
}
return (false);
};
//开发平台预览
var isMb = getUrlSearchParams('preview') === "mb" || /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
var isAndroid = /Android/i.test(navigator.userAgent);
var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
exports.tools = {
/**是否移动端 true:是 false: 否 */
isMb: isMb,
/**是否PC端 true:是 false: 否 */
isPc: !isMb,
/**是否苹果 true:是 false: 否 */
isIOS: isIOS,
isAndroid: isAndroid,
isComWx: /wxwork/i.test(navigator.userAgent),
isMac: /macintosh|macintel/ig.test(navigator.userAgent.toLowerCase()),
canUseSticky: CSS.supports('position', 'sticky'),
canUseWebKitSticky: CSS.supports('position', '-webkit-sticky'),
toArray: function (any) {
if (!Array.isArray(any)) {
return [any];
}
else {
return any;
}
},
//判断是否是微信浏览器的函数
isWeiXin: function () {
return window.navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1;
},
//随机名称生成
randonName: function (len) {
var len = len || 32;
var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
var maxPos = chars.length;
var pwd = '';
for (var i = 0; i < len; i++) {
pwd += chars.charAt(Math.floor(Math.random() * maxPos));
}
return pwd;
},
os: (function () {
var ua = navigator.userAgent, os = {
wechat: {
version: ''
},
ios: false,
iphone: false,
ipad: false,
android: false,
version: ''
};
var funcs = [
function () {
var wechat = ua.match(/(MicroMessenger)\/([\d\.]+)/i);
if (wechat) { //wechat
os.wechat = {
version: wechat[2].replace(/_/g, '.')
};
}
return false;
},
function () {
var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/);
if (android) {
os.android = true;
os.version = android[2];
// os.isBadAndroid = !(/Chrome\/\d/.test(window.navigator.appVersion));
}
return os.android;
},
function () {
var iphone = ua.match(/(iPhone\sOS)\s([\d_]+)/);
if (iphone) { //iphone
os.ios = true;
os.iphone = true;
os.version = iphone[2].replace(/_/g, '.');
}
else {
var ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
if (ipad) { //ipad
os.ios = true;
os.ipad = true;
os.version = ipad[2].replace(/_/g, '.');
}
}
return os.ios;
}
];
funcs.every(function (func) {
return !func();
});
return os;
})(),
copy: function (text) {
var input = document.createElement("textarea");
input.style.cssText = 'position: absolute;top: -1px;height: 1px;width: 1px;';
input.value = text;
document.body.appendChild(input);
input.select();
document.execCommand("Copy");
document.body.removeChild(input);
},
utf8ArrayToStr: function (array) {
var out = "", i = 0, len = array.length, char1, char2, char3, char4;
while (i < len) {
char1 = array[i++];
// 当单个字节时, 最大值 '01111111', 最小值 '00000000' 右移四位 07, 00
// 当两个字节时, 最大值 '11011111', 最小值 '11000000' 右移四位 13, 12
// 当三个字节时, 最大值 '11101111', 最小值 '11100000' 右移四位 14, 14
if (char1 >> 4 <= 7) {
out += String.fromCharCode(char1);
}
else if (char1 >> 4 == 12 || char1 >> 4 == 13) {
char2 = array[i++];
out += String.fromCharCode(((char1 & 0x1F) << 6) | (char2 & 0x3F));
}
else if (char1 >> 4 == 14) {
char2 = array[i++];
char3 = array[i++];
char4 = ((char1 & 0x0F) << 12) | ((char2 & 0x3F) << 6);
out += String.fromCharCode(char4 | ((char3 & 0x3F) << 0));
}
}
return out;
},
//判断变量是否是对象
isObject: function (obj) {
return Object.prototype.toString.call(obj) === "[object Object]";
},
isEmptyObject: function (obj) {
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
return false;
}
}
return true;
},
//判断变量是否是数组
isArray: function (arr) {
return Object.prototype.toString.call(arr) === "[object Array]";
},
/**是否无效值 true:是 false:否 */
isEmpty: function (variable) {
var result = false;
if (typeof variable === "string") {
if (variable === "" ||
variable === "undefined" ||
// variable === "null" ||
variable === "NaN" ||
variable === "Infinity") {
result = true;
}
}
else if (typeof variable === "number") {
if (isNaN(variable) || !isFinite(variable)) {
result = false;
}
}
else if (variable === null) {
result = true;
}
else if (typeof variable === "undefined") {
result = true;
}
else if (exports.tools.isObject(variable)) {
if (exports.tools.isEmptyObject(variable)) {
result = true;
}
}
else if (exports.tools.isArray(variable)) {
if (variable.length === 0) {
result = true;
}
}
return result;
},
openDownloadDialog: function (url, saveName) {
// 此方法创建了a标签 利用a标签的download属性进行下载文件
if (typeof url == 'object' && url instanceof Blob) {
url = URL.createObjectURL(url); // 创建blob地址
}
var aLink = document.createElement('a');
aLink.href = url;
aLink.download = saveName || '';
// HTML5新增的属性,指定保存文件名,可以不要后缀,注意,file:///模式下不会生效
var event;
if (window.MouseEvent)
event = new MouseEvent('click');
else {
event = document.createEvent('MouseEvents');
event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
}
aLink.dispatchEvent(event);
if (url) {
window.URL.revokeObjectURL(url);
}
},
getGuid: (function () {
var guid = 999;
return function (prefix) {
if (prefix === void 0) { prefix = 'guid-'; }
return "" + prefix + guid++;
};
}()),
};
//# sourceMappingURL=./utils/shell/tools.js.map
;