forked from gzzfw/frontEnd/gzDyh

zhangyongtian
2024-08-27 33440bb15f8d7f07b68e34760129d3300cab5e88
gz-customerSystem/src/views/register/visit/component/agentDialog.jsx
@@ -2,6 +2,9 @@
import { Row, Col, Space } from 'antd';
import { Form, Input, Button, Radio, Select, Checkbox, Upload } from '@arco-design/web-react';
import KeyVisits from "./keyVisits";
import {
  IconLink,
} from '@arco-design/web-react/icon';
const FormItem = Form.Item;
const Option = Select.Option;
@@ -10,17 +13,70 @@
const CheckboxGroup = Checkbox.Group;
export default function AgentDialog(props) {
  const formRef = useRef();
  const [visitList, setVisitList] = useState([])
  useEffect(() => {
    if (props.editData) {
      //编辑
      formRef.current.setFieldsValue({
        ...props.editData
      })
      //过滤代理人
      setVisitList(props.fakeData.filter(item => {
        if (props.editData.dialogType === 2) {
          return item.partyType === 0
        } else {
          return item.partyType === 1
        }
      }))
    } else {
      //过滤代理人
      setVisitList(props.fakeData.filter(item => {
        if (props.dialogType === 2) {
          return item.partyType === 0
        } else {
          return item.partyType === 1
        }
      }))
    }
  }, [])
  //保存信息
  const handleSave = () => {
    if (formRef.current) {
      formRef.current.validate(undefined, (errors, values) => {
        if (!errors) {
          if (props.editData) {
            props.handleAddParty({
              ...props.editData,
              ...values,
            })
          } else {
            props.handleAddParty({
              ...values,
              partyType: props.dialogType,
              perClassName: props.dialogType === 2 ? '申请方代理人' : '被申请方代理人',
            })
          }
          props.onClose()
        }
      });
    }
  }
  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}
              ref={formRef}
              layout='vertical'
              requiredSymbol={false}
              initialValues={{
              }}//默认值
              scrollToFirstError
            >
              <Row gutter={[32, 0]} style={{ margin: '0 -10px' }}>
                <Col span={24}>
@@ -36,6 +92,9 @@
                      onDrop={(e) => {
                      }}
                      tip='支持png、jpg、pdf格式的图片上传,每次上传大小不超过10M'
                      showUploadList={{
                        fileIcon: <IconLink style={{ color: '#1D2129' }} />,
                      }}
                    />
                  </FormItem>
                </Col>
@@ -58,7 +117,8 @@
                <Col span={12}>
                  <FormItem
                    label={(<div style={{ display: 'flex' }}>姓名<div className="must">必填</div></div>)}
                    field='name'
                    field='trueName'
                    rules={[{ required: true, message: '请输入姓名' }]}
                  >
                    <Input placeholder='请填写' />
                  </FormItem>
@@ -66,7 +126,11 @@
                <Col span={12}>
                  <FormItem
                    label={(<div style={{ display: 'flex' }}>联系方式<div className="must">必填</div></div>)}
                    field='phone'
                    field='personNumber'
                    rules={[
                      { required: true, message: '请输入联系方式' },
                      { match: /^\+?(\d{1,3})?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{4})$/, message: '请输入正确的电话号码' },
                    ]}
                  >
                    <Input placeholder='请填写' />
                  </FormItem>
@@ -74,7 +138,8 @@
                <Col span={12}>
                  <FormItem
                    label={(<div style={{ display: 'flex' }}>证件类型<div className="must">必填</div></div>)}
                    field='zhengjian'
                    field='docType'
                    rules={[{ required: true, message: '请选择证件类型' }]}
                  >
                    <Select placeholder='请选择' allowClear>
                      {['居民身份证',].map((option, index) => (
@@ -88,8 +153,11 @@
                <Col span={12}>
                  <FormItem
                    label={(<div style={{ display: 'flex' }}>证件号码<div className="must">必填</div></div>)}
                    rules={[{ required: true }]}
                    field='peopleNumber'
                    rules={[
                      { required: true, message: '请输入证件号码' },
                      { match: /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])\d{3}(\d|X)$/, message: '请输入正确的证件号码' }
                    ]}
                    field='mobile'
                  >
                    <InputSearch
                      searchButton='读取卡证'
@@ -181,10 +249,17 @@
                <Col span={12}>
                  <FormItem
                    label={(<div style={{ display: 'flex' }}>代理对象<div className="must">必填</div></div>)}
                    rules={[{ required: true }]}
                    rules={[{ required: true, message: '请选择代理对象' }]}
                    field='dailimap'
                  >
                    <CheckboxGroup direction='vertical' options={['张三丰', '广东好又多贸易有限公司', '广东科贸创意有限公司']} />
                    <CheckboxGroup
                      direction='vertical'
                      options={visitList.map(x => ({
                        label: <span>{x.trueName}&nbsp;&nbsp;<span style={{ color: '#86909c' }}>({x.perClassName})</span></span>,
                        value: x.id,
                      }))}
                    >
                    </CheckboxGroup>
                  </FormItem>
                </Col>
              </Row>
@@ -201,9 +276,9 @@
        <Button
          type="primary"
          className="dialogPrimary"
        // onClick={handleSave}
          onClick={handleSave}
        >
          保存信息
          保存
        </Button>
        <Button className="dialogBack">
          重置