forked from gzzfw/frontEnd/gzDyh

dminyi
2024-08-17 b7e03d58d1445031b293bb2cbef1f1fc36a6c268
Merge branch 'master' of http://120.79.193.119:9090/r/gzzfw/frontEnd/gzDyh into master
2 files added
3 files modified
434 ■■■■■ changed files
gz-customerSystem/src/views/register/index.less 14 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/visit/component/agentDialog.jsx 214 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/visit/component/applyDialog.jsx 39 ●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/visit/component/selectUnitDialog.jsx 142 ●●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx 25 ●●●● patch | view | raw | blame | history
gz-customerSystem/src/views/register/index.less
@@ -167,6 +167,18 @@
    }
}
.arco-upload-list-type-text .arco-upload-list-item:first-of-type, .arco-upload-list-type-picture-list .arco-upload-list-item:first-of-type{
.arco-upload-list-type-text .arco-upload-list-item:first-of-type,
.arco-upload-list-type-picture-list .arco-upload-list-item:first-of-type {
    margin-top: 34px;
}
.unitDialogResult {
    font-size: 16px;
    font-family: PingFang SC, PingFang SC-400;
    font-weight: 400;
    text-align: LEFT;
    color: #1d2129;
    line-height: 24px;
    margin-bottom: 20px;
}
gz-customerSystem/src/views/register/visit/component/agentDialog.jsx
New file
@@ -0,0 +1,214 @@
import React, { useState, useEffect, useRef, Fragment } from "react";
import { Row, Col, Space } from 'antd';
import { Form, Input, Button, Radio, Select, Checkbox, Upload } from '@arco-design/web-react';
import KeyVisits from "./keyVisits";
const FormItem = Form.Item;
const Option = Select.Option;
const InputSearch = Input.Search;
const RadioGroup = Radio.Group;
const CheckboxGroup = Checkbox.Group;
export default function AgentDialog(props) {
  return (
    <div className="applyDialog">
      <div style={{ height: '590px', overflowY: 'scroll' }}>
        <Row gutter={[16, 16]} style={{ margin: '0 2px 0 0' }}>
          <Col span={24}>
            <Form
              ref={props.formRef}
              layout='vertical'
              requiredSymbol={false}
              initialValues={{
              }}//默认值
            >
              <Row gutter={[32, 0]} style={{ margin: '0 -10px' }}>
                <Col span={24}>
                  <FormItem
                    label='身份证明材料'
                    field='file'
                  >
                    <Upload
                      drag
                      multiple
                      accept='image/*'
                      action='/'
                      onDrop={(e) => {
                      }}
                      tip='支持png、jpg、pdf格式的图片上传,每次上传大小不超过10M'
                    />
                  </FormItem>
                </Col>
                <Col span={24}>
                  <FormItem
                    label='代理人委托书'
                    field='file1'
                  >
                    <Upload
                      drag
                      multiple
                      accept='image/*'
                      action='/'
                      onDrop={(e) => {
                      }}
                      tip='支持png、jpg、pdf格式的图片上传,每次上传大小不超过10M'
                    />
                  </FormItem>
                </Col>
                <Col span={12}>
                  <FormItem
                    label={(<div style={{ display: 'flex' }}>姓名<div className="must">必填</div></div>)}
                    field='name'
                  >
                    <Input placeholder='请填写' />
                  </FormItem>
                </Col>
                <Col span={12}>
                  <FormItem
                    label={(<div style={{ display: 'flex' }}>联系方式<div className="must">必填</div></div>)}
                    field='phone'
                  >
                    <Input placeholder='请填写' />
                  </FormItem>
                </Col>
                <Col span={12}>
                  <FormItem
                    label={(<div style={{ display: 'flex' }}>证件类型<div className="must">必填</div></div>)}
                    field='zhengjian'
                  >
                    <Select placeholder='请选择' allowClear>
                      {['居民身份证',].map((option, index) => (
                        <Option key={option} value={option}>
                          {option}
                        </Option>
                      ))}
                    </Select>
                  </FormItem>
                </Col>
                <Col span={12}>
                  <FormItem
                    label={(<div style={{ display: 'flex' }}>证件号码<div className="must">必填</div></div>)}
                    rules={[{ required: true }]}
                    field='peopleNumber'
                  >
                    <InputSearch
                      searchButton='读取卡证'
                      placeholder='请填写'
                    />
                  </FormItem>
                </Col>
                <Col span={12}>
                  <FormItem label='联系地址' field='money'>
                    <Input placeholder='请填写' />
                  </FormItem>
                </Col>
                <Col span={12}>
                  <FormItem label='户籍地址' field='money'>
                    <Input placeholder='请填写' />
                  </FormItem>
                </Col>
                <Col span={12}>
                  <FormItem label='工作单位' field='money'>
                    <Input placeholder='请填写' />
                  </FormItem>
                </Col>
                <Col span={12}>
                  <FormItem
                    label='民族'
                    field='minzu'
                  >
                    <Select placeholder='请选择' allowClear>
                      {['汉族',].map((option, index) => (
                        <Option key={option} value={option}>
                          {option}
                        </Option>
                      ))}
                    </Select>
                  </FormItem>
                </Col>
                <Col span={12}>
                  <FormItem
                    label='性别'
                    field='sex'
                  >
                    <RadioGroup
                      type='button'
                    >
                      <Radio value='0'>男</Radio>
                      <Radio value='1'>女</Radio>
                    </RadioGroup>
                  </FormItem>
                </Col>
                <Col span={12}>
                  <FormItem
                    label='是否极具个人极端倾向'
                    field='isBad'
                  >
                    <RadioGroup>
                      <Radio value='0'>否</Radio>
                      <Radio value='1'>是</Radio>
                    </RadioGroup>
                  </FormItem>
                </Col>
                <Col span={12}>
                  <FormItem
                    label='委托关系'
                    field='weituo'
                  >
                    <Select placeholder='请选择' allowClear>
                      {['亲属',].map((option, index) => (
                        <Option key={option} value={option}>
                          {option}
                        </Option>
                      ))}
                    </Select>
                  </FormItem>
                </Col>
                <Col span={12}>
                  <FormItem
                    label='委托类型'
                    field='type'
                  >
                    <Select placeholder='请选择' allowClear>
                      {['一般授权代理',].map((option, index) => (
                        <Option key={option} value={option}>
                          {option}
                        </Option>
                      ))}
                    </Select>
                  </FormItem>
                </Col>
                <Col span={12}>
                  <FormItem
                    label={(<div style={{ display: 'flex' }}>代理对象<div className="must">必填</div></div>)}
                    rules={[{ required: true }]}
                    field='dailimap'
                  >
                    <CheckboxGroup direction='vertical' options={['张三丰', '广东好又多贸易有限公司', '广东科贸创意有限公司']} />
                  </FormItem>
                </Col>
              </Row>
            </Form>
          </Col>
        </Row>
        {/* 重复来访重点人员 */}
        <div style={{ width: 'calc(100% - 9px)', background: '#f2f3f5', marginBottom: '20px', padding: '12px' }}>
          <KeyVisits />
        </div>
      </div>
      <div className='dialogFooter'>
        <Button
          type="primary"
          className="dialogPrimary"
        // onClick={handleSave}
        >
          保存信息
        </Button>
        <Button className="dialogBack">
          重置
        </Button>
      </div>
    </div>
  )
}
gz-customerSystem/src/views/register/visit/component/applyDialog.jsx
@@ -12,8 +12,9 @@
  caseperfection_organize,
  caseperfection_organize_active,
} from '../../../../assets/images/icon';
import { Form, Input, Button, Radio, Select, DatePicker, Cascader, Upload, Message } from '@arco-design/web-react';
import { Form, Input, Button, Radio, Select, Modal, Cascader, Upload, Message } from '@arco-design/web-react';
import KeyVisits from "./keyVisits";
import SelectUnitDialog from "./selectUnitDialog";
const FormItem = Form.Item;
const Option = Select.Option;
@@ -23,6 +24,7 @@
export default function ApplyDialog(props) {
  const formRef = useRef();
  const [perClass, setPerClass] = useState('09_01001-1');
  const [visible, setVisible] = useState(false);
 
  const personIconType = (v) => {
@@ -157,11 +159,12 @@
      )
    } else {
      //法人、非法人组织
      let isLegal = type === '09_01001-2'
      return (
        <>
          <Col span={24}>
            <FormItem
              label='企业登记材料'
              label={isLegal ? '企业登记材料' : '机构登记材料'}
              field='file'
            >
              <Upload
@@ -177,7 +180,7 @@
          </Col>
          <Col span={24}>
            <FormItem
              label='法定代表人身份证明材料'
              label={isLegal ? '法定代表人身份证明材料' : '机构代表人身份证明材料'}
              field='file1'
            >
              <Upload
@@ -193,13 +196,14 @@
          </Col>
          <Col span={12}>
            <FormItem
              label='企业名称'
              label={isLegal ? '企业名称' : '机构名称'}
              rules={[{ required: true }]}
              field='peopleNumber'
            >
              <InputSearch
                searchButton='选择'
                placeholder='请填写'
                onSearch={handleSelect}
              />
            </FormItem>
          </Col>
@@ -209,23 +213,23 @@
            </FormItem>
          </Col>
          <Col span={12}>
            <FormItem label='企业所在地' field='money'>
            <FormItem label={isLegal ? '企业所在地' : '机构所在地'} field='money'>
              <Input placeholder='请填写' />
            </FormItem>
          </Col>
          <Col span={12}>
            <FormItem label='统一社会信用代码' field='money'>
            <FormItem label={isLegal ? '统一社会信用代码' : '组织机构代码'} field='money'>
              <Input placeholder='请填写' />
            </FormItem>
          </Col>
          <Col span={12}>
            <FormItem label='法定代表人' field='money'>
            <FormItem label={isLegal ? '法定代表人' : '机构代表人'} field='money'>
              <Input placeholder='请填写' />
            </FormItem>
          </Col>
          <Col span={12}>
            <FormItem
              label='企业类型'
              label={ isLegal ? '企业类型' : '机构类型'}
              field='minzu'
            >
              <Select placeholder='请选择' allowClear>
@@ -254,6 +258,11 @@
        console.log(errors, values);
      });
    }
  }
  //选择
  const handleSelect = (value) => {
    setVisible(true)
  }
  return (
@@ -288,10 +297,11 @@
              initialValues={{
              }}//默认值
            >
              <Row gutter={[32, 0]}>{formType(perClass)}</Row>
              <Row gutter={[32, 0]} style={{ margin: '0 -10px' }}>{formType(perClass)}</Row>
            </Form>
          </Col>
        </Row>
        {/* 重复来访重点人员 */}
        <div style={{ width: 'calc(100% - 9px)', background: '#f2f3f5', marginBottom: '20px', padding: '12px' }}>
          <KeyVisits />
@@ -309,6 +319,17 @@
          重置
        </Button>
      </div>
      <Modal
        title={'选择单位'}
        visible={visible}
        onOk={() => setVisible(false)}
        onCancel={() => setVisible(false)}
        autoFocus={false}
        focusLock={true}
        footer={null}
      >
        <SelectUnitDialog />
      </Modal>
    </div>
  )
}
gz-customerSystem/src/views/register/visit/component/selectUnitDialog.jsx
New file
@@ -0,0 +1,142 @@
import React, { useState, useRef } from 'react'
import TableSearch from '../../../../components/TableSearch';
import TableView from '../../../../components/TableView';
import { Row, Col } from 'antd';
import { Form, Input, Button, Divider } from '@arco-design/web-react';
const FormItem = Form.Item;
const formItemLayout = {
  labelCol: {
    span: 4,
  },
  wrapperCol: {
    span: 17,
  },
};
export default function SelectUnitDialog(props) {
  const formRef = useRef();
  const [search, setSearch] = useState({ page: 1, size: 10, status: '1' });// 搜索
  // 数据
  const [data, setData] = useState({});
  const fakeData1 = [
    {
      id: 1,
      caseNo: 'A20230101',
      judicNo: 'J20230101',
      perClassName: '自然人',
      inputUserName: '张三',
      mediateUserName: '李四',
      judgeName: '王五',
      mediator: '赵六',
      handlerUserName: '钱七',
      returnUserName: '孙八',
      expireTime: '2023-08-10T08:00:00.000Z',
      processName: '进行中',
      otherMediator: '周九',
      canalName: '网络',
      judicResult: '通过',
      assistName: '吴十',
      mediTypeName: '民事调解',
      serieStatus: '1', // 1 表示非系列案,2 表示系列案
      // 更多字段...
    },
    // 更多数据...
  ];
  // 列配置
  const fakeColumns = [
    {
      title: '序号',
      dataIndex: 'caseNo',
      key: 'caseNo',
      render: (text, record, index) => <span>{index + 1}</span>,
    },
    {
      title: '材料类型',
      dataIndex: 'judicNo',
      key: 'judicNo',
    },
    {
      title: '材料数量',
      dataIndex: 'perClassName',
      key: 'perClassName',
    },
    {
      title: '材料名称',
      dataIndex: 'perClassName',
      key: 'perClassName',
    },
    {
      title: '上传时间',
      dataIndex: 'perClassName',
      key: 'perClassName',
    },
    {
      title: '操作',
      dataIndex: 'perClassName',
      key: 'perClassName',
      width: 120,
      render: (text) => (
        <div style={{ display: 'flex', color: '#1A6FB8', gap: '16px' }}>
          <div>选择</div>
        </div>
      )
    },
    // 更多列配置...
  ];
  // 搜索 or 重置
  function handleSearch(type, data) {
    if (type === 'changePage') {
      let obj = type === 'changeTabs' ? { page: 1, status: data } : { page: data[0], size: data[1] };
      // getSignForListData({ ...search, ...obj });
    }
  }
  return (
    <div>
      <Form
        ref={formRef}
        requiredSymbol={false}
        layout='inline'
        {...formItemLayout}
      >
        <FormItem
          label='单位名称:'
          field='name'
        >
          <Input placeholder='请填写' style={{width: '500px'}}/>
        </FormItem>
        <Button style={{marginRight: '20px'}}>
          重置
        </Button>
        <Button
          type="primary"
          // onClick={handleSave}
        >
          查询
        </Button>
      </Form>
      <Divider />
      <div className='unitDialogResult'>
        查询结果
      </div>
      <TableView
        columns={fakeColumns}
        dataSource={fakeData1}
        size="small"
        rowKey="id"
        bordered={true}
        style={{ marginBottom: '60px' }}
        pagination={{
          current: search.page,
          pageSize: search.size,
          total: data.total,
          onChange: (page, pageSize) => handleSearch('changePage', [page, pageSize]),
        }}
      />
    </div>
  )
}
gz-customerSystem/src/views/register/visit/component/visitorRegister.jsx
@@ -18,6 +18,7 @@
import TableView from '../../../../components/TableView';
import '../../index.less';
import ApplyDialog from "./applyDialog";
import AgentDialog from "./agentDialog";
import FilesCheck from '../../../filesCheck';
import {
  IconFileAudio,
@@ -104,7 +105,7 @@
  const [upload, setUpLoad] = useState(false);
  const [sourceType, setSourceType] = useState('09_01010-1');
  const [filesCheck, setFilesCheck] = useState(false);
  const [file, setFile] = useState();
  const [fileView, setFileView] = useState();
  const [selectedAddress, setSelectedAddress] = useState('');
  const [fileTip, setFileTip] = useState('0');
@@ -114,6 +115,7 @@
    // 更多地址...
  ];
  const [agentVisible, setAgentVisible] = useState(false);
  const personIconType = (v) => {
    switch (v) {
@@ -348,8 +350,12 @@
  //添加申请人: 0、被申请人: 1、代理人: 2
  const handleAdd = (type) => {
    setDialogType(type)
    if(type === 2) {
      setAgentVisible(true)
    } else {
    setAddVisabled(true)
    }
    setDialogType(type)
  }
@@ -586,7 +592,7 @@
                if (info.length > 0) {
                  setScanImage(true);
                }
                setFile({
                setFileView({
                  ...currentFile,
                  url: URL.createObjectURL(currentFile.originFile),
@@ -603,7 +609,7 @@
      </Modal>
      <Modal style={{ width: '944px' }} visible={scanImage} onCancel={() => setScanImage(false)} footer={null} title='选择识别范围' centered>
        <img
          src={file?.url}
          src={fileView?.url}
          alt=""
          style={{
            display: 'block',       // 确保图片在容器中居中显示
@@ -684,6 +690,17 @@
      >
        <ApplyDialog />
      </Modal>
      <Modal
        title={'添加代理人'}
        visible={agentVisible}
        onOk={() => setAgentVisible(false)}
        onCancel={() => setAgentVisible(false)}
        autoFocus={false}
        focusLock={true}
        footer={null}
      >
        <AgentDialog />
      </Modal>
    </div>
  )
}