From d773483d402b983f67822c434546009bd0f1e2e9 Mon Sep 17 00:00:00 2001 From: dminyi <1301963064@qq.com> Date: Sun, 08 Sep 2024 15:18:44 +0800 Subject: [PATCH] ai对接 --- gz-customerSystem/src/views/register/index.less | 9 +++ gz-customerSystem/src/views/register/visit/component/levelDetail.jsx | 85 +++++++++++++++++++++------- gz-customerSystem/src/views/register/handleFeedback/index.jsx | 51 ++++++----------- gz-customerSystem/src/views/register/index.jsx | 10 +++ gz-customerSystem/src/router/router.js | 5 + 5 files changed, 105 insertions(+), 55 deletions(-) diff --git a/gz-customerSystem/src/router/router.js b/gz-customerSystem/src/router/router.js index 42c09b3..fc2e138 100644 --- a/gz-customerSystem/src/router/router.js +++ b/gz-customerSystem/src/router/router.js @@ -2,7 +2,7 @@ * @Company: hugeInfo * @Author: ldh * @Date: 2022-03-28 11:22:41 - * @LastEditTime: 2024-09-07 18:23:05 + * @LastEditTime: 2024-09-08 15:15:51 * @LastEditors: dminyi 1301963064@qq.com * @Version: 1.0.0 * @Description: 路由 @@ -144,6 +144,8 @@ import FileMessage from "../views/register/matterDetail/fileMessage"; //结案审核 import ClosingReview from "../views/register/closingReview"; +//工作台 +import VisitWorkBench from "../views/register"; import Test from "../views/test"; @@ -221,6 +223,7 @@ <Route path="visit/handleFeedback/:caseTaskId?/:caseId?" element={<HandleFeedback />} /> <Route path="visit/fileMessage" element={<FileMessage />} /> <Route path="visit/closingReview/:caseTaskId?/:caseId?" element={<ClosingReview />}/> + <Route path="visit/visitWorkBench" element={<VisitWorkBench />}/> diff --git a/gz-customerSystem/src/views/register/handleFeedback/index.jsx b/gz-customerSystem/src/views/register/handleFeedback/index.jsx index 17d0936..8c2488e 100644 --- a/gz-customerSystem/src/views/register/handleFeedback/index.jsx +++ b/gz-customerSystem/src/views/register/handleFeedback/index.jsx @@ -3,7 +3,7 @@ * @Author: dminyi 1301963064@qq.com * @Date: 2024-08-09 09:59:43 * @LastEditors: dminyi 1301963064@qq.com - * @LastEditTime: 2024-09-08 11:17:47 + * @LastEditTime: 2024-09-08 11:53:51 * @FilePath: \gzDyh\gz-customerSystem\src\views\basicInformation\organization\index.jsx * @Description: 来访登记 * @@ -38,9 +38,7 @@ return $$.ax.request({ urlAi: `case-law/get-law`, typeAi: 'post', service: 'mediate', data }); } -function getCaseDetailApi(data) { - return $$.ax.request({ urlAi: `case-law/get-case-detail`, typeAi: 'get', service: 'mediate', data }); -} + function getTabButton(data) { return $$.ax.request({ url: `caseTask/getTabButton`, type: 'get', service: 'mediate', data }); @@ -51,7 +49,7 @@ const Organization = () => { const routeData = useParams(); const [current, setCurrent] = useState(3); - const [tabsActive, setTabsActive] = useState('1'); + const [tabsActive, setTabsActive] = useState('sxxq'); const [AiQuestionView, setAiQuestionView] = useState(false) const [aiData, setAiData] = useState([]) const [aiLawData, setAiLawData] = useState([]) @@ -63,23 +61,18 @@ { img: Matter, label: '事项详情', - key: '1' + key: "sxxq" }, { img: transfer, - label: '流转办理', - key: '2', + label: '事项办理', + key: "sxbl", isNeedStep: true, }, { img: applyRecord, label: '申请记录', - key: '3', - }, - { - img: Audit, - label: '审核', - key: '4', + key: "sqjl", }, ] @@ -110,15 +103,7 @@ } } - const getCaseDetail = async () => { - const res = await getCaseDetailApi({ - caseId: '10086', - type: '1' - }) - if (res.type) { - setCaseDetail(res.data) - } - } + const getAuthor = async () => { const res = await getTabButton({ @@ -126,6 +111,7 @@ }) if (res.type) { const { tabList } = res.data + console.log(tabList, 'tabList1') setAuthorData(res.data) if (tabList.length === 0) { //没有tab就不展示 @@ -139,6 +125,7 @@ }) return flag })) + console.log(tabsList, 'tabsList2') setTabsActive(tabList[0].id) } } @@ -148,10 +135,9 @@ useEffect(() => { - // getAuthor(); - // getCase(); - // getLaw(); - // getCaseDetail(); + getAuthor(); + getCase(); + getLaw(); }, []) @@ -165,11 +151,11 @@ } > <Tabs - defaultActiveTab='1' + defaultActiveTab='sxxq' onChange={(v) => setTabsActive(v)} className='myTabContent' > - {myTab?.map(item => { + {tabsList?.map(item => { return <TabPane key={item.key} title={ @@ -191,16 +177,16 @@ </Steps> </div> } - {tabsActive === '1' && + {tabsActive === 'sxxq' && <MatterDetail hasApplet={true} hasEditBtn={true} /> } { - tabsActive === '2' && <Typography.Paragraph style={style}> + tabsActive === 'sxbl' && <Typography.Paragraph style={style}> <Handle /> </Typography.Paragraph> } { - tabsActive === '3' && <Typography.Paragraph style={style}> + tabsActive === 'sqjl' && <Typography.Paragraph style={style}> <AuditView /> </Typography.Paragraph> } @@ -217,7 +203,6 @@ onClose={() => setAiQuestionView(false)} aiData={aiData} aiLawData={aiLawData} - caseDetail={caseDetailView} /> </div> ) diff --git a/gz-customerSystem/src/views/register/index.jsx b/gz-customerSystem/src/views/register/index.jsx new file mode 100644 index 0000000..31c0b8c --- /dev/null +++ b/gz-customerSystem/src/views/register/index.jsx @@ -0,0 +1,10 @@ +import React from 'react'; + +const VisitWorkBench = () => { + return ( + <> + </> + ) +} + +export default VisitWorkBench; \ No newline at end of file diff --git a/gz-customerSystem/src/views/register/index.less b/gz-customerSystem/src/views/register/index.less index b3f48ff..38205be 100644 --- a/gz-customerSystem/src/views/register/index.less +++ b/gz-customerSystem/src/views/register/index.less @@ -719,6 +719,7 @@ flex: 1 1 0%; background-color: rgb(242, 243, 245); height: 100vh; + overflow-y: auto; &-case { display: flex; @@ -745,20 +746,28 @@ padding: 8px 12px; border-radius: 8px; margin-bottom: 8px; + margin-right: 16px; + align-items: center; + &-type { border: 1px solid #1A6FB8; padding: 0px 8px; color: #1A6FB8; border-radius: 4px; + width: 79px; + height: 24px; } &-name{ margin: 0px 16px 0px 8px; + max-width: 828px; + width: fit-content; } &-btn{ color: #1A6FB8; + width: 30px; } } } diff --git a/gz-customerSystem/src/views/register/visit/component/levelDetail.jsx b/gz-customerSystem/src/views/register/visit/component/levelDetail.jsx index 6404305..c48c6e5 100644 --- a/gz-customerSystem/src/views/register/visit/component/levelDetail.jsx +++ b/gz-customerSystem/src/views/register/visit/component/levelDetail.jsx @@ -2,13 +2,19 @@ * @Author: dminyi 1301963064@qq.com * @Date: 2024-08-27 16:47:12 * @LastEditors: dminyi 1301963064@qq.com - * @LastEditTime: 2024-09-08 10:36:03 + * @LastEditTime: 2024-09-08 15:06:05 * @FilePath: \gzDyh\gz-customerSystem\src\views\register\visit\component\levelDetail.jsx * @Description: 右抽屉提示 */ import React, { useEffect, useState } from 'react'; import MyDrawer from '@/components/MyDrawer'; import { caselogo } from '@/assets/images'; +import * as $$ from '@/utils/utility'; + + +function getCaseDetailApi(data) { + return $$.ax.request({ urlAi: `case-law/get-case-detail`, typeAi: 'get', service: 'mediate', data }); +} const EventLevelDrawer = ({ visible, onClose }) => { @@ -104,7 +110,7 @@ } -const AiQuestion = ({ visible, onClose, aiData,aiLawData,caseDetailView }) => { +const AiQuestion = ({ visible, onClose, aiData, aiLawData }) => { const [list, setList] = useState([ // { // id: '1', @@ -122,6 +128,10 @@ // name: '曾某某诉某网络科技公司劳动争议案' // }, ]) + const [caseDetailView, setCaseDetailView] = useState({}) + + const [modalType, setModalType] = useState('case') + const [lawDetail, setLawDetail] = useState({}) const [layerList, setLayerList] = useState([ { @@ -139,25 +149,47 @@ ]) const [caseDetail, setCaseDetail] = useState(false) - const toggleView = (type,id) => { - console.log(id, 'iddddddd') + const toggleView = (type, id) => { setCaseDetail(true) - if(type==='case'){ - setCaseDetail(true) - + setModalType(type) + + if (type === 'case') { + getCaseDetail(id); + } + if (type === 'law') { + console.log(id,'idddddd') + + const lawItem = aiLawData.find(item => item.lawInfoId === id) + console.log(lawItem,'lawItem') + setLawDetail(lawItem) } }; + const caseDetailOnClose = () => { setCaseDetail(false) } - + const getCaseDetail = async (id) => { + const res = await getCaseDetailApi({ + caseId: id, + type: '1' + }) + if (res.type) { + setCaseDetailView(res.data) + } + } + + + + + useEffect(() => { - setList(aiData) - setLayerList(aiLawData) - }, [aiData,aiLawData]) + setList(aiData); + setLayerList(aiLawData); + + }, [aiData, aiLawData]) return ( <> @@ -186,7 +218,7 @@ <div className='aiBox-list-item'> <div className='aiBox-list-item-type'>{item.caseType === 1 ? '典型案例' : '相似案例'}</div> <div className='aiBox-list-item-name'>{item.caseName}</div> - <div className='aiBox-list-item-btn' onClick={() => toggleView('case',item.id)}>查看</div> + <div className='aiBox-list-item-btn' onClick={() => toggleView('case', item.caseId)}>查看</div> </div> ))} </div> @@ -198,7 +230,7 @@ <div className='aiBox-list-item'> <div className='aiBox-list-item-type'>相关法条</div> <div className='aiBox-list-item-name'>{item.lawTitle}{item.lawIndex}</div> - <div className='aiBox-list-item-btn' onClick={() => toggleView('law',item.lawInfoId)}>查看</div> + <div className='aiBox-list-item-btn' onClick={() => toggleView('law', item.lawInfoId)}>查看</div> </div> ))} </div> @@ -211,20 +243,31 @@ <MyDrawer visible={caseDetail} onClose={caseDetailOnClose} - title="查看相关案例" + title={modalType === 'case'?"查看相关案例":"查看相关法条"} width={400} style={{ position: 'absolute' }} bodyStyle={{ marginTop: '-8px' }} titleBefore={true} > - <div className='layerDetail'> - <div className='layerDetail-title'>参考案例</div> - <div className='layerDetail-name'>唐某某诉重庆某工业有限公司劳动合同纠纷案</div> - <div className='layerDetail-littleTitle'>智能摘要</div> - <div className='layerDetail-content'>法院生效裁判认为,本案是肖某某要求某工业公司支付经济补偿金,原审法院已经确认某工业公司存在未足额支付肖某某工资、未休年休假工资情形,故依照《中华人民共和国劳动合同法》(以下简称劳动合同法)第三十八条第一款的规定,某工业公司应当支付解除合同的经济补偿金。</div> - </div> + { + modalType === 'case' && + <div className='layerDetail'> + <div className='layerDetail-title'>参考案例</div> + <div className='layerDetail-name'>{caseDetailView?.caseTitle || '-'}</div> + <div className='layerDetail-littleTitle'>基本案情</div> + <div className='layerDetail-content'>{caseDetailView?.caseDesc || '-'}</div> + <div className='layerDetail-littleTitle'>结果</div> + <div className='layerDetail-content'>{caseDetailView?.caseClaim || '-'}</div> + </div> + } + { + modalType === 'law' && + <div className='layerDetail'> + <div className='layerDetail-title'>{lawDetail?.lawIndex} {lawDetail?.lawTitle}</div> + <div className='layerDetail-littleTitle'>{lawDetail.lawDesc}</div> + </div> + } </MyDrawer> - </div> </> -- Gitblit v1.8.0