forked from gzzfw/frontEnd/gzDyh

dminyi
2024-09-08 8dae74070e63cec1b2627a71f1f2d0e8dffc0e6a
gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
@@ -5,87 +5,34 @@
import * as $$ from '@/utils/utility';
import {
  question1,
  applyMaterials,
  applyMaterials_active,
  evidenceMaterials,
  evidenceMaterials_active,
} from '@/assets/images';
import { CheckOutlined, } from '@ant-design/icons';
import TableView from '@/components/TableView';
import '../../index.less';
import ApplyDialog from "./applyDialog";
import AgentDialog from "./agentDialog";
import NewFileCheck from '../../../filesCheck/newFileCheck';
import { IconLink } from '@arco-design/web-react/icon';
import MapView from './map';
import { scan } from '@/assets/images/icon';
import { EventLevelDrawer, MattersDetail } from './levelDetail';
import DocumentScanner from '../../matterDetail/FileUpLoad';
import ArcoUpload from '@/components/ArcoUpload';
import FileTable from "../../matterDetail/FileTable";
const RadioGroup = Radio.Group;// 根据调解案号获取纠纷登记信息
const FormItem = Form.Item;
const InputSearch = Input.Search;
const appUrl = $$.appUrl;
function delFile(ids) {
  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data: { ids } });
}
function listIdTypeInfoApi(data) {
  return $$.ax.request({ url: `fileInfo/listIdTypeInfo`, type: 'post', service: 'sys', data });
}
function deleteFileByIdApi(data) {
  return $$.ax.request({ url: `fileInfo/deleteFileById`, type: 'delete', service: 'sys', data });
}
const VisitorRegister = (props) => {
  const formRef = useRef();
  const [dialogType, setDialogType] = useState();//添加当事人的类型
  const [addVisabled, setAddVisabled] = useState(false);//添加当事人弹窗控制
  const [fakeData, setFakeData] = useState([]);//当事人信息数据
  const [scanFile, setScanFile] = useState(false);
  const [upload, setUpLoad] = useState(false);
  const [sourceType, setSourceType] = useState('1');
  const [filesCheck, setFilesCheck] = useState(false);
  const [mapView, setMapView] = useState(false);
  const [visible, setVisible] = useState(false);
  const [apply, setApply] = useState(false);
  const [editData, setEditData] = useState(null);
  const [agentVisible, setAgentVisible] = useState(false);
  const [fileLength, setFileLength] = useState('');
  const [evidenceLength, SetEvidenceLength] = useState(null);
  const [matterNumber, setMatterNumber] = useState('');
  const [evidenceNumber, setEvidenceNumber] = useState('');
  const [applyFile, setApplyFile] = useState([]);
  const [evidenceFile, setEvidenceFile] = useState([]);
  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 peopleMap = {
    '15_020008-1': '申请方',
@@ -94,177 +41,12 @@
    '24_00006-2': '被申请方代理人'
  }
  const fileType = [
    { value: '1', label: '申请材料' },
    { value: '2', label: '证据材料' },
  ]
  useEffect(() => {
    if (props.formRef.current) {
      //引入当事人数据
      props.formRef.current.setFieldValue('fakeData', fakeData)
    }
  }, [fakeData])
  const personIconType = (v) => {
    switch (v) {
      case '1':
        return [applyMaterials, applyMaterials_active,
        ];
      case '2':
        return [evidenceMaterials, evidenceMaterials_active];
    }
  }
  const handleChangeFile = (data) => {
    console.log(data, 'handleChangeFile')
    setApplyFile(data)
  }
  const handleChangeFile1 = (data) => {
    console.log(data, 'handleChangeFile1')
    setEvidenceFile(data)
  }
  //删除文件
  const handleDelFile = async (id) => {
    const res = await delFile(id)
    if (res.type) {
      $$.infoSuccess({ content: '删除成功!' });
    }
  }
  //批量删除文件
  const deleteFileById = async (data) => {
    const res = await deleteFileByIdApi(data)
    if (res.type) {
      $$.infoSuccess({ content: '删除成功!' });
    }
  }
  const listIdTypeInfo = async () => {
    const res = await listIdTypeInfoApi({
      mainId: props.mainId, //事项ID
      ownerIdList: [props.mainId], //具体所属编号
      typeList: []
    })
    if (res.type) {
      let data = res.data?.[0]?.fileList
      if (res.data.length > 0) {
        setFakeData1(data)
      }
    }
  }
  console.log(fakeData1,'fakeData1')
  const formType = (type) => {
    if (type === '1') {
      //申请材料
      return (
        <>
          <Col span={24}>
            <ArcoUpload
              params={{
                action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${props.mainId}&&ownerId=${props.mainId}&ownerType=22_00018-101`,
              }}
              field='file'
              label=''
              editData={props.editData}
              handleDelFile={handleDelFile}
              onFileListChange={(v) => { setFileLength(v); console.log(v, 'vvsetFileLength') }}
            />
            {fileLength?.length > 0 && <div style={{ position: 'absolute', top: '198px', left: '16px', color: '#86909C' }}>申请材料累计上传:<span style={{ color: '#1A6FB8' }}>{fileLength?.length}</span></div>}
          </Col>
        </>
      )
    }
    if (type === '2') {
      //证据材料
      return (
        <>
          <Col span={24}>
            <ArcoUpload
              params={{
                action: `${appUrl.fileUrl}/${appUrl.sys}/api/web/fileInfo/upload?mainId=${props.mainId}&&ownerId=${props.mainId}&ownerType=22_00018-102`,
              }}
              field='file1'
              label=''
              editData={props.editData}
              handleDelFile={handleDelFile}
              onFileListChange={(v) => { SetEvidenceLength(v); console.log(v, 'vvsetFileLength') }}
            />
            {evidenceLength?.length > 0 && <div style={{ position: 'absolute', top: '198px', left: '16px', color: '#86909C' }}>证据材料累计上传:<span style={{ color: '#1A6FB8' }}>{evidenceLength?.length}</span></div>}
          </Col>
        </>
      )
    }
  }
  // 列配置
  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 getFormattedDateTime = () => {
@@ -294,11 +76,6 @@
    setScanFile(false);
    console.log(scanContent, 'scanContent')
  };
  const handleUpload = () => {
    listIdTypeInfo()
    setUpLoad(false);
  };
  const handleCancel = () => {
@@ -346,23 +123,6 @@
    setDialogType(value.perType)
    setEditData(value)
  }
  const uploadQuery = {
    mainId: props.mainId,
    ownerCat: null,
    createStart: null,
    createEnd: null,
    uploaderType: null
  }
  // console.log(sourceType, 'sourceType')
  // console.log(props.formRef?.current?.getFields(),'formRef.current.getFields()')
  useEffect(() => {
  }, [])
  return (
    <div className='dataSync-page' style={{ ...props.style, marginTop: '8px' }}>
@@ -601,67 +361,13 @@
          <div className='MediationInfo-subTitle' style={{ marginTop: '-9px' }}></div><h4>事件材料</h4>
        </Space>
      </Col>
      <TableView
        columns={fakeColumns}
        dataSource={fakeData1}
        size="small"
        rowKey="ownerType"
        bordered={true}
        style={{ marginBottom: '65px' }}
      />
      <FileTable mainId={props.mainId}/>
      <DocumentScanner
        visible={scanFile}
        onConfirm={handleConfirm}
        onCancel={handleCancel}
      />
      <Modal style={{ width: '512px' }} visible={upload} onCancel={() => setUpLoad(false)} footer={null} title='上传材料' centered>
        <div style={{ paddingTop: '8px' }}>
          <Row gutter={[30, 24]}>
            {fileType.map((x, t) => {
              return (
                <Col span={12} key={t}>
                  <div
                    onClick={() => { setSourceType(x.value) }}
                    className={`casePerfection-cardTab-tab ${x.value === sourceType && 'casePerfection-cardTab-tabActive'}`}
                  >
                    <img src={x.value === sourceType ? personIconType(x.value)?.[1] : personIconType(x.value)?.[0]} alt="" style={{ width: '40px', height: '40px' }} />
                    <div className="casePerfection-cardTab-tab-name">{x.label}</div>
                    {x.value === sourceType && (
                      <>
                        <div className="casePerfection-cardTab-tab-triangle" />
                        <CheckOutlined className="casePerfection-cardTab-tab-check" />
                      </>
                    )}
                  </div>
                </Col>
              );
            })}
            <Col span={24}>
              <Form
                ref={props.formRef}
                layout='vertical'
                requiredSymbol={false}
                initialValues={{
                }}//默认值
                style={{ position: 'relative' }}
              >
                <Row gutter={[32, 0]}>{formType(sourceType)}</Row>
              </Form>
            </Col>
            <Button type="primary" style={{ marginTop: '-20px', marginLeft: '16px' }} onClick={() => handleUpload()}>上传完成</Button>
          </Row>
        </div>
      </Modal >
      <Modal style={{ width: '1200px' }} visible={filesCheck} onCancel={() => setFilesCheck(false)} footer={null} title='查看事件材料' centered>
        {/* <div className="mediationWindow-modal-main" style={{ display: 'flex' }}> */}
        <div style={{ marginTop: '-16px' }}>
          <NewFileCheck />
        </div>
        {/* </div> */}
      </Modal>
      <Modal
        title={(editData ? '修改' : '添加') + peopleMap[dialogType]}
        visible={addVisabled}