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