forked from gzzfw/frontEnd/gzDyh

zhangyongtian
2024-09-14 0d40ce565cdc87668f83dbeddbf1246536986f9e
gz-customerSystem/src/views/register/matterDetail/index.jsx
@@ -1,137 +1,35 @@
import React, { useState, useEffect } from 'react';
import { Row, Col, Space, Button, Switch } from 'antd';
import PersonCard from '@/components/personCard';
import TableView from '@/components/TableView';
import * as $$ from '@/utils/utility';
import { Typography, Steps } from '@arco-design/web-react';
import { question, register, Matter, transfer } from '@/assets/images'
import { Typography } from '@arco-design/web-react';
import { question, register } from '@/assets/images';
import FileTable from "./FileTable";
function getCaseInfoApi(id) {
  return $$.ax.request({ url: 'caseInfo/getCaseInfo?id=' + id, type: 'get', service: 'mediate' });
}
function listIdTypeInfoApi(data) {
  return $$.ax.request({ url: `fileInfo/listIdTypeInfo`, type: 'post', service: 'sys', data });
  return $$.ax.request({ url: '/caseInfo/getCaseInfo?id=' + id, type: 'get', service: 'mediate' });
}
export default function MatterDetail(props) {
  const [fakeData, setFakeData] = useState([]);//当事人信息数据
  const [upload, setUpLoad] = useState(false);
  const [filesCheck, setFilesCheck] = useState(false);
  const [infoData, setInfoData] = useState({});
  const fakeColumns = [
    {
      title: '序号',
      dataIndex: 'caseNo',
      key: 'caseNo',
      width: 100,
      render: (text, record, index) => <span>{index + 1}</span>,
    },
    {
      title: '材料类型',
      dataIndex: 'ownerTypeName',
      key: 'ownerTypeName',
      width: 60,
    },
    {
      title: '材料数量',
      dataIndex: 'size',
      key: 'size',
      width: 180,
      render: (text) => <span>{text}份</span>,
    },
    {
      title: '材料名称',
      dataIndex: 'fileNames',
      key: 'fileNames',
      width: 180,
    },
    {
      title: '最新上传时间',
      dataIndex: 'fileNames',
      key: 'fileNames',
      width: 180,
    },
    {
      title: '操作',
      dataIndex: 'perClassName',
      key: 'perClassName',
      width: 200,
      render: (text) => (
        <div style={{ display: 'flex', color: '#1A6FB8', gap: '16px' }}>
          <div onClick={() => setFilesCheck(true)}>查看</div>
          <div>删除</div>
          <div>下载</div>
          <div onClick={() => setUpLoad(true)}>上传</div>
        </div>
      )
    },
    // 更多列配置...
  ];
  const [fakeData1, setFakeData1] = useState([
    {
      ownerTyp: "22_00018-101",
      ownerTypeName: "申请材料",
      size: '0',
      ownerId: null,
      ownerName: null,
      perType: null,
      agentStatus: null,
      fileNames: "-",
      fileList: []
    },
    {
      ownerType: "22_00018-102",
      ownerTypeName: "证据材料",
      size: '0',
      ownerId: null,
      ownerName: null,
      perType: null,
      agentStatus: null,
      fileNames: "-",
      fileList: []
    },
  ]);
  const listIdTypeInfo = async () => {
    const res = await listIdTypeInfoApi({
      mainId: props.id, //事项ID
      ownerIdList: [props.id], //具体所属编号
      typeList: []
    })
    if (res.type) {
      let data = res.data?.[0]?.fileList
      if (res.data.length > 0) {
        setFakeData1(data)
      }
    }
  }
  useEffect(() => {
    console.log(props);
    getCaseInfo(props.id)
    listIdTypeInfo()
  }, [props.id])
    getCaseInfo(props.caseId)
  }, [props.caseId])
  //获取id
  const getCaseInfo = async (id) => {
    const res = await getCaseInfoApi('24083010062110001')
    const res = await getCaseInfoApi(props.caseId)
    if (res.type) {
      let data = res.data
      const partyList = data.personList.concat(data.agentList)
      setInfoData({
        ...data,
        questionName: data.queProvName === null ? '-' : data.queProvName + '/' + data.queCityName + '/' + data.queAreaName + '/' + data.queRoadName + '/' + data.queVillageName,
        questionName: data.queAreaName === null ? '-' : data.queAreaName + '/' + data.queRoadName,
        caseType: data.caseTypeFirstName === null ? '-' : data.caseTypeFirstName + '/' + data.caseTypeName
      })
      setFakeData(partyList.map(item => {
@@ -141,16 +39,20 @@
        if (fileInfoList && fileInfoList.length != 0) {
          fileInfoList.forEach(item => {
            if (item.ownerType == '22_00018-202' || item.ownerType == '22_00018-203') {
              file.push({
                name: item.fileList[0].trueName,
                uid: item.fileList[0].id,
              })
              item.fileList.forEach(res => {
                        file.push({
                           ...res,
                           uid: res.id,
                        })
                     })
            }
            if (item.ownerType == '22_00018-204' || item.ownerType == '22_00018-207') {
              file1.push({
                name: item.fileList[0].trueName,
                uid: item.fileList[0].id,
              })
              item.fileList.forEach(res => {
                        file1.push({
                           ...res,
                           uid: res.id,
                        })
                     })
            }
          })
        }
@@ -159,7 +61,7 @@
          file,
          file1
        }
      }))
      }) || [])
    }
  }
@@ -171,7 +73,7 @@
          <Col span={24} style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>
            <Space size='small'>
              <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>当事人信息</h5>
              <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h4>当事人信息</h4>
            </Space>
            {props.hasApplet && <div>
              <Switch checkedChildren="当事人小程序可见" unCheckedChildren="当事人小程序不可见" defaultChecked />
@@ -186,7 +88,7 @@
          </div>
          <Col span={24} className='title'>
            <Space size='small'>
              <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>纠纷基本情况</h5>
              <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h4>纠纷基本情况</h4>
            </Space>
          </Col>
          <Row gutter={[16, 16]}>
@@ -253,47 +155,43 @@
            </Col>
            <Col span={16}>
              <div className="title"><div className="title-text">是否重大矛盾纠纷</div></div>
              <div>{infoData.majorStatus === '0' ? '否' : infoData.majorStatus === '1' ? '是' : '-'}</div>
              <div>{infoData.majorStatus === '1' ? '是' : '否'}</div>
            </Col>
          </Row>
          <Col span={24} style={{ display: 'flex', alignItems: 'center', marginBottom: '8px', marginTop: '20px' }}>
            <Space size='small'>
              <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>事件材料</h5>
              <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h4>事件材料</h4>
            </Space>
          </Col>
          <TableView
            columns={fakeColumns}
            dataSource={fakeData1}
            size="small"
            rowKey="id"
            bordered={true}
            style={{ marginBottom: '20px' }}
          />
          <Col span={24} className='title'>
            <Space size='small'>
              <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h5>登记信息</h5>
            </Space>
          </Col>
          <Row gutter={[16, 16]}>
            {/*事项等级分为三级,颜色需要做判断*/}
            <Col span={8}>
              <div className="title"><div className="title-text">登记机构</div><img src={question} alt="" style={{ width: '14px', height: '14px', marginTop: '4px', marginLeft: '4px' }} /></div>
              <div>{infoData.inputUnitName || '-'}</div>
            </Col>
            <Col span={8}>
              <div><div className="title-text">登记人</div></div>
              <div style={{ display: 'flex' }}>
                <div>{infoData.inputUserName || '-'}</div>
                <img src={register} alt='' style={{ width: '14px', height: '14px', marginLeft: '8px', marginTop: '4px' }} />
              </div>
            </Col>
            <Col span={8}>
              <div ><div className="title-text">登记时间</div></div>
              <div>{infoData.createTime || '-'}</div>
            </Col>
          </Row>
          {props.hasEditBtn && <Button type='primary' style={{ marginTop: '20px' }}>修改</Button>}
          <FileTable mainId={props.caseId} fileInfoList={infoData.fileInfoList} isReview={true} />
          {infoData?.canal === '22_00001-1' &&
            <>
              <Col span={24} style={{ marginTop: '12px' }}>
                <Space size='small'>
                  <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h4>登记信息</h4>
                </Space>
              </Col>
              <Row gutter={[16, 16]}>
                {/*事项等级分为三级,颜色需要做判断*/}
                <Col span={8}>
                  <div className="title"><div className="title-text">登记机构</div><img src={question} alt="" style={{ width: '14px', height: '14px', marginTop: '4px', marginLeft: '4px' }} /></div>
                  <div>{infoData.inputUnitName || '-'}</div>
                </Col>
                <Col span={8}>
                  <div><div className="title-text">登记人</div></div>
                  <div style={{ display: 'flex' }}>
                    <div>{infoData.inputUserName || '-'}</div>
                    <img src={register} alt='' style={{ width: '14px', height: '14px', marginLeft: '8px', marginTop: '4px' }} />
                  </div>
                </Col>
                <Col span={8}>
                  <div ><div className="title-text">登记时间</div></div>
                  <div>{infoData.createTime || '-'}</div>
                </Col>
              </Row>
            </>
          }
          {/* {props.hasEditBtn && <Button type='primary' style={{ marginTop: '20px' }}>修改</Button>} */}
        </div>
      </Typography.Paragraph>