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 | 318 ++++++++++++----------------------------------------
1 files changed, 74 insertions(+), 244 deletions(-)
diff --git a/gz-customerSystem/src/views/register/index.jsx b/gz-customerSystem/src/views/register/index.jsx
index 78a9971..7378401 100644
--- a/gz-customerSystem/src/views/register/index.jsx
+++ b/gz-customerSystem/src/views/register/index.jsx
@@ -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: '事项来源',
@@ -400,13 +190,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: '事项来源',
@@ -456,13 +249,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: '事项来源',
@@ -511,13 +307,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: '事项来源',
@@ -567,13 +366,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: '事项来源',
@@ -623,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: '事项来源',
@@ -679,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: '事项来源',
@@ -793,7 +601,7 @@
width: 180,
render: (text, record) => (
<Space>
- <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer',color: '#1A6FB8' }}>详情</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>
),
@@ -881,13 +689,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: '督办意见',
@@ -1068,6 +879,7 @@
}
}
+ //改变tab
const handleColumnType = (type) => {
console.log(type, 'type')
if (type === '2') {
@@ -1101,9 +913,7 @@
}
-
-
-
+ //改变工作总览
const tabActive = (key) => {
console.log(key, 'key')
setTabActivekey(key);
@@ -1144,6 +954,7 @@
}
}
+ //获取工作总览数据
const getCountList = async () => {
const res = await getCountListApi()
if (res.type) {
@@ -1152,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();
@@ -1288,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',cursor:'pointer' }}>大厅来访</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