From 411a9058cac1f79a71dbc0b7eaa7cdacabfdc3f8 Mon Sep 17 00:00:00 2001 From: Gsh <15170702455@163.com> Date: Sun, 28 Dec 2025 22:42:17 +0800 Subject: [PATCH 1/9] =?UTF-8?q?fix:=20=E5=89=8D=E7=AB=AF=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=9E=B6=E6=9E=84=E9=87=8D=E6=9E=84=E5=88=9D=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Yi.Ai.Vue3/.claude/settings.local.json | 3 +- .../components/ActivationCode.vue | 54 +- .../components/UsageStatistics.vue | 1 + .../components/UserManagement.vue | 39 +- Yi.Ai.Vue3/src/config/design.ts | 14 +- Yi.Ai.Vue3/src/hooks/useResponsive.ts | 72 ++ .../src/hooks/useWindowWidthObserver.ts | 5 +- .../src/layouts/LayoutDefault/index.vue | 35 + Yi.Ai.Vue3/src/layouts/LayoutMobile/index.vue | 288 +++++- .../src/layouts/LayoutVertical/index.vue | 56 +- .../src/layouts/components/Aside/index.vue | 392 -------- .../layouts/components/ChatAside/index.vue | 918 ++++++++++++++++++ .../components/Header/components/Avatar.vue | 72 +- .../Header/components/StartChatBtn.vue | 84 ++ .../components/Header/components/ThemeBtn.vue | 95 ++ .../src/layouts/components/Header/index.vue | 583 +++++++++-- .../src/layouts/components0/Aside/index.vue | 725 ++++++++++++++ .../components0/DesignConfig/index.vue | 8 + .../Header/components/AiTutorialBtn.vue | 88 ++ .../Header/components/AnnouncementBtn.vue | 112 +++ .../components0/Header/components/Avatar.vue | 499 ++++++++++ .../components0/Header/components/BuyBtn.vue | 68 ++ .../Header/components/Collapse.vue | 39 + .../Header/components/ConsoleBtn.vue | 91 ++ .../Header/components/CreateChat.vue | 45 + .../Header/components/LoginBtn.vue | 29 + .../Header/components/ModelLibraryBtn.vue | 88 ++ .../Header/components/StartChatBtn.vue | 84 ++ .../Header/components/ThemeBtn.vue | 95 ++ .../Header/components/TitleEditing.vue | 87 ++ .../Header/components/TutorialBtn.vue | 75 ++ .../src/layouts/components0/Header/index.vue | 122 +++ .../src/layouts/components0/Logo/index.vue | 8 + .../src/layouts/components0/Main/index.vue | 89 ++ Yi.Ai.Vue3/src/layouts/index.vue | 28 +- .../chat/components/ConversationList.vue | 226 +++++ .../src/pages/chat/conversation/index.vue | 44 + Yi.Ai.Vue3/src/pages/chat/image/index.vue | 26 + Yi.Ai.Vue3/src/pages/chat/index.vue | 305 +++++- .../pages/chat/layouts/chatDefaul/index.vue | 330 ++++--- .../pages/chat/layouts/chatWithId/index.vue | 4 +- Yi.Ai.Vue3/src/pages/chat/video/index.vue | 26 + Yi.Ai.Vue3/src/pages/console/index.vue | 313 ++++++ Yi.Ai.Vue3/src/pages/modelLibrary/index.vue | 51 +- Yi.Ai.Vue3/src/routers/index.ts | 34 +- .../src/routers/modules/staticRouter.ts | 183 +++- Yi.Ai.Vue3/src/stores/modules/design.ts | 56 +- Yi.Ai.Vue3/src/stores/modules/session.ts | 6 +- Yi.Ai.Vue3/src/stores/modules/user.ts | 2 +- Yi.Ai.Vue3/src/styles/index.scss | 2 +- Yi.Ai.Vue3/src/styles/var.scss | 238 ++++- Yi.Ai.Vue3/src/styles/yixin-markdown.scss | 3 +- Yi.Ai.Vue3/types/components.d.ts | 3 +- 53 files changed, 6098 insertions(+), 845 deletions(-) create mode 100644 Yi.Ai.Vue3/src/hooks/useResponsive.ts create mode 100644 Yi.Ai.Vue3/src/layouts/LayoutDefault/index.vue delete mode 100644 Yi.Ai.Vue3/src/layouts/components/Aside/index.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components/ChatAside/index.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components/Header/components/StartChatBtn.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components/Header/components/ThemeBtn.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Aside/index.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/DesignConfig/index.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Header/components/AiTutorialBtn.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Header/components/AnnouncementBtn.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Header/components/Avatar.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Header/components/BuyBtn.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Header/components/Collapse.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Header/components/ConsoleBtn.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Header/components/CreateChat.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Header/components/LoginBtn.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Header/components/ModelLibraryBtn.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Header/components/StartChatBtn.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Header/components/ThemeBtn.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Header/components/TitleEditing.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Header/components/TutorialBtn.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Header/index.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Logo/index.vue create mode 100644 Yi.Ai.Vue3/src/layouts/components0/Main/index.vue create mode 100644 Yi.Ai.Vue3/src/pages/chat/components/ConversationList.vue create mode 100644 Yi.Ai.Vue3/src/pages/chat/conversation/index.vue create mode 100644 Yi.Ai.Vue3/src/pages/chat/image/index.vue create mode 100644 Yi.Ai.Vue3/src/pages/chat/video/index.vue create mode 100644 Yi.Ai.Vue3/src/pages/console/index.vue diff --git a/Yi.Ai.Vue3/.claude/settings.local.json b/Yi.Ai.Vue3/.claude/settings.local.json index 131db92e..13e6d318 100644 --- a/Yi.Ai.Vue3/.claude/settings.local.json +++ b/Yi.Ai.Vue3/.claude/settings.local.json @@ -2,7 +2,8 @@ "permissions": { "allow": [ "Bash(npx vue-tsc --noEmit)", - "Bash(timeout 60 npx vue-tsc:*)" + "Bash(timeout 60 npx vue-tsc:*)", + "Bash(npm run dev:*)" ], "deny": [], "ask": [] diff --git a/Yi.Ai.Vue3/src/components/userPersonalCenter/components/ActivationCode.vue b/Yi.Ai.Vue3/src/components/userPersonalCenter/components/ActivationCode.vue index 88541897..48c2766d 100644 --- a/Yi.Ai.Vue3/src/components/userPersonalCenter/components/ActivationCode.vue +++ b/Yi.Ai.Vue3/src/components/userPersonalCenter/components/ActivationCode.vue @@ -31,33 +31,33 @@ class Particle { this.x = x; this.y = y; this.hue = hue; - + // Explosive physics const angle = Math.random() * Math.PI * 2; - const speed = Math.random() * 15 + 2; + const speed = Math.random() * 15 + 2; this.vx = Math.cos(angle) * speed; this.vy = Math.sin(angle) * speed; - + this.alpha = 1; this.decay = Math.random() * 0.015 + 0.005; this.gravity = 0.05; - this.friction = 0.96; - + this.friction = 0.96; + this.size = Math.random() * 3 + 1; this.brightness = 50; // Standard brightness for white bg visibility (0-100% HSL L value) - this.flicker = Math.random() > 0.5; + this.flicker = Math.random() > 0.5; } update() { this.vx *= this.friction; this.vy *= this.friction; this.vy += this.gravity; - + this.x += this.vx; this.y += this.vy; - + this.alpha -= this.decay; - this.hue += 0.5; + this.hue += 0.5; } draw(ctx: CanvasRenderingContext2D) { @@ -65,9 +65,9 @@ class Particle { // On white background: // We want high saturation (100%) and medium lightness (50%) to make colors pop against white. // If lightness is too high (like 80-100), it fades into white. - const lightness = this.flicker ? Math.random() * 20 + 40 : this.brightness; + const lightness = this.flicker ? Math.random() * 20 + 40 : this.brightness; ctx.fillStyle = `hsla(${this.hue}, 100%, ${lightness}%, ${this.alpha})`; - + ctx.beginPath(); ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2); ctx.fill(); @@ -93,7 +93,7 @@ class Shockwave { } update() { - this.radius += 15; + this.radius += 15; this.alpha -= 0.05; this.lineWidth -= 0.2; } @@ -132,10 +132,10 @@ function animate() { if (!ctx) return; // Clear with transparent fade for trails on white - // 'destination-out' erases content. + // 'destination-out' erases content. // To leave a trail on a white background (canvas is transparent over white gradient): // We need to gently erase what's there. - + ctx.globalCompositeOperation = 'destination-out'; ctx.fillStyle = 'rgba(255, 255, 255, 0.1)'; // Alpha controls trail length ctx.fillRect(0, 0, canvas.width, canvas.height); @@ -177,14 +177,14 @@ function triggerCelebration() { canvas.width = parent.clientWidth; canvas.height = parent.clientHeight; } - + const cx = canvas.width / 2; const cy = canvas.height / 2; // 1. Initial Mega Explosion triggerShake(); createExplosion(cx, cy, Math.random() * 360); - + // Start loop animate(); @@ -194,15 +194,15 @@ function triggerCelebration() { count++; const rx = cx + (Math.random() - 0.5) * canvas.width * 0.8; const ry = cy + (Math.random() - 0.5) * canvas.height * 0.8; - + createExplosion(rx, ry, Math.random() * 360); - - if (count % 3 === 0) triggerShake(); + + if (count % 3 === 0) triggerShake(); if (count > 25) { clearInterval(timer); } - }, 120); + }, 120); } async function handleRedeem() { @@ -221,7 +221,7 @@ async function handleRedeem() { duration: 3000, showClose: true, }); - activationCode.value = ''; + activationCode.value = ''; } catch (error: any) { // console.error(error); } finally { @@ -238,13 +238,13 @@ onUnmounted(() => {
开启您的专属惊喜权益
@@ -258,9 +258,9 @@ onUnmounted(() => { clearable @keyup.enter="handleRedeem" /> - -