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:7104/cbin/', timeout: 1000 * 60, withCredentials: true, headers: { token: 'be81d1ba777f7081ef6897eec3b4bdf2', 'Accept-Language': 'zh-CN' } }); 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 = {}, config } = response; const { code, msg } = data; if (config && config.interceptors === false) { // 请求配置不做返回拦截的情况 return response; } else { if (`${code}` === '401') { // 授权失效 removeToken(); router.push({ name: 'login' }, () => { location.reload(); }); } else if (`${code}` === '1000') { // 业务逻辑错误提示 Notification.error({ title: '提示', message: msg, duration: 3000, }); return false; } else if (`${code}` === '0') { // 请求成功 return data; } else { // 其它错误,开发环境提示 if (process.env.NODE_ENV === 'development') { Notification.error({ title: '提示', message: msg, duration: 3000, }); } return false; } } }, error => { const e = checkStatus(error.response); console.error(e); 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')