// The Vue build version to load with the `import` command // (runtime-only or standalone) has been set in webpack.base.conf with an alias. import Vue from 'vue' import App from './App' import router from './router' import ElementUI from 'element-ui' import Axios from 'axios' import CollapseTransition from 'element-ui/lib/transitions/collapse-transition'; import 'element-ui/lib/theme-chalk/index.css' import '../static/city-data' // import "./mock" import '../static/disparch' import './assets/icons/iconfont.css' import 'babel-polyfill' Vue.component(CollapseTransition.name, CollapseTransition) Vue.config.productionTip = false Vue.prototype.$Axios = Axios /* eslint-disable no-new */ Vue.use(ElementUI) Vue.filter('twoDecimal', function (value) { value = Number(value); return value.toFixed(2); }); let loading; function startLoading() { loading = Vue.prototype.$loading({ lock: true, text: "加载中,请稍等", background: "rgba(0, 0, 0, 1)" }) } function finishLoading() { loading.close(); } let requestCount = 0; function showLoading() { if (requestCount === 0) { startLoading(); } requestCount++; }; function hideLoading() { if (requestCount <= 0) return; requestCount--; if (requestCount === 0) { finishLoading(); } }; Axios.interceptors.request.use( (config) => { showLoading(); return config; }, function (err) { return Promise.reject(err); } ); Axios.interceptors.response.use((response) => { setTimeout(() => { hideLoading(); }, 300); return response; }, function (err) { hideLoading() return Promise.reject(err); }); new Vue({ el: '#app', router, components: { App }, template: '<App/>' })