-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
77 lines (69 loc) · 1.8 KB
/
Copy pathmain.js
File metadata and controls
77 lines (69 loc) · 1.8 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
import Vue from 'vue';
import VueResource from 'vue-resource';
import _ from 'lodash';
// UI框架
// import ElementUI from 'element-ui'
// import 'element-ui/lib/theme-default/index.css'
import App from './App';
import router from './router';
import store from './store';
import filters from './filters';
import directives from './directives';
import plugins from './plugins';
import Message from './components/message/src/main';
Vue.prototype.$message = Message;
// Vue.use(ElementUI);
Vue.use(VueResource);
Vue.use(plugins, {
lifecircle: false
});
for (let filter in filters) {
Vue.filter(filter, filters[filter]);
}
for (let directive in directives) {
Vue.directive(directive, directives[directive]);
}
let requests = [];
// Http拦截器
Vue.http.interceptors.push((request, next) => {
// 请求前....
if (!request.silent) {
requests.push(request);
store.dispatch('toggle_loading', true);
}
next(response => {
// 请求后....
if (!request.silent) {
_.remove(requests, (r) => {
return r === request;
});
if (requests.length === 0) {
store.dispatch('toggle_loading', false);
}
}
return response;
})
});
// Router拦截器
router.beforeEach((to, from, next) => {
if (to.meta.title) {
store.dispatch('change_title', to.meta.title);
}
let crumb = {
path: to.path,
name: to.meta.level === 3 ? store.getters.typingName : (to.meta.level === 2 ? store.getters.modeName : '首页')
};
if (crumb.name) {
store.dispatch('change_crumb', {
index: to.meta.level - 1,
route: crumb
});
}
next();
});
/* eslint-disable no-new */
new Vue({
store,
router,
...App,
}).$mount('#app');