import { mapGetters } from 'vuex'
// import Vue from 'vue'
import GLOABL from './global_variable'
// import { getToken, setToken, removeToken } from '@/utils/auth'
export default {
  computed: {
    ...mapGetters([
      'name',
      'role',
      'token',
      'key'
    ])
  },

  install(Vue, options) {
    Vue.prototype.url = 'http://www.baidu.com/' // 可以自定义变量
    Vue.prototype.myFun = function(ev) { // 给自定义方法起个名
      ev + 1
      return ev
    }

    Vue.http.interceptors.push(function(request, next) {
      // console.log(request)//附赠一个可以控制页面所有路由开始之前结束之后的方法
      // 请求发送前的处理逻辑
      // if(request.url !== GLOABL.baseURL+'/nacos/v1/ns/getToken'&& request.url !== GLOABL.baseURL+'/nacos/v1/ns/queryAllHistory' && request.url !== GLOABL.baseURL+'/nacos/v1/ns/getSerStatistics'){
      if (request.url !== GLOABL.baseURL + '/nacos/v1/ns/getToken') {
        next(function(response) {
          // 请求发送后的处理逻辑
          // 更具请求的状态， response参数会返回给 successCallback或errorCallback
          // if(response.data.sign === 'false'){
          //   var username;
          //   var localToken;
          //   if(this.token!==null){
          //     if(this.token.username === null){
          //       username = JSON.parse(this.token).username;
          //       Vue.http.headers.common['token'] = JSON.parse(this.token).token;
          //       localToken = JSON.parse(this.token);
          //     }else{
          //       username = this.token.username;
          //       Vue.http.headers.common['token'] = this.token.token;
          //       localToken = this.token;
          //     }
          //   }
          //
          //   var data = {
          //     username: username
          //   }
          //   var json = JSON.stringify(data);
          //   this.$http.post(this.url+'/nacos/v1/ns/getToken',json,{emulateJSON:true}).then( function(res) {
          //     if(res.data.sign!=='false'){
          //      var msg = {
          //         username:localToken.username,
          //         password:localToken.password,
          //         role:localToken.role,
          //         token:res.data.longToken,
          //         shrotToken:res.data.shrotToken,
          //       }
          //       console.log(msg)
          //       this.$store.dispatch('user/setNewToken', msg).then(() => {
          //         Vue.http.headers.common['token'] = res.data.shrotToken;
          //         this.$http.post(request.url,request.body,{emulateJSON:true}).then( function(res) {
          //           console.log(res)
          //         })
          //       })
          //
          //     }else{
          //       // console.log("longToken失效更新")
          //       // this.$message({
          //       //   message: '登录超时，请重新登录',
          //       //   type: 'error',
          //       //   offset:80,
          //       // });
          //       // this.$store.dispatch('user/logout')
          //       // this.$router.push(`/login?redirect=${this.$route.fullPath}`)
          //     }
          //
          //   })
          // }
          if (response.data.sign === 'false') {
            this.$store.dispatch('user/logout')
            this.$router.push('/login')
            this.$message({
              message: 'token失效，请重新登录',
              type: 'error',
              offset: 80
            })
          }
          return response
        })
      }
    })
  }
}
