import Vue from 'vue'
import App from './App'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
//import './assets/theme/theme-green/index.css'
import VueRouter from 'vue-router'
import store from './vuex/store'
import Vuex from 'vuex'
import axios from 'axios'
import rout from './routes'
// import Mock from './mock'
import i18n from './lang'
import 'font-awesome/css/font-awesome.min.css'
import drag from './drag'
// import * as socketApi from './api/socket'
import '@/styles/index.scss'
import sys_init from '@/common/init/sys_init'
import Print from 'vue-print-nb'
// 条形组件
import VueBarcode from '@xkeshi/vue-barcode'; //导入条形码插件

// markdown 编辑器
import VueMarkdownEditor from '@kangc/v-md-editor';
import '@kangc/v-md-editor/lib/style/base-editor.css';
import vuepressTheme from '@kangc/v-md-editor/lib/theme/vuepress.js';
import '@kangc/v-md-editor/lib/theme/style/vuepress.css';
import createTodoListPlugin from '@kangc/v-md-editor/lib/plugins/todo-list/index';
import '@kangc/v-md-editor/lib/plugins/todo-list/todo-list.css';
// import Prism from 'prismjs';
import Prism from '@kangc/v-md-editor/lib/theme/prism.js';


VueMarkdownEditor.use(vuepressTheme, {
    Prism,
});
VueMarkdownEditor.use(createTodoListPlugin());
Vue.use(VueMarkdownEditor);

Vue.component('barcode', VueBarcode);


//定义一个全局过滤器实现日期格式化
Vue.filter('datefmt',function(input,fmtstring){

    return moment(input).format(fmtstring)

});
import Chat from 'vue-beautiful-chat'
Vue.use(Chat)
// 注册websocket组件到VUE
// Vue.prototype.socketApi = socketApi

Vue.config.productionTip = false
// Mock.bootstrap();
Vue.use(ElementUI,
    {
        // eslint-disable-next-line no-undef
        size: 'mini'
    })
// 注册组件库
Vue.use(VueRouter)
Vue.use(Vuex)
Vue.use(Print)

Vue.prototype.$axios = axios;

//NProgress.configure({ showSpinner: false });
// console.log("mainjs:");
// console.log(rout.routes);
const router = new VueRouter({
    routes:rout.routes
});
Vue.prototype.$rout =router;

//本地存储系统初始化的router路由,用来处理用户退出后,把路由数据初始化
sessionStorage.setItem('sysMenu', JSON.stringify(rout.routes));

const message = Vue.prototype.$message;
sys_init.init_axios(message,router,axios);
sys_init.init_router(router,axios);

//router.afterEach(transition => {
//NProgress.done();
//});

let vue = new Vue({
  //el: '#app',
  //template: '<App/>',
  router,
  store,
  i18n,
  //components: { App }
  render: h => h(App)
}).$mount('#app')