forked from gzzfw/frontEnd/gzDyh

dminyi
2024-09-09 3968797420c55607e7643f701ad9aa3d3efb775a
工作台
8 files added
5 files modified
547 ■■■■■ changed files
gz-customerSystem/src/api/appUrl.js 4 ●●●● patch | view | raw | blame | history
gz-customerSystem/src/assets/images/checkInto.png patch | view | raw | blame | history
gz-customerSystem/src/assets/images/index.js 20 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/assets/images/tab1.png patch | view | raw | blame | history
gz-customerSystem/src/assets/images/tab2.png patch | view | raw | blame | history
gz-customerSystem/src/assets/images/tab3.png patch | view | raw | blame | history
gz-customerSystem/src/assets/images/tab4.png patch | view | raw | blame | history
gz-customerSystem/src/assets/images/tab5.png patch | view | raw | blame | history
gz-customerSystem/src/assets/images/tab6.png patch | view | raw | blame | history
gz-customerSystem/src/assets/images/visitInto.png patch | view | raw | blame | history
gz-customerSystem/src/router/router.js 2 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/index.jsx 450 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/index.less 71 ●●●● patch | view | raw | blame | history
gz-customerSystem/src/api/appUrl.js
@@ -10,11 +10,11 @@
export const debug = {
  // web服务
  // baseUrl: 'http://gz.hugeinfo.com.cn',
  baseUrl: "http://sbv8tf.natappfree.cc",
  baseUrl: "http://192.168.3.108:9002",
  // baseUrl: 'http://mdqgnh.natappfree.cc',
  // 附件服务
  fileUrl: "http://sbv8tf.natappfree.cc",
  fileUrl: "http://192.168.3.108:9002",
  // fileUrl: 'http://gz.hugeinfo.com.cn',
  // 文件查看url 后面接附件编号
gz-customerSystem/src/assets/images/checkInto.png
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-07 14:08:18
 * @LastEditTime: 2024-09-09 09:44:30
 * @LastEditors: dminyi 1301963064@qq.com
 * @Version: 1.0.0
 * @Description:
@@ -64,6 +64,14 @@
import Audit from "./Audit.png";
import aiPerson from "./aiPerson.png";
import caselogo from "./caselogo.png";
import tab1 from "./tab1.png";
import tab2 from "./tab2.png";
import tab3 from "./tab3.png";
import tab4 from "./tab4.png";
import tab5 from "./tab5.png";
import tab6 from "./tab6.png";
import visitInto from "./visitInto.png";
import checkInto from "./checkInto.png";
export {
  ledger_1,
@@ -122,5 +130,13 @@
  up,
  Audit,
  aiPerson,
  caselogo
  caselogo,
  tab1,
  tab2,
  tab3,
  tab4,
  tab5,
  tab6,
  visitInto,
  checkInto
};
gz-customerSystem/src/assets/images/tab1.png
gz-customerSystem/src/assets/images/tab2.png
gz-customerSystem/src/assets/images/tab3.png
gz-customerSystem/src/assets/images/tab4.png
gz-customerSystem/src/assets/images/tab5.png
gz-customerSystem/src/assets/images/tab6.png
gz-customerSystem/src/assets/images/visitInto.png
gz-customerSystem/src/router/router.js
@@ -225,8 +225,6 @@
                        <Route path="visit/closingReview/:caseTaskId?/:caseId?" element={<ClosingReview />}/>
                        <Route path="visit/visitWorkBench" element={<VisitWorkBench />}/>
                        {/* 工作流模块 */}
                        <Route path="workflowTemplate" element={<WorkflowTemplate />} />
                        <Route path="workflowTemplate/workflowTemplateEdit" element={<WorkflowTemplateEdit />} />
gz-customerSystem/src/views/register/index.jsx
@@ -1,19 +1,38 @@
import React from 'react';
/*
 * @Author: dminyi 1301963064@qq.com
 * @Date: 2024-09-08 15:14:12
 * @LastEditors: dminyi 1301963064@qq.com
 * @LastEditTime: 2024-09-09 10:05:35
 * @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 TableView from '../../components/TableView';
import { Space } from 'antd';
import { Tabs, Typography } from '@arco-design/web-react';
const TabPane = Tabs.TabPane;
const VisitWorkBench = () => {
  const [tabActivekey, setTabActivekey] = useState('1')
  const [column, setColumn] = useState('1')
  const tabsList = [
    {
      key: '1',
      label: '待分派',
      bgColor: '#E8F8FF',
      num: 10,
      img: tab1
    },
    {
      key: '2',
      label: '待签收',
      bgColor: '#E8FFEA',
      num: 30,
      img: tab2
    },
    {
@@ -21,6 +40,7 @@
      label: '待受理',
      bgColor: '#F5E8FF',
      num: 50,
      img: tab3
    },
    {
@@ -28,6 +48,7 @@
      label: '办理中',
      bgColor: '#E6FFFB',
      num: 60,
      img: tab4
    },
    {
@@ -35,6 +56,7 @@
      label: '待审核',
      bgColor: '#E8F7FF',
      num: 70,
      img: tab5
    },
    {
@@ -42,22 +64,378 @@
      label: '督办',
      bgColor: '#FFF7E6',
      num: 80,
      img: tab6
    },
  ]
  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: 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: 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: 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: 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: 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: 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: 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: 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 表示系列案
        // 更多字段...
      },
      // 更多数据...
    ]
  )
  // 列配置
  const [fakeColumns, setFakeColumns] = useState([
    {
      title: tabActivekey === '5' ? '回退时间' : tabActivekey === '6' ? '督办时间' : '流转时间',
      dataIndex: 'caseNo',
      key: 'caseNo',
      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',
      width: 60,
    },
    {
      title: '事项等级',
      dataIndex: 'matterLevel',
      key: 'matterLevel',
      width: 180,
      render: (text) => (
        <>
          {text}份
        </>
      ),
    },
    {
      title: '事项来源',
      dataIndex: 'matterSource',
      key: 'matterSource',
      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',
      width: 180,
    },
    {
      title: '申请方',
      dataIndex: 'applicant',
      key: 'applicant',
      width: 180,
    },
    {
      title: '被申请方',
      dataIndex: 'respondent',
      key: 'respondent',
      width: 180,
    },
    {
      title: '操作',
      dataIndex: 'actions',
      key: 'actions',
      width: 180,
      render: (text, record) => (
        <Space>
          <div>详情</div>
          <div>处理</div>
        </Space>
      ),
    },
  ]);
  const tabActive = (key) => {
    setTabActivekey(key)
  }
  // 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)
  }
  return (
    <div className='VisitWorkBench'>
      <div className='VisitWorkBench-top'>
        工作总览
        <span style={{ fontWeight: 600 }}>工作总览</span>
        <div className='VisitWorkBench-top-list'>
          {
            tabsList.map((item, index) => (
              <div key={index} className='VisitWorkBench-top-list-tabsItem' style={{ backgroundColor: item.bgColor }}>
              <div key={index} className='VisitWorkBench-top-list-tabsItem' style={{ backgroundColor: item.bgColor }} onClick={() => tabActive(item.key)}>
                <div>
                  <div>{item.label}</div>
                  <div>{item.num}件</div>
                  <span className='VisitWorkBench-top-list-tabsItem-title'>{item.num}</span>件
                </div>
                <div>
                <img src={item.img} alt=''/>
                  <img src={item.img} alt='' className='VisitWorkBench-top-list-tabsItem-imgView' />
                </div>
              </div>
            ))
@@ -65,10 +443,66 @@
        </div>
      </div>
      <div className='VisitWorkBench-middle'>
        222
        <Tabs defaultActiveTab='1'>
          <TabPane
            onChange={handleColumnType}
            key='1'
            title={
              <span style={{ fontSize: '15px' }}>
                {tabActivekey === '1' ? '待分派' :
                  tabActivekey === '2' ? '待签收' :
                    tabActivekey === '3' ? '待受理' :
                      tabActivekey === '4' ? '办理中' :
                        tabActivekey === '5' ? '待审核' : '督办-未回复'
                }
              </span>
            }
          >
            <Typography.Paragraph>
              <TableView
                columns={fakeColumns}
                dataSource={fakeData1}
                size="small"
                rowKey="id"
                bordered={true}
                // style={{ marginBottom: '65px', marginTop: '-16px' }}
                rowSelection={{
                  type: 'Checkbox'
                }}
              />
            </Typography.Paragraph>
          </TabPane>
          <TabPane
            key='2'
            title={
              <span style={{ fontSize: '15px' }}>
                {tabActivekey === '1' ? '已分派' :
                  tabActivekey === '2' ? '已签收' :
                    tabActivekey === '3' ? '已受理' :
                      tabActivekey === '4' ? '结案申请' :
                        tabActivekey === '5' ? '已审核' : '督办-未回复'
                }
              </span>
            }
          >
            <Typography.Paragraph>
            </Typography.Paragraph>
          </TabPane>
        </Tabs>
      </div>
      <div className='VisitWorkBench-bottom'>
        333333
        自行排查
        <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>
          <div style={{display:'flex'}}>
            <div className='VisitWorkBench-bottom-title'>自行排查</div>
            <img src={checkInto} alt='' className='VisitWorkBench-bottom-img'/>
          </div>
        </div>
      </div>
    </div>
  )
gz-customerSystem/src/views/register/index.less
@@ -760,13 +760,13 @@
                height: 24px;
            }
            &-name{
            &-name {
                margin: 0px 16px 0px 8px;
                max-width: 828px;
                width: fit-content;
            }
            &-btn{
            &-btn {
                color: #1A6FB8;
                width: 30px;
            }
@@ -774,65 +774,98 @@
    }
}
.marginLeft{
.marginLeft {
    margin-left: 55px;
    //fontWeight: '600', marginBottom: '16px'
    &-title{
    &-title {
        font-weight: 600;
        margin-bottom: 16px;
    }
}
.layerDetail{
.layerDetail {
    margin-top: -8px;
    &-title{
    &-title {
        color: rgb(26, 111, 184);
        margin-bottom: 16px;
    }
    &-name{
    &-name {
        font-size: 16px;
        margin-bottom: 16px;
        max-width: 400px;
    }
    &-littleTitle{
    &-littleTitle {
        margin-bottom: 16px;
    }
    &-content{
    &-content {
        margin-bottom: 16px;
    }
}
.VisitWorkBench{
    &-top{
        background: #ffffff;
    padding: 12px 16px 16px 16px;
.VisitWorkBench {
    margin: 16px;
        &-list{
    &-top {
        background: #ffffff;
        padding: 12px 16px 16px 16px;
        &-list {
            display: flex;
            &-tabsItem{
            gap: 24px;
            margin-top: 16px;
            &-tabsItem {
                display: flex;
                padding: 12px 16px;
                flex: 1;
                justify-content: space-between;
                &-title {
                    font-size: 18px;
                    margin-right: 4px;
                }
                &-imgView {
                    width: 48px;
                    height: 48px;
                }
            }
        }
    }
    &-middle{
    &-middle {
        background: #ffffff;
        padding: 12px 16px 16px 16px;
        margin-top: 12px;
    }
    &-bottom{}
    &-bottom {
        background-color: #fff;
        padding: 12px 16px 16px 16px;
        margin-top: 12px;
        &-title{
            width: 140px;
        }
        &-img {
            width: 72px;
            height: 72px;
        }
    }
}
.modeMore{
.modeMore {
    display: flex;
    justify-content: space-between;
    align-items: center;