main.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import Vue from 'vue'
  2. import App from './App.vue'
  3. import store from './lib/store'
  4. import '@/lazy'
  5. import '@/assets/css/dark.less'
  6. import '@/assets/css/style.less'
  7. import {router, routes} from './router'
  8. import NProgress from 'nprogress'
  9. import 'nprogress/nprogress.css'
  10. import utils from '@/lib/utils'
  11. import api from '@/api'
  12. import GetTextPlugin from 'vue-gettext'
  13. import {availableLanguages} from '@/lib/translate'
  14. import http from '@/lib/http'
  15. Vue.use(utils)
  16. Vue.config.productionTip = false
  17. Vue.prototype.$routeConfig = routes
  18. Vue.prototype.$api = api
  19. Vue.use(GetTextPlugin, {
  20. availableLanguages,
  21. defaultLanguage: store.getters.current_language,
  22. translations: store.state.settings.translations,
  23. silent: true
  24. })
  25. http.get('/translations.json').then(r => {
  26. if(r) store.commit('update_translations', r)
  27. })
  28. NProgress.configure({
  29. easing: 'ease',
  30. speed: 500,
  31. showSpinner: false,
  32. trickleSpeed: 200,
  33. minimum: 0.3
  34. })
  35. router.beforeEach((to, from, next) => {
  36. NProgress.start()
  37. next()
  38. })
  39. router.afterEach(() => {
  40. NProgress.done()
  41. })
  42. new Vue({
  43. store,
  44. router,
  45. render: h => h(App)
  46. }).$mount('#app')