Commit f4c36364bca05ff76998faeca44c8a86d0129983

Authored by sanmu
1 parent 8a735f44

feat: 新增google&国际化

.vscode/settings.json 0 → 100644
  1 +{
  2 + "i18n-ally.localesPaths": [
  3 + ""
  4 + ]
  5 +}
0 6 \ No newline at end of file
... ...
README.md
... ... @@ -17,9 +17,9 @@ docker run -d -p 8088:3000 --name canrud-outside-front canrud-outside-front:dev
17 17 1. 修改 deploy/prod.sh的 TAG 将版本号+1,默认改动小版本,如1.0.0->1.0.1
18 18 1. 在根目录执行 sh deploy/prod.sh
19 19 1. 登录112服务器,,将镜像拷贝到生产的47服务器
20   -scp /root/web/canrud-outside-nuxt-front/canrud-outside-front_1.0.0.tar root@47.89.254.121:/root/web/canrud-outside-nuxt-front
  20 +scp /root/web/canrud-outside-nuxt-front/canrud-outside-front_1.0.2.tar root@47.89.254.121:/root/web/canrud-outside-nuxt-front
21 21 1. 登录47服务器,进入到 /root/web/canrud-outside-nuxt-front 目录
22   -1. 加载镜像 docker load -i canrud-outside-front_1.0.0.tar (1.0.0对应你的tag)
  22 +1. 加载镜像 docker load -i canrud-outside-front_1.0.2.tar (1.0.0对应你的tag)
23 23 1. 修改 docker-compose.yaml 的镜像版本号
24 24 1. 启动服务 docker-compose up -d
25 25  
... ...
... ... @@ -4,6 +4,26 @@ import MobileHeader from '~/components/MobileHeader.vue'
4 4  
5 5 import { useCategoryStore } from '~/stores/category'
6 6  
  7 +// import { useI18n } from 'vue-i18n'
  8 +// const { t } = useI18n()
  9 +
  10 +
  11 +useHead({
  12 + script: [
  13 + { src: 'https://www.googletagmanager.com/gtag/js?id=AW-881504701', async: true },
  14 + {
  15 + children: `
  16 + window.dataLayer = window.dataLayer || [];
  17 + function gtag(){dataLayer.push(arguments);}
  18 + gtag('js', new Date());
  19 + gtag('config', 'AW-881504701');
  20 + `,
  21 + type: 'text/javascript'
  22 + }
  23 + ]
  24 +})
  25 +
  26 +
7 27 const categoryStore = useCategoryStore()
8 28 categoryStore.getList()
9 29 </script>
... ...
locales/en.json 0 → 100644
  1 +{
  2 + "Material Reagents": "Material Reagents",
  3 + "Leading global provider of energy storage research materials and providing other professional/universal experimental materials.": "Leading global provider of energy storage research materials and providing other professional/universal experimental materials.",
  4 + "Lab Device": "Lab Device",
  5 + "Self-built High-precision Machining Center with Powerful Design and Manufacturing Capabilities.": "Self-built High-precision Machining Center with Powerful Design and Manufacturing Capabilities.",
  6 + "Customized Battery": "Customized Battery ",
  7 + "200mAh~10Ah, Winding/Stacking, Unfilled/Filled Electrolyte Cells, Three-Electrode, and More.": "200mAh~10Ah, Winding/Stacking, Unfilled/Filled Electrolyte Cells, Three-Electrode, and More.",
  8 + "Testing": "Testing",
  9 + "Self built testing center and signed strategic cooperation with ATL, Tsinghua and other units.": "Self built testing center and signed strategic cooperation with ATL, Tsinghua and other units.",
  10 + "Pack": "Pack",
  11 + "Focusing on energy materials/new energy storage systems/modules and other fields, mastering advanced technologies to provide high-quality services.": "Focusing on energy materials/new energy storage systems/modules and other fields, mastering advanced technologies to provide high-quality services.",
  12 + "detail": "detail",
  13 + "Online Product": "Online Product",
  14 + "Lab Device Products": "Lab Device Products",
  15 + "About": "About",
  16 + "About us": "About us",
  17 + "Contact us": "Contact us",
  18 + "Email": "Email",
  19 + "Phone": "Phone",
  20 + "Wechat": "Wechat",
  21 + "Energy materials": "Energy materials",
  22 + "Not specified": "Not specified",
  23 + "Battery accessories": "Battery accessories",
  24 + "Lithium-ion batteries": "Lithium-ion batteries",
  25 + "Capacitors": "Capacitors",
  26 + "Sodium-ion batteries": "Sodium-ion batteries",
  27 + "Lithium-sulfur batteries": "Lithium-sulfur batteries",
  28 + "Potassium/magnesium/aluminum/zinc batteries": "Potassium/magnesium/aluminum/zinc batteries",
  29 + "Air/fuel/solar": "Air/fuel/solar",
  30 + "Analytical electrodes": "Analytical electrodes",
  31 + "Complete battery accessories": "Complete battery accessories",
  32 + "Laboratory consumables": "Laboratory consumables",
  33 + "Glass materials": "Glass materials",
  34 + "Plastic materials": "Plastic materials",
  35 + "Metal materials": "Metal materials",
  36 + "Ceramic materials": "Ceramic materials",
  37 + "Paper film materials": "Paper film materials",
  38 + "Chemical materials": "Chemical materials",
  39 + "Tetrafluoro materials": "Tetrafluoro materials",
  40 + "Safety protection": "Safety protection",
  41 + "Office supplies": "Office supplies",
  42 + "Tools": "Tools",
  43 + "Low-dimensional materials": "Low-dimensional materials",
  44 + "Zero-dimensional carbon materials": "Zero-dimensional carbon materials",
  45 + "One-dimensional carbon materials": "One-dimensional carbon materials",
  46 + "Two-dimensional carbon materials": "Two-dimensional carbon materials",
  47 + "Three-dimensional carbon materials": "Three-dimensional carbon materials",
  48 + "Inorganic nanomaterials": "Inorganic nanomaterials",
  49 + "Organic nanomaterials": "Organic nanomaterials",
  50 + "Metal nanomaterials": "Metal nanomaterials",
  51 + "Cathode": "Cathode",
  52 + "Anode": "Anode",
  53 + "Separator": "Separator",
  54 + "Electrolyte": "Electrolyte",
  55 + "Conductive agent": "Conductive agent",
  56 + "Adhesive": "Adhesive",
  57 + "Current collector": "Current collector",
  58 + "Analytical electrode": "Analytical electrode",
  59 + "Others": "Others",
  60 + "Metal disk": "Metal disk",
  61 + "Battery electrode sheet": "Battery electrode sheet",
  62 + "Equipment": "Equipment",
  63 + "Accessories & fixtures": "Accessories & fixtures",
  64 + "Fuel cell manufacturing and testing equipment": "Fuel cell manufacturing and testing equipment",
  65 + "Home": "Home",
  66 + "Product": "Product",
  67 + "Search keyword": "Search keyword",
  68 + "Company Profile": "Company Profile",
  69 + "canrud": "canrud",
  70 + "1. 2015.2.11 was established in Songshan Lake High-tech Zone;": "1. 2015.2.11 was established in Songshan Lake High-tech Zone;",
  71 + "2. Registered capital of 1000W;": "2. Registered capital of 1000W;",
  72 + "3. Main business of new energy technology development": "3. Main business of new energy technology development",
  73 + "4. (Customized/ equipment / testing / materials / new product development, etc.);": "4. (Customized/ equipment / testing / materials / new product development, etc.);",
  74 + "5. In 2017, it was approved as a national high-tech enterprise;": "5. In 2017, it was approved as a national high-tech enterprise;",
  75 + "6. 120+ invention patents; 100 + authorized;": "6. 120+ invention patents; 100 + authorized;",
  76 + "7. The plant area is 6,000 m 2, with 70 employees (the core team is from Ningde ATL/ Foxconn).": "7. The plant area is 6,000 m 2, with 70 employees (the core team is from Ningde ATL/ Foxconn).",
  77 + "Corporate Culture": "Corporate Culture",
  78 + "canrudVision": "canrudVision",
  79 + "the world's top one-stop serviceprovider in the field of new energy research": "the world's top one-stop serviceprovider in the field of new energy research",
  80 + "canrudMission": "canrudMission",
  81 + "Build a \"industry-university-research\" high-speed channel": "Build a \"industry-university-research\" high-speed channel",
  82 + "canrudValues": "canrudValues",
  83 + "Burn yourself and contribute to the society Scientific": "Burn yourself and contribute to the society Scientific",
  84 + "Milestone": "Milestone",
  85 + "Canrd": "Canrd",
  86 + "established": "established",
  87 + "National high-tech": "National high-tech",
  88 + "enterprise": "enterprise",
  89 + "Customers": "Customers",
  90 + "exceed 2000+": "exceed 2000+",
  91 + "Customized division": "Customized division",
  92 + "Testing division(Xia Men)": "Testing division(Xia Men)",
  93 + "Equipment division": "Equipment division",
  94 + "R&D center(Houjie)": "R&D center(Houjie)",
  95 + "Pack division": "Pack division",
  96 + "R&D Ability": "R&D Ability",
  97 + "The combination of hardware and software creates strong research and development capabilities.": "The combination of hardware and software creates strong research and development capabilities.",
  98 + "The invention patents cover new materials such as silicon carbon, graphene, lithium sulfur, sodium electricity and lithium metal, as well as gel process, pre-lithium process and flexible battery design.": "The invention patents cover new materials such as silicon carbon, graphene, lithium sulfur, sodium electricity and lithium metal, as well as gel process, pre-lithium process and flexible battery design.",
  99 + "Team": "Team",
  100 + "Core team members are all from ATL/Foxconn 12+working experience": "Core team members are all from ATL/Foxconn 12+working experience",
  101 + "Patents": "Patents",
  102 + "More than 120 invention patents, covering materials, design, process, equipment and so on": "More than 120 invention patents, covering materials, design, process, equipment and so on",
  103 + "Hardware": "Hardware",
  104 + "Independent battery pilot line and equipment production line": "Independent battery pilot line and equipment production line",
  105 + "Solution": "Solution",
  106 + "Customized BatterTesting": "Customized BatterTesting",
  107 + "Equipment Business: With our self-built high-precision machining center, we possess robust design and manufacturing capabilities. We offer comprehensive equipment supply, production line planning, and construction services, including battery assembly lines, pouch cell testing lines, and more. Our aim is to provide complete equipment solutions that cater to the diverse needs of our clients. Expect top-quality equipment and professional services that will help you stand out in a fiercely competitive market!": "Equipment Business: With our self-built high-precision machining center, we possess robust design and manufacturing capabilities. We offer comprehensive equipment supply, production line planning, and construction services, including battery assembly lines, pouch cell testing lines, and more. Our aim is to provide complete equipment solutions that cater to the diverse needs of our clients. Expect top-quality equipment and professional services that will help you stand out in a fiercely competitive market!",
  108 + "Equipment hardware": "Equipment hardware",
  109 + "Precision grinder": "Precision grinder",
  110 + "Numerical control machine": "Numerical control machine",
  111 + "Arm brace": "Arm brace",
  112 + "CNC high-speed precision carving machine": "CNC high-speed precision carving machine",
  113 + "Equipment assembly workshop": "Equipment assembly workshop",
  114 + "Equipment to be shipped": "Equipment to be shipped",
  115 + "Succeed Case": "Succeed Case",
  116 + "Coin cell": "Coin cell",
  117 + "Our coin cell production line comprises a well-established process that includes material baking, vacuum mixing, slurry filtration, electrode coating, electrode drying, electrode rolling, punching, environmental control, cell assembly, cell sealing, and formation testing. Through precise operations and advanced technology, we ensure uniform coating of positive and negative electrode materials, precise dimensions, and optimal performance. Our production line strictly adheres to quality standards, guaranteeing reliable manufacturing of pouch cells. From material preparation to final testing, our professional production line ensures outstanding performance and reliable safety, meeting the diverse needs of our customers.": "Our coin cell production line comprises a well-established process that includes material baking, vacuum mixing, slurry filtration, electrode coating, electrode drying, electrode rolling, punching, environmental control, cell assembly, cell sealing, and formation testing. Through precise operations and advanced technology, we ensure uniform coating of positive and negative electrode materials, precise dimensions, and optimal performance. Our production line strictly adheres to quality standards, guaranteeing reliable manufacturing of pouch cells. From material preparation to final testing, our professional production line ensures outstanding performance and reliable safety, meeting the diverse needs of our customers.",
  118 + "Pouch cell pilot line": "Pouch cell pilot line",
  119 + "Our pouch cell pilot line is a highly specialized production line that encompasses key processes such as vacuum mixing, electrode coating, electrode rolling, electrode cutting, electrode stacking, electrode welding, film forming, top-side sealing, electrolyte filling, vacuum resting, vacuum sealing, hot pressing formation, vacuum final sealing, and pouch cell assembly. Through meticulous operations and advanced technology, we ensure the consistency and reliability of the positive and negative electrodes. Each step is carefully controlled to guarantee the stability, reliability, and high performance of the cells. Our pouch cell pilot line meets industry standards and caters to the professional needs of our customers. Whether for research samples or small-scale production, we provide high-quality and highly reliable pouch cell products.": "Our pouch cell pilot line is a highly specialized production line that encompasses key processes such as vacuum mixing, electrode coating, electrode rolling, electrode cutting, electrode stacking, electrode welding, film forming, top-side sealing, electrolyte filling, vacuum resting, vacuum sealing, hot pressing formation, vacuum final sealing, and pouch cell assembly. Through meticulous operations and advanced technology, we ensure the consistency and reliability of the positive and negative electrodes. Each step is carefully controlled to guarantee the stability, reliability, and high performance of the cells. Our pouch cell pilot line meets industry standards and caters to the professional needs of our customers. Whether for research samples or small-scale production, we provide high-quality and highly reliable pouch cell products.",
  120 + "Pouch cell pilot line (200m2)": "Pouch cell pilot line (200m2)",
  121 + "Our pouch cell pilot line layout has been meticulously designed, as shown in the accompanying diagram, to optimize space utilization, streamline workflow, and control temperature and humidity. This layout ensures high production efficiency, convenient operation, and precise experimental control. The equipment placement is strategically arranged, allowing easy access for operators while prioritizing safety considerations.": "Our pouch cell pilot line layout has been meticulously designed, as shown in the accompanying diagram, to optimize space utilization, streamline workflow, and control temperature and humidity. This layout ensures high production efficiency, convenient operation, and precise experimental control. The equipment placement is strategically arranged, allowing easy access for operators while prioritizing safety considerations.",
  122 + "Customized fixture": "Customized fixture",
  123 + "Fuel cell test fixture": "Fuel cell test fixture",
  124 + "Flow battery test fixture": "Flow battery test fixture",
  125 + "Leading hardware support for customized battery solutions. Independent prototyping line covers the entire process. Equipped with a soft-pack development line and a -50°C drying room to meet various needs. Two lithium metal pouch cell preparation options provided. Strong R&D capabilities with over 10 years of experience. Resolving 100+ customized projects, serving 50+ clients. Services include material evaluation, R&D contract manufacturing, new system development, and finished/semi-finished products. Breakthroughs in high-temperature, low-temperature, and fast-charging fields. Production and sales of high-quality lithium-ion batteries. Choose us to meet your R&D and production needs.": "Leading hardware support for customized battery solutions. Independent prototyping line covers the entire process. Equipped with a soft-pack development line and a -50°C drying room to meet various needs. Two lithium metal pouch cell preparation options provided. Strong R&D capabilities with over 10 years of experience. Resolving 100+ customized projects, serving 50+ clients. Services include material evaluation, R&D contract manufacturing, new system development, and finished/semi-finished products. Breakthroughs in high-temperature, low-temperature, and fast-charging fields. Production and sales of high-quality lithium-ion batteries. Choose us to meet your R&D and production needs.",
  126 + "Customization Hardware": "Customization Hardware",
  127 + "Coin cell preparation line with different machine such as mixing, coating, calendaring, cutting, assembly and testing.": "Coin cell preparation line with different machine such as mixing, coating, calendaring, cutting, assembly and testing.",
  128 + "1、Pouch cell pilot line with different humidity control requirement": "1、Pouch cell pilot line with different humidity control requirement",
  129 + "2、Dry room for other process": "2、Dry room for other process",
  130 + "3、Dry room for mixing and coating with -30℃ humidity": "3、Dry room for mixing and coating with -30℃ humidity",
  131 + "4、(before electrolyte injection)with -40℃ humidity": "4、(before electrolyte injection)with -40℃ humidity",
  132 + "1、There are different capacity for mixing(5L,10L and 30L)": "1、There are different capacity for mixing(5L,10L and 30L)",
  133 + "2、Dry room for high Ni cathode pouch cell preparation(-30℃ humidity)": "2、Dry room for high Ni cathode pouch cell preparation(-30℃ humidity)",
  134 + "3、Different solution to prepare lithium metal pouch cell(glove box with 0.1ppm condition or -50℃ dry room)": "3、Different solution to prepare lithium metal pouch cell(glove box with 0.1ppm condition or -50℃ dry room)",
  135 + "5L mixing": "5L mixing",
  136 + "30L mixing": "30L mixing",
  137 + "Li metal pouch cell": "Li metal pouch cell",
  138 + "customized types": "customized types",
  139 + "1.Semi-finished product": "1.Semi-finished product",
  140 + "New product customization": "New product customization",
  141 + "Material evaluation": "Material evaluation",
  142 + "Comprehensive lithium battery material evaluation, covering key materials such as cathode, anode, electrolyte, separator, and conductive additives. Accurate testing to ensure high-performance batteries. Choose us to embark on the path of material innovation!.": "Comprehensive lithium battery material evaluation, covering key materials such as cathode, anode, electrolyte, separator, and conductive additives. Accurate testing to ensure high-performance batteries. Choose us to embark on the path of material innovation!.",
  143 + "System development": "System development",
  144 + "High temperature: mine safety helmet Low temperature: outdoor extreme cold applicationFast charging system development: fast charging power bank Water system battery development: new system development.": "High temperature: mine safety helmet Low temperature: outdoor extreme cold applicationFast charging system development: fast charging power bank Water system battery development: new system development.",
  145 + "We have an independent battery testing center that provides comprehensive testing services for you! Whether it's ambient temperature, high-temperature cycling, rate testing, high and low-temperature testing, high-temperature storage testing, or EIS/CV testing, we can meet your needs. Our reverse analysis experimental plan covers various dimensions, including non-destructive testing, disassembly analysis, size, capacity, internal resistance, EIS, rate, high and low-temperature analysis. Through techniques such as capacity testing, SEM, EDS, Mapping, CP, TG, GC-MS, ICP, we conduct in-depth reverse analysis, including elemental analysis and morphology analysis. Finally, we prepare detailed reverse analysis reports, combining market conditions to provide you with research and development directions. Choose us for reliable testing and limitless innovation!": "We have an independent battery testing center that provides comprehensive testing services for you! Whether it's ambient temperature, high-temperature cycling, rate testing, high and low-temperature testing, high-temperature storage testing, or EIS/CV testing, we can meet your needs. Our reverse analysis experimental plan covers various dimensions, including non-destructive testing, disassembly analysis, size, capacity, internal resistance, EIS, rate, high and low-temperature analysis. Through techniques such as capacity testing, SEM, EDS, Mapping, CP, TG, GC-MS, ICP, we conduct in-depth reverse analysis, including elemental analysis and morphology analysis. Finally, we prepare detailed reverse analysis reports, combining market conditions to provide you with research and development directions. Choose us for reliable testing and limitless innovation!",
  146 + "Test Hardware": "Test Hardware",
  147 + "Cycle/Rate test": "Cycle/Rate test",
  148 + "H/L temperature oven": "H/L temperature oven",
  149 + "High temperature oven": "High temperature oven",
  150 + "Electrochemical workstation": "Electrochemical workstation",
  151 + "BET": "BET",
  152 + "TG-DSC": "TG-DSC",
  153 + "Raman": "Raman",
  154 + "XRD": "XRD",
  155 + "Reverse analysis": "Reverse analysis",
  156 + "Reverse analysis: assist customers to analyze the polymer / organic components in mainstream power batteries": "Reverse analysis: assist customers to analyze the polymer / organic components in mainstream power batteries",
  157 + "1. Experiment scheme: first conduct nondestructive testing (size / capacity / internal resistance / EIS / ratio / high and low temperature, etc.), and finally conduct disassembly analysis": "1. Experiment scheme: first conduct nondestructive testing (size / capacity / internal resistance / EIS / ratio / high and low temperature, etc.), and finally conduct disassembly analysis",
  158 + "2. Implement reverse analysis: gram capacity / SEM / ED S/Mapping / CP / TG / GC-MS / ICP and other means": "2. Implement reverse analysis: gram capacity / SEM / ED S/Mapping / CP / TG / GC-MS / ICP and other means",
  159 + "3. Write the reverse analysis report: give the customer research and development direction according to the market situation": "3. Write the reverse analysis report: give the customer research and development direction according to the market situation",
  160 + "We are proud to introduce our PACK product to you. As a leader in the market application of scientific research projects, we focus on transforming scientific achievements into practical market applications. We provide a variety of cases to meet different project requirements, such as fast-charging mobile power supplies, smart flashlights, low-speed vehicles, and small-scale energy storage. We are committed to successfully applying the results of scientific research projects to the market and providing innovative solutions for our customers.": "We are proud to introduce our PACK product to you. As a leader in the market application of scientific research projects, we focus on transforming scientific achievements into practical market applications. We provide a variety of cases to meet different project requirements, such as fast-charging mobile power supplies, smart flashlights, low-speed vehicles, and small-scale energy storage. We are committed to successfully applying the results of scientific research projects to the market and providing innovative solutions for our customers.",
  161 + "Pack Hardware": "Pack Hardware",
  162 + "112000w laser-beam welding machine": "112000w laser-beam welding machine",
  163 + "115000A resistance welding machine": "115000A resistance welding machine",
  164 + "11Numerical control machine": "11Numerical control machine",
  165 + "115V 60A": "115V 60A",
  166 + "115V3A": "115V3A",
  167 + "11100V/120A": "11100V/120A",
  168 + "11Oscilloscope": "11Oscilloscope",
  169 + "Canrd helps our customer to accomplish the requirement from PET current collector to power bank;": "Canrd helps our customer to accomplish the requirement from PET current collector to power bank;",
  170 + "1. Canrd helps our customer to accomplish the requirement from sodium cathode to standard car;": "1. Canrd helps our customer to accomplish the requirement from sodium cathode to standard car;",
  171 + "2. Canrd is pleased to be the bridge between new material to cell and even to terminal application product which can accelerate the R&D development;": "2. Canrd is pleased to be the bridge between new material to cell and even to terminal application product which can accelerate the R&D development;",
  172 + "Contact Us": "Contact Us",
  173 + "Official Web": "Official Web",
  174 + "Contact Information": "Contact Information",
  175 + "Technical Center": "Technical Center",
  176 + "Address": "Address",
  177 + "Copper Foil": "Copper Foil",
  178 + "Brand": "Brand",
  179 + "Product Model": "Product Model",
  180 + "thickness": "thickness",
  181 + "MA-EN-CU-0O": "MA-EN-CU-0O",
  182 + "9um": "9um",
  183 + "MA-EN-CU-000202": "MA-EN-CU-000202",
  184 + "9um x 170mm x 3kg/ roll": "9um x 170mm x 3kg/ roll",
  185 + "MA-EN-CU-000201": "MA-EN-CU-000201",
  186 + "9um x 200mm x 3kg/ roll": "9um x 200mm x 3kg/ roll",
  187 + "Advantage": "Advantage",
  188 + "Product Details": "Product Details",
  189 + "Specification": "Specification"
  190 +}
0 191 \ No newline at end of file
... ...
locales/zh.json 0 → 100644
  1 +{
  2 + "welcome": "欢迎",
  3 + "Customized Battery": "Customized Battery",
  4 +}
0 5 \ No newline at end of file
... ...
nuxt.config.ts
... ... @@ -50,6 +50,15 @@ export default defineNuxtConfig({
50 50 // proxy: process.env.BASE_URL || 'http://39.108.227.113:8002/shop/**'
51 51 }
52 52 }
53   - }
  53 + },
  54 + i18n: {
  55 + locales: [
  56 + { code: 'en', iso: 'en-US', file: 'en.json' },
  57 + { code: 'zh', iso: 'zh-CN', file: 'zh.json' }
  58 + ],
  59 + lazy: true,
  60 + langDir: 'locales/',
  61 + defaultLocale: 'zh',
  62 + },
54 63 })
55 64  
... ...
package.json
... ... @@ -24,4 +24,4 @@
24 24 "sass": "^1.77.1",
25 25 "tailwindcss": "^3.4.3"
26 26 }
27 27 -}
  28 +}
28 29 \ No newline at end of file
... ...
plugins/google-analytics.js 0 → 100644
  1 +import { defineNuxtPlugin } from '#app'
  2 +import VueGtag from 'vue-gtag'
  3 +
  4 +export default defineNuxtPlugin((nuxtApp) => {
  5 + const getGDPRConsent = true; // 自定义获取用户同意的逻辑
  6 + if (getGDPRConsent) {
  7 + nuxtApp.vueApp.use(VueGtag, {
  8 + config: { id: 'AW-881504701' } // 使用你的 Google Analytics 4 测量ID
  9 + }, nuxtApp.router);
  10 + }
  11 +});
... ...
pnpm-lock.yaml
... ... @@ -14,9 +14,15 @@ dependencies:
14 14 nuxt:
15 15 specifier: ^3.11.2
16 16 version: 3.11.2(@opentelemetry/api@1.8.0)(@unocss/reset@0.60.2)(floating-vue@5.2.2)(rollup@4.17.2)(sass@1.77.1)(unocss@0.60.2)(vite@5.2.11)
  17 + nuxt-gtag:
  18 + specifier: ^2.0.7
  19 + version: 2.0.7(rollup@4.17.2)
17 20 vue:
18 21 specifier: ^3.4.27
19 22 version: 3.4.27
  23 + vue-gtag:
  24 + specifier: ^2.0.1
  25 + version: 2.0.1(vue@3.4.27)
20 26 vue-router:
21 27 specifier: ^4.3.2
22 28 version: 4.3.2(vue@3.4.27)
... ... @@ -659,7 +665,7 @@ packages:
659 665 debug: 4.3.4
660 666 kolorist: 1.8.0
661 667 local-pkg: 0.5.0
662   - mlly: 1.7.0
  668 + mlly: 1.7.1
663 669 transitivePeerDependencies:
664 670 - supports-color
665 671 dev: false
... ... @@ -1136,6 +1142,36 @@ packages:
1136 1142 - rollup
1137 1143 - supports-color
1138 1144  
  1145 + /@nuxt/kit@3.12.3(rollup@4.17.2):
  1146 + resolution: {integrity: sha512-5R8FZLDxBKlkDWYsqwU1tctGJ5vwMA96WBrNkpQ0LznB2/p+3MWWTO6vz+0P0F9xvZZfkk/KKyZ3uUhnG9VJOA==}
  1147 + engines: {node: ^14.18.0 || >=16.10.0}
  1148 + dependencies:
  1149 + '@nuxt/schema': 3.12.3(rollup@4.17.2)
  1150 + c12: 1.11.1
  1151 + consola: 3.2.3
  1152 + defu: 6.1.4
  1153 + destr: 2.0.3
  1154 + globby: 14.0.2
  1155 + hash-sum: 2.0.0
  1156 + ignore: 5.3.1
  1157 + jiti: 1.21.6
  1158 + klona: 2.0.6
  1159 + knitwork: 1.1.0
  1160 + mlly: 1.7.1
  1161 + pathe: 1.1.2
  1162 + pkg-types: 1.1.3
  1163 + scule: 1.3.0
  1164 + semver: 7.6.2
  1165 + ufo: 1.5.3
  1166 + unctx: 2.3.1
  1167 + unimport: 3.7.2(rollup@4.17.2)
  1168 + untyped: 1.4.2
  1169 + transitivePeerDependencies:
  1170 + - magicast
  1171 + - rollup
  1172 + - supports-color
  1173 + dev: false
  1174 +
1139 1175 /@nuxt/schema@3.11.2(rollup@4.17.2):
1140 1176 resolution: {integrity: sha512-Z0bx7N08itD5edtpkstImLctWMNvxTArsKXzS35ZuqyAyKBPcRjO1CU01slH0ahO30Gg9kbck3/RKNZPwfOjJg==}
1141 1177 engines: {node: ^14.18.0 || >=16.10.0}
... ... @@ -1155,6 +1191,27 @@ packages:
1155 1191 - rollup
1156 1192 - supports-color
1157 1193  
  1194 + /@nuxt/schema@3.12.3(rollup@4.17.2):
  1195 + resolution: {integrity: sha512-Zw/2stN5CWVOHQ6pKyewk3tvYW5ROBloTGyIbie7/TprJT5mL+E9tTgAxOZtkoKSFaYEQXZgE1K2OzMelhLRzw==}
  1196 + engines: {node: ^14.18.0 || >=16.10.0}
  1197 + dependencies:
  1198 + compatx: 0.1.8
  1199 + consola: 3.2.3
  1200 + defu: 6.1.4
  1201 + hookable: 5.5.3
  1202 + pathe: 1.1.2
  1203 + pkg-types: 1.1.3
  1204 + scule: 1.3.0
  1205 + std-env: 3.7.0
  1206 + ufo: 1.5.3
  1207 + uncrypto: 0.1.3
  1208 + unimport: 3.7.2(rollup@4.17.2)
  1209 + untyped: 1.4.2
  1210 + transitivePeerDependencies:
  1211 + - rollup
  1212 + - supports-color
  1213 + dev: false
  1214 +
1158 1215 /@nuxt/telemetry@2.5.4(rollup@4.17.2):
1159 1216 resolution: {integrity: sha512-KH6wxzsNys69daSO0xUv0LEBAfhwwjK1M+0Cdi1/vxmifCslMIY7lN11B4eywSfscbyVPAYJvANyc7XiVPImBQ==}
1160 1217 hasBin: true
... ... @@ -2883,6 +2940,28 @@ packages:
2883 2940 pkg-types: 1.1.1
2884 2941 rc9: 2.1.2
2885 2942  
  2943 + /c12@1.11.1:
  2944 + resolution: {integrity: sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==}
  2945 + peerDependencies:
  2946 + magicast: ^0.3.4
  2947 + peerDependenciesMeta:
  2948 + magicast:
  2949 + optional: true
  2950 + dependencies:
  2951 + chokidar: 3.6.0
  2952 + confbox: 0.1.7
  2953 + defu: 6.1.4
  2954 + dotenv: 16.4.5
  2955 + giget: 1.2.3
  2956 + jiti: 1.21.6
  2957 + mlly: 1.7.1
  2958 + ohash: 1.1.3
  2959 + pathe: 1.1.2
  2960 + perfect-debounce: 1.0.0
  2961 + pkg-types: 1.1.3
  2962 + rc9: 2.1.2
  2963 + dev: false
  2964 +
2886 2965 /cac@6.7.14:
2887 2966 resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
2888 2967 engines: {node: '>=8'}
... ... @@ -3062,6 +3141,10 @@ packages:
3062 3141 resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
3063 3142 dev: false
3064 3143  
  3144 + /compatx@0.1.8:
  3145 + resolution: {integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==}
  3146 + dev: false
  3147 +
3065 3148 /compress-commons@6.0.2:
3066 3149 resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==}
3067 3150 engines: {node: '>= 14'}
... ... @@ -3889,6 +3972,18 @@ packages:
3889 3972 slash: 5.1.0
3890 3973 unicorn-magic: 0.1.0
3891 3974  
  3975 + /globby@14.0.2:
  3976 + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==}
  3977 + engines: {node: '>=18'}
  3978 + dependencies:
  3979 + '@sindresorhus/merge-streams': 2.3.0
  3980 + fast-glob: 3.3.2
  3981 + ignore: 5.3.1
  3982 + path-type: 5.0.0
  3983 + slash: 5.1.0
  3984 + unicorn-magic: 0.1.0
  3985 + dev: false
  3986 +
3892 3987 /graceful-fs@4.2.11:
3893 3988 resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
3894 3989 dev: false
... ... @@ -4275,6 +4370,11 @@ packages:
4275 4370 resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
4276 4371 hasBin: true
4277 4372  
  4373 + /jiti@1.21.6:
  4374 + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
  4375 + hasBin: true
  4376 + dev: false
  4377 +
4278 4378 /js-tokens@4.0.0:
4279 4379 resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
4280 4380  
... ... @@ -4658,6 +4758,15 @@ packages:
4658 4758 pkg-types: 1.1.1
4659 4759 ufo: 1.5.3
4660 4760  
  4761 + /mlly@1.7.1:
  4762 + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==}
  4763 + dependencies:
  4764 + acorn: 8.11.3
  4765 + pathe: 1.1.2
  4766 + pkg-types: 1.1.3
  4767 + ufo: 1.5.3
  4768 + dev: false
  4769 +
4661 4770 /mri@1.2.0:
4662 4771 resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
4663 4772 engines: {node: '>=4'}
... ... @@ -4989,6 +5098,19 @@ packages:
4989 5098 fsevents: 2.3.3
4990 5099 dev: false
4991 5100  
  5101 + /nuxt-gtag@2.0.7(rollup@4.17.2):
  5102 + resolution: {integrity: sha512-iiKS4agfMTPes94T7CIhawZTkach2CcJppQw40RgJeWqaor84g0VqLcpmH9c5/QcSH3QmGoArOtzXlBUKYXd2g==}
  5103 + dependencies:
  5104 + '@nuxt/kit': 3.12.3(rollup@4.17.2)
  5105 + defu: 6.1.4
  5106 + pathe: 1.1.2
  5107 + ufo: 1.5.3
  5108 + transitivePeerDependencies:
  5109 + - magicast
  5110 + - rollup
  5111 + - supports-color
  5112 + dev: false
  5113 +
4992 5114 /nuxt@3.11.2(@opentelemetry/api@1.8.0)(@unocss/reset@0.60.2)(floating-vue@5.2.2)(rollup@4.17.2)(sass@1.77.1)(unocss@0.60.2)(vite@5.2.11):
4993 5115 resolution: {integrity: sha512-Be1d4oyFo60pdF+diBolYDcfNemoMYM3R8PDjhnGrs/w3xJoDH1YMUVWHXXY8WhSmYZI7dyBehx/6kTfGFliVA==}
4994 5116 engines: {node: ^14.18.0 || >=16.10.0}
... ... @@ -5359,6 +5481,14 @@ packages:
5359 5481 mlly: 1.7.0
5360 5482 pathe: 1.1.2
5361 5483  
  5484 + /pkg-types@1.1.3:
  5485 + resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==}
  5486 + dependencies:
  5487 + confbox: 0.1.7
  5488 + mlly: 1.7.1
  5489 + pathe: 1.1.2
  5490 + dev: false
  5491 +
5362 5492 /postcss-calc@9.0.1(postcss@8.4.38):
5363 5493 resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==}
5364 5494 engines: {node: ^14 || ^16 || >=18.0}
... ... @@ -6569,6 +6699,26 @@ packages:
6569 6699 transitivePeerDependencies:
6570 6700 - rollup
6571 6701  
  6702 + /unimport@3.7.2(rollup@4.17.2):
  6703 + resolution: {integrity: sha512-91mxcZTadgXyj3lFWmrGT8GyoRHWuE5fqPOjg5RVtF6vj+OfM5G6WCzXjuYtSgELE5ggB34RY4oiCSEP8I3AHw==}
  6704 + dependencies:
  6705 + '@rollup/pluginutils': 5.1.0(rollup@4.17.2)
  6706 + acorn: 8.11.3
  6707 + escape-string-regexp: 5.0.0
  6708 + estree-walker: 3.0.3
  6709 + fast-glob: 3.3.2
  6710 + local-pkg: 0.5.0
  6711 + magic-string: 0.30.10
  6712 + mlly: 1.7.1
  6713 + pathe: 1.1.2
  6714 + pkg-types: 1.1.3
  6715 + scule: 1.3.0
  6716 + strip-literal: 2.1.0
  6717 + unplugin: 1.10.1
  6718 + transitivePeerDependencies:
  6719 + - rollup
  6720 + dev: false
  6721 +
6572 6722 /unique-filename@3.0.0:
6573 6723 resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==}
6574 6724 engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
... ... @@ -7036,6 +7186,14 @@ packages:
7036 7186 resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==}
7037 7187 dev: false
7038 7188  
  7189 + /vue-gtag@2.0.1(vue@3.4.27):
  7190 + resolution: {integrity: sha512-aM4A58FVL0wV2ptYi+xzAjeg+pQVRyUcfBc5UkXAwQrR4t3WBhor50Izp2I+3Oo7+l+vWJ7u78DGcNzReb8S/A==}
  7191 + peerDependencies:
  7192 + vue: ^3.0.0
  7193 + dependencies:
  7194 + vue: 3.4.27
  7195 + dev: false
  7196 +
7039 7197 /vue-i18n@9.13.1(vue@3.4.27):
7040 7198 resolution: {integrity: sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==}
7041 7199 engines: {node: '>= 16'}
... ...