From bdeacb9f02dfa74bac74296a4a2c989a8e0d45ff Mon Sep 17 00:00:00 2001
From: xusd <330628789@qq.com>
Date: Thu, 26 Jun 2025 17:52:12 +0800
Subject: [PATCH] feature:AI演示

---
 src/views/register/index.jsx |   74 ++++++++++++++++++++++++++++++++----
 1 files changed, 65 insertions(+), 9 deletions(-)

diff --git a/src/views/register/index.jsx b/src/views/register/index.jsx
index 5a040c7..3ece25e 100644
--- a/src/views/register/index.jsx
+++ b/src/views/register/index.jsx
@@ -9,6 +9,7 @@
 import React, { useEffect, useState, useMemo, useRef } from 'react';
 import { useNavigate } from 'react-router-dom';
 import { tab0, tab1, tab2, tab3, tab4, tab5, tab6, allSign, tab1bg } from '@/assets/images';
+import { aiMainTitle, Matter, applyRecord, transfer, transfer_1, Aimge, examine } from '@/assets/images'
 import TableView from '../../components/TableView';
 import NewPage from '../../components/NewPage';
 import TableDraftSearch from '../../components/TableDraftSearch';
@@ -32,7 +33,9 @@
 import './index.less';
 import ResponseDetail from './matterDetail/responseDetail';
 import SupervisingViews from './matterDetail/SupervisingViews';
-import { AiQuestion } from './visit/component/levelDetail';
+// import { AiQuestion } from './visit/component/levelDetail';
+import AiChat from './visit/component/AiChat';
+import { IconSend } from '@arco-design/web-react/icon'; // 顶部加上
 const FormItem = Form.Item;
 const TabPane = Tabs.TabPane;
 const { RangePicker } = DatePicker;
@@ -2617,10 +2620,43 @@
 	const [aiLawData, setAiLawData] = useState([]);
 	const [caseDetailAi, setCaseDetailAi] = useState({});
 	const [caseClaim, setCaseClaim] = useState('');
+	const [aiResult, setAiResult] = useState(null); // AI分析结果
+	const [caseDes, setCaseDes] = useState(''); // 案件描述
+
+	// AI相关函数
+	const handleAi = () => {
+		setCaseDes('');
+		setAiQuestionView(true);
+	};
+
 	useEffect(() => {
 		getCountData();
 		const visitWorkBenchStore = $$.getSessionStorage('visitWorkBench'); //缓存数据
 		const toKey = $$.getQueryString('tabActivekey'); //跳转的活跃key
+		
+		// 获取aiResult参数
+		const aiResultParam = $$.getQueryString('aiResult');
+		if (aiResultParam) {
+			try {
+				const aiResultData = JSON.parse(decodeURIComponent(aiResultParam));
+				setAiResult(aiResultData);
+				console.log('获取到AI分析结果:', aiResultData);
+			} catch (error) {
+				console.error('解析aiResult参数失败:', error);
+			}
+		}
+		
+		// 从sessionStorage获取caseDes参数
+		const caseDesFromStorage = sessionStorage.getItem('ai_chat_caseDes');
+		if (caseDesFromStorage) {
+			// 将案件描述包装成指定的查询格式
+			const formattedCaseDes = `我有一个案件:${caseDesFromStorage},请给我一些调解策略和相关法条信息`;
+			setCaseDes(formattedCaseDes);
+			console.log('获取到案件描述:', formattedCaseDes);
+			// 使用后立即删除,避免重复使用
+			sessionStorage.removeItem('ai_chat_caseDes');
+		}
+		
 		setMoutedFlag(true);
 		if (visitWorkBenchStore) {
 			setTabActivekey(visitWorkBenchStore.tabActivekey);
@@ -2633,6 +2669,17 @@
 		}
 		window.addEventListener('beforeunload', handleBeforeUnload);
 	}, []);
+
+	// 监听caseDes变化,如果有caseDes则自动打开AiChat弹窗
+	useEffect(() => {
+		if (caseDes && caseDes.trim()) {
+			console.log('检测到案件描述,1秒后自动打开AiChat弹窗:', caseDes);
+			// 延迟1秒等页面渲染完毕后再打开弹窗
+			setTimeout(() => {
+				setAiQuestionView(true);
+			}, 1000);
+		}
+	}, [caseDes]);
 
 	useEffect(() => {
 		if (moutedFlag) {
@@ -4179,14 +4226,23 @@
 						</Button>
 					</div>
 				</Modal>
-				<AiQuestion
-					visible={AiQuestionView}
-					onClose={() => setAiQuestionView(false)}
-					aiData={aiData}
-					aiLawData={aiLawData}
-					caseDetailAi={caseDetailAi}
-					caseClaim={caseClaim}
-				/>
+				{/* 解纷数智人图标 */}
+				<div className="gradient-box" onClick={() => handleAi()} style={{ top: '50%', zIndex: 1000 }}>
+					<div><img src={Aimge} alt='' style={{ width: '111px', height: '120px' }} /></div>
+					<div className="gradient-box-mainTitle">解纷数智人</div>
+					<div className="gradient-box-mainTitle"><img src={aiMainTitle} alt='' style={{ width: '14px', height: '14px', marginTop: '4px' }} /></div>
+				</div>
+				{AiQuestionView && (
+					<div style={{position: 'fixed', top: 0, left: 0, width: '100vw', height: '100vh', background: 'rgba(0,0,0,0.15)', zIndex: 2000, display: 'flex', alignItems: 'center', justifyContent: 'center'}}>
+						<div style={{position: 'relative'}}>
+							<AiChat user="hugeinfo" onClose={() => {
+								setAiQuestionView(false)
+								setCaseDes('')
+								sessionStorage.removeItem('ai_chat_caseDes');
+							}} initialQuery={caseDes} visible={AiQuestionView} />
+						</div>
+					</div>
+				)}
 			</div>
 		</NewPage>
 	);

--
Gitblit v1.8.0