105 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			105 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| 
								 | 
							
								// 获取路由URL参数
							 | 
						|||
| 
								 | 
							
								function urlSearch(parmas) {
							 | 
						|||
| 
								 | 
							
								  let href = window.location.href
							 | 
						|||
| 
								 | 
							
								  let query = href.substring(href.indexOf('?')+1);
							 | 
						|||
| 
								 | 
							
								  let vars = query.split("&");
							 | 
						|||
| 
								 | 
							
								  for (var i = 0; i < vars.length; i++) {
							 | 
						|||
| 
								 | 
							
								    let pair = vars[i].split("=");
							 | 
						|||
| 
								 | 
							
								    if(pair[0] == parmas){
							 | 
						|||
| 
								 | 
							
								      return pair[1];
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 深拷贝
							 | 
						|||
| 
								 | 
							
								function deepClone(obj){
							 | 
						|||
| 
								 | 
							
								  let objClone = Array.isArray(obj)?[]:{};
							 | 
						|||
| 
								 | 
							
								  if(obj && typeof obj === "object"){
							 | 
						|||
| 
								 | 
							
								    for(key in obj){
							 | 
						|||
| 
								 | 
							
								      if(obj.hasOwnProperty(key)){
							 | 
						|||
| 
								 | 
							
								          // 判断ojb子元素是否为对象,如果是,递归复制
							 | 
						|||
| 
								 | 
							
								        if(obj[key] && typeof obj[key] === "object"){
							 | 
						|||
| 
								 | 
							
								          objClone[key] = deepClone(obj[key]);
							 | 
						|||
| 
								 | 
							
								        }else{
							 | 
						|||
| 
								 | 
							
								          // 如果不是,简单复制
							 | 
						|||
| 
								 | 
							
								          objClone[key] = obj[key];
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								      }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								  return objClone;
							 | 
						|||
| 
								 | 
							
								}  
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 防抖
							 | 
						|||
| 
								 | 
							
								function _debounce(fn, delay = 300) {
							 | 
						|||
| 
								 | 
							
								  var timer = null;
							 | 
						|||
| 
								 | 
							
								  return function () {
							 | 
						|||
| 
								 | 
							
								    var _this = this;
							 | 
						|||
| 
								 | 
							
								    var args = arguments;
							 | 
						|||
| 
								 | 
							
								    if (timer) clearTimeout(timer); 
							 | 
						|||
| 
								 | 
							
								    timer = setTimeout(function () {
							 | 
						|||
| 
								 | 
							
								      fn.apply(_this, args);
							 | 
						|||
| 
								 | 
							
								    }, delay);
							 | 
						|||
| 
								 | 
							
								  };
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 节流
							 | 
						|||
| 
								 | 
							
								function _throttle(fn,delay = 1000){
							 | 
						|||
| 
								 | 
							
								  var lastTime, timer, delay;
							 | 
						|||
| 
								 | 
							
								  return function(){
							 | 
						|||
| 
								 | 
							
								    var _this = this;
							 | 
						|||
| 
								 | 
							
								    var args = arguments;
							 | 
						|||
| 
								 | 
							
								    var nowTime = Date.now(); 
							 | 
						|||
| 
								 | 
							
								    if(lastTime && nowTime - lastTime < delay){
							 | 
						|||
| 
								 | 
							
								      if (timer) clearTimeout(timer); 
							 | 
						|||
| 
								 | 
							
								      timer = setTimeout(function(){
							 | 
						|||
| 
								 | 
							
								        lastTime = nowTime;
							 | 
						|||
| 
								 | 
							
								        fn.apply(_this,args);
							 | 
						|||
| 
								 | 
							
								      },delay)
							 | 
						|||
| 
								 | 
							
								    }else{
							 | 
						|||
| 
								 | 
							
								      lastTime = nowTime;
							 | 
						|||
| 
								 | 
							
								      fn.apply(_this,args);
							 | 
						|||
| 
								 | 
							
								    } 
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/*
							 | 
						|||
| 
								 | 
							
								* 下划线转换驼峰
							 | 
						|||
| 
								 | 
							
								*/ 
							 | 
						|||
| 
								 | 
							
								function underlineToHump(str) {
							 | 
						|||
| 
								 | 
							
								  // 如果首字母是_,执行 replace 时会多一个_,这里需要去掉
							 | 
						|||
| 
								 | 
							
								  if(str.slice(0,1) === '_'){ 
							 | 
						|||
| 
								 | 
							
								    str = str.slice(1);
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								  return str.replace(/([^_])(?:_+([^_]))/g, function ($0, $1, $2) {
							 | 
						|||
| 
								 | 
							
								    return $1 + $2.toUpperCase();
							 | 
						|||
| 
								 | 
							
								  });
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/*
							 | 
						|||
| 
								 | 
							
								* 驼峰转换下划线
							 | 
						|||
| 
								 | 
							
								*/ 
							 | 
						|||
| 
								 | 
							
								function humpToUnderline(str) {
							 | 
						|||
| 
								 | 
							
								  let temp = str.replace(/[A-Z]/g, function (match) { 
							 | 
						|||
| 
								 | 
							
								      return "_" + match.toLowerCase();
							 | 
						|||
| 
								 | 
							
								    });
							 | 
						|||
| 
								 | 
							
								  // 如果首字母是大写,执行replace时会多一个_,这里需要去掉
							 | 
						|||
| 
								 | 
							
								  if(temp.slice(0,1) === '_'){ 
							 | 
						|||
| 
								 | 
							
								    temp = temp.slice(1);
							 | 
						|||
| 
								 | 
							
								  }
							 | 
						|||
| 
								 | 
							
								  return temp;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								export{
							 | 
						|||
| 
								 | 
							
								  urlSearch,
							 | 
						|||
| 
								 | 
							
								  deepClone,
							 | 
						|||
| 
								 | 
							
								  _debounce,
							 | 
						|||
| 
								 | 
							
								  _throttle,
							 | 
						|||
| 
								 | 
							
								  underlineToHump,
							 | 
						|||
| 
								 | 
							
								  humpToUnderline,
							 | 
						|||
| 
								 | 
							
								}
							 |