forked from gzzfw/frontEnd/gzDyh

zhangyongtian
2024-09-11 6ffddb4f427176d39bb41df21919d7038e5bf668
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 23:36:06
 * @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;
@@ -114,223 +115,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([
    {
      title: '流转时间',
@@ -342,13 +127,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: '事项来源',
@@ -379,6 +167,7 @@
      dataIndex: 'actions',
      key: 'actions',
      width: 180,
      fixed: 'right',
      render: (text, record) => (
        <Space style={{ color: '#1A6FB8' }}>
          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>详情</div>
@@ -395,19 +184,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: '事项来源',
@@ -438,6 +229,7 @@
      dataIndex: 'actions',
      key: 'actions',
      width: 180,
      fixed: 'right',
      render: (text, record) => (
        <Space style={{ color: '#1A6FB8' }}>
          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>详情</div>
@@ -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: '事项来源',
@@ -495,10 +289,11 @@
      dataIndex: 'actions',
      key: 'actions',
      width: 180,
      fixed: 'right',
      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 +303,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: '事项来源',
@@ -551,10 +348,11 @@
      dataIndex: 'actions',
      key: 'actions',
      width: 180,
      fixed: 'right',
      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 +363,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: '事项来源',
@@ -608,6 +408,7 @@
      dataIndex: 'actions',
      key: 'actions',
      width: 180,
      fixed: 'right',
      render: (text, record) => (
        <Space style={{ color: '#1A6FB8' }}>
          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>详情</div>
@@ -627,13 +428,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: '事项来源',
@@ -664,6 +468,7 @@
      dataIndex: 'actions',
      key: 'actions',
      width: 180,
      fixed: 'right',
      render: (text, record) => (
        <Space style={{ color: '#1A6FB8' }}>
          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>详情</div>
@@ -683,13 +488,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: '事项来源',
@@ -720,6 +528,7 @@
      dataIndex: 'actions',
      key: 'actions',
      width: 180,
      fixed: 'right',
      render: (text, record) => (
        <Space style={{ color: '#1A6FB8' }}>
          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>详情</div>
@@ -728,8 +537,7 @@
      ),
    },
  ];
  const [column, setColumn] = useState([
  const column = [
    {
      title: '流转时间',
      dataIndex: 'turnaroundTime',
@@ -795,16 +603,16 @@
      dataIndex: 'actions',
      key: 'actions',
      width: 180,
      fixed: 'right',
      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>
      ),
    },
  ])
  const [backColumn, setBackColumn] = useState([
  ]
  const backColumn = [
    {
      title: '回退时间',
      dataIndex: 'turnaroundTime',
@@ -858,6 +666,7 @@
      dataIndex: 'actions',
      key: 'actions',
      width: 180,
      fixed: 'right',
      render: (text, record) => (
        <Space>
          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>详情</div>
@@ -872,27 +681,29 @@
        </Space>
      ),
    },
  ])
  ]
  const [mangeColumn, setMangeColumn] = useState([
  const mangeColumn = [
    {
      title: '督办时间',
      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: '督办意见',
@@ -935,6 +746,7 @@
      dataIndex: 'actions',
      key: 'actions',
      width: 180,
      fixed: 'right',
      render: (text, record) => (
        <Space>
          <div>回复</div>
@@ -942,7 +754,7 @@
        </Space>
      ),
    },
  ])
  ]
  //结案申请
  const caseResultApply = [
@@ -1005,10 +817,80 @@
      dataIndex: 'actions',
      key: 'actions',
      width: 180,
      fixed: 'right',
      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>
      ),
    },
  ];
  const caseResultApplyInfo = [
    {
      title: '结案申请时间',
      dataIndex: 'turnaroundTime',
      key: 'turnaroundTime',
      width: 100,
    },
    {
      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: 'plaintiffs',
      key: 'plaintiffs',
      width: 180,
    },
    {
      title: '化解结果',
      dataIndex: 'mediResult',
      key: 'mediResult',
      width: 180,
    },
    {
      title: '被申请方',
      dataIndex: 'defendants',
      key: 'defendants',
      width: 180,
    },
    {
      title: '操作',
      dataIndex: 'actions',
      key: 'actions',
      width: 180,
      fixed: 'right',
      render: (text, record) => (
        <Space style={{ color: '#1A6FB8' }}>
          <div onClick={() => navigate(`/mediate/visit/fileMessage?caseTaskId=${record.ownerId}&caseId=${record.caseId}`)} style={{ cursor: 'pointer' }}>详情</div>
        </Space>
      ),
    },
@@ -1018,6 +900,8 @@
    const res = await signApi({ caseId: caseId, caseTaskId: ownerId })
    if (res.type) {
      $$.infoSuccess({ content: '签收成功' });
      getCountList();
      pageMyTaskFpNew()
    }
  }
@@ -1071,6 +955,7 @@
    }
  }
  //改变tab
  const handleColumnType = (type) => {
    console.log(type, 'type')
    if (type === '2') {
@@ -1085,7 +970,7 @@
      }
      if (tabActivekey === '4') {
        setColumnType(caseResultApply)
        pageMyTaskBl('1')
        pageMyTaskBl('0')
      }
    }
    if (type === '1') {
@@ -1096,17 +981,15 @@
    if (type === '3') {
      if (tabActivekey === '4') {
        setColumnType(backColumn)
        pageMyTaskBl('2')
        setColumnType(caseResultApplyInfo)
        pageMyTaskBl('1')
      }
    }
  }
  //改变工作总览
  const tabActive = (key) => {
    console.log(key, 'key')
    setTabActivekey(key);
@@ -1147,6 +1030,7 @@
    }
  }
  //获取工作总览数据
  const getCountList = async () => {
    const res = await getCountListApi()
    if (res.type) {
@@ -1155,16 +1039,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();
@@ -1225,10 +1128,7 @@
                size="small"
                rowKey="caseId"
                bordered={true}
                // style={{ marginBottom: '65px', marginTop: '-16px' }}
                rowSelection={{
                  type: 'Checkbox'
                }}
                scroll={{ x: 1300 }}
              />
            </Typography.Paragraph>
          </TabPane>
@@ -1252,10 +1152,7 @@
                size="small"
                rowKey="id"
                bordered={true}
                // style={{ marginBottom: '65px', marginTop: '-16px' }}
                rowSelection={{
                  type: 'Checkbox'
                }}
                scroll={{ x: 1300 }}
              />
            </Typography.Paragraph>
          </TabPane>
@@ -1275,10 +1172,7 @@
                  size="small"
                  rowKey="id"
                  bordered={true}
                  // style={{ marginBottom: '65px', marginTop: '-16px' }}
                  rowSelection={{
                    type: 'Checkbox'
                  }}
                  scroll={{ x: 1300 }}
                />
              </Typography.Paragraph>
            </TabPane>
@@ -1288,15 +1182,15 @@
      </div>
      <div className='VisitWorkBench-bottom'>
        自行排查
        <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 style={{ display: 'flex', justifyContent: 'space-evenly',gap:'24px',marginTop:'16px' }}>
          <div className='bottomTab1' style={{ cursor: 'pointer' }}>
            <div className='VisitWorkBench-bottom-title' onClick={() => {navigate(`/mediate/visit`)}} style={{ color: '#206BCD' }}>大厅来访</div>
            {/* <img src={visitInto} alt='' className='VisitWorkBench-bottom-img' /> */}
          </div>
          <div className='bottomTab2'>
          <div className='bottomTab2' style={{ cursor: 'pointer' }}>
            <div className='VisitWorkBench-bottom-title' style={{ color: '#D46B08' }}>自行排查</div>
            <img src={checkInto} alt='' className='VisitWorkBench-bottom-img' />
            {/* <img src={checkInto} alt='' className='VisitWorkBench-bottom-img' /> */}
          </div>
        </div>
      </div>