// import "babel-polyfill";
import Vue from 'vue'
// 重置elementui
import './styles/elementui-reset.less'
//重置css
import 'minireset.css'
import App from './Appscan'
//引入路由
import router from './router/index_scan.js';
//引入vuex
import store from './vuex/store'

import RewriteNotify from "./rewriteNotify"

// 含有size属性的组件统一设置为small
Vue.prototype.$ELEMENT = { size: 'small', zIndex: 3000 };
import ElementUI, {
  Loading,
  MessageBox,
  Message,
  Button,
  ButtonGroup
} from 'element-ui'

//es6-promise的兼容性搭配
var Promise = require('es6-promise').Promise;
Promise.polyfill()
//重复点击某个按钮,message消息始终只提示一次
let messageInstance = null;
const resetMessage = (options) => {
    if(messageInstance) {
        messageInstance.close()
    }
    messageInstance = Message(options)
}
['error','success','info','warning'].forEach(type => {
    resetMessage[type] = options => {
        options = {
            message:options,
            type:type
        }
        return resetMessage(options)
    }
})
const message = resetMessage
// plugins
Vue.prototype.$loading = Loading.service;
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;
Vue.prototype.$confirm = MessageBox.confirm;
Vue.prototype.$prompt = MessageBox.prompt;
// Vue.prototype.$notify = Notification;
Vue.prototype.$message = message
Vue.use(Button);
Vue.use(ButtonGroup);
// 内部非全局遮罩
Vue.use(Loading.directive);

RewriteNotify()

Vue.config.debug = false;
// 如果在开发时需要使用vue-devtools来调试,请将下面的devtools配置为true
Vue.config.devtools = true;
Vue.config.productionTip = false;

import "~/assets/css/common.css";
import i18n from "./lang";
window.SUCCESS = "AAAAAA";
window.PageSize = 20;
window.validMsg={
	title:'失败',
	message:'请检查必输项!'
}
window.cancelMsg="点击“返回”后录入的信息将丢失,确定要返回吗?"

Vue.use(ElementUI, { size: "small", i18n: (key, value) => i18n.t(key, value) });


RewriteNotify()

/* eslint-disable no-new */
new Vue({
  el: '#appscan',
  router,
  i18n,
  store,
  template: '<App/>',
  components: { App }
})