app.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <template>
  2. <div class="container">
  3. <NuxtLayout>
  4. <NuxtPage/>
  5. </NuxtLayout>
  6. </div>
  7. </template>
  8. <script setup>
  9. import { ID_INJECTION_KEY } from 'element-plus'
  10. useHead({
  11. link: [
  12. { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
  13. ],
  14. script: [
  15. {
  16. src: 'https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit',
  17. type:'text/javascript',
  18. async: true,
  19. body: true,
  20. },
  21. ]
  22. })
  23. const setHead = () => {
  24. get('v3/system/front/setting/getSettings?names=gz_code').then(res=>{
  25. debugger;
  26. if(!res.data[0] || res.data[0] == ''){
  27. return
  28. }
  29. useHead({
  30. script: [
  31. {
  32. src: "https://www.googletagmanager.com/gtm.js?id="+ res.data[0],
  33. type:'text/javascript',
  34. async: true,
  35. },
  36. ]
  37. })
  38. })
  39. }
  40. setHead()
  41. provide(ID_INJECTION_KEY, {
  42. prefix: 100,
  43. current: 0,
  44. })
  45. const googleTranslateInit = () => {
  46. let checkIfGoogleLoaded = setInterval(() => {
  47. if (google.translate.TranslateElement != null) {
  48. clearInterval(checkIfGoogleLoaded);
  49. googleTranslateElement('google_translate_element');
  50. }
  51. }, 1000);
  52. }
  53. const googleTranslateElement = (id) => {
  54. new google.translate.TranslateElement({pageLanguage: 'en',layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, id);
  55. }
  56. onMounted(() => {
  57. nextTick(()=>{
  58. if (google) googleTranslateInit()
  59. })
  60. })
  61. </script>