/**
 * @file 工具函数
 * 常用方法,公共方法
 */
/**
 * 模拟a标签跳转
 * @param url
 * @param target
 * @return {*}
 */
const ALink = function (url, target = '_blank') {
  const a = document.createElement('a');
  a.href = url;
  a.target = target;
  document.body.appendChild(a);
  a.click();
  document.body.removeChild(a);
}

/**
 * 获取url指定参数
 * @param {*} name 参数名
 * @param {*} url
 * @returns
 */
const getParameterByName = function (name, url) {
  if (!url) url = window.location.href;
  name = name.replace(/[[]]/g, '$&');
  var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
    results = regex.exec(url);
  if (!results) return null;
  if (!results[2]) return '';
  return decodeURIComponent(results[2].replace(/\\+/g, ' '));
}

/**
 * 获取url所有参数
 * @returns
 */
function getUrlSearchJson () {
  var url = location.search;
  if (!url) {
    return null;
  }
  var newObj = new Object();
  if (url.indexOf("?") != -1) {
    var ops = url.split('?')[1].split("&");
    for (var i = 0; i < ops.length; i++) {
      newObj[ops[i].split("=")[0]] = (ops[i].split("=")[1]) || '';
    }
  }
  return newObj;
}

function getTimestamp (type = 's') {
  let curDate = new Date().getTime()
  if (type === 's') {
    return Math.floor(curDate / 1000)
  } else {
    return curDate
  }
}

export { ALink, getParameterByName, getUrlSearchJson, getTimestamp }