forked from gzzfw/frontEnd/gzDyh

dminyi
2024-09-13 aa117c3b45b0a7770185fceb4d9efefd9642b054
gz-customerSystem/src/views/register/index.jsx
@@ -8,15 +8,18 @@
 */
import React, { useEffect, useState, useRef } from 'react';
import { useNavigate } from 'react-router-dom';
import { tab1, tab2, tab3, tab4, tab5, tab6, visitInto, checkInto } from '@/assets/images'
import { tab1, tab2, tab3, tab4, tab5, tab6 } from '@/assets/images'
import TableView from '../../components/TableView';
import { Space } from 'antd';
import { Tabs, Typography, Radio } from '@arco-design/web-react';
import { Tabs, Typography, Radio, Form, Input, DatePicker, Button, Grid, Modal } from '@arco-design/web-react';
import * as $$ from '@/utils/utility';
import './index.less';
const FormItem = Form.Item;
const TabPane = Tabs.TabPane;
const { RangePicker } = DatePicker;
const Row = Grid.Row;
const Col = Grid.Col;
//工作总览数据
function getCountListApi(data) {
@@ -58,13 +61,14 @@
  return $$.ax.request({ url: `caseTask/pageMyTaskDb`, type: 'get', service: 'mediate', data });
}
//签收
//签收接口
function signApi(data) {
  return $$.ax.request({ url: `caseTask/sign`, type: 'post', service: 'mediate', data });
}
const VisitWorkBench = () => {
  const navigate = useNavigate();
  const formRef = useRef();
  // 静态数据
  //分派表头
@@ -73,7 +77,7 @@
      title: '流转时间',
      dataIndex: 'turnaroundTime',
      key: 'turnaroundTime',
      width: 100,
      width: 150,
    },
    {
      title: '分派时限',
@@ -121,7 +125,7 @@
      title: '流转时间',
      dataIndex: 'turnaroundTime',
      key: 'turnaroundTime',
      width: 100,
      width: 150,
    },
    {
      title: '签收时限',
@@ -136,7 +140,7 @@
      title: '事项等级',
      dataIndex: 'caseGrade',
      key: 'caseGrade',
      width: 80,
      width: 100,
    },
    {
      title: '事项来源',
@@ -169,7 +173,7 @@
      title: '流转时间',
      dataIndex: 'turnaroundTime',
      key: 'turnaroundTime',
      width: 100,
      width: 150,
    },
    {
      title: '受理时限',
@@ -184,7 +188,7 @@
      title: '事项等级',
      dataIndex: 'caseGrade',
      key: 'caseGrade',
      width: 80,
      width: 100,
    },
    {
      title: '事项来源',
@@ -574,7 +578,7 @@
              title: '流转时间',
              dataIndex: 'turnaroundTime',
              key: 'turnaroundTime',
              width: 100,
              width: 150,
            },
            {
              title: '已办天数',
@@ -653,7 +657,7 @@
              title: '结案申请时间',
              dataIndex: 'turnaroundTime',
              key: 'turnaroundTime',
              width: 180,
              width: 150,
            },
            {
              title: '事项等级',
@@ -935,7 +939,7 @@
              title: '督办时间',
              dataIndex: 'turnaroundTime',
              key: 'turnaroundTime',
              width: 100,
              width: 150,
            },
            {
              title: '回复时限',
@@ -1094,6 +1098,8 @@
  })
  const [total, setTotal] = useState(0);//表格数据总数量
  const [loading, setLoading] = useState(false);//表格loading
  const [selectedRowKeys, setSelectedRowKeys] = useState([]);//批量签收的id
  const [selectedRows, setSelectedRows] = useState([]);//批量签收的数据
  useEffect(() => {
    getCountData();
@@ -1103,9 +1109,15 @@
    getTableData(tabActivekey)
  }, [searchData, pageData])
  //批量选择
  const onSelectChange = (newSelectedRowKeys, selectedRows) => {
    setSelectedRowKeys(newSelectedRowKeys);
    setSelectedRows(selectedRows)
  }
  //签收
  const handleSign = async (caseId, ownerId) => {
    const res = await signApi({ caseId: caseId, caseTaskId: ownerId })
    const res = await signApi([{ caseId: caseId, caseTaskId: ownerId }])
    if (res.type) {
      $$.infoSuccess({ content: '签收成功' });
      getCountData();
@@ -1245,8 +1257,48 @@
    }
  }
  //查询
  const handleSubmit = () => {
    const data = formRef.current.getFieldsValue();
    const { time, ...rest } = data
    setSearchData({
      ...searchData,
      timeStart: time ? time[0] : '',
      timeEnd: time ? time[1] : '',
      ...rest
    })
  }
  //批量签收
  const handleBatchQs = () => {
    console.log(selectedRows);
    const paramsList = selectedRows.map(item => {
      return {
        caseId: item.caseId,
        caseTaskId: item.ownerId
      }
    })
    Modal.confirm({
      title: '签收确认',
      content: '确认批量签收?',
      onOk: async () => {
        const res = await signApi(paramsList)
        if (res.type) {
          $$.infoSuccess({ content: '批量签收成功成功!' });
          getCountData();
          getTableData(tabActivekey)
        }
      },
    });
  }
  const rowSelection = {
    selectedRowKeys: selectedRowKeys,
    onChange: onSelectChange,
  }
  return (
    <div className='VisitWorkBench'>
    <div className='VisitWorkBench' >
      <div className='VisitWorkBench-top'>
        <span style={{ fontWeight: 600 }}>工作总览</span>
        <div className='VisitWorkBench-top-list'>
@@ -1272,7 +1324,14 @@
          }
        </div>
      </div>
      <div className='VisitWorkBench-middle'>
      <div
        className='VisitWorkBench-middle'
        onKeyUp={(e) => {
          if (e.key === 'Enter') {
            handleSubmit()
          }
        }}
      >
        <Tabs
          activeTab={searchData.status}
          onChange={handleColumnType}
@@ -1288,7 +1347,7 @@
              }
            >
              <Typography.Paragraph key={item.value}>
                {tabActivekey == 5 &&
                {tabActivekey == '5' &&
                  <Radio.Group
                    type='button'
                    value={searchData.type}
@@ -1315,7 +1374,8 @@
                  />
                }
                <TableView
                  columns={tabActivekey == 5 ? item.columnsMap[searchData.type] : item.columns}
                  rowSelection={tabActivekey == '2' && item.value === '1' ? rowSelection : null}
                  columns={tabActivekey == '5' ? item.columnsMap[searchData.type] : item.columns}
                  dataSource={tableData}
                  size="small"
                  rowKey="caseId"
@@ -1340,15 +1400,60 @@
                  }}
                />
              </Typography.Paragraph>
              {
                (tabActivekey == '2' && item.value === '1') && <div className='VisitWorkBench-middle-select'>
                  <span>已选{selectedRowKeys.length}项</span>
                  <span className='linkBtnColor' onClick={() => {
                    setSelectedRowKeys([])
                    setSelectedRows([])
                  }}>取消</span>
                  <span className='linkBtnColor' onClick={handleBatchQs}>批量签收</span>
                </div>
              }
            </TabPane>
          })}
        </Tabs>
        <div className='VisitWorkBench-middle-search'>
          <Form
            ref={formRef}
            layout="vertical"
          >
            <div style={{ display: 'flex' }}>
              <FormItem
                label=' '
                field='time'
              >
                <RangePicker
                  style={{ width: '100%' }}
                  format='YYYY-MM-DD HH:mm'
                  showTime={true}
                />
              </FormItem>
              <FormItem
                label=' '
                field='partyName'
              >
                <Input
                  allowClear
                  placeholder='查询申请方/被申请方关键词'
                />
              </FormItem>
              <Button
                type="primary"
                className="dialogPrimary"
                onClick={handleSubmit}
              >
                查询
              </Button>
            </div>
          </Form>
        </div>
      </div>
      <div className='VisitWorkBench-bottom'>
        群众来访接待
        <div style={{ display: 'flex', justifyContent: 'space-evenly',gap:'24px',marginTop:'16px' }}>
        <div style={{ display: 'flex', justifyContent: 'space-evenly', gap: '24px', marginTop: '16px' }}>
          <div className='bottomTab1' onClick={() => navigate(`/mediate/visit`)}>
            <div className='VisitWorkBench-bottom-title'  style={{ color: '#206BCD' }}>大厅来访</div>
            <div className='VisitWorkBench-bottom-title' style={{ color: '#206BCD' }}>大厅来访</div>
            {/* <img src={visitInto} alt='' className='VisitWorkBench-bottom-img' /> */}
          </div>
          <div className='bottomTab2'>