import Vue from 'vue'; import App from '@/App.vue'; import router from '@/router'; import store from '@/store'; import axios from 'axios'; import ElementUI from 'element-ui'; import EagleWebToolkit from '../packages'; import NProgress from 'nprogress'; import EagleCodeSnippet from "@/components/code-snippet"; import '@/styles/theme/index.css'; import '@/styles/nprogress.scss'; import "highlight.js/styles/color-brewer.css"; import { Notification } from 'element-ui'; const request = axios.create({ baseURL: 'http://47.110.137.80:7101/', timeout: 1000, headers: { 'Authorization': 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE2NTE4ODM0MTEsInN1YiI6ImFkbWluIiwiY3JlYXRlZCI6MTU1MTg4MzQxMTk2NX0.rocgsQq_EEbBDV-BcHpJCUS92KGjBH-0Pf47IrW9v3aj6xJCoFIrnKX4vtpPfYscTk1roBhR5s3I1DIvT8B9wg' } }); const codeMessage = { 200: '服务器成功返回请求的数据', 201: '新建或修改数据成功。', 202: '一个请求已经进入后台排队(异步任务)', 204: '删除数据成功。', 400: '发出的请求有错误,服务器没有进行新建或修改数据,的操作。', 401: '用户没有权限(令牌、用户名、密码错误)。', 403: '用户得到授权,但是访问是被禁止的。', 404: '发出的请求针对的是不存在的记录,服务器没有进行操作', 406: '请求的格式不可得。', 410: '请求的资源被永久删除,且不会再得到的。', 422: '当创建一个对象时,发生一个验证错误。', 500: '服务器发生错误,请检查服务器', 502: '网关错误', 503: '服务不可用,服务器暂时过载或维护', 504: '网关超时' }; const checkStatus = (response) => { if (response.status >= 200 && response.status < 300) { return response; } const errortext = codeMessage[response.status] || response.statusText; const messageContent = ` ${response.request.responseURL} ${errortext} `; Notification.error({ title: `请求错误 ${response.status}:`, message: messageContent, duration: 3000, }); const error = new Error(errortext); error.name = response.status; error.response = response; return error; } // respone 拦截器 request.interceptors.response.use( response => { const { data = {} } = response; const { businessException, errorCode, message, success } = data; if (success) { return data; } else if (businessException) { if (errorCode) { Notification.error({ title: '提示', message, duration: 3000, }); } return { success: false }; } else { if (errorCode) { Notification.error({ title: '提示', message: codeMessage[errorCode], duration: 3000, }); } return { success: false }; } }, error => { const e = checkStatus(error.response); return { success: false }; }); Vue.prototype.$axios = request; // 进度条配置 NProgress.configure({ showSpinner: false }); // 注册代码片段组件 Vue.component("eagle-code-snippet", EagleCodeSnippet); // 注册饿了么UI Vue.use(ElementUI); // 注册Eagle组件库 Vue.use(EagleWebToolkit); Vue.config.productionTip = false; new Vue({ router, store, render: h => h(App) }).$mount('#app')