import Vue from "vue";
import App from "./App";
import store from './store'
import * as  enums from './common/enums.js';
import * as date from './common/date';
import * as messageType from './common/messageType';
import emotion from './common/emotion.js';
import url from './common/url.js';

// 导入网络请求的包
import { $http } from '@escook/request-miniprogram';
uni.$http = $http;

// 请求的根路径
// #ifdef H5
$http.baseUrl = 'https://www.sanduolantoyoga.com/yoga'
// $http.baseUrl = 'http://192.168.13.9:8083'
// #endif

//#ifdef APP-PLUS
$http.baseUrl = 'https://www.sanduolantoyoga.com/yoga'
// $http.baseUrl = 'http://192.168.13.9:8083'
//#endif


// WebSocket 地址（可根据平台条件编译）
// #ifdef H5
// Vue.prototype.$wsUrl = 'ws://192.168.13.9:8528/im'   // 开发环境
Vue.prototype.$wsUrl = 'wss://www.sanduolantoyoga.com/yoga-imserver'  // 生产环境
// #endif

// #ifdef APP-PLUS
// Vue.prototype.$wsUrl = 'ws://192.168.13.9:8528/im'   // 开发环境
Vue.prototype.$wsUrl = 'wss://www.sanduolantoyoga.com/yoga-imserver'  // 生产环境
// #endif

// 请求开始之前做一些事情
$http.beforeRequest = function (options) {

	var iftoken = uni.getStorageSync("iftoken");
	if(iftoken){
		// 去掉身份认证
		options.header = {
			isToken: false
		}
		uni.setStorageSync('iftoken', "");
	}
	else{
		var token = uni.getStorageSync("token");
		// 判断请求是否为有权限的 API 接口
		if(token) {
		    // 为请求头添加身份认证
		    options.header = {
		        Authorization: token
		    }
		}
		uni.setStorageSync('iftoken', "");
	}

};

// 请求完成之后做一些事情
$http.afterRequest = function (response) {

	uni.hideLoading();
	// 拦截未登录，跳转到登录
	if (response.data.status == 10105) {
		uni.showToast({
			title: '登录已失效！请您重新登录！',
			duration: 2000,
			icon: "none"
		});
		setTimeout(function() {
			uni.redirectTo({
				url: '/pages/login/login'
			});
		}, 2000);

	}
	//
	else if (response.data.status == 10106) {
		uni.showToast({
			title: '登录已失效！请您重新登录！',
			duration: 2000,
			icon: "none"
		});
		setTimeout(function() {
			uni.redirectTo({
				url: '/pages/login/login'
			});
		}, 2000);
	}
	else {
		return
	}
}

Vue.config.productionTip = false;
Vue.prototype.isConnected = false; // ws是否已经连接;
Vue.prototype.heartbeatInterval = null; // 心跳;
Vue.prototype.heartbeatTimeout =20000; //  ws20秒执行一次
Vue.prototype.$enums = enums
Vue.prototype.$date = date
Vue.prototype.$msgType = messageType
Vue.prototype.$emo = emotion
Vue.prototype.$url = url
App.mpType = "app";

// 引入全局uView
import uView from "uview-ui";
Vue.use(uView);

const app = new Vue({
	store,
	...App
})

app.$mount();


