main.js 2.35 KB
// 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 Numeral from 'numeral'
// import PinYin from 'pinyin'
import CollapseTransition from 'element-ui/lib/transitions/collapse-transition';
import 'element-ui/lib/theme-chalk/index.css'
// import '../static/city-data'
// import "./mock"
import './assets/icons/iconfont.css'
import 'babel-polyfill'

// Vue.prototype.Pinyin = PinYin;

Vue.component(CollapseTransition.name, CollapseTransition)
Vue.config.productionTip = false
Vue.prototype.$Numeral = Numeral
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);
});

{
  if (window.location.host == 'localhost:8888') {
    Vue.prototype.$disparch_data = {
      code_base_url: "http://192.168.9.110:20080/api/v1/codes/",
      contract_base_url: "http://192.168.9.110:20080/api/v1/financial/contracts/",
      auth_base_url: "http://192.168.9.110:20080/api/v1/auth/"
    }
  } else {
    var url = window.location.host;
    Vue.prototype.$disparch_data = {
      code_base_url: "http://" + url + "/api/v1/codes/",
      contract_base_url: "http://" + url + "/api/v1/financial/contracts/",
      auth_base_url: "http://" + url + "/api/v1/auth/"
    }
  }
}



new Vue({
  el: '#app',
  router,
  components: {
    App
  },
  template: '<App/>'
})