|
|
|
import Vue from 'vue';
|
|
|
|
import App from '@/App.vue';
|
|
|
|
import router from '@/router';
|
|
|
|
import ElementUI from 'element-ui';
|
|
|
|
import '@/styles/index.scss'
|
|
|
|
import VueI18n from 'vue-i18n';
|
|
|
|
import mixinApp from '@/mixins/app';
|
|
|
|
import { messages } from '@/i18n';
|
|
|
|
import 'babel-polyfill';
|
|
|
|
import '@/libs/resize';
|
|
|
|
import {post,get,del,put} from '@/plugins/requests/index.js';
|
|
|
|
import api from '@/api';
|
|
|
|
import store from '@/store'
|
|
|
|
import Setting from '@/setting';
|
|
|
|
import permission from '@/router/permission';
|
|
|
|
|
|
|
|
// 插件
|
|
|
|
import plugins from '@/plugins';
|
|
|
|
import filters from '@/plugins/filters'
|
|
|
|
|
|
|
|
Vue.directive('focus', {/* 聚焦事件 */
|
|
|
|
inserted: function (el, binding) {
|
|
|
|
if (el.parentNode.querySelector('input').disabled === false) {
|
|
|
|
el.parentNode.querySelector('input').focus()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
Vue.directive('throttle', {/* 节流 */
|
|
|
|
inserted: function (el, binding) {
|
|
|
|
el.addEventListener('click', () => {
|
|
|
|
if (!el.disabled) {
|
|
|
|
el.disabled = true
|
|
|
|
setTimeout(() => {
|
|
|
|
el.disabled = false
|
|
|
|
}, binding.value || 3000)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
Vue.use(plugins);
|
|
|
|
|
|
|
|
Object.keys(filters).forEach(item => Vue.filter(item,filters[item]))
|
|
|
|
|
|
|
|
Vue.prototype.api = api;
|
|
|
|
Vue.prototype.$get = get;
|
|
|
|
Vue.prototype.$post = post;
|
|
|
|
Vue.prototype.$del = del;
|
|
|
|
Vue.prototype.$put = put;
|
|
|
|
|
|
|
|
Vue.config.productionTip = false;
|
|
|
|
Vue.use(VueI18n);
|
|
|
|
Vue.use(ElementUI);
|
|
|
|
const i18n = new VueI18n({
|
|
|
|
locale: Setting.i18n.default,
|
|
|
|
messages
|
|
|
|
});
|
|
|
|
|
|
|
|
new Vue({
|
|
|
|
mixins: [mixinApp],
|
|
|
|
router,
|
|
|
|
i18n,
|
|
|
|
store,
|
|
|
|
render: h => h(App)
|
|
|
|
}).$mount('#app');
|
|
|
|
|