main.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. // +----------------------------------------------------------------------
  2. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  3. // +----------------------------------------------------------------------
  4. // | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
  5. // +----------------------------------------------------------------------
  6. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  7. // +----------------------------------------------------------------------
  8. // | Author: CRMEB Team <admin@crmeb.com>
  9. // +----------------------------------------------------------------------
  10. import Vue from 'vue'
  11. import App from './App'
  12. import store from './store'
  13. import Cache from './utils/cache'
  14. import util from 'utils/util'
  15. import {
  16. HTTP_REQUEST_URL
  17. } from '@/config/app';
  18. import skeleton from './components/skeleton/index.vue'
  19. Vue.component('skeleton', skeleton)
  20. const msg = (title, duration = 1500, mask = false, icon = 'none') => {
  21. //统一提示方便全局修改
  22. if (Boolean(title) === false) {
  23. return;
  24. }
  25. uni.showToast({
  26. title,
  27. duration,
  28. mask,
  29. icon
  30. });
  31. }
  32. Vue.prototype.$api = {
  33. msg
  34. };
  35. Vue.prototype.$util = util;
  36. Vue.prototype.$Cache = Cache;
  37. Vue.prototype.$eventHub = new Vue();
  38. Vue.config.productionTip = false
  39. // #ifdef H5
  40. import {
  41. parseQuery
  42. } from "./utils";
  43. import Auth from './libs/wechat';
  44. import {
  45. SPREAD
  46. } from './config/cache';
  47. // import wx from '@/node_modules/jweixin-module/lib/index'
  48. var __s = document.createElement('script');
  49. __s.src = HTTP_REQUEST_URL + "/api/script";
  50. document.head.appendChild(__s);
  51. Vue.prototype.$wechat = Auth;
  52. let cookieName = "VCONSOLE",
  53. query = parseQuery(),
  54. urlSpread = query["spread"],
  55. vconsole = query[cookieName.toLowerCase()],
  56. md5Crmeb = "b14d1e9baeced9bb7525ab19ee35f2d2", //CRMEB MD5 加密开启vconsole模式
  57. md5UnCrmeb = "3dca2162c4e101b7656793a1af20295c"; //UN_CREMB MD5 加密关闭vconsole模式
  58. if (urlSpread !== undefined) {
  59. var spread = Cache.get(SPREAD);
  60. urlSpread = parseInt(urlSpread);
  61. if (!Number.isNaN(urlSpread) && spread !== urlSpread) {
  62. Cache.set("spread", urlSpread || 0);
  63. } else if (spread === 0 || typeof spread !== "number") {
  64. Cache.set("spread", urlSpread || 0);
  65. }
  66. }
  67. if (vconsole !== undefined) {
  68. if (vconsole === md5UnCrmeb && Cache.has(cookieName))
  69. Cache.clear(cookieName);
  70. } else vconsole = Cache.get(cookieName);
  71. import VConsole from './components/vconsole.min.js'
  72. if (vconsole !== undefined && vconsole === md5Crmeb) {
  73. Cache.set(cookieName, md5Crmeb, 3600);
  74. let vConsole = new VConsole();
  75. }
  76. // 注册全局防抖指令
  77. Vue.directive('debounce', {
  78. inserted: (el, binding) => {
  79. let debounceTime = binding.value || 2000
  80. let timer
  81. el.addEventListener('click', e => {
  82. el.style.pointerEvents = 'none';
  83. if (!el.disabled) {
  84. timer = setTimeout(() => {
  85. el.style.pointerEvents = 'auto'
  86. }, debounceTime)
  87. }
  88. }, true)
  89. }
  90. })
  91. // if(!!!Auth.isAndroid() && Auth.isWeixin()){
  92. // Auth.wechat()
  93. // }
  94. // Auth.isWeixin() && Auth.oAuth();
  95. // #endif
  96. App.mpType = 'app'
  97. const app = new Vue({
  98. ...App,
  99. store,
  100. Cache
  101. })
  102. app.$mount();