From a1b82d09dfd63d9caa82276bb359d23b1c206cb3 Mon Sep 17 00:00:00 2001
From: hongjli <3117313295@qq.com>
Date: 星期五, 11 四月 2025 15:08:42 +0800
Subject: [PATCH] 优化

---
 src/app/ai-scene/page.tsx |  272 ++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 232 insertions(+), 40 deletions(-)

diff --git a/src/app/ai-scene/page.tsx b/src/app/ai-scene/page.tsx
index eded6af..0b7e8c8 100644
--- a/src/app/ai-scene/page.tsx
+++ b/src/app/ai-scene/page.tsx
@@ -2,76 +2,268 @@
 
 import { useState } from 'react';
 import Card from '@/components/Card';
-import ChatDialog from '@/components/ChatDialog';
-import Navbar from '@/components/layout/Navbar';
+import SceneIntroDialog from '@/components/SceneIntroDialog';
+import { motion } from 'framer-motion';
 
 const services = [
-  {
-    title: '琛ユ枡',
-    description: '鏅鸿兘鍔ㄦ�佸垎鏋愪骇绾匡紝宸ヤ綅鐨勭己鏂欐儏鍐碉紝闄嶄綆鍋滅嚎椋庨櫓',
-    imageUrl: '/images/kanban.jpg',
-    chatbotId: 'JELkWpPLHQfRNhEH'
-  },
-  {
-    title: '鎻掑崟',
-    description: '鏅鸿兘璇勪及闇�姹傛彃鍗曞浜ц兘锛屽師鏉愭枡鍜屼氦浠樻湇鍔$殑褰卞搷锛屾彁鍗囧鎴锋弧鎰忓害',
-    imageUrl: '/images/xuqiu.jpg',
-    chatbotId: 'DfH4cIzujVGvn5iR'
-  },
-  {
-    title: '绉戞矁鏂攢鍞帹鑽愬皬鍔╂墜',
-    description: '鏅鸿兘鍖栦骇鍝佹帹鑽愭彁鍗囧璐晥鐜�',
-    imageUrl: '/images/robot.jpg',
-    chatbotId: 'sUAviPXvcEIw3oQC'
-  },
   {
     title: '搴撳瓨绠$悊鐭ヨ瘑搴撻棶绛�',
     description: '搴撳瓨鐭ヨ瘑锛屾彁渚涗笓涓氱殑渚涘簲閾惧簱瀛樼煡璇嗛棶绛�',
     imageUrl: '/images/know.jpg',
-    chatbotId: 'pDDfkU9HyBl2gzXx'
+    chatbotId: 'pDDfkU9HyBl2gzXx',
+    background: '楂樻晥鐨勫簱瀛樼鐞嗛渶瑕佷赴瀵岀殑涓撲笟鐭ヨ瘑鍜岀粡楠屻�侫I鐭ヨ瘑搴撴暣鍚堜簡澶ч噺渚涘簲閾惧拰搴撳瓨绠$悊鐨勪笓涓氱煡璇嗭紝鍙互蹇�熻В绛斿悇绫诲簱瀛樼鐞嗛棶棰樸��',
+    instructions: '鎮ㄥ彲浠ヨ闂换浣曚笌搴撳瓨绠$悊鐩稿叧鐨勯棶棰橈紝鍖呮嫭搴撳瓨绛栫暐銆佹垚鏈帶鍒躲�佸懆杞巼浼樺寲绛夛紝AI鍔╂墜灏嗕负鎮ㄦ彁渚涗笓涓氱殑瑙g瓟鍜屽缓璁��'
   },
+  {
+    title: '鎵湴鏈哄櫒浜洪攢鍞帹鑽愬皬鍔╂墜',
+    description: '鏅鸿兘鍖栦骇鍝佹帹鑽愭彁鍗囧璐晥鐜�',
+    imageUrl: '/images/robot.jpg',
+    chatbotId: 'sUAviPXvcEIw3oQC',
+    background: '闈㈠涓嶅悓瀹㈡埛鐨勪釜鎬у寲闇�姹傦紝濡備綍鍑嗙‘鎺ㄨ崘鍚堥�傜殑浜у搧鏄彁鍗囬攢鍞晥鐜囩殑鍏抽敭銆侫I鍔╂墜鍩轰簬娣卞害瀛︿範绠楁硶锛岃兘澶熺簿鍑嗗垎鏋愬鎴烽渶姹傦紝鎻愪緵涓�у寲鐨勪骇鍝佹帹鑽愩��',
+    instructions: '鎮ㄥ彲浠ユ弿杩板鎴风殑鍏蜂綋闇�姹傚拰鍋忓ソ锛孉I鍔╂墜灏嗘牴鎹繖浜涗俊鎭紝涓烘偍鎺ㄨ崘鏈�閫傚悎鐨勪骇鍝侊紝骞舵彁渚涗笓涓氱殑浜у搧浠嬬粛鍜岄攢鍞缓璁��'
+  },
+  {
+    title: '琛ユ枡',
+    description: '鏅鸿兘鍔ㄦ�佸垎鏋愪骇绾匡紝宸ヤ綅鐨勭己鏂欐儏鍐碉紝闄嶄綆鍋滅嚎椋庨櫓',
+    imageUrl: '/images/kanban.jpg',
+    chatbotId: 'JELkWpPLHQfRNhEH',
+    background: '鍦ㄧ敓浜х嚎杩愯杩囩▼涓紝鍙婃椂鍙戠幇骞惰В鍐崇己鏂欓棶棰樻槸淇濊瘉鐢熶骇鏁堢巼鐨勫叧閿�侫I绯荤粺閫氳繃瀹炴椂鐩戞帶鍜屽垎鏋愶紝甯姪鎮ㄦ彁鍓嶉璀﹀彲鑳界殑缂烘枡椋庨櫓锛屼紭鍖栬ˉ鏂欒鍒掋��',
+    instructions: '鎮ㄥ彲浠ユ弿杩板叿浣撶殑鐢熶骇绾挎儏鍐靛拰缂烘枡闂锛孉I鍔╂墜灏嗗熀浜庡巻鍙叉暟鎹拰瀹炴椂鐘舵�侊紝涓烘偍鎻愪緵鏈�浼樼殑琛ユ枡鏂规鍜屽缓璁��',
+    exampleData: `
+### 鐢熶骇浜у搧P鏃讹紝璇︾粏宸ヤ綅鐨勭墿鏂欓渶姹備俊鎭�
+
+| 宸ヤ綅 | 鍘熸潗鏂欓渶姹� | 鍘熸潗鏂欐秷鑰楅�熺巼 | 鐢熶骇鐨勪骇鍝� | 浜х嚎鍚� |
+| :--: | :--: | :--: | :--: | :--: |
+| 1 | A1 | 2/灏忔椂 | P | 浜х嚎1 |
+| 2 | A2 | 1/灏忔椂 | P | 浜х嚎1 |
+| 3 | A3 | 2/灏忔椂 | P | 浜х嚎1 |
+| 4 | A4 | 4/灏忔椂 | P | 浜х嚎1 |
+| 5 | A5 | 5/灏忔椂 | P | 浜х嚎1 |
+| 6 | - | - | P | 浜х嚎1 |
+| 7 | A7 | 3/灏忔椂 | P | 浜х嚎1 |
+| 8 | - | - | P | 浜х嚎1 |
+| 9 | A9 | 3/灏忔椂 | P | 浜х嚎1 |
+
+### 鍙互閫氳繃闆嗘垚绾胯竟搴撳瓨鑾峰彇锛圛OT锛屼紶鎰熷櫒锛孍RP绯荤粺绛夛級锛屼汉宸ョ洰瑙嗗彂鐜扮己鏂欐垨鑰呯墿鏂欒緝灏戞椂锛屼汉涓鸿Е鍙戯紙椋炰功锛屽井淇$瓑IM宸ュ叿涓婅緭鍏�/璇煶锛孹X宸ヤ綅锛孹X鐗╂枡缂烘枡锛�
+### 褰撳墠浜х嚎鐜板満搴撳瓨閲�
+
+| 鍘熸潗鏂� | 鏁伴噺 | 浜х嚎鍚� |
+| :--: | :--: | :--: |
+| A1 | 10 | 浜х嚎1 |
+| A2 | 10 | 浜х嚎1 |
+| A3 | 10 | 浜х嚎1 |
+| A4 | 10 | 浜х嚎1 |
+| A5 | 10 | 浜х嚎1 |
+| A6 | 10 | 浜х嚎1 |
+| A7 | 10 | 浜х嚎1 |
+| A8 | 10 | 浜х嚎1 |
+| A9 | 10 | 浜х嚎1 |
+
+### 闇�瑕侀�氳繃ERP/WMS鑾峰彇鏁版嵁锛岃嫢鏃犳硶鑾峰彇ERP/WMS绯荤粺鏁版嵁锛屽彲鐩存帴鐢变汉宸ュ懠鍙叿浣撹ˉ璐ф暟閲忥紝鐢熸垚浠撳簱琛ヨ揣鐪嬫澘
+### 褰撳墠鍘熸潗鏂欏簱涓紝瀛樻斁搴撲綅鍜屽簱瀛橀噺
+
+| 鍘熸潗鏂� | 搴撲綅 | 鏁伴噺 |
+| :--: | :--: | :--: |
+| A1 | 3-2 | 100 |
+| A2 | 3-1 | 100 |
+| A3 | 1-1 | 100 |
+| A4 | 1-2 | 100 |
+| A5 | 2-1 | 100 |
+| A7 | 2-2 | 100 |
+| A9 | 4-1 | 100 |
+`
+  },
+  {
+    title: '鎻掑崟1.0',
+    description: '鏅鸿兘璇勪及闇�姹傛彃鍗曞浜ц兘锛屽師鏉愭枡鍜屼氦浠樻湇鍔$殑褰卞搷锛屾彁鍗囧鎴锋弧鎰忓害',
+    imageUrl: '/images/xuqiu.jpg',
+    chatbotId: 'RhMYLHI1SZNiX4kl',
+    background: '鍦ㄧ敓浜ц鍒掓墽琛岃繃绋嬩腑锛屽父甯镐細閬囧埌绱ф�ヨ鍗曢渶瑕佹彃鍗曠殑鎯呭喌銆侫I绯荤粺鍙互蹇�熻瘎浼版彃鍗曞鐜版湁鐢熶骇璁″垝鐨勫奖鍝嶏紝骞舵彁渚涙渶浼樼殑鎻掑崟鏂规銆�',
+    instructions: '璇锋彁渚涢渶瑕佹彃鍗曠殑璁㈠崟淇℃伅锛屽寘鎷骇鍝佺被鍨嬨�佹暟閲忓拰鏈熸湜浜や粯鏃堕棿锛孉I鍔╂墜灏嗕负鎮ㄥ垎鏋愬彲琛屾�у苟缁欏嚭鍏蜂綋鐨勬彃鍗曞缓璁��',
+    exampleData: `
+### 鍩虹鏁版嵁锛氫骇鍝侊細A锛孊锛孋
+### A, B, C鐨凚OM
+
+| 浜у搧 | 鐗╂枡 | 鐗╂枡鍗曚綅鐢ㄩ噺 |
+| :--: | :--: | :--: |
+| A | 1001 | 1 |
+| A | 1002 | 3 |
+| A | 1003 | 3 |
+| B | 1001 | 1 |
+| B | 1002 | 2 |
+| B | 1004 | 3 |
+| C | 1005 | 1 |
+| C | 1002 | 3 |
+| C | 1003 | 2 |
+
+### 闇�姹傛暟鎹�
+
+| 浜у搧 | 闇�姹傛暟閲� | 闇�姹傛棩鏈� | 闇�姹傚崟鍙� | 瀹㈡埛 | 鍗曚环 |
+| :--: | :--: | :--: | :--: | :--: | :--: |
+| A | 1000 | 2/2/2025 | A1001 | 涓煶娌� | 100.0 |
+| A | 200 | 3/2/2025 | A1002 | 涓缓浜屽眬 | 95.0 |
+| A | 500 | 5/2/2025 | A1003 | 瀹濇闆嗗洟 | 90.0 |
+| B | 2000 | 3/2/2025 | B1001 | 涓煶娌� | 95.0 |
+| B | 300 | 4/2/2025 | B1002 | 涓缓浜屽眬 | 90.0 |
+| B | 100 | 7/2/2025 | B1003 | 瀹濇闆嗗洟 | 100.0 |
+| C | 800 | 4/2/2025 | C1001 | 涓煶娌� | 85.0 |
+| C | 600 | 7/2/2025 | C1002 | 涓缓浜屽眬 | 90.0 |
+| C | 400 | 8/2/2025 | C1003 | 瀹濇闆嗗洟 | 90.0 |
+
+### 鍋囪褰撳墠鏃ユ湡鏄�2鏈�1鏃ワ紝璁″垝寮�濮嬫棩鏈熸槸2鏈�2鏃ワ紝褰撳墠鏈変竴涓彃鍗曢渶姹傦細
+
+| 浜у搧 | 闇�姹傛暟閲� | 闇�姹傛棩鏈� | 闇�姹傚崟鍙� | 瀹㈡埛 | 鍗曚环 |
+| :--: | :--: | :--: | :--: | :--: | :--: |
+| A | 200 | 5/2/2025 | D1001 | 涓煶娌� | 100.0 |
+
+### 宸叉湁閲囪喘璁㈠崟
+
+| 渚涘簲鍟嗗悕绉� | 鐗╂枡 | 閲囪喘璁㈠崟鍙� | 棰勮鍒拌揣鏃ユ湡 | 閲囪喘鏁伴噺 |
+| :--: | :--: | :--: | :--: | :--: |
+| S1 | 1001 | PO1 | 2/2/2025 | 2000 |
+| S2 | 1002 | PO2 | 2/2/2025 | 1000 |
+| S3 | 1003 | PO3 | 2/2/2025 | 1000 |
+| S4 | 1004 | PO4 | 2/2/2025 | 800 |
+| S5 | 1005 | PO5 | 2/2/2025 | 800 |
+
+### 渚涘簲鍟嗗垪琛�
+
+| 渚涘簲鍟嗗悕绉� | 鐗╂枡 | 鑱旂郴鏂瑰紡 |
+| :--: | :--: | :--: |
+| S1 | 1001 | chenqinghonghs@163.com |
+| S2 | 1002 | chenqinghonghs@163.com |
+| S3 | 1003 | chenqinghonghs@163.com |
+| S4 | 1004 | chenqinghonghs@163.com |
+| S5 | 1005 | 16673976114@163.com |
+`
+  },
+  {
+    title: '鎻掑崟2.0',
+    description: '鏅鸿兘璇勪及闇�姹傛彃鍗曞浜ц兘锛屽師鏉愭枡鍜屼氦浠樻湇鍔$殑褰卞搷锛屾彁鍗囧鎴锋弧鎰忓害',
+    imageUrl: '/images/chadan2.jpg',
+    chatbotId: 'zO9YQDEHdIApG9zC',
+    background: '鍦ㄧ敓浜ц鍒掓墽琛岃繃绋嬩腑锛屽父甯镐細閬囧埌绱ф�ヨ鍗曢渶瑕佹彃鍗曠殑鎯呭喌銆侫I绯荤粺鍙互蹇�熻瘎浼版彃鍗曞鐜版湁鐢熶骇璁″垝鐨勫奖鍝嶏紝骞舵彁渚涙渶浼樼殑鎻掑崟鏂规銆�',
+    instructions: '璇锋彁渚涢渶瑕佹彃鍗曠殑璁㈠崟淇℃伅锛屽寘鎷骇鍝佺被鍨嬨�佹暟閲忓拰鏈熸湜浜や粯鏃堕棿锛孉I鍔╂墜灏嗕负鎮ㄥ垎鏋愬彲琛屾�у苟缁欏嚭鍏蜂綋鐨勬彃鍗曞缓璁��',
+    exampleData: `
+### 鍩虹鏁版嵁锛氫骇鍝侊細A锛孊锛孋
+### A, B, C鐨凚OM
+
+| 浜у搧 | 鐗╂枡 | 鐗╂枡鍗曚綅鐢ㄩ噺 |
+| :--: | :--: | :--: |
+| A | 1001 | 1 |
+| A | 1002 | 3 |
+| A | 1003 | 3 |
+| B | 1001 | 1 |
+| B | 1002 | 2 |
+| B | 1004 | 3 |
+| C | 1005 | 1 |
+| C | 1002 | 3 |
+| C | 1003 | 2 |
+
+### 闇�姹傛暟鎹�
+
+| 浜у搧 | 闇�姹傛暟閲� | 闇�姹傛棩鏈� | 闇�姹傚崟鍙� | 瀹㈡埛 | 鍗曚环 |
+| :--: | :--: | :--: | :--: | :--: | :--: |
+| A | 1000 | 2/2/2025 | A1001 | 涓煶娌� | 100.0 |
+| A | 200 | 3/2/2025 | A1002 | 涓缓浜屽眬 | 95.0 |
+| A | 500 | 5/2/2025 | A1003 | 瀹濇闆嗗洟 | 90.0 |
+| B | 2000 | 3/2/2025 | B1001 | 涓煶娌� | 95.0 |
+| B | 300 | 4/2/2025 | B1002 | 涓缓浜屽眬 | 90.0 |
+| B | 100 | 7/2/2025 | B1003 | 瀹濇闆嗗洟 | 100.0 |
+| C | 800 | 4/2/2025 | C1001 | 涓煶娌� | 85.0 |
+| C | 600 | 7/2/2025 | C1002 | 涓缓浜屽眬 | 90.0 |
+| C | 400 | 8/2/2025 | C1003 | 瀹濇闆嗗洟 | 90.0 |
+
+### 鍋囪褰撳墠鏃ユ湡鏄�2鏈�1鏃ワ紝璁″垝寮�濮嬫棩鏈熸槸2鏈�2鏃ワ紝褰撳墠鏈変竴涓彃鍗曢渶姹傦細
+
+| 浜у搧 | 闇�姹傛暟閲� | 闇�姹傛棩鏈� | 闇�姹傚崟鍙� | 瀹㈡埛 | 鍗曚环 |
+| :--: | :--: | :--: | :--: | :--: | :--: |
+| A | 200 | 5/2/2025 | D1001 | 涓煶娌� | 100.0 |
+
+### 宸叉湁閲囪喘璁㈠崟
+
+| 渚涘簲鍟嗗悕绉� | 鐗╂枡 | 閲囪喘璁㈠崟鍙� | 棰勮鍒拌揣鏃ユ湡 | 閲囪喘鏁伴噺 |
+| :--: | :--: | :--: | :--: | :--: |
+| S1 | 1001 | PO1 | 2/2/2025 | 2000 |
+| S2 | 1002 | PO2 | 2/2/2025 | 1000 |
+| S3 | 1003 | PO3 | 2/2/2025 | 1000 |
+| S4 | 1004 | PO4 | 2/2/2025 | 800 |
+| S5 | 1005 | PO5 | 2/2/2025 | 800 |
+
+### 渚涘簲鍟嗗垪琛�
+
+| 渚涘簲鍟嗗悕绉� | 鐗╂枡 | 鑱旂郴鏂瑰紡 |
+| :--: | :--: | :--: |
+| S1 | 1001 | chenqinghonghs@163.com |
+| S2 | 1002 | chenqinghonghs@163.com |
+| S3 | 1003 | chenqinghonghs@163.com |
+| S4 | 1004 | chenqinghonghs@163.com |
+| S5 | 1005 | 16673976114@163.com |
+`
+  }
 ];
 
 export default function AIScenePage() {
-  const [isChatOpen, setIsChatOpen] = useState(false);
-  const [currentChatbot, setCurrentChatbot] = useState('');
+  const [isIntroOpen, setIsIntroOpen] = useState(false);
+  const [selectedScene, setSelectedScene] = useState(services[0]);
 
-  const handleCardClick = (title: string, chatbotId?: string) => {
-    if (chatbotId) {
-      setCurrentChatbot(chatbotId);
-      setIsChatOpen(true);
-    }
+  const handleCardClick = (service: typeof services[0]) => {
+    setSelectedScene(service);
+    setIsIntroOpen(true);
   };
 
   return (
     <>
-      <Navbar />
       <div className="min-h-screen pt-16">
         <div className="flex-1 p-6 md:p-8 bg-gradient-to-b from-[var(--ai-surface)] to-white">
           <div className="max-w-7xl mx-auto">
-            <div className="mb-8">
-              <h1 className="text-3xl font-bold text-[var(--ai-primary)] mb-2">
+            <motion.div 
+              className="mb-8"
+              initial={{ opacity: 0, y: 20 }}
+              animate={{ opacity: 1, y: 0 }}
+              transition={{ duration: 0.6, ease: "easeOut" }}
+            >
+              <motion.h1 
+                className="text-3xl font-bold text-[var(--ai-primary)] mb-2"
+                initial={{ opacity: 0, x: -20 }}
+                animate={{ opacity: 1, x: 0 }}
+                transition={{ duration: 0.5, delay: 0.2 }}
+              >
                 AI鍦烘櫙妯℃嫙
                 <span className="ml-2 inline-block w-2 h-2 rounded-full bg-[var(--ai-secondary)] animate-pulse"></span>
-              </h1>
-              <p className="text-gray-600">閫夋嫨浠ヤ笅鍦烘櫙锛屼綋楠屼汉宸ユ櫤鑳藉浣曡В鍐冲疄闄呬笟鍔¢棶棰�</p>
-              <div className="h-1 w-24 bg-gradient-to-r from-[var(--ai-secondary)] to-[var(--ai-accent)] mt-4"></div>
-            </div>
+              </motion.h1>
+              <motion.p 
+                className="text-gray-600"
+                initial={{ opacity: 0, x: -20 }}
+                animate={{ opacity: 1, x: 0 }}
+                transition={{ duration: 0.5, delay: 0.3 }}
+              >
+                閫夋嫨浠ヤ笅鍦烘櫙锛屼綋楠屼汉宸ユ櫤鑳藉浣曡В鍐冲疄闄呬笟鍔¢棶棰�
+              </motion.p>
+              <motion.div 
+                className="h-1 w-24 bg-gradient-to-r from-[var(--ai-secondary)] to-[var(--ai-accent)]"
+                initial={{ scaleX: 0, opacity: 0 }}
+                animate={{ scaleX: 1, opacity: 1 }}
+                transition={{ duration: 0.6, delay: 0.4 }}
+                style={{ originX: 0 }}
+              ></motion.div>
+            </motion.div>
             <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
               {services.map((service, index) => (
                 <Card
                   key={index}
                   {...service}
-                  onClick={() => handleCardClick(service.title, service.chatbotId)}
+                  onClick={() => handleCardClick(service)}
                 />
               ))}
             </div>
           </div>
         </div>
-        <ChatDialog 
-          isOpen={isChatOpen} 
-          onClose={() => setIsChatOpen(false)}
-          chatbotId={currentChatbot}
+        
+        <SceneIntroDialog
+          isOpen={isIntroOpen}
+          onClose={() => setIsIntroOpen(false)}
+          scene={selectedScene}
         />
       </div>
     </>

--
Gitblit v1.9.3