import Vue from 'vue'
import App from './App'
import { config } from './config/config'
import store from './store' 
import Request from '@/js_sdk/luch-request/luch-request/index.js';
const http = new Request();
http.interceptors.response.use((response) => { /* 对响应成功做点什么 可使用async await 做异步操作*/
   if (response.data.code !== 200) { // 服务端返回的状态码不等于200,则reject()
	   uni.showToast({
		icon:'none',
		mask:false,
		title:`${response.data.message}`,
		duration: 2000
	   });
	 };
	 if(response.data.code == 401){
		// console.log('response',response);
		// 是否产品 是的话登录后跳转产品页
		// console.log('location.href',location.href.split('#')[1]);
		// console.log('是否产品',location.href.split('#')[1].indexOf("/pages/product/product") != -1);
		if(location.href.split('#')[1].indexOf("/pages/product/product") != -1){
			let productID = location.href.split('#')[1].split('=')[1];
			// console.log('productID',productID)
			uni.setStorage({
				key: 'productID',
				data:productID
			});
		};
		// 是否产品 是的话登录后跳转产品页
		uni.showToast({
		 	title:response.data.message + "    即将跳转到登录页",
		 	icon:"none",
		 	duration:2000
		});
		setTimeout(i=>{
			uni.navigateTo({
				url: '/pages/login/login',
				fail:function(err){
					console.log(err)
				}
			});
		},2000);
		return Promise.reject(response) 
		
	 };
     // return Promise.reject(response) // return Promise.reject 可使promise状态进入catch
 if (response.config.custom.verification) { // 演示自定义参数的作用
    return response.data
  }
  // console.log(response)
  return response
}, (response) => { /*  对响应错误做点什么 (statusCode !== 200)*/
  console.log(response);
  return Promise.reject(response)
});

import './utils/filter' 

Vue.config.productionTip = false

//栏目标题设置
const setNavbarTitle = (title,defaultTitle) => {
	uni.setNavigationBarTitle({
		title:title || defaultTitle
	})
}

//统一提示方便全局修改
const msg = (title, duration=1500, mask=false, icon='none')=>{
	if(Boolean(title) === false){
		return;
	}
	uni.showToast({
		title,
		duration,
		mask,
		icon
	});
}

//封装全局登录检查函数:backpage为登录后返回的页面;backtype为打开页面的类型[1 : redirectTo 2 : switchTab]
//3种页面跳转方式:NavigationTo(直接打开新页面),RedirectTo(覆盖原页面后打开新页面),SwitchTo(切换顶部导航的方式来切换页面)
Vue.prototype.checkLogin = function(backpage, backtype){
    var TOKEN  = uni.getStorageSync('token');//本地持久化存储
	var TOKENHEAD = uni.getStorageSync('tokenhead');
	var USERINFO = uni.getStorageSync('userInfo');
    if(TOKEN == '' || TOKENHEAD == '' || USERINFO == ''){
        uni.redirectTo({url:'/pages/login/login?backpage='+backpage+'&backtype='+backtype});
        return false;
    }
    return [TOKEN,TOKENHEAD,USERINFO];//已经登录返回数组TOKEN等用户信息
}

import $wxApi from "./wxapi.js";
Vue.prototype.$wxApi = $wxApi;

//微信支付封装
import $pay from "./pay.js";
Vue.prototype.$pay = $pay

import isTime from "utils/isTimes.js"
Vue.prototype.isTime = isTime

Vue.prototype.$api = {msg,http,setNavbarTitle}
Vue.prototype.$getimg = config.imgUrl
Vue.prototype.$placeImg = config.placeImg
Vue.prototype.$store = store
Vue.prototype.config = config
App.mpType = 'app'

const app = new Vue({
    ...App
})
app.$mount()