广州市综治平台前端
xusd
10 hours ago bdeacb9f02dfa74bac74296a4a2c989a8e0d45ff
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>
   );