// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者，助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件，未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import store from "../store";
import Cache from '../utils/cache';
// #ifdef H5
// import { isWeixin } from "../utils";
// import auth from './wechat';
// #endif

import {
  LOGIN_STATUS,
  USER_INFO,
  EXPIRES_TIME,
  STATE_R_KEY
} from './../config/cache';

function prePage() {
  let pages = getCurrentPages();
  console.log(pages)
  let prePage = pages[pages.length - 2];
  // #ifdef H5
  return prePage;
  // #endif
  //return prePage.$vm;
}

export function toLogin(push, pathLogin) {
  store.commit("LOGOUT");
  let path = prePage();
  if (path) {
    path = path.router;
    if (path == undefined) {
      path = location.pathname + location.search;
    }
  }
  // #ifdef MP
  uni.navigateTo({
    url: '/page/users/login/login'
  })
  // #endif
  // #ifdef H5
  else {
    path = location.pathname + location.search;
  }
  // #endif

  if (!pathLogin)
    pathLogin = '/page/users/login/login'
  Cache.set('login_back_url', path);
  uni.navigateTo({
    url: '/pages/users/login/login'
  })
  // #ifdef H5
  if (isWeixin()) {
    // auth.oAuth(); // 微信授权
    uni.navigateTo({
      url: '/pages/users/login/login'
    })
  } else {
    if (path !== pathLogin) {
      push ? uni.navigateTo({
        url: '/pages/users/login/login'
      }) : uni.reLaunch({
        url: '/pages/users/login/login'
      });
    }
  }
  // #endif

  // #ifdef APP-PLUS
  uni.navigateTo({
    url: '/pages/users/login/login',
  })
  // #endif
}


export function checkLogin() {
  let token = Cache.get(LOGIN_STATUS);
  let expiresTime = Cache.get(EXPIRES_TIME) || 0;
  let newTime = Math.round(new Date() / 1000);
  if (expiresTime < newTime || !token) {
    Cache.clear(LOGIN_STATUS);
    Cache.clear(EXPIRES_TIME);
    Cache.clear(USER_INFO);
    Cache.clear(STATE_R_KEY);
    return false;
  } else {
    store.commit('UPDATE_LOGIN', token);
    let userInfo = Cache.get(USER_INFO, true);
    if (userInfo) {
      store.commit('UPDATE_USERINFO', userInfo);
    }
    return true;
  }

}
