main.js
1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// 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 'element-ui/lib/theme-chalk/index.css'
import Axios from 'axios'
import '../static/city-data'
import CollapseTransition from 'element-ui/lib/transitions/collapse-transition';
// import "./mock"
import '../static/disparch'
import './assets/icons/iconfont.css'
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/>'
})