| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- import React, { useState, useRef } from 'react'
- import { Form, Row, Col, Button } from 'antd'
- import LazyCascader from '@/components/LazyCascader'
- import { ProFormSelect, ProFormText, ProFormTextArea } from '@ant-design/pro-form'
- import { Plus } from '@icon-park/react'
- import { ChangeCompMap } from '@/pages/Customer/Company/components/ChangeCompany'
- import ModalDragForm from '@/components/Modal/src/components/ModalDragForm'
- import { isNullOrUnDef } from '@/utils/is'
- const AddClient = props => {
- const {
- reload,
- onConfirm,
- buttonProps,
- dataId,
- dataType,
- btnTitle = '联系人',
- defaultValues
- } = props
- const formRef = useRef(null)
- const layout = {
- layout: 'horizontal',
- labelCol: { flex: '100px' }
- }
- const [showDataItem, setShowDataItem] = useState(false)
- return (
- <ModalDragForm
- {...layout}
- formRef={formRef}
- title="添加联系人"
- onVisibleChange={visible => {
- if (visible) {
- formRef.current?.setFieldsValue({ ...defaultValues })
- }
- }}
- trigger={
- <Button type="primary" {...buttonProps} className="mr-1">
- <Plus className="mr-1" />
- {btnTitle}
- </Button>
- }
- submitter={{
- render: ({ submit }, defaultDoms) => [
- ...defaultDoms,
- dataId ? (
- <Button
- type="primary"
- key="2"
- onClick={() => {
- setShowDataItem(true)
- const values = {}
- if (dataType === ChangeCompMap.BUSINESS.key) {
- values.businessId = dataId
- }
- formRef.current && formRef.current.setFieldsValue(values)
- submit()
- }}>
- 添加并关联
- </Button>
- ) : null
- ]
- }}
- onFinish={async values => {
- await onConfirm(values)
- formRef.current?.resetFields()
- !isNullOrUnDef(reload) && reload()
- return true
- }}>
- {showDataItem ? <ProFormText name={`${dataType}Id`} hidden /> : null}
- <ProFormText
- name="clientName"
- label="姓名"
- rules={[{ required: true, message: '请输入姓名' }]}
- />
- <Form.Item
- label="联系人地区"
- name="districtIds"
- rules={[{ required: true, message: '请选择地区' }]}>
- <LazyCascader showFooter={true} />
- </Form.Item>
- <Row>
- <Col span={12}>
- <ProFormSelect
- name="gender"
- label="性别"
- rules={[{ message: '请选择性别' }]}
- options={[
- { label: '男', value: '男' },
- { label: '女', value: '女' }
- ]}
- />
- <ProFormText label="部门" name="department" />
- <ProFormText
- label="手机"
- name="telephone"
- rules={[{ required: true, message: '请输入手机号码' }]}
- />
- <ProFormText label="电话" name="phone" rules={[{ message: '请输入电话/座机号' }]} />
- <ProFormText label="联系人地址" name="address" />
- <ProFormText label="联系人地标" name="landmarks" />
- </Col>
- <Col span={12}>
- <ProFormText label="昵称" name="niceName" />
- <ProFormText label="职位" name="position" />
- <ProFormText label="QQ" name="qq" />
- <ProFormText label="邮箱" name="email" />
- <ProFormText label="联系人乘车" name="ride" />
- <ProFormText label="联系人住宿" name="stay" />
- </Col>
- </Row>
- <ProFormTextArea label="备注" name="mark" />
- </ModalDragForm>
- )
- }
- export default AddClient
|