import 'babel-polyfill';
import Vue       from 'vue';
import ElementUI from 'element-ui';

import './assets/css/element/style.css';
import './assets/css/perfectScrollbar/vue2-perfect-scrollbar.min.css';
import 'intro.js/introjs.css';
import 'intro.js/themes/introjs-modern.css';
import axios     from 'axios';
import App       from './App.vue';
import router    from './router';
import store     from './store';
import './registerServiceWorker';
import echarts   from 'echarts';
import uploader  from 'vue-simple-uploader';
import mainfunc  from './utils/st/mainfunc';

import VueClipboard from 'vue-clipboard2';

Vue.use(VueClipboard);
Vue.use(uploader);
// add VueIntro
import VueIntro     from 'vue-introjs';

Vue.use(VueIntro);

let _ = require('lodash');

// Vue.config.devtools = true; // 生产模式调试
Vue.config.silent = false; // 取消 Vue 所有的日志与警告
/*设置为 true 以在浏览器开发工具的性能/时间线面板中启用对组件初始化、
编译、渲染和打补丁的性能追踪。只适用于开发模式和支持 performance.mark API 的浏览器上。*/
Vue.config.performance = true;
Vue.config.productionTip = false; // 设置为 false 以阻止 vue 在启动时生成生产提示。

Vue.use(ElementUI);

import fullscreen from 'vue-fullscreen';

Vue.use(fullscreen);

import stDialog from './utils/st/stDialog';

Vue.use(stDialog);

import './utils/st/stSvg';


Vue.config.keyCodes = {
    v33:                86,
    f1:                 112,
    // 取而代之的是 kebab-case 且用双引号括起来
    'media-play-pause': 179,
    stup:               [38, 87],
};

Vue.prototype.loading = function (opt) {
    let _opt = {           // 声明一个loading对象
        lock:        true,                             // 是否锁屏
        text:        '正在加载...',                     // 加载动画的文字
        spinner:     'el-icon-loading',             // 引入的loading图标
        background:  'rgba(0, 0, 0, 0.7)',       // 背景颜色
        target:      '.el-main',                    // 需要遮罩的区域
        body:        true,
        customClass: 'mask',                     // 遮罩层新增类名
        autoClose:   true,
    };
    if (opt) {
        _opt = _.assignIn(_opt, opt);
    }
    const loading = this.$loading(_opt);
    window.loading = loading;
    setTimeout(function () {                  // 设定定时器，超时6S后自动关闭遮罩层，避免请求失败时，遮罩层一直存在的问题
        loading.close();                        // 关闭遮罩层
    }, _opt.autoClose ? 6000 : 999999999);
    return loading;
};

Vue.prototype.$echarts = echarts;

Vue.prototype.$axios = axios;

/*Vue.directive('colorred', function (el, bind, vNode) {
    el.style.color = bind.value();
});*/

/**/

import fabric from 'fabric';

Vue.use(fabric);

new Vue({
            router,
            store,
            render: h => h(App),
        }).$mount('#app');

