yankun 1 month ago
parent
commit
e9419c4db7

+ 2 - 1
.env.development

@@ -1,5 +1,6 @@
 # 请求 url
-VITE_BASE_URL=https://vvbuy.csvip.top/api
+# VITE_BASE_URL=https://vvbuy.csvip.top/api
+VITE_BASE_URL=https://get.vavabuy.com/api/
 
 # 标题
 VITE_APP_TITLE="VAVA BUY"

BIN
ZtestDemo/Example.class


+ 43 - 0
ZtestDemo/Example.java

@@ -0,0 +1,43 @@
+import java.io.*;
+
+public class Example {
+  public static void main(String[] args) throws IOException {
+    try (PrintStream ps = 
+          new PrintStream(new FileOutputStream("./data.txt"), true);
+    ) {
+      ps.println(new Student("张三", 26));
+      ps.println(new Student("李四", 25));
+      ps.println(new Student("王五", 27));
+      System.out.println("Success!");
+    }
+    catch(IOException e) {
+      e.printStackTrace();
+    }
+  }
+}
+
+
+class Student {
+  private String name;
+  private int age;
+
+  public Student(String name, int age) {
+    this.name = name;
+    this.age = age;
+  }
+
+  public String getName() {
+    return this.name;
+  }
+
+  public int getAge() {
+    return this.age;
+  }
+
+
+  @Override
+  public String toString() {
+    String str = "Student{name=" + this.name + "; age=" + this.age + "}";
+    return str;
+  }
+}

BIN
ZtestDemo/Student.class


+ 3 - 0
ZtestDemo/data.txt

@@ -0,0 +1,3 @@
+Student{name=张三; age=26}
+Student{name=李四; age=25}
+Student{name=王五; age=27}

+ 3 - 2
index.html

@@ -48,14 +48,15 @@
     </script>
     <!-- End Twitter conversion tracking event code -->
 
+
     <!-- Google tag (gtag.js) -->
-    <script async src="https://www.googletagmanager.com/gtag/js?id=AW-17181521664"></script>
+    <script async src="https://www.googletagmanager.com/gtag/js?id=AW-17218823610"></script>
     <script>
       window.dataLayer = window.dataLayer || [];
       function gtag(){dataLayer.push(arguments);}
       gtag('js', new Date());
     
-      gtag('config', 'AW-17181521664');
+      gtag('config', 'AW-17218823610');
     </script>
   </body>
 </html>

+ 147 - 0
src/components/LoadingSpinner.vue

@@ -0,0 +1,147 @@
+<template>
+  <div v-if="isLoading" class="loading-spinner">
+    <div class="spinner-container">
+      <div class="logo-container">
+        <div class="logo-circle"></div>
+        <div class="logo-text">VAVA</div>
+      </div>
+      <div class="loading-dots">
+        <span class="dot"></span>
+        <span class="dot"></span>
+        <span class="dot"></span>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { ref } from 'vue'
+
+const isLoading = ref(true)
+</script>
+
+<style scoped>
+.loading-spinner {
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  background-color: #000;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  z-index: 9999;
+  -webkit-tap-highlight-color: transparent;
+  touch-action: none;
+}
+
+.spinner-container {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  gap: 24px;
+}
+
+.logo-container {
+  position: relative;
+  width: 80px;
+  height: 80px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+
+.logo-circle {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  border: 2px solid rgba(255, 255, 255, 0.1);
+  border-top-color: #fff;
+  border-radius: 50%;
+  animation: spin 1s linear infinite;
+}
+
+.logo-text {
+  color: #fff;
+  font-size: 24px;
+  font-weight: 600;
+  letter-spacing: 2px;
+  animation: pulse 2s ease-in-out infinite;
+}
+
+.loading-dots {
+  display: flex;
+  gap: 8px;
+}
+
+.dot {
+  width: 8px;
+  height: 8px;
+  background-color: #fff;
+  border-radius: 50%;
+  opacity: 0.6;
+  animation: fade 1.4s infinite;
+}
+
+.dot:nth-child(2) {
+  animation-delay: 0.2s;
+}
+
+.dot:nth-child(3) {
+  animation-delay: 0.4s;
+}
+
+@keyframes spin {
+  to {
+    transform: rotate(360deg);
+  }
+}
+
+@keyframes pulse {
+  0%,
+  100% {
+    opacity: 0.6;
+    transform: scale(0.95);
+  }
+  50% {
+    opacity: 1;
+    transform: scale(1.05);
+  }
+}
+
+@keyframes fade {
+  0%,
+  100% {
+    opacity: 0.2;
+    transform: scale(0.8);
+  }
+  50% {
+    opacity: 1;
+    transform: scale(1.2);
+  }
+}
+
+/* 移动端适配 */
+@media screen and (max-width: 768px) {
+  .logo-container {
+    width: 60px;
+    height: 60px;
+  }
+
+  .logo-text {
+    font-size: 20px;
+  }
+
+  .dot {
+    width: 6px;
+    height: 6px;
+  }
+}
+
+/* 防止iOS橡皮筋效果 */
+.loading-spinner {
+  overscroll-behavior: none;
+  -webkit-overflow-scrolling: touch;
+}
+</style> 

+ 4 - 2
src/locale/index.ts

@@ -1,5 +1,6 @@
 import { createI18n } from 'vue-i18n'
 import en from './lang/en'
+import es from './lang/es'
 import zh from './lang/zh'
 
 
@@ -15,8 +16,9 @@ const i18n = createI18n({
   locale: (getCurrentLang() as string),
   fallbackLocale: 'en',
   messages: {
-    en: en,
-    zh: zh,
+    en,
+    es,
+    zh,
   },
 });
 

+ 0 - 1
src/locale/lang/en.ts

@@ -1,6 +1,5 @@
 export default {
   system: {
-    "中文": "English",
     "登录": "Log in",
     "立即免费注册": "Register immediately for free",
     "可以在数千家商店购物和支付": "You can shop and make payments in thousands of stores",

+ 98 - 0
src/locale/lang/es.ts

@@ -0,0 +1,98 @@
+export default {
+  system: {
+    "登录": "Inicio",
+    "立即免费注册": "Regístrate ahora gratis",
+    "可以在数千家商店购物和支付": "Posibilidad de comprar y pagar en miles de tiendas",
+    "全球数百万会员享受简单且经济的全球运输": "Millones de miembros en todo el mundo disfrutan de envíos simples y económicos a todo el mundo",
+    "3000 万+": "30 millones +",
+    "600 万+": "6 millones +",
+    "25 +": "25 +",
+    "220 +": "220 +",
+    "运送的包裹": "El paquete entregado",
+    "全球会员": "Membresía global",
+    "服务的国家和地区": "Países y territorios atendidos",
+    "服务年限": "Años de servicio",
+    "VAVA BUY 如何运作": "Cómo funciona VAVA BUY",
+    "注册账户": "Registrar una cuenta",
+    "加入VAVA BUY 以获取您的收货地址": "Únete a VAVA BUY para obtener tu dirección de envío",
+    "下单购买": "Ordenar para comprar",
+    "在商店购物,运送到您的新VAVA BUY地址": "Compra en la tienda, envío a tu nueva dirección de VAVA BUY",
+    "收货转运": "Recepción y transferencia",
+    "合并包裹并节省高达80%的运费": "Combine paquetes y ahorre hasta un 80% en gastos de envío",
+    "VAVA BUY 优势对比": "Comparación de ventajas de VAVA BUY",
+    "包裹运送到全球,而且还在不断增加...": "Paquetes enviados a todo el mundo y contando...",
+    "自 Vava buy.com 成立以来": "Desde la fundación de Vava buy.com",
+    "深受全球购物者的喜爱": "Amado por compradores de todo el mundo",
+    "新西兰": "neozelandés",
+    "澳大利亚": "australiano",
+    "意大利": "italiano",
+    "Lawrence": "laurentino",
+    "Anna": "anna",
+    "John": "john",
+    download: 'Descarga la App',
+    updateTimeTxt: 'Actualizado en {updateTime}',
+    companyName: 'Guangzhou wahou comprar comercio co., LTD',
+    addressLabel: 'dirección',
+    companyAddress: '401-466 casa D390 uno de no.401 tianyuan road, distrito de tianhe, guangzhou',
+    hongkongAddressLabel: 'Dirección (Hong Kong)',
+    hongkongCompanyAddress: 'Habitación 60, 3er piso, centro youli, 45 haiyuan road, guang tang, Hong Kong',
+    emailLabel: 'dirección',
+    hongkongEmailLabel: 'Correo electrónico (Hong Kong)',
+
+  },
+  textLink: {
+    "常见问题": "PREGUNTAS FRECUENTES",
+    "与 VAVA BUY 合作": "Colaboración con VAVA BUY",
+    "如何运作": "Cómo funciona",
+    "为什么选择 VAVA BUY": "Por qué elegir VAVA BUY",
+    "优势": "La ventaja",
+    "开始在 VAVA BUY 购物": "Empieza a comprar en VAVA BUY",
+    "VAVA BUY 是如何工作的": "Cómo funciona VAVA BUY",
+    "您所在国家/地区的运费和价格": "Gastos de envío y precios para su país/región",
+    "报名": "registrarse",
+    "汇率": "Los tipos de cambio",
+    "不能寄送的物品": "Artículos que no pueden ser enviados",
+    "日志": "registro",
+    "您的隐私权利": "Sus derechos de privacidad",
+    "关于 VAVA BUY": "Acerca de VAVA comprar",
+    "VAVA BUY 评论": "Reseñas de VAVA BUY",
+    "新闻与动态": "Noticias y novedades",
+    "VAVA BUY.com 的招聘信息": "Ofertas de empleo en VAVA BUY.com",
+    "联系我们": "Contacta con nosotros",
+    "网站地图": "Mapa del sitio",
+    "奖学金": "beca",
+    "顶级商店": "Las mejores tiendas",
+    "Facebook": "Facebook",
+    "社交平台": "Instagram",
+    "X(原 Twitter)": "X (anteriormente Twitter)",
+    "获取 VAVA BUY 应用程序": "Obtenga la aplicación VAVA BUY",
+  },
+  paragraph: {
+    "bannerTitle": "Operaciones internacionales · una parada para resolver",
+    "bannerDesc": "Conecte productos de calidad global, realice pedidos sin preocupaciones con un solo clic, vea el proceso de pedido en tiempo real y disfrute de una experiencia de compra conveniente.",
+    "如果你想买其他东西,没有比 Vava buy 更好的了": "Si buscas algo más, no hay nada mejor que Vava buy",
+    "太棒了!一切都很顺利,接收订单并快速发货的速度让人印象深刻": "¡Genial! Todo fue muy bien, impresionante la velocidad con la que se recibió el pedido y se envió rápidamente",
+    "非常易于使用,包装很精美,会收获很多惊喜": "Muy fácil de usar, bellamente embalado, cosechará muchas sorpresas",
+    "我们使用 cookie 来提供更好的在线体验。 访问和使用 VAVA BUY.com,即表示您同意我们使用 Cookie。 通过阅读我们的条款和条件、使用条款、 和隐私政策。": "Utilizamos cookies para ofrecer una mejor experiencia en línea. Al acceder y utilizar VAVA BUY.com, usted acepta nuestro uso de cookies. Al leer nuestros términos y condiciones, términos de uso y política de privacidad.",
+  },
+  questionPage: {
+    bannerTitle: 'PREGUNTAS FRECUENTES',
+    bannerDesc: 'Estamos aquí para resolver todas tus dudas',
+    bannerSearchPlaceholder: 'Por favor, introduzca la palabra clave de su pregunta...',
+    bannerSearchBtn: 'búsqueda',
+    searchResultTitle: 'Resultados de la búsqueda ({count} items)',
+    questionCategoryMenuBtn: 'clasificación',
+    questionCategoryCountTxt: '{count} preguntas',
+    questionDrawerTitle: 'Preguntas frecuentes por categoría',
+    questionTagHot: 'botines',
+    questionTagNew: 'nuevo',
+    questionReadCount: 'Leído {count} veces',
+    questionDetailBackbtn: 'Volver al listado',
+    contactTitle: '¿No ha encontrado la respuesta que necesita?',
+    contactDesc: 'Nuestro equipo de atención al cliente está a su disposición',
+    contactForPhoneTitle: 'Soporte por teléfono',
+    contactForPhoneWorkTime: 'Lunes a domingo 9:00-18:00',
+    contactForEmailTitle: 'Correo electrónico',
+    contactForEmailWorkTime: 'Respondemos en menos de 24 horas',
+  }
+}

+ 0 - 1
src/locale/lang/zh.ts

@@ -1,6 +1,5 @@
 export default {
   system: {
-    "中文": "中文",
     "登录": "登录",
     "立即免费注册": "立即免费注册",
     "可以在数千家商店购物和支付": "可以在数千家商店购物和支付",

+ 4 - 0
src/views/Layout/index.vue

@@ -1,5 +1,8 @@
 <template>
   <div id="layout__container">
+    <!-- 全局加载动画 -->
+    <!-- <LoadingSpinner /> -->
+
     <!-- header -->
     <header class="layout__header">
       <Header></Header>
@@ -22,6 +25,7 @@
 import Header from './modules/Header/index.vue'
 import Main from './modules/Main/index.vue'
 import Footer from './modules/Footer/index.vue'
+// import LoadingSpinner from '@/components/LoadingSpinner.vue'
 </script>