import './date.format'
export default {
/*
* 对象重置为空
* @obj 原对象
* */
clearObj(obj) {
for (let k in obj) {
obj[k] = ''
}
},
/*
* 获取最近某个时间段
* @last 最近天数
* 返回值为GMT时间
* */
getRangeDay(last) {
const date = new Date();
date.setTime(date.getTime() - 3600 * 1000 * 24 * last);
return [date, new Date()]
},
/*
* 时间格式化
* @dateTime GMT时间
* */
dateTimeFormat(dateTime) {
return dateTime.format('Y-m-d H:i:s');
},
debounce(fn, wait) {
let timeout = null;
return function () {
if (timeout !== null) clearTimeout(timeout);
timeout = setTimeout(fn, wait);
}
},
/*
* 在arr中找到相同value的元素,并返回name
* @arr 数组
* @key 目标值
* */
diff(arr, key) {
let name = '';
if (!key) {
return ''
}
try {
name = arr.find((item) => {
return item.value == key
}).name || '';
} catch (e) {
// console.log(arr,key)
}
return name
},
/*
* 判断类型是否正确
* @data:Obj/Arr 源数据
* @type:string 要判断的类型
* return {Boolean}
* */
isType(data, type) {
return Object.prototype.toString.call(data) === '[object ' + type + ']'
},
extendSuper() {
let arg = arguments
for (let i = 1; i < arg.length; i++) {
arg[0] = this.extendEasy(arg[0], arg[i])
}
return arg[0]
},
/*
* 拷贝新数组或对象到源数组对象
*
* */
extendEasy(source, obj) {
for (let key in obj) {
if (this.isType(obj[key],'Object')) {
source[key] = {}
source[key] = this.extendEasy(source[key], obj[key])
}
if (this.isType(obj[key],'Array')) {
source[key] = []
source[key] = this.extendEasy(source[key], obj[key])
}
source[key] = obj[key]
}
return source
},
normalExtend(data){
return JSON.parse(JSON.stringify(data))
},
/*
* 获取url中的参数,返回参数集合
* */
getUrlQuery(){
let url = document.location.href;
let result = {}
if(url.indexOf('?')>=0){
let queryStr = url.split('?').pop();
let frMap = queryStr.split('&');
frMap.forEach(d=>{
let [key,value] = d.split('=');
result[key] = value;
})
}else {}
return result
},
/*
* ioc类型检查
*简单校验
* */
iocTypeValidate:{
1:{
name:'IP',
foo(str){
return str.split('.').length === 4
}
},
2:{
name:'DOMAIN',
foo(str){
return str.split('.').length <= 3 && str.split('.').length > 1
}
},
3:{
name:'URL',
foo(str){
return str.indexOf('/')>=0
}
},
4:{
name:'MD5',
foo(str){
return str.indexOf('/')<0 && str.indexOf('.')<0 && str.length === 32
}
},
5:{
name:'SHA-1',
foo(str){
return str.indexOf('/')<0 && str.indexOf('.')<0 && str.length === 40
}
},
// 6:{
// name:'EMAIL',
// foo(str){
// return str.indexOf('@')>=0 && str.indexOf('.')>=0
// }
// },
7:{
name:'SHA-256',
foo(str){
return str.indexOf('/')<0 && str.indexOf('.')<0 && str.length === 64
}
},
}
}
console