showMobile.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import "@/assets/scss/theme.scss";
  2. import i18n, { getLocale, setI18nLanguage, loadLocaleMessages } from "../i18n";
  3. import Components from "@/global_components";
  4. import ShowMobile from "./showMobile.vue";
  5. import { createApp } from "vue";
  6. import ClickOutSide from "../utils/fns/ClickOutSide";
  7. import Checkbrowser from '@/components/assembly/Checkbrowser.vue'
  8. import browser from "../utils/browser";
  9. import Deferred from "@/utils/Deferred";
  10. import store from '../store'
  11. import VueLazyLoad from 'vue3-lazyload'
  12. let App;
  13. if (
  14. browser.detectChrome() ||
  15. browser.detectSafari() ||
  16. browser.detectFirefox() ||
  17. browser.detectEdge() ||
  18. browser.detectWeixin() ||
  19. browser.detectWeixinMiniProgram() ||
  20. browser.detectAlipay() ||
  21. browser.detectTT() ||
  22. browser.detectTcTravel() ||
  23. browser.detectDingDing()
  24. ) {
  25. App = ShowMobile;
  26. } else {
  27. App = Checkbrowser
  28. }
  29. const local = getLocale();
  30. loadLocaleMessages(i18n, local).then(() => {
  31. setI18nLanguage(i18n, local);
  32. const app = (window.__app = createApp(App));
  33. app.locked = null;
  34. app.lock = function () {
  35. app.locked = Deferred();
  36. return app.locked;
  37. };
  38. app.unlock = function () {
  39. if (app.locked) {
  40. app.locked.resolve();
  41. app.locked = null;
  42. }
  43. };
  44. app.use(i18n);
  45. app.use(store);
  46. app.use(Components);
  47. app.use(VueLazyLoad);
  48. app.directive("click-outside", ClickOutSide);
  49. app.mount("#app");
  50. });