import Vue from 'vue'; import axios from './router/axios'; import VueAxios from 'vue-axios'; import App from './App'; import router from './router/router'; import './permission'; // 权限 import './error'; // 日志 import './cache'; //页面缓存 import store from './store'; import { loadStyle } from './util/util' import * as urls from '@/config/env'; import Element from 'element-ui'; import { iconfontUrl, iconfontVersion } from '@/config/env'; import i18n from './lang'; // Internationalization import './styles/common.scss'; import avueUeditor from 'avue-plugin-ueditor'; import website from '@/config/website'; import crudCommon from '@/mixins/crud'; import format from 'vue-text-format'; //v-format import basicBlock from './components/basic-block/main'; import basicContainer from './components/basic-container/main'; import uploadFile from './components/uploadFile/index'; import { getWorkDicts } from '@/api/system/dictbiz' import './util/directives.js' import Avue from '@smallwei/avue'; import '@smallwei/avue/lib/index.css'; import tradeCard from './components/trade-card/main.vue'; Vue.component('tradeCard', tradeCard); Vue.component('basicContainer', basicContainer); Vue.component('basicBlock', basicBlock); Vue.component('uploadFile', uploadFile); Vue.use(Avue); Vue.use(avueUeditor) import cUpload from './components/upload' Vue.component('cUpload', cUpload) //自定义标题 import containerTitle from './components/titleComponent/main.vue'; Vue.component('containerTitle', containerTitle); //获取浏览器指纹并生成ID import Fingerprint2 from 'fingerprintjs2' // 注册全局crud驱动 window.$crudCommon = crudCommon; // 加载Vue拓展 Vue.use(router); Vue.use(VueAxios, axios); Vue.use(Element, { i18n: (key, value) => i18n.t(key, value) }); Vue.use(window.AVUE, { size: 'small', tableSize: 'small', calcHeight: 65, i18n: (key, value) => i18n.t(key, value) }); Vue.use(format); //v-format Vue.use(avueUeditor); //打印 import Print from 'vue-print-nb' Vue.use(Print); //注册echarts图表 import * as echarts from 'echarts'; Vue.prototype.$echarts = echarts // 加载相关url地址 Object.keys(urls).forEach(key => { Vue.prototype[key] = urls[key]; }); // 加载website Vue.prototype.website = website; // 业务字典 Vue.prototype.getWorkDicts = getWorkDicts // 动态加载阿里云字体库 iconfontVersion.forEach(ele => { loadStyle(iconfontUrl.replace('$key', ele)); }); Vue.config.productionTip = false; new Vue({ router, store, i18n, render: h => h(App) }).$mount('#app'); Vue.directive('debounce', { //防抖函数指令 inserted: function (el, binding) { el.addEventListener("click", () => { if (!el.disabled) el.disabled = true setTimeout(() => { el.disabled = false }, binding.value || 1000); }); } }) Fingerprint2.get(function (components) { const values = components.map(function (component, index) { if (index === 0) { return component.value.replace(/\bNetType\/\w+\b/, '') } return component.value }) // 生成最终id murmur const murmur = Fingerprint2.x64hash128(values.join(''), 31) if (localStorage.getItem('browserID') != murmur) { localStorage.setItem('browserID', murmur) } })