// import Cookies from "js-cookie";
import router from '../router'

/* 登录判断 */
export function persistLogin (_this) {
  // console.info('$store',_this);
  // console.info('$store',_this.$store);
  if (_this.$store.state) {
    if (!_this.$store.state.result) { // 缓存中有值，重新赋值
      console.info('persistLogin result', _this.$store.state.result)
      resetState(_this)
    } else {
      if (!_this.$store.state.wxopenid) {
        console.info('persistLogin wxopenid', _this.$store.state.wxopenid)
        resetState(_this)
      } else {
        console.info('persistLogin data', _this.$store.state.data)
        if (!_this.$store.state.data) {
          console.info('persistLogin data=null', _this.$store.state.data)
          resetState(_this)
        } else {
          if (isEmpty(_this.$store.state.data.ownerid) || isEmpty(_this.$store.state.data.tel) || isEmpty(_this.$store.state.data.hcode)) {
            console.info('persistLogin data中某值为空', _this.$store.state.data)
            resetState(_this)
          }
        }
      }
    }
  } else {
    resetState(_this)
  }
}
// 重新设置state的值
export function resetState (_this) {
  console.info('resetState start')
  if (_this.$cookie.get('obj')) {
    var obj = JSON.parse(_this.$cookie.get('obj'))
    console.info('resetState obj', obj)
    // 设置状态中的各种值
    _this.$store.commit('setResult', obj.isSuccess)
    _this.$store.commit('setwxopenid', obj.openId)
    _this.$store.commit('setCode', obj.code)
    _this.$store.commit('setMsg', obj.errMsg)
    _this.$store.commit('setData', obj.data)
    _this.$store.commit('setToken', obj.tnToken)
    return
  }
  // console.info('_this',_this);

  router.push('/')
}
/**
 * 判断变量是否为空，
 * @param  {[type]}  param 变量
 * @return {Boolean}      为空返回true，否则返回false。
 */
export function isEmpty (param) {
  console.info('isEmpty start传入参数', param)

  if (param) {
    console.info('isEmpty', param)
    // eslint-disable-next-line camelcase
    var param_type = typeof (param)
    // eslint-disable-next-line eqeqeq
    if (param_type == 'object') {
      // 要判断的是【对象】或【数组】或【null】等
      if (typeof (param.length) === 'undefined') {
        // eslint-disable-next-line eqeqeq
        if (JSON.stringify(param) == '{}') {
          return true// 空值，空对象
        }
      // eslint-disable-next-line eqeqeq
      } else if (param.length == 0) {
        return true// 空值，空数组
      }
    } else if (param_type == 'string') {
      // 如果要过滤空格等字符
      var new_param = param.trim()
      if (new_param.length == 0) {
        // 空值，例如:带有空格的字符串" "。
        return true
      }
    } else if (param_type == 'boolean') {
      if (!param) {
        return true
      }
    } else if (param_type == 'number') {
      if (!param) {
        return true
      }
    }
    return false// 非空值
  } else {
    // 空值,例如：
    // (1)null
    // (2)可能使用了js的内置的名称，例如：var name=[],这个打印类型是字符串类型。
    // (3)空字符串''、""。
    // (4)数字0、00等，如果可以只输入0，则需要另外判断。
    return true
  }
}
/* 获取当天日期 */
export function getCurrentDate () {
  var nowDate = new Date()
  var year = nowDate.getFullYear()
  var month = nowDate.getMonth() + 1 < 10 ? '0' + (nowDate.getMonth() + 1)
    : nowDate.getMonth() + 1
  var day = nowDate.getDate() < 10 ? '0' + nowDate.getDate() : nowDate
    .getDate()
  var dateStr = year + '-' + month + '-' + day
  return dateStr
}
/* 获取当天时间 */
export function getCurrentTime () {
  var nowDate = new Date()
  var hour = nowDate.getHours()
  var minutes = nowDate.getMinutes() < 10 ? '0' + (nowDate.getMinutes())
    : nowDate.getMinutes()
  var second = nowDate.getSeconds() < 10 ? '0' + nowDate.getSeconds() : nowDate
    .getSeconds()
  var dateStr = hour + ':' + minutes
  return dateStr
}
/* 获取特定日期 */
export function getDate (mydate) {
  var nowDate = new Date(mydate)
  var year = nowDate.getFullYear()
  var month = nowDate.getMonth() + 1 < 10 ? '0' + (nowDate.getMonth() + 1)
    : nowDate.getMonth() + 1
  var day = nowDate.getDate() < 10 ? '0' + nowDate.getDate() : nowDate
    .getDate()
  var dateStr = year + '-' + month + '-' + day
  return dateStr
}

/* 判断是否为整数 */
export function isInt (str) {
  var r = /^\d+$/　　// 正整数
  return r.test(str)
}

/* 获取屏幕实际宽高 */
export function getViewportSize () {
  return {
    width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
    height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight
  }
}
/* 获取域名和端口 */
export function getHost () {
  var host = 'http://' + window.location.hostname + ':' + window.location.port
  return host
}
