forked from gzzfw/frontEnd/gzDyh

dminyi
2024-09-10 842f0a4df6b10d70512e6bf48c99c54987c3bd25
gz-customerSystem/src/views/register/handleFeedback/index.jsx
@@ -3,22 +3,25 @@
 * @Author: dminyi 1301963064@qq.com
 * @Date: 2024-08-09 09:59:43
 * @LastEditors: dminyi 1301963064@qq.com
 * @LastEditTime: 2024-09-06 12:03:54
 * @LastEditTime: 2024-09-10 19:11:33
 * @FilePath: \gzDyh\gz-customerSystem\src\views\basicInformation\organization\index.jsx
 * @Description: 来访登记
 * 
 */
import React, { useState, useRef, Fragment } from "react";
import React, { useEffect, useState } from "react";
import NewPage from '@/components/NewPage';
import * as $$ from '@/utils/utility';
import "@arco-themes/react-gzzz/css/arco.css";
import '../index.less';
import { Typography, Steps, Tabs } from '@arco-design/web-react';
import { Audit, Matter, transfer } from '@/assets/images'
import { Audit, Matter, applyRecord, transfer, aiPerson } from '@/assets/images'
import MatterDetail from '../matterDetail';
import Handle from './component/handle';
import AuditView from './component/AuditView'
import AuditView from './component/AuditView';
import { AiQuestion } from '../visit/component/levelDetail';
import * as $$ from '@/utils/utility';
import { useParams } from 'react-router-dom';
const Step = Steps.Step;
const TabPane = Tabs.TabPane;
@@ -27,39 +30,145 @@
   // marginTop: 20,
};
function getCaseApi(data) {
   return $$.ax.request({ urlAi: `case-law/get-case`, typeAi: 'post', service: 'mediate', data });
}
function getLawApi(data) {
   return $$.ax.request({ urlAi: `case-law/get-law`, typeAi: 'post', service: 'mediate', data });
}
function getTabButton(caseTaskId) {
   return $$.ax.request({ url: `caseTask/getTabButton?caseTaskId=` + caseTaskId, type: 'get', service: 'mediate' });
}
function getCaseInfoApi(id) {
   return $$.ax.request({ url: '/caseInfo/getCaseInfo?id=' + id, type: 'get', service: 'mediate' });
}
const Organization = () => {
   const routeData = useParams();
   const caseTaskId = $$.getQueryString('caseTaskId')
   const caseId = $$.getQueryString('caseId')
   const [current, setCurrent] = useState(3);
   const [tabsActive, setTabsActive] = useState('1');
   const [tabsList, setTabList] = useState([
   const [tabsActive, setTabsActive] = useState('sxxq');
   const [AiQuestionView, setAiQuestionView] = useState(false)
   const [aiData, setAiData] = useState([])
   const [aiLawData, setAiLawData] = useState([]);
   const [caseDetailAi, setCaseDetailAi] = useState({});
   const [caseDetailView, setCaseDetail] = useState({})
   const [authorData, setAuthorData] = useState({});
   const [disTab, setDisTab] = useState(true);
   const [tabsList, setTabsList] = useState([]);
   const myTab = [
      {
         img: Matter,
         label: '事项详情',
         key: '1'
         key: "sxxq"
      },
      {
         img: transfer,
         label: '流转办理',
         key: '2',
         isNeedStep: true,//加上这个就有进度条
         label: '事项办理',
         key: "sxbl",
         isNeedStep: true,
      },
      {
         img: Audit,
         label: '审核',
         key: '3',
         img: applyRecord,
         label: '申请记录',
         key: "sqjl",
      },
   ])
   ]
   const handleAi = () => {
      setAiQuestionView(true)
   }
   const getCase = async () => {
      const res = await getCaseApi({
         caseDes: caseDetailAi?.caseDes,
         caseClaim: caseDetailAi?.caseClaim,
         caseId: caseId
      })
      console.log(res.data, 'res')
      if (res.type) {
         setAiData(res.data)
      }
   }
   const getLaw = async () => {
      const res = await getLawApi({
         caseDes: caseDetailAi?.caseDes,
         caseClaim: caseDetailAi?.caseClaim,
         caseId: caseId
      })
      if (res.type) {
         setAiLawData(res.data)
      }
   }
   const getAuthor = async () => {
      const res = await getTabButton(caseTaskId)
      if (res.type) {
         const { tabList } = res.data
         console.log(tabList, 'tabList1')
         setAuthorData(res.data)
         if (tabList.length === 0) {
            //没有tab就不展示
            setDisTab(false)
         } else {
            setTabsList(myTab.filter(item => {
               const flag = tabList.some(result => {
                  if (result.id === item.key) {
                     return true
                  }
               })
               return flag
            }))
            console.log(tabsList, 'tabsList2')
            setTabsActive(tabList[0].id)
         }
      }
   }
   const getCaseInfo = async (id) => {
      const res = await getCaseInfoApi(id)
      if (res.type) {
         console.log(res, 'res')
         let caseDes = res.data.caseDes;
         let caseClaim = res.data.caseClaim;
         setCaseDetailAi({ caseDes: caseDes, caseClaim: caseClaim })
      }
   }
   useEffect(() => {
      getCaseInfo(caseId)
      getAuthor();
      getCase();
      getLaw();
   }, [])
   return (
      <div style={{ position: 'relative' }}>
      <div style={{ position: 'relative', height: '100vh' }}>
         <NewPage
            pageHead={
               { breadcrumbData: [{ title: '工作台' }, { title: '事件中心' }], title: '办理反馈' }
            }
         >
            <Tabs
               defaultActiveTab='1'
               defaultActiveTab='sxxq'
               onChange={(v) => setTabsActive(v)}
               className='myTabContent'
            >
@@ -85,23 +194,33 @@
                           </Steps>
                        </div>
                     }
                     {tabsActive === '1' &&
                        <MatterDetail hasApplet={true} hasEditBtn={true} />
                     {tabsActive === 'sxxq' &&
                        <MatterDetail hasApplet={true} hasEditBtn={true} authorData={authorData} caseId={caseId} />
                     }
                     {
                        tabsActive === '2' && <Typography.Paragraph style={style}>
                           <Handle />
                        tabsActive === 'sxbl' && <Typography.Paragraph style={style}>
                           <Handle authorData={authorData} caseId={caseId} caseTaskId={caseTaskId} />
                        </Typography.Paragraph>
                     }
                     {
                        tabsActive === '3' && <Typography.Paragraph style={style}>
                           <AuditView />
                        tabsActive === 'sqjl' && <Typography.Paragraph style={style}>
                           <AuditView authorData={authorData} />
                        </Typography.Paragraph>
                     }
                  </TabPane>
               })}
            </Tabs>
         </NewPage>
         <div className="gradient-box" onClick={() => handleAi()}>
            <div><img src={aiPerson} alt='' style={{ width: '24px', height: '24px', marginRight: '6px' }} /></div>
            <div style={{ color: '#FFFFFF' }}>智能调解助理</div>
         </div>
         <AiQuestion
            visible={AiQuestionView}
            onClose={() => setAiQuestionView(false)}
            aiData={aiData}
            aiLawData={aiLawData}
         />
      </div>
   )
}