From 862311c4686345362fcbc60e92c969fb5cb3369d Mon Sep 17 00:00:00 2001 From: dminyi <1301963064@qq.com> Date: Mon, 09 Sep 2024 17:07:39 +0800 Subject: [PATCH] 工作台 --- gz-customerSystem/src/assets/font/douYuZhuiGuangTi2.0.ttf | 0 gz-customerSystem/src/styles/public.less | 5 gz-customerSystem/src/views/register/index.less | 16 + gz-customerSystem/src/assets/images/index.js | 6 gz-customerSystem/src/views/register/matterDetail/fileMessage.jsx | 203 ++++++++----- gz-customerSystem/src/views/register/index.jsx | 630 ++++++++++++++++++++++++++++++++++------- gz-customerSystem/src/assets/images/floating.png | 0 gz-customerSystem/src/router/router.js | 4 8 files changed, 659 insertions(+), 205 deletions(-) diff --git a/gz-customerSystem/src/assets/font/douYuZhuiGuangTi2.0.ttf b/gz-customerSystem/src/assets/font/douYuZhuiGuangTi2.0.ttf new file mode 100644 index 0000000..6ef0c63 --- /dev/null +++ b/gz-customerSystem/src/assets/font/douYuZhuiGuangTi2.0.ttf Binary files differ diff --git a/gz-customerSystem/src/assets/images/floating.png b/gz-customerSystem/src/assets/images/floating.png new file mode 100644 index 0000000..9229380 --- /dev/null +++ b/gz-customerSystem/src/assets/images/floating.png Binary files differ diff --git a/gz-customerSystem/src/assets/images/index.js b/gz-customerSystem/src/assets/images/index.js index 91af7c6..9c21414 100644 --- a/gz-customerSystem/src/assets/images/index.js +++ b/gz-customerSystem/src/assets/images/index.js @@ -2,7 +2,7 @@ * @Company: hugeInfo * @Author: lwh * @Date: 2023-04-24 16:12:00 - * @LastEditTime: 2024-09-09 09:44:30 + * @LastEditTime: 2024-09-09 15:35:32 * @LastEditors: dminyi 1301963064@qq.com * @Version: 1.0.0 * @Description: @@ -72,6 +72,7 @@ import tab6 from "./tab6.png"; import visitInto from "./visitInto.png"; import checkInto from "./checkInto.png"; +import floating from "./floating.png"; export { ledger_1, @@ -138,5 +139,6 @@ tab5, tab6, visitInto, - checkInto + checkInto, + floating }; \ No newline at end of file diff --git a/gz-customerSystem/src/router/router.js b/gz-customerSystem/src/router/router.js index 59db9ab..9ab1fef 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-08 15:15:51 + * @LastEditTime: 2024-09-09 15:48:38 * @LastEditors: dminyi 1301963064@qq.com * @Version: 1.0.0 * @Description: 路由 @@ -221,7 +221,7 @@ <Route path="visit/:id?" element={<Visit />} /> <Route path="visit/eventFlow/:caseTaskId?/:caseId?" element={<EventFlow />} /> <Route path="visit/handleFeedback/:caseTaskId?/:caseId?" element={<HandleFeedback />} /> - <Route path="visit/fileMessage" element={<FileMessage />} /> + <Route path="visit/fileMessage/:caseTaskId?/:caseId?" element={<FileMessage />} /> <Route path="visit/closingReview/:caseTaskId?/:caseId?" element={<ClosingReview />}/> <Route path="visit/visitWorkBench" element={<VisitWorkBench />}/> diff --git a/gz-customerSystem/src/styles/public.less b/gz-customerSystem/src/styles/public.less index e824b98..05e8a8c 100644 --- a/gz-customerSystem/src/styles/public.less +++ b/gz-customerSystem/src/styles/public.less @@ -15,6 +15,11 @@ src: url('../assets/font/DingTalk_JinBuTi_Regular.ttf'); } +@font-face { + font-family: DouYu; + src: url('../assets/font/DingTalk_JinBuTi_Regular.ttf'); +} + html, body { margin: 0; diff --git a/gz-customerSystem/src/views/register/index.jsx b/gz-customerSystem/src/views/register/index.jsx index 30c32d4..0c63274 100644 --- a/gz-customerSystem/src/views/register/index.jsx +++ b/gz-customerSystem/src/views/register/index.jsx @@ -2,36 +2,46 @@ * @Author: dminyi 1301963064@qq.com * @Date: 2024-09-08 15:14:12 * @LastEditors: dminyi 1301963064@qq.com - * @LastEditTime: 2024-09-09 10:05:35 + * @LastEditTime: 2024-09-09 17:06:20 * @FilePath: \gzDyh\gz-customerSystem\src\views\register\index.jsx * @Description: 工作台 */ -import React, { useState } from 'react'; -import { tab1, tab2, tab3, tab4, tab5, tab6,visitInto,checkInto } from '@/assets/images' +import React, { useEffect, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; +import { tab1, tab2, tab3, tab4, tab5, tab6, visitInto, checkInto } from '@/assets/images' import TableView from '../../components/TableView'; import { Space } from 'antd'; -import { Tabs, Typography } from '@arco-design/web-react'; +import { Tabs, Typography, Radio } from '@arco-design/web-react'; +import * as $$ from '@/utils/utility'; const TabPane = Tabs.TabPane; +function pageMyTaskBlApi(data) { + return $$.ax.request({ url: `caseTask/pageMyTaskBl`, type: 'get', service: 'mediate', data }); +} +function getCountListApi(data) { + return $$.ax.request({ url: `caseTask/getCountList`, type: 'get', service: 'mediate', data }); +} const VisitWorkBench = () => { + const navigate = useNavigate(); const [tabActivekey, setTabActivekey] = useState('1') - const [column, setColumn] = useState('1') + const [CountList, setCountList] = useState({}) + const [direction, setDirection] = useState('回退审核') const tabsList = [ { key: '1', label: '待分派', bgColor: '#E8F8FF', - num: 10, + num: `${CountList?.waitDisp}`, img: tab1 }, { key: '2', label: '待签收', bgColor: '#E8FFEA', - num: 30, + num: `${CountList?.waitSign}`, img: tab2 }, @@ -39,7 +49,7 @@ key: '3', label: '待受理', bgColor: '#F5E8FF', - num: 50, + num: `${CountList?.waitAccept}`, img: tab3 }, @@ -47,7 +57,7 @@ key: '4', label: '办理中', bgColor: '#E6FFFB', - num: 60, + num: `${CountList?.waitReview}`, img: tab4 }, @@ -55,7 +65,7 @@ key: '5', label: '待审核', bgColor: '#E8F7FF', - num: 70, + num: `${CountList?.supervise}`, img: tab5 }, @@ -63,13 +73,13 @@ key: '6', label: '督办', bgColor: '#FFF7E6', - num: 80, + num: `${CountList?.processing}`, img: tab6 }, ] - const [fakeData1, setFakeData1] = useState( + const fakeData1 = [ { id: 1, @@ -114,7 +124,7 @@ // 更多字段... }, { - id: 2, + id: 3, caseNo: 'A20230101', judicNo: '证据材料', perClassName: '李晓明的纠纷化解申请表、身份证...', @@ -135,7 +145,7 @@ // 更多字段... }, { - id: 2, + id: 4, caseNo: 'A20230101', judicNo: '证据材料', perClassName: '李晓明的纠纷化解申请表、身份证...', @@ -156,7 +166,7 @@ // 更多字段... }, { - id: 2, + id: 5, caseNo: 'A20230101', judicNo: '证据材料', perClassName: '李晓明的纠纷化解申请表、身份证...', @@ -177,7 +187,7 @@ // 更多字段... }, { - id: 2, + id: 6, caseNo: 'A20230101', judicNo: '证据材料', perClassName: '李晓明的纠纷化解申请表、身份证...', @@ -198,7 +208,7 @@ // 更多字段... }, { - id: 2, + id: 7, caseNo: 'A20230101', judicNo: '证据材料', perClassName: '李晓明的纠纷化解申请表、身份证...', @@ -219,7 +229,7 @@ // 更多字段... }, { - id: 2, + id: 8, caseNo: 'A20230101', judicNo: '证据材料', perClassName: '李晓明的纠纷化解申请表、身份证...', @@ -240,7 +250,7 @@ // 更多字段... }, { - id: 2, + id: 9, caseNo: 'A20230101', judicNo: '证据材料', perClassName: '李晓明的纠纷化解申请表、身份证...', @@ -261,7 +271,7 @@ // 更多字段... }, { - id: 2, + id: 10, caseNo: 'A20230101', judicNo: '证据材料', perClassName: '李晓明的纠纷化解申请表、身份证...', @@ -284,110 +294,295 @@ // 更多数据... ] - ) + + const [columnType, setColumnType] = useState([ + { + title: '流转时间', + dataIndex: 'turnaroundTime', + key: 'turnaroundTime', + width: 100, + }, + { + title: '分派时限', + dataIndex: 'timeLimit', + key: 'timeLimit', + width: 60, + }, + { + title: '事项等级', + dataIndex: 'caseGrade', + key: 'caseGrade', + width: 180, + }, + { + title: '事项来源', + dataIndex: 'caseSource', + key: 'caseSource', + width: 180, + }, + { + title: '事项类型', + dataIndex: 'caseType', + key: 'caseType', + width: 180, + }, + { + title: '申请方', + dataIndex: 'plaintiffs', + key: 'plaintiffs', + width: 180, + }, + { + title: '被申请方', + dataIndex: 'defendants', + key: 'defendants', + width: 180, + }, + { + title: '操作', + dataIndex: 'actions', + key: 'actions', + width: 180, + render: (text, record) => ( + <Space style={{ color: '#1A6FB8' }}> + <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div> + <div onClick={() => navigate(`/mediate/visit/eventFlow?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> + </Space> + ), + }, + ]) // 列配置 - const [fakeColumns, setFakeColumns] = useState([ + const fakeColumns3 = [ { - title: tabActivekey === '5' ? '回退时间' : tabActivekey === '6' ? '督办时间' : '流转时间', - dataIndex: 'caseNo', - key: 'caseNo', + title: '流转时间', + dataIndex: 'turnaroundTime', + key: 'turnaroundTime', width: 100, render: (text, record, index) => <span>{index + 1}</span>, }, { title: '分派时限', - dataIndex: 'dispatchDeadline', - key: 'dispatchDeadline', - width: 60, - }, - { - title: '签收时限', - dataIndex: 'receiptDeadline', - key: 'receiptDeadline', - width: 60, - }, - { - title: '受理时限', - dataIndex: 'acceptanceDeadline', - key: 'acceptanceDeadline', - width: 60, - }, - { - title: '已办天数', - dataIndex: 'processedDays', - key: 'processedDays', - width: 60, - }, - { - title: '回复时限', - dataIndex: 'replyDeadline', - key: 'replyDeadline', + dataIndex: 'timeLimit', + key: 'timeLimit', width: 60, }, { title: '事项等级', - dataIndex: 'matterLevel', - key: 'matterLevel', + dataIndex: 'caseGrade', + key: 'caseGrade', width: 180, - render: (text) => ( - <> - {text}份 - </> - ), }, { title: '事项来源', - dataIndex: 'matterSource', - key: 'matterSource', + dataIndex: 'caseSource', + key: 'caseSource', width: 180, }, { title: '事项类型', - dataIndex: 'matterType', - key: 'matterType', - width: 180, - }, - { - title: '承办部门', - dataIndex: 'handlingDepartment', - key: 'handlingDepartment', - width: 180, - }, - { - title: '配合部门', - dataIndex: 'cooperatingDepartment', - key: 'cooperatingDepartment', - width: 180, - }, - { - title: '督办部门', - dataIndex: 'supervisionDepartment', - key: 'supervisionDepartment', - width: 180, - }, - { - title: '督办意见', - dataIndex: 'supervisionOpinion', - key: 'supervisionOpinion', - width: 180, - }, - { - title: '经办人', - dataIndex: 'handler', - key: 'handler', + dataIndex: 'caseType', + key: 'caseType', width: 180, }, { title: '申请方', - dataIndex: 'applicant', - key: 'applicant', + dataIndex: 'plaintiffs', + key: 'plaintiffs', width: 180, }, { title: '被申请方', - dataIndex: 'respondent', - key: 'respondent', + dataIndex: 'defendants', + key: 'defendants', + width: 180, + }, + { + title: '操作', + dataIndex: 'actions', + key: 'actions', + width: 180, + render: (text, record) => ( + <Space style={{ color: '#1A6FB8' }}> + <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div> + <div onClick={() => navigate(`/mediate/visit/eventFlow?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> + </Space> + ), + }, + ]; + const fakeColumns1 = [ + { + title: '流转时间', + dataIndex: 'turnaroundTime', + key: 'turnaroundTime', + width: 100, + render: (text, record, index) => <span>{index + 1}</span>, + }, + { + title: '签收时限', + dataIndex: 'timeLimit', + key: 'timeLimit', + width: 60, + }, + { + title: '事项等级', + dataIndex: 'caseGrade', + key: 'caseGrade', + width: 180, + }, + { + title: '事项来源', + dataIndex: 'caseSource', + key: 'caseSource', + width: 180, + }, + { + title: '事项类型', + dataIndex: 'caseType', + key: 'caseType', + width: 180, + }, + { + title: '申请方', + dataIndex: 'plaintiffs', + key: 'plaintiffs', + width: 180, + }, + { + title: '被申请方', + dataIndex: 'defendants', + key: 'defendants', + width: 180, + }, + { + title: '操作', + dataIndex: 'actions', + key: 'actions', + width: 180, + render: (text, record) => ( + <Space style={{ color: '#1A6FB8' }}> + <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div> + <div>签收</div> + </Space> + ), + }, + ]; + const fakeColumns2 = [ + { + title: '流转时间', + dataIndex: 'turnaroundTime', + key: 'turnaroundTime', + width: 100, + }, + { + title: '受理时限', + dataIndex: 'timeLimit', + key: 'timeLimit', + width: 60, + }, + { + title: '事项等级', + dataIndex: 'caseGrade', + key: 'caseGrade', + width: 180, + }, + { + title: '事项来源', + dataIndex: 'caseSource', + key: 'caseSource', + width: 180, + }, + { + title: '事项类型', + dataIndex: 'caseType', + key: 'caseType', + width: 180, + }, + { + title: '申请方', + dataIndex: 'plaintiffs', + key: 'plaintiffs', + width: 180, + }, + { + title: '被申请方', + dataIndex: 'defendants', + key: 'defendants', + width: 180, + }, + { + title: '操作', + dataIndex: 'actions', + key: 'actions', + width: 180, + render: (text, record) => ( + <Space style={{ color: '#1A6FB8' }}> + <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div> + <div onClick={() => navigate(`/mediate/visit/eventFlow?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> + </Space> + ), + }, + ]; + + const [column, setColumn] = useState([ + { + title: '流转时间', + dataIndex: 'turnaroundTime', + key: 'turnaroundTime', + width: 100, + }, + { + title: '已办天数', + dataIndex: 'processingDays', + key: 'processingDays', + width: 60, + }, + { + title: '事项等级', + dataIndex: 'caseGrade', + key: 'caseGrade', + width: 180, + }, + { + title: '事项来源', + dataIndex: 'caseSource', + key: 'caseSource', + width: 180, + }, + { + title: '事项类型', + dataIndex: 'caseType', + key: 'caseType', + width: 180, + }, + { + title: '承办部门', + dataIndex: 'organizingUnit', + key: 'organizingUnit', + width: 180, + }, + { + title: '配合部门', + dataIndex: 'cooperatingUnit', + key: 'cooperatingUnit', + width: 180, + }, + { + title: '经办人', + dataIndex: 'manager', + key: 'manager', + width: 180, + }, + { + title: '申请方', + dataIndex: 'plaintiffs', + key: 'plaintiffs', + width: 180, + }, + { + title: '被申请方', + dataIndex: 'defendants', + key: 'defendants', width: 180, }, { @@ -397,28 +592,201 @@ width: 180, render: (text, record) => ( <Space> - <div>详情</div> - <div>处理</div> + <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div> + <div onClick={() => navigate(`/mediate/visit/handleFeedback?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> </Space> ), }, - ]); + ]) + + const [backColumn, setBackColumn] = useState([ + { + title: '回退时间', + dataIndex: 'turnaroundTime', + key: 'turnaroundTime', + width: 100, + }, + { + title: '回退部门', + dataIndex: 'backUnit', + key: 'backUnit', + width: 60, + }, + { + title: '回退理由', + dataIndex: 'reason', + key: 'reason', + width: 180, + }, + { + title: '事项等级', + dataIndex: 'caseGrade', + key: 'caseGrade', + width: 180, + }, + { + title: '事项来源', + dataIndex: 'caseSource', + key: 'caseSource', + width: 180, + }, + { + title: '事项类型', + dataIndex: 'caseType', + key: 'caseType', + width: 180, + }, + { + title: '申请方', + dataIndex: 'plaintiffs', + key: 'plaintiffs', + width: 180, + }, + { + title: '被申请方', + dataIndex: 'defendants', + key: 'defendants', + width: 180, + }, + { + title: '操作', + dataIndex: 'actions', + key: 'actions', + width: 180, + render: (text, record) => ( + <Space> + <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>详情</div> + {/* <div onClick={() => navigate(`/mediate/visit/handleFeedback?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> */} + {(direction === '回退审核' || direction === '上报审核') && + <div onClick={() => navigate(`/mediate/visit/eventFlow?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> + + } + {(direction === '结案申请审核' || direction === '联合处置审核') && + <div onClick={() => navigate(`/mediate/visit/handleFeedback?caseTaskId=${'1'}&caseId=${'1'}`)} style={{ cursor: 'pointer' }}>处理</div> + } + </Space> + ), + }, + ]) + + const [mangeColumn, setMangeColumn] = useState([ + { + title: '督办时间', + dataIndex: 'turnaroundTime', + key: 'turnaroundTime', + width: 100, + render: (text, record, index) => <span>{index + 1}</span>, + }, + { + title: '回复时限', + dataIndex: 'timeLimit', + key: 'timeLimit', + width: 60, + }, + { + title: '督办部门', + dataIndex: 'caseGrade', + key: 'caseGrade', + width: 180, + }, + { + title: '督办意见', + dataIndex: 'opinion', + key: 'opinion', + width: 180, + }, + { + title: '事项等级', + dataIndex: 'caseGrade', + key: 'caseGrade', + width: 180, + }, + { + title: '事项来源', + dataIndex: 'caseSource', + key: 'caseSource', + width: 180, + }, + { + title: '事项类型', + dataIndex: 'caseType', + key: 'caseType', + width: 180, + }, + { + title: '申请方', + dataIndex: 'plaintiffs', + key: 'plaintiffs', + width: 180, + }, + { + title: '被申请方', + dataIndex: 'defendants', + key: 'defendants', + width: 180, + }, + { + title: '操作', + dataIndex: 'actions', + key: 'actions', + width: 180, + render: (text, record) => ( + <Space> + <div>回复</div> + <div>详情</div> + </Space> + ), + }, + ]) + + + const tabActive = (key) => { - setTabActivekey(key) + console.log(key, 'key') + setTabActivekey(key); + if (key === '1') { + setColumnType(fakeColumns3) + } + if (key === '2') { + setColumnType(fakeColumns1) + } + if (key === '3') { + setColumnType(fakeColumns2) + } + if (key === '4') { + setColumnType(column) + } + if (key === '5') { + setColumnType(backColumn) + } + if (key === '6') { + setColumnType(mangeColumn) + } } - // const columnChange = async () => { - // const res = await columnChangeApi() - // if (res.type) { - // setColumn(res.data) - // } - // } - - const handleColumnType = () => { - const columnList = column.filter(item => fakeColumns.some(itemNew => itemNew.title === item.title)) - setFakeColumns(columnList) + const pageMyTaskBl = async () => { + const res = await pageMyTaskBlApi({ page: 1, size: 10, timeStart: '', timeEnd: '', partyName: '', sortType: '', sortColmn: '' }) + if (res.type) { + console.log(res.data, 'res.data') + // setColumn(res.data) + } } + + const getCountList = async () => { + const res = await getCountListApi() + if (res.type) { + const data = res.data + setCountList(data) + } + } + + + + useEffect(() => { + // pageMyTaskBl(); + getCountList(); + }, [columnType,direction]) @@ -445,7 +813,7 @@ <div className='VisitWorkBench-middle'> <Tabs defaultActiveTab='1'> <TabPane - onChange={handleColumnType} + // onChange={handleColumnType} key='1' title={ <span style={{ fontSize: '15px' }}> @@ -459,8 +827,18 @@ } > <Typography.Paragraph> + {tabActivekey === '5' && + <Radio.Group + type='button' + name='direction' + value={direction} + onChange={(e) => setDirection(e)} + style={{ marginBottom: 16 }} + options={['回退审核', '上报审核', '结案申请审核', '联合处置审核']} + ></Radio.Group> + } <TableView - columns={fakeColumns} + columns={columnType} dataSource={fakeData1} size="small" rowKey="id" @@ -488,19 +866,33 @@ <Typography.Paragraph> </Typography.Paragraph> </TabPane> + {tabActivekey === '4' && + <TabPane + key='3' + title={ + <span style={{ fontSize: '15px' }}> + 已结案 + </span> + } + > + <Typography.Paragraph> + </Typography.Paragraph> + </TabPane> + } + </Tabs> </div> <div className='VisitWorkBench-bottom'> 自行排查 - <div style={{ display: 'flex',justifyContent:'space-evenly' }}> - <div style={{display:'flex'}}> - <div className='VisitWorkBench-bottom-title'>大厅来访</div> - <img src={visitInto} alt='' className='VisitWorkBench-bottom-img'/> + <div style={{ display: 'flex', justifyContent: 'space-evenly' }}> + <div className='bottomTab1'> + <div className='VisitWorkBench-bottom-title' onClick={() => navigate(`/mediate/visit`)} style={{ color: '#206BCD' }}>大厅来访</div> + <img src={visitInto} alt='' className='VisitWorkBench-bottom-img' /> </div> - <div style={{display:'flex'}}> - <div className='VisitWorkBench-bottom-title'>自行排查</div> - <img src={checkInto} alt='' className='VisitWorkBench-bottom-img'/> + <div className='bottomTab2'> + <div className='VisitWorkBench-bottom-title' style={{ color: '#D46B08' }}>自行排查</div> + <img src={checkInto} alt='' className='VisitWorkBench-bottom-img' /> </div> </div> </div> diff --git a/gz-customerSystem/src/views/register/index.less b/gz-customerSystem/src/views/register/index.less index 6a31642..463f38a 100644 --- a/gz-customerSystem/src/views/register/index.less +++ b/gz-customerSystem/src/views/register/index.less @@ -855,6 +855,8 @@ &-title{ width: 140px; + font-family: DingTalk; + font-size: 22px; } &-img { @@ -869,4 +871,18 @@ display: flex; justify-content: space-between; align-items: center; +} + +.bottomTab1{ + // display: 'flex', background: linear-gradient(to right, #6a1b9a, #e040fb) + display: flex; + background: linear-gradient(to right, #E8F7FF, #9FD4FD); + padding: 12px 16px 16px 16px; +} + +.bottomTab2{ + display: flex; + background: linear-gradient(to right, #FFF7E6, #FFD591); + padding: 12px 16px 16px 16px; + } \ No newline at end of file diff --git a/gz-customerSystem/src/views/register/matterDetail/fileMessage.jsx b/gz-customerSystem/src/views/register/matterDetail/fileMessage.jsx index a0bc307..13869c8 100644 --- a/gz-customerSystem/src/views/register/matterDetail/fileMessage.jsx +++ b/gz-customerSystem/src/views/register/matterDetail/fileMessage.jsx @@ -2,13 +2,17 @@ import NewPage from '@/components/NewPage'; import { Row, Col, Space } from 'antd'; import { Steps, Tabs, Typography, Rate, Button } from '@arco-design/web-react'; -import { apply } from '@/assets/images'; +import { apply,floating } from '@/assets/images'; import { result } from '@/assets/images/icon'; import * as $$ from '@/utils/utility'; -import { ApplyDialog, AgentDialog, Respondent } from '../visit/component/previewTable'; import TableView from '../../../components/TableView'; import { register, fold, down, empty, link } from '@/assets/images'; import ProgressStep from '@/components/ProgressStep/VisitStep'; +import { ApplyDialog, AgentDialog, Respondent, Company } from '../visit/component/previewTable'; +import HandleRecord from './HandleRecord'; +import { useParams } from 'react-router-dom'; +import ApplyInfo from './ApplyInfo' + const Step = Steps.Step; const TabPane = Tabs.TabPane; @@ -21,15 +25,27 @@ return $$.ax.request({ url: `caseEvaluate/getByCaseId?caseId=${caseId}`, type: 'get', service: 'mediate' }); } +function getCaseInfoApi(id) { + return $$.ax.request({ url: 'caseInfo/getCaseInfo?id=' + id, type: 'get', service: 'mediate' }); +} + +function listFeedbackApi(id) { + return $$.ax.request({ url: `caseFeedback/listFeedback?id=` + id, type: 'get', service: 'mediate' }); +} + +function getListCaseFlow(data) { + return $$.ax.request({ url: `caseTask/listCaseFlow`, type: 'get', service: 'mediate', data }); +} + const FileMessage = (props) => { - + const routeData = useParams(); const [tabsActive, setTabsActive] = useState('1'); const [current, setCurrent] = useState(7); const [grade, setGrade] = useState(0); + const [caseInfo, setCaseInfo] = useState({}) const [TransactResult, setTransactResult] = useState({}) const [filesCheck, setFilesCheck] = useState(false); - const [infoData, setInfoData] = useState({}); const [tabsList, setTabList] = useState([ { img: result, @@ -38,13 +54,19 @@ isNeedStep: true }, { + img: floating, + label: '流转督办', + key: '2', + }, + { img: apply, label: '申请记录', - key: '2', - isNeedStep: true,//加上这个就有进度条 + key: '3', }, ]) const [selectedTab, setSelectedTab] = useState('1'); // 默认选中第一个 tab + const [list, setList] = useState([]) + const [progressData, setProgressData] = useState({}) const tabs = [ @@ -120,59 +142,29 @@ console.log(res, 'resrs') } - const applyDialog = [ - { - trueName: '李四', - perClassName: '高级', - phone: '13700137000', - sex: '女', - certiTypeName: '护照', - certiNo: 'G12345678', - nationName: '满', - addr: '上海市浦东新区某公寓2号楼2单元202室', - placeAddr: '上海市黄浦区某路3号', - extreme: '否', - workUnit: '上海某金融公司', - person: '/path/to/anotherPerson.jpg', // 这应该是图片的实际路径 - link: '/path/to/anotherLink.png', // 这应该是链接图标的实际路径 + const getCaseInfo = async () => { + const res = await getCaseInfoApi('24083010062110001') + if (res.type) { + setCaseInfo(res.data) } - // 可以根据需要添加更多的对象来模拟更多条目的数据 - ]; + } - const agentDialog = [ - { - trueName: '王五', - perClassName: '自然人', - phone: '13600136000', - sex: '男', - certiTypeName: '身份证', - certiNo: '110101199501012345', - nationName: '汉', - addr: '广州市天河区某大厦A座501室', - placeAddr: '广州市越秀区某街4号', - extreme: '否', - workUnit: '广州某贸易公司', - agentRelateName: '配偶', - agentTypeName: '法定代理人', - perTypeName: '成年人', - person: '/path/to/person.jpg', // 应该是图片的实际路径 - link: '/path/to/link.png', // 应该是链接图标的实际路径 - }, - ]; + const listFeedback = async (id) => { + const res = await listFeedbackApi(id) + if (res.type) { + let data = res.data.caseFeedbackList + setList(data) + } + } - const respondent = [ - { - orgaType: '广东好又多贸易有限公司', - perClassName: '企业法人', - phone: '020-12345678', - address: '广州市天河区珠江新城花城大道66号', - companyType: '有限责任公司', - legalPerson: '江照月', - creditCode: '914401011234567890', - president: '广州市天河区珠江新城花城大道66号A座20层', - link: '/path/to/link.png', // 应该是链接图标的实际路径 - }, - ]; + const getData = async () => { + const res = await getListCaseFlow({ + caseId: routeData.caseId + }) + if (res.type) { + setProgressData(res.data) + } + } const fakeColumns = [ { @@ -350,9 +342,21 @@ useEffect(() => { getByCaseId(); getTransactResult(); + getCaseInfo(); + listFeedback('24083010062110001'); + getData() }, []) + const applyData = caseInfo?.personList?.filter(item => item.perTypeName === "申请方当事人" && item.perClassName === "自然人"); + const agentData = caseInfo?.personList?.filter(item => item.perTypeName === "申请方代理人"); + const company = caseInfo?.personList?.filter(item => item.perTypeName === "申请方当事人" && item.perClassName === "非法人组织"); + const respondentData = caseInfo?.personList?.filter(item => item.perTypeName === "申请方当事人" && item.perClassName === "法人"); + + const applyData1 = caseInfo?.personList?.filter(item => item.perTypeName === "被申请方当事人" && item.perClassName === "自然人"); + const agentData1 = caseInfo?.personList?.filter(item => item.perTypeName === "被申请方代理人"); + const company1 = caseInfo?.personList?.filter(item => item.perTypeName === "被申请方当事人" && item.perClassName === "非法人组织"); + const respondentData1 = caseInfo?.personList?.filter(item => item.perTypeName === "被申请方当事人" && item.perClassName === "法人"); @@ -399,22 +403,52 @@ <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h4>当事人信息</h4> </Space> </Col> - <div style={{ marginBottom: '8px' }}>申请方</div> <div className="line-container" style={{ marginBottom: '20px' }}> <div className="line left-line"></div> <div className="line middle-line"></div> <div className="line right-line"></div> </div> - <ApplyDialog applyDialog={applyDialog} /> - <AgentDialog agentDialog={agentDialog} /> + {/* ApplyDialog 只有在 applyData 存在且不为空时才渲染 */} + {applyData && applyData.length > 0 ? ( + <ApplyDialog applyDialog={applyData} /> + ) : null} + + {/* AgentDialog 只有在 agentData 存在且不为空时才渲染 */} + {agentData && agentData.length > 0 ? ( + <AgentDialog agentDialog={agentData} /> + ) : null} + + {/* Respondent 只有在 respondentData 存在且不为空时才渲染 */} + {respondentData && respondentData.length > 0 ? ( + <Respondent respondent={respondentData} /> + ) : null} + + {company && company.length > 0 ? ( + <Company company={company} /> + ) : null} + <div style={{ marginBottom: '8px' }}>被申请方</div> <div className="line-container" style={{ marginBottom: '20px' }}> <div className="line left-line"></div> <div className="line middle-line"></div> <div className="line right-line"></div> </div> - <Respondent respondent={respondent} /> + {applyData1 && applyData1.length > 0 ? ( + <ApplyDialog applyDialog={applyData1} /> + ) : null} + + {agentData1 && agentData1.length > 0 ? ( + <AgentDialog agentDialog={agentData1} /> + ) : null} + + {respondentData1 && respondentData1.length > 0 ? ( + <Respondent respondent={respondentData1} /> + ) : null} + + {company1 && company1.length > 0 ? ( + <Company company={company1} /> + ) : null} <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '4px' }}> <Space size='small'> <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>纠纷基本情况</h5> @@ -423,68 +457,68 @@ <Row gutter={[16, 16]}> <Col span={8}> <div><div className="title-text">事项状态</div></div> - <div style={{ color: '#1A6FB8' }}>{infoData?.statusName || '-'}</div> + <div style={{ color: '#1A6FB8' }}>{caseInfo?.statusName || '-'}</div> </Col> <Col span={16}> <div><div className="title-text">事项编号</div></div> - <div>{infoData?.caseRef || '-'}</div> + <div>{caseInfo?.caseRef || '-'}</div> </Col> {/*事项等级分为三级,颜色需要做判断*/} <Col span={8}> <div className="title"><div className="title-text">事项等级</div></div> - <div style={{ display: 'flex' }}><div style={{ backgroundColor: '#00B42A', marginRight: '4px', borderRadius: '4px' }}><div style={{ color: '#FFFFFF', padding: '0px 6px' }}>{infoData.caseLevel || '-'}</div></div>级</div> + <div style={{ display: 'flex' }}><div style={{ backgroundColor: '#00B42A', marginRight: '4px', borderRadius: '4px' }}><div style={{ color: '#FFFFFF', padding: '0px 6px' }}>{caseInfo?.caseLevel || '-'}</div></div>级</div> </Col> <Col span={8}> <div><div className="title-text">来访时间</div></div> - <div>{infoData.visitTime || '-'}</div> + <div>{caseInfo?.visitTime || '-'}</div> </Col> <Col span={8}> <div ><div className="title-text">来访人数(人)</div></div> - <div>{infoData.visitPeopleNum || '-'}</div> + <div>{caseInfo?.visitPeopleNum || '-'}</div> </Col> <Col span={8}> <div ><div className="title-text">纠纷类型</div></div> - <div>{infoData.caseType || '-'}</div> + <div>{caseInfo?.caseType || '-'}</div> </Col> <Col span={8}> <div ><div className="title-text">纠纷发生时间</div></div> - <div>{infoData.occurTime || '-'}</div> + <div>{caseInfo?.occurTime || '-'}</div> </Col> <Col span={8}> <div ><div className="title-text">纠纷发生地点</div></div> - <div>{infoData.addr || '-'}</div> + <div>{caseInfo?.addr || '-'}</div> </Col> <Col span={8}> <div ><div className="title-text">问题属地</div></div> - <div>{infoData.questionName || '-'}</div> + <div>{caseInfo?.questionName || '-'}</div> </Col> <Col span={8}> <div ><div className="title-text">涉及人数(人)</div></div> - <div>{infoData.peopleNum || '-'}</div> + <div>{caseInfo?.peopleNum || '-'}</div> </Col> <Col span={8}> <div ><div className="title-text">涉及金额(元)</div></div> - <div>{$$.thousands(infoData.amount) || '-'}</div> + <div>{$$.thousands(caseInfo?.amount) || '-'}</div> </Col> <Col span={8}> <div ><div className="title-text">事项来源</div></div> - <div>{infoData.canalName || '-'}</div> + <div>{caseInfo?.canalName || '-'}</div> </Col> <Col span={16}> <div ><div className="title-text">来访形式</div></div> - <div>{infoData.visitWayName || '-'}</div> + <div>{caseInfo?.visitWayName || '-'}</div> </Col> <Col span={24}> <div className="title"><div className="title-text">事项概况</div></div> - <div>{infoData.caseDes || '-'}</div> + <div>{caseInfo?.caseDes || '-'}</div> </Col> <Col span={24}> <div className="title"><div className="title-text">事项申请</div></div> - <div>{infoData.caseClaim || '-'}</div> + <div>{caseInfo?.caseClaim || '-'}</div> </Col> <Col span={16}> <div className="title"><div className="title-text">是否重大矛盾纠纷</div></div> - <div>{infoData.majorStatus === '0' ? '否' : '是'}</div> + <div>{caseInfo?.majorStatus === '0' ? '否' : '是'}</div> </Col> </Row> <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '16px', marginTop: '20px' }}> @@ -548,7 +582,9 @@ <div className='gap'></div> <Col span={24} style={{ marginTop: '12px' }}> <div style={{ color: 'rgb(134, 144, 156)' }}>办理记录</div> - <div> + <HandleRecord isReview={false} data={list} /> + + {/* <div> {records.map(record => ( <div key={record.id} className='container-bottom-left-record'> <div className='container-bottom-left-record-top'> @@ -574,7 +610,7 @@ </div> </div> ))} - </div> + </div> */} </Col> <div className='gap'></div> <div style={{ marginLeft: '-16px' }}> @@ -668,14 +704,14 @@ <div className="title"> <div className="title-text">登记机构</div> </div> - <div>天河区棠下街道综治中心</div> + <div>{caseInfo?.inputUnitName || '-'}</div> </Col> <Col span={8}> <div className="title"> <div className="title-text">登记人</div> </div> <div> - 李晓明 + {caseInfo.inputUserName} <img src={register} alt='' style={{ width: '14px', height: '14px', marginLeft: '8px', marginTop: '4px' }} /> </div> </Col> @@ -683,7 +719,7 @@ <div className="title"> <div className="title-text">登记时间</div> </div> - <div>2024-7-8 10:00</div> + <div>{caseInfo?.visitTime || '-'}</div> </Col> </Row> </div> @@ -697,7 +733,10 @@ } { tabsActive === '2' && - <></> + <ProgressStep progressData={progressData} /> + } + {tabsActive === '3' && + <ApplyInfo /> } </TabPane> })} -- Gitblit v1.8.0