|
|
import { createApp } from 'vue' import App from './App.vue' import router from './router/index' import { _createStore } from './vuex';
// 引入http请求插件
import $API from './utils/api' import $http from './utils/http' import { addRequestInterceptor, addResponseInterceptor } from './utils/http' import Qs from 'qs';
// reset 样式
import '@/assets/css/reset.css' // import '@/assets/css/swiper6.min.css'
import '@/assets/js/rem.js' // import '@/assets/js/swiper6.min.js'
import '@/assets/css/style.scss'
import { Toast, Swipe, SwipeItem, Popup, Picker, Tab, Tabs, Dialog, Uploader, DatetimePicker, Slider, Checkbox, CheckboxGroup, Form, Field, CellGroup, Area, Button, Progress, List} from 'vant';
import 'vant/lib/index.css';
Toast.setDefaultOptions({ duration: 1500 });
// 路由拦截器
// router.beforeEach((to, from, next) => {
// if (to.matched.length != 0) {
// if (to.meta.requireAuth) { // 判断该路由是否需要登录权限
// if (Boolean(localStorage.getItem("userInfo"))) { // 通过vuex state获取当前的user是否存在
// next();
// } else {
// next({
// path: '/login',
// query: { redirect: to.fullPath } // 将跳转的路由path作为参数,登录成功后跳转到该路由
// })
// }
// } else {
// if (Boolean(localStorage.getItem("userInfo"))) { // 判断是否登录
// if (to.path != "/" && to.path != "/login") { //判断是否要跳到登录界面
// next();
// } else {
// /**
// * 防刷新,如果登录,修改路由跳转到登录页面,修改路由为登录后的首页
// */
// next({
// path: '/standardizedData/groupAirline'
// })
// }
// } else {
// next();
// }
// }
// } else {
// next({
// path: '/login',
// query: { redirect: to.fullPath } // 将跳转的路由path作为参数,登录成功后跳转到该路由
// })
// }
// })
// request前自动添加api配置
addRequestInterceptor( (config) => { let Authorization = ""; if (typeof localStorage !== "undefined") { const userData = JSON.parse(localStorage.getItem('userData')) || ""; if (userData) { let token = ''; if (userData.token) { token = userData.token } else if(userData.data.token){ token = userData.data.token } Authorization = "Bearer " + token; } config.headers['Authorization'] = Authorization; } config.transformRequest = [ function(data){ return Qs.stringify(data) //使用Qs将请求参数序列化
}] /*统一加/api前缀*/ //config.url = `/api${config.url}`
return config }, (error) => { return Promise.reject(error) } )
// http 返回response前处理
addResponseInterceptor( (response) => { /*todo 在这里统一前置处理请求响应 */ return Promise.resolve(response.data) }, (error) => { /* * todo 统一处理500、400等错误状态 * 这里reject下,交给entry-server.js的处理 */ const { response, request } = error return Promise.reject({ code: response.status, data: response.data, method: request.method, path: request.path }) } )
const app = createApp(App) const store = _createStore();
app.use(router) app.use(store)
app.use(Toast) .use(Swipe) .use(Popup) .use(Picker) .use(Tab) .use(Tabs) .use(Dialog) .use(Uploader) .use(DatetimePicker) .use(SwipeItem) .use(Slider) .use(Checkbox) .use(CheckboxGroup) .use(Form) .use(Field) .use(CellGroup) .use(Area) .use(Button) .use(Progress) .use(List);
// app.config.globalProperties.$coverUrl = 'http://192.168.99.67:8080'
app.config.globalProperties.$coverUrl = 'http://58.49.77.70:8443'
app.config.globalProperties.$API = $API app.config.globalProperties.$http = $http app.mount('#app')
|