const TokenKey = 'Admin-Token'
const UserIdKey = 'uidkey'
import Cookies from 'js-cookie'
import store from '@/store';

// 获取当前用户详情
export function getUserData() {
  let data='';
  if(window.plus){
    if(plus.storage.getItem('user_info')){
        data=JSON.parse(plus.storage.getItem('user_info')).data
    }
  }else{
    if(localStorage.getItem('user_info')){
       data=JSON.parse(localStorage.getItem('user_info')).data
    }
  }
  if(!data){
    data=store.getters.user_info;
  }
  return  data
}

// 获取积分类型
export function getTypes(id) {
  if (id) {
    var arr = (window.plus ? JSON.parse(plus.storage.getItem('SET_POINT_TYPES')) : JSON.parse(localStorage.getItem('SET_POINT_TYPES')))||store.getters.point_types
    var item = arr.filter(element => {
      return typeof (id) === 'string' ? element.code == id : element.id == id
    })
    return item[0]
  } else {
    return (window.plus ? JSON.parse(plus.storage.getItem('SET_POINT_TYPES')) : JSON.parse(localStorage.getItem('SET_POINT_TYPES')))||store.getters.point_types
  }
}

export function getToken() {
  if (window.plus) {
    return plus.storage.getItem(TokenKey)
  } else {
    return localStorage.getItem(TokenKey)
  }
}
export function cookGetToken() {
  return Cookies.get(TokenKey)
}

export function getUserId() {
  if (window.plus) {
    return plus.storage.getItem(UserIdKey)
  } else {
    return localStorage.getItem(UserIdKey)
  }
}

export function setToken(token) {
  if (window.plus) {
    var timestamp = parseInt((new Date()).valueOf() / 1000)
    plus.storage.setItem('token-expire', timestamp + 7200)
    return plus.storage.setItem(TokenKey, token)
  } else {
    var timestamp = parseInt((new Date()).valueOf() / 1000)
    localStorage.setItem('token-expire', timestamp + 7200)
    return localStorage.setItem(TokenKey, token)
  }
}

export function setUserId(token) {
  if (window.plus) {
    return plus.storage.setItem(UserIdKey, token)
  } else {
    return localStorage.setItem(UserIdKey, token)
  }
}

export function removeToken() {
  if (window.plus) {
    plus.storage.removeItem('user_info')
    return plus.storage.removeItem(TokenKey)
  } else {
    localStorage.removeItem('user_info')
    return localStorage.removeItem(TokenKey)
  }
}

export function removeUserId() {
  if (window.plus) {
    return plus.storage.removeItem(UserIdKey)
  } else {
    return localStorage.removeItem(UserIdKey)
  }
}

export const checkPlatform = function() {
  if (/android/i.test(navigator.userAgent)) {
    return '1'
  }
  if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
    return '2'
  }
}

// cache
export function set_cache(key, data) {
  if (window.plus) {
    return plus.storage.getItem(key, data)
  } else {
    return localStorage.getItem(key, JSON.stringify(data))
  }
}
export function get_cache(key) {
  if (window.plus) {
    return plus.storage.getItem(key)
  } else {
    return JSON.parse(localStorage.getItem(key))
  }
}
// 创始人：creator
// 公司管理员：admin
// 积分管理员：point_manager
// 部门管理员：dept_manager
// 普通员工：employee
// 获取当前用户的角色权限
export function getRole() {
  var roleArr = [];
  const role_list = store.getters.user_info.employee_detail.role_list;
  if (role_list.length > 0) {
    role_list.forEach(item => {
      roleArr.push(item.name.toString());
    })
  }
  return roleArr;
}

// 权限是否包含 创始人||公司管理员 ||积分管理员
export function getRole_noe() {
  var roleArr = getRole();
  if (roleArr.indexOf("creator") >= 0 || roleArr.indexOf("admin") >= 0 || roleArr.indexOf("point_manager") >= 0) {
    return true;
  } else {
    return false
  }
}

// 权限是否包含 创始人||公司管理员 ||积分管理员||部门管理员
export function getRole_two() {
  var roleArr = getRole();
  if (roleArr.indexOf("creator") >= 0 || roleArr.indexOf("admin") >= 0 || roleArr.indexOf("point_manager") >= 0 ||
    roleArr.indexOf("dept_manager") >= 0) {
    return true;
  } else {
    return false
  }
}
// 权限是否包含 积分管理员||部门管理员||员工
export function getRole_three() {
  var roleArr = getRole();
  if (roleArr.indexOf("point_manager") >= 0 || roleArr.indexOf("dept_manager") >= 0 || roleArr.indexOf("employee") >= 0) {
    return true;
  } else {
    return false
  }
}
// 权限是否包含 创始人||公司管理员
export function getRole_four() {
  var roleArr = getRole();
  if (roleArr.indexOf("creator") >= 0 || roleArr.indexOf("admin") >= 0) {
    return true;
  } else {
    return false
  }
}
// 权限是否包含 创始人
export function getRole_four2() {
  var roleArr = getRole();
  if (roleArr.indexOf("creator") >= 0) {
    return true;
  } else {
    return false
  }
}

// 防抖
export function _debounce (fn, delay=500) {
    let timer = null
    return function () {
        let arg = arguments
        clearTimeout(timer)
        timer = setTimeout(() => {
            fn.apply(this, arg)
        }, delay)
    }
}
// 节流
export function _throttle(fn, interval=500) {
  var last;
  var timer;
  return function() {
    var th = this;
    var args = arguments;
    var now = +new Date();
    if (last && now - last < interval) {
      clearTimeout(timer);
      timer = setTimeout(function() { //用户最后一次点击时间间隔小于设置时间执行
        last = now;
        fn.apply(th, args);
      }, interval);
    } else {
      last = now;
      fn.apply(th, args);
    }
  }
}
export function isPt_id(item){
  switch (item){
    case 1:
      return '绩效分'
      break;
    case 2:
      return 'A分'
      break;
    case 3:
      return 'B分'
      break;
  }
}
// 获取缓存
export function getCache(key) {
  return JSON.parse(localStorage.getItem(key))
}
// 设置缓存
export function setCache(key,data) {
   localStorage.setItem(key, JSON.stringify(data))
}
