getQueryStrings(url,name) {
var result = url.match(new RegExp("[?&]" + name + "=([^&]+)", "i"));
if (result == null || result.length < 1) {
return "";
}
return result[1];
},
deepClone(target) {
let result;
if (typeof target === 'object') {
if (Array.isArray(target)) {
result = [];
for (let i in target) {
result.push(this.deepClone(target[i]))
}
} else if (target === null) {
result = null;
} else if (target.constructor === RegExp) {
result = target;
} else {
result = target;
}
} else {
result = target;
}
return result;
},
turnArrToTree(data,fTypeField,fIdField){
let tempTree = {top:[]};
for (let item of data){
if(item[fTypeField]){
if(tempTree[item[fTypeField]]){
tempTree[item[fTypeField]].children.push(item)
}else{
tempTree[item[fTypeField]] = {children:[item]}
}
}else{
tempTree.top.push(this.deepClone(JSON.parse(JSON.stringify(item))))
}
}
this.pushChildToParent(tempTree.top,tempTree,fIdField);
return tempTree.top;
},
pushChildToParent(parentArr,fullData,fIdField){
for(let item of parentArr){
if(fullData[item[fIdField]]){
item.children = fullData[item[fIdField]].children;
this.pushChildToParent(item.children, fullData,fIdField);
}
}
},
getStore(key) {
let value = window.localStorage.getItem(key);
if(value){
return JSON.parse(value)
}else{
return undefined
}
},
setStore(key,value) {
if(key && value){
window.localStorage.setItem(key,JSON.stringify(value))
}else{
return null
}
},
dataURItoBlob(base64Data) {
var byteString;
if(base64Data.split(',')[0].indexOf('base64') >= 0)
byteString = atob(base64Data.split(',')[1]);
else
byteString = unescape(base64Data.split(',')[1]);
var mimeString = base64Data.split(',')[0].split(':')[1].split(';')[0];
var ia = new Uint8Array(byteString.length);
for(var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
let blob = new Blob([ia], {
type: mimeString
})
return blob;
},
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);
}
return new File([u8arr], fileName, {type:mime});
},
fileToBase64(e,success=()=>{}){
let reader = new FileReader();
reader.readAsDataURL(e.target.files[0])
reader.onload = function(e){
success(this.result)
}
},
/校验经度是否符合规范
checkLong(lng){
if(lng){
let longrg = /^(-|+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3}).\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180.0{0,6}|180)$/;
if(!longrg.test(lng)){
return false;
}
return true;
}else {
return false;
}
},
checkLat(lat){
if (lat){
let latreg = /^(-|+)?([0-8]?\d{1}.\d{0,6}|90.0{0,6}|[0-8]?\d{1}|90)$/;
if(!latreg.test(lat)){
return false;
}
return true;
} else {
return false;
}
},
bMapTransQQMap(lng, lat) {
let x_pi = 3.14159265358979324 * 3000.0 / 180.0;
let x = lng - 0.0065;
let y = lat - 0.006;
let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
let lngs = z * Math.cos(theta);
let lats = z * Math.sin(theta);
return {
longitude: lngs,
latitude: lats
}
},
checkCardID(val) {
if(this.checkCode(val)) {
let date = val.substring(6,14);
if(this.checkDate(date)) {
if(this.checkProv(val.substring(0,2))) {
return true;
}
}
}
return false;
},
checkCode(val){
let p = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
let factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];
let parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];
let code = val.substring(17);
if(p.test(val)) {
let sum = 0;
for(let i=0;i<17;i++) {
sum += val[i]*factor[i];
}
if(parity[sum % 11] == code.toUpperCase()) {
return true;
}
}
this.showToast('校验码校验验证失败')
return false;
},
checkDate(val){
let pattern = /^(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)$/;
if(pattern.test(val)) {
let year = val.substring(0, 4);
let month = val.substring(4, 6);
let date = val.substring(6, 8);
let date2 = new Date(year+"-"+month+"-"+date);
if(date2 && date2.getMonth() == (parseInt(month) - 1)) {
return true;
}
}
this.showToast('出生日期码校验验证失败')
return false;
},
checkProv(val){
let pattern = /^[1-9][0-9]/;
let provs = {11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门"};
if(pattern.test(val)) {
if(provs[val]) {
return true;
}
}
this.showToast('省级地址码校验验证失败')
return false;
},
unique(arr){
if (!Array.isArray(arr)){
console.log('type error')
return
}
let array = [];
for (let i = 0; i < arr.length; i++){
if (array.indexOf(arr[i]) === -1){
array.push(arr[i])
}
}
return array;
},