main.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. import Vue from 'vue';
  2. import axios from './router/axios';
  3. import VueAxios from 'vue-axios';
  4. import App from './App';
  5. import router from './router/router';
  6. import './permission'; // 权限
  7. import './error'; // 日志
  8. import './cache'; //页面缓存
  9. import store from './store';
  10. import {
  11. loadStyle,
  12. verifyTags
  13. } from './util/util'
  14. import * as urls from '@/config/env';
  15. import Element from 'element-ui';
  16. import {
  17. iconfontUrl,
  18. iconfontVersion
  19. } from '@/config/env';
  20. import i18n from './lang'; // Internationalization
  21. import './styles/common.scss';
  22. import avueUeditor from 'avue-plugin-ueditor';
  23. import website from '@/config/website';
  24. import crudCommon from '@/mixins/crud';
  25. import format from 'vue-text-format'; //v-format
  26. import basicBlock from './components/basic-block/main';
  27. import basicContainer from './components/basic-container/main';
  28. import uploadFile from './components/uploadFile/index';
  29. import {
  30. getWorkDicts
  31. } from '@/api/system/dictbiz'
  32. import { validatenull } from "@/util/validate";
  33. import './util/directives.js'
  34. import Avue from '@smallwei/avue';
  35. import '@smallwei/avue/lib/index.css';
  36. import tradeCard from './components/trade-card/main.vue';
  37. Vue.component('tradeCard', tradeCard);
  38. Vue.component('basicContainer', basicContainer);
  39. Vue.component('basicBlock', basicBlock);
  40. Vue.component('uploadFile', uploadFile);
  41. Vue.use(Avue);
  42. Vue.use(avueUeditor)
  43. import cUpload from './components/upload'
  44. Vue.component('cUpload', cUpload)
  45. //自定义标题
  46. import containerTitle from './components/titleComponent/main.vue';
  47. Vue.component('containerTitle', containerTitle);
  48. //获取浏览器指纹并生成ID
  49. import Fingerprint2 from 'fingerprintjs2'
  50. // 注册全局crud驱动
  51. window.$crudCommon = crudCommon;
  52. // 加载Vue拓展
  53. Vue.use(router);
  54. Vue.use(VueAxios, axios);
  55. Vue.use(Element, {
  56. i18n: (key, value) => i18n.t(key, value)
  57. });
  58. Vue.use(window.AVUE, {
  59. size: 'small',
  60. tableSize: 'small',
  61. calcHeight: 65,
  62. i18n: (key, value) => i18n.t(key, value)
  63. });
  64. Vue.use(format); //v-format
  65. Vue.use(avueUeditor);
  66. //打印
  67. import Print from 'vue-print-nb'
  68. Vue.use(Print);
  69. //注册echarts图表
  70. import * as echarts from 'echarts';
  71. Vue.prototype.$echarts = echarts
  72. // 加载相关url地址
  73. Object.keys(urls).forEach(key => {
  74. Vue.prototype[key] = urls[key];
  75. });
  76. // 加载website
  77. Vue.prototype.website = website;
  78. // 业务字典
  79. Vue.prototype.getWorkDicts = getWorkDicts
  80. //判断是否为空
  81. Vue.prototype.validatenull=validatenull
  82. //检验标签是否重复
  83. Vue.prototype.verifyTags=verifyTags
  84. // 动态加载阿里云字体库
  85. iconfontVersion.forEach(ele => {
  86. loadStyle(iconfontUrl.replace('$key', ele));
  87. });
  88. Vue.config.productionTip = false;
  89. new Vue({
  90. router,
  91. store,
  92. i18n,
  93. render: h => h(App)
  94. }).$mount('#app');
  95. Vue.directive('debounce', { //防抖函数指令
  96. inserted: function (el, binding) {
  97. el.addEventListener("click", () => {
  98. if (!el.disabled)
  99. el.disabled = true
  100. setTimeout(() => {
  101. el.disabled = false
  102. }, binding.value || 1000);
  103. });
  104. }
  105. })
  106. Fingerprint2.get(function (components) {
  107. const values = components.map(function (component, index) {
  108. if (index === 0) {
  109. return component.value.replace(/\bNetType\/\w+\b/, '')
  110. }
  111. return component.value
  112. })
  113. // 生成最终id murmur
  114. const murmur = Fingerprint2.x64hash128(values.join(''), 31)
  115. if (localStorage.getItem('browserID') != murmur) {
  116. localStorage.setItem('browserID', murmur)
  117. }
  118. })