spg.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import "@/assets/theme.editor.scss";
  2. import ClickOutSide from "@/utils/fns/ClickOutSide";
  3. import browser from '../utils/browser'
  4. import Components from "@/global_components";
  5. import Delegate from '../utils/fns/Delegate'
  6. import { getApp } from '../app'
  7. import { createApp } from 'vue'
  8. import store from '../store'
  9. import Spg from './SPG.vue'
  10. import Checkbrowser from '../components/shared/Checkbrowser.vue'
  11. import i18n, { getLocale, setI18nLanguage, loadLocaleMessages } from '../i18n'
  12. import { IsApp } from '@/utils/platform'
  13. let App
  14. if (browser.detectChrome() || browser.detectSafari() || browser.detectFirefox() || browser.detectEdge() || browser.detectWeixin() || browser.detectWeixinMiniProgram() || browser.detectAlipay()) {
  15. App = Spg
  16. } else {
  17. if (IsApp) {
  18. App = SMG
  19. } else {
  20. App = Checkbrowser
  21. }
  22. }
  23. const local = getLocale()
  24. loadLocaleMessages(i18n, local).then(() => {
  25. setI18nLanguage(i18n, local)
  26. const app = (window.__app = createApp(App))
  27. app.use(i18n)
  28. app.use(store)
  29. app.use(Components)
  30. app.directive('click-outside', ClickOutSide)
  31. app.mount('#app')
  32. const handleUserInputFocus = () => {
  33. setTimeout(() => {
  34. getApp().config.useShortcutKeys = false
  35. }, 200)
  36. }
  37. const handleUserInputBlur = () => {
  38. setTimeout(() => {
  39. getApp().config.useShortcutKeys = true
  40. }, 200)
  41. }
  42. Delegate(document, 'focus', 'input', () => handleUserInputFocus())
  43. Delegate(document, 'focus', '[contenteditable]', () => handleUserInputFocus())
  44. Delegate(document, 'blur', 'input', () => handleUserInputBlur())
  45. Delegate(document, 'blur', '[contenteditable]', () => handleUserInputBlur())
  46. })