From 92e258fd2f911df1e04d81ea847cfacdc7b8b874 Mon Sep 17 00:00:00 2001 From: zhangyongtian <1181606322@qq.com> Date: Wed, 11 Sep 2024 11:54:58 +0800 Subject: [PATCH] feat: 工作台时限组件 --- gz-customerSystem/src/views/register/index.jsx | 337 +++++++++++++------------------------------------------ 1 files changed, 82 insertions(+), 255 deletions(-) diff --git a/gz-customerSystem/src/views/register/index.jsx b/gz-customerSystem/src/views/register/index.jsx index 28dc3a6..7378401 100644 --- a/gz-customerSystem/src/views/register/index.jsx +++ b/gz-customerSystem/src/views/register/index.jsx @@ -2,7 +2,7 @@ * @Author: dminyi 1301963064@qq.com * @Date: 2024-09-08 15:14:12 * @LastEditors: dminyi 1301963064@qq.com - * @LastEditTime: 2024-09-10 16:58:03 + * @LastEditTime: 2024-09-10 20:29:15 * @FilePath: \gzDyh\gz-customerSystem\src\views\register\index.jsx * @Description: 工作台 */ @@ -13,6 +13,7 @@ import { Space } from 'antd'; import { Tabs, Typography, Radio } from '@arco-design/web-react'; import * as $$ from '@/utils/utility'; +import './index.less'; const TabPane = Tabs.TabPane; @@ -115,221 +116,7 @@ }, ] - const [fakeData1, setFakeData1] = useState( - [ - { - id: 1, - caseNo: 'A20230101', - judicNo: '申请材料', - perClassName: '李晓明的纠纷化解申请表、身份证...', - inputUserName: '0', - mediateUserName: '2024-7-12 12:00', - judgeName: '王五', - mediator: '赵六', - handlerUserName: '钱七', - returnUserName: '孙八', - expireTime: '2023-08-10T08:00:00.000Z', - processName: '进行中', - otherMediator: '周九', - canalName: '网络', - judicResult: '通过', - assistName: '吴十', - mediTypeName: '民事调解', - serieStatus: '1', // 1 表示非系列案,2 表示系列案 - // 更多字段... - }, - { - id: 2, - caseNo: 'A20230101', - judicNo: '证据材料', - perClassName: '李晓明的纠纷化解申请表、身份证...', - inputUserName: '0', - mediateUserName: '2024-7-12 12:00', - judgeName: '王五', - mediator: '赵六', - handlerUserName: '钱七', - returnUserName: '孙八', - expireTime: '2023-08-10T08:00:00.000Z', - processName: '进行中', - otherMediator: '周九', - canalName: '网络', - judicResult: '通过', - assistName: '吴十', - mediTypeName: '民事调解', - serieStatus: '1', // 1 表示非系列案,2 表示系列案 - // 更多字段... - }, - { - id: 3, - caseNo: 'A20230101', - judicNo: '证据材料', - perClassName: '李晓明的纠纷化解申请表、身份证...', - inputUserName: '0', - mediateUserName: '2024-7-12 12:00', - judgeName: '王五', - mediator: '赵六', - handlerUserName: '钱七', - returnUserName: '孙八', - expireTime: '2023-08-10T08:00:00.000Z', - processName: '进行中', - otherMediator: '周九', - canalName: '网络', - judicResult: '通过', - assistName: '吴十', - mediTypeName: '民事调解', - serieStatus: '1', // 1 表示非系列案,2 表示系列案 - // 更多字段... - }, - { - id: 4, - caseNo: 'A20230101', - judicNo: '证据材料', - perClassName: '李晓明的纠纷化解申请表、身份证...', - inputUserName: '0', - mediateUserName: '2024-7-12 12:00', - judgeName: '王五', - mediator: '赵六', - handlerUserName: '钱七', - returnUserName: '孙八', - expireTime: '2023-08-10T08:00:00.000Z', - processName: '进行中', - otherMediator: '周九', - canalName: '网络', - judicResult: '通过', - assistName: '吴十', - mediTypeName: '民事调解', - serieStatus: '1', // 1 表示非系列案,2 表示系列案 - // 更多字段... - }, - { - id: 5, - caseNo: 'A20230101', - judicNo: '证据材料', - perClassName: '李晓明的纠纷化解申请表、身份证...', - inputUserName: '0', - mediateUserName: '2024-7-12 12:00', - judgeName: '王五', - mediator: '赵六', - handlerUserName: '钱七', - returnUserName: '孙八', - expireTime: '2023-08-10T08:00:00.000Z', - processName: '进行中', - otherMediator: '周九', - canalName: '网络', - judicResult: '通过', - assistName: '吴十', - mediTypeName: '民事调解', - serieStatus: '1', // 1 表示非系列案,2 表示系列案 - // 更多字段... - }, - { - id: 6, - caseNo: 'A20230101', - judicNo: '证据材料', - perClassName: '李晓明的纠纷化解申请表、身份证...', - inputUserName: '0', - mediateUserName: '2024-7-12 12:00', - judgeName: '王五', - mediator: '赵六', - handlerUserName: '钱七', - returnUserName: '孙八', - expireTime: '2023-08-10T08:00:00.000Z', - processName: '进行中', - otherMediator: '周九', - canalName: '网络', - judicResult: '通过', - assistName: '吴十', - mediTypeName: '民事调解', - serieStatus: '1', // 1 表示非系列案,2 表示系列案 - // 更多字段... - }, - { - id: 7, - caseNo: 'A20230101', - judicNo: '证据材料', - perClassName: '李晓明的纠纷化解申请表、身份证...', - inputUserName: '0', - mediateUserName: '2024-7-12 12:00', - judgeName: '王五', - mediator: '赵六', - handlerUserName: '钱七', - returnUserName: '孙八', - expireTime: '2023-08-10T08:00:00.000Z', - processName: '进行中', - otherMediator: '周九', - canalName: '网络', - judicResult: '通过', - assistName: '吴十', - mediTypeName: '民事调解', - serieStatus: '1', // 1 表示非系列案,2 表示系列案 - // 更多字段... - }, - { - id: 8, - caseNo: 'A20230101', - judicNo: '证据材料', - perClassName: '李晓明的纠纷化解申请表、身份证...', - inputUserName: '0', - mediateUserName: '2024-7-12 12:00', - judgeName: '王五', - mediator: '赵六', - handlerUserName: '钱七', - returnUserName: '孙八', - expireTime: '2023-08-10T08:00:00.000Z', - processName: '进行中', - otherMediator: '周九', - canalName: '网络', - judicResult: '通过', - assistName: '吴十', - mediTypeName: '民事调解', - serieStatus: '1', // 1 表示非系列案,2 表示系列案 - // 更多字段... - }, - { - id: 9, - caseNo: 'A20230101', - judicNo: '证据材料', - perClassName: '李晓明的纠纷化解申请表、身份证...', - inputUserName: '0', - mediateUserName: '2024-7-12 12:00', - judgeName: '王五', - mediator: '赵六', - handlerUserName: '钱七', - returnUserName: '孙八', - expireTime: '2023-08-10T08:00:00.000Z', - processName: '进行中', - otherMediator: '周九', - canalName: '网络', - judicResult: '通过', - assistName: '吴十', - mediTypeName: '民事调解', - serieStatus: '1', // 1 表示非系列案,2 表示系列案 - // 更多字段... - }, - { - id: 10, - caseNo: 'A20230101', - judicNo: '证据材料', - perClassName: '李晓明的纠纷化解申请表、身份证...', - inputUserName: '0', - mediateUserName: '2024-7-12 12:00', - judgeName: '王五', - mediator: '赵六', - handlerUserName: '钱七', - returnUserName: '孙八', - expireTime: '2023-08-10T08:00:00.000Z', - processName: '进行中', - otherMediator: '周九', - canalName: '网络', - judicResult: '通过', - assistName: '吴十', - mediTypeName: '民事调解', - serieStatus: '1', // 1 表示非系列案,2 表示系列案 - // 更多字段... - }, - - // 更多数据... - ]) + const [fakeData1, setFakeData1] = useState([]) const [columnType, setColumnType] = useState([ { @@ -342,13 +129,16 @@ title: '分派时限', dataIndex: 'timeLimit', key: 'timeLimit', - width: 60, + width: 190, + render: (text, record, index) => { + return getDiffTime(record.timeLimit) + } }, { title: '事项等级', dataIndex: 'caseGrade', key: 'caseGrade', - width: 180, + width: 80, }, { title: '事项来源', @@ -395,19 +185,21 @@ dataIndex: 'turnaroundTime', key: 'turnaroundTime', width: 100, - render: (text, record, index) => <span>{index + 1}</span>, }, { title: '分派时限', dataIndex: 'timeLimit', key: 'timeLimit', - width: 60, + width: 190, + render: (text, record, index) => { + return getDiffTime(record.timeLimit) + } }, { title: '事项等级', dataIndex: 'caseGrade', key: 'caseGrade', - width: 180, + width: 80, }, { title: '事项来源', @@ -452,19 +244,21 @@ dataIndex: 'turnaroundTime', key: 'turnaroundTime', width: 100, - render: (text, record, index) => <span>{index + 1}</span>, }, { title: '分派时限', dataIndex: 'timeLimit', key: 'timeLimit', - width: 60, + width: 190, + render: (text, record, index) => { + return getDiffTime(record.timeLimit) + } }, { title: '事项等级', dataIndex: 'caseGrade', key: 'caseGrade', - width: 180, + width: 80, }, { title: '事项来源', @@ -498,7 +292,7 @@ render: (text, record) => ( <Space style={{ color: '#1A6FB8' }}> <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>详情</div> - </Space> + </Space> ), }, ]; @@ -508,19 +302,21 @@ dataIndex: 'turnaroundTime', key: 'turnaroundTime', width: 100, - render: (text, record, index) => <span>{index + 1}</span>, }, { title: '签收时限', dataIndex: 'timeLimit', key: 'timeLimit', - width: 60, + width: 190, + render: (text, record, index) => { + return getDiffTime(record.timeLimit) + } }, { title: '事项等级', dataIndex: 'caseGrade', key: 'caseGrade', - width: 180, + width: 80, }, { title: '事项来源', @@ -554,7 +350,7 @@ render: (text, record) => ( <Space style={{ color: '#1A6FB8' }}> <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>详情</div> - <div onClick={() => handleSign(record.caseId, record.ownerId)}>签收</div> + <div onClick={() => handleSign(record.caseId, record.ownerId)} style={{ cursor: 'pointer' }}>签收</div> </Space> ), }, @@ -565,19 +361,21 @@ dataIndex: 'turnaroundTime', key: 'turnaroundTime', width: 100, - render: (text, record, index) => <span>{index + 1}</span>, }, { title: '签收时限', dataIndex: 'timeLimit', key: 'timeLimit', - width: 60, + width: 190, + render: (text, record, index) => { + return getDiffTime(record.timeLimit) + } }, { title: '事项等级', dataIndex: 'caseGrade', key: 'caseGrade', - width: 180, + width: 80, }, { title: '事项来源', @@ -627,13 +425,16 @@ title: '受理时限', dataIndex: 'timeLimit', key: 'timeLimit', - width: 60, + width: 190, + render: (text, record, index) => { + return getDiffTime(record.timeLimit) + } }, { title: '事项等级', dataIndex: 'caseGrade', key: 'caseGrade', - width: 180, + width: 80, }, { title: '事项来源', @@ -683,13 +484,16 @@ title: '受理时限', dataIndex: 'timeLimit', key: 'timeLimit', - width: 60, + width: 190, + render: (text, record, index) => { + return getDiffTime(record.timeLimit) + } }, { title: '事项等级', dataIndex: 'caseGrade', key: 'caseGrade', - width: 180, + width: 80, }, { title: '事项来源', @@ -797,7 +601,7 @@ width: 180, render: (text, record) => ( <Space> - <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>详情</div> + <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer', color: '#1A6FB8' }}>详情</div> <div onClick={() => navigate(`/mediate/visit/handleFeedback?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer', color: '#1A6FB8' }}>处理</div> </Space> ), @@ -880,19 +684,21 @@ dataIndex: 'turnaroundTime', key: 'turnaroundTime', width: 100, - render: (text, record, index) => <span>{index + 1}</span>, }, { title: '回复时限', dataIndex: 'timeLimit', key: 'timeLimit', - width: 60, + width: 190, + render: (text, record, index) => { + return getDiffTime(record.timeLimit) + } }, { title: '督办部门', dataIndex: 'caseGrade', key: 'caseGrade', - width: 180, + width: 80, }, { title: '督办意见', @@ -1008,7 +814,7 @@ render: (text, record) => ( <Space style={{ color: '#1A6FB8' }}> <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>详情</div> - <div onClick={() => navigate(`/mediate/visit/closingReview?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>处理</div> + <div onClick={() => navigate(`/mediate/visit/closingReview?caseTaskId=${record.ownerId}&caseId=${record.caseId}&windupId=${record.windupId}`)} style={{ cursor: 'pointer' }}>处理</div> </Space> ), }, @@ -1018,6 +824,8 @@ const res = await signApi({ caseId: caseId, caseTaskId: ownerId }) if (res.type) { $$.infoSuccess({ content: '签收成功' }); + getCountList(); + pageMyTaskFpNew() } } @@ -1071,6 +879,7 @@ } } + //改变tab const handleColumnType = (type) => { console.log(type, 'type') if (type === '2') { @@ -1085,7 +894,7 @@ } if (tabActivekey === '4') { setColumnType(caseResultApply) - pageMyTaskBl('1') + pageMyTaskBl('0') } } if (type === '1') { @@ -1097,16 +906,14 @@ if (type === '3') { if (tabActivekey === '4') { setColumnType(backColumn) - pageMyTaskBl('2') + pageMyTaskBl('1') } } } - - - + //改变工作总览 const tabActive = (key) => { console.log(key, 'key') setTabActivekey(key); @@ -1147,6 +954,7 @@ } } + //获取工作总览数据 const getCountList = async () => { const res = await getCountListApi() if (res.type) { @@ -1155,16 +963,35 @@ } } - - - - - - - + //获取时间差,返回表格时限组件 + const getDiffTime = (timeLimit) => { + if (timeLimit) { + // 转换为Date对象 + let targetDate = new Date(timeLimit); + // 获取当前时间 + let now = new Date(); + // 计算时间差(毫秒) + let diff = Math.abs(targetDate - now); + // 将时间差转换为小时和分钟 + let hours = Math.floor(diff / (1000 * 60 * 60)); + let minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)); + // 比较两个时间 + if (targetDate.getTime() <= now.getTime()) { + return <> + <span className='timeTip-red'> + <span className='timeTip-red-drop'></span>{`超${hours}小时${minutes}分钟`} + </span> + <span className='timeTip-red-tips'>督</span> + </> + } else { + return <span className='timeTip-green'><span className='timeTip-green-drop'></span>{`剩${hours}小时${minutes}分钟`}</span> + } + } else { + return <span>-</span> + } + } useEffect(() => { - pageMyTaskFpNew() // pageMyTaskBl(); getCountList(); @@ -1291,7 +1118,7 @@ 自行排查 <div style={{ display: 'flex', justifyContent: 'space-evenly' }}> <div className='bottomTab1'> - <div className='VisitWorkBench-bottom-title' onClick={() => navigate(`/mediate/visit`)} style={{ color: '#206BCD' }}>大厅来访</div> + <div className='VisitWorkBench-bottom-title' onClick={() => navigate(`/mediate/visit`)} style={{ color: '#206BCD', cursor: 'pointer' }}>大厅来访</div> <img src={visitInto} alt='' className='VisitWorkBench-bottom-img' /> </div> <div className='bottomTab2'> -- Gitblit v1.8.0