index.jsx 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import React, { useState, useRef } from 'react'
  2. import { Form, Row, Col, Button } from 'antd'
  3. import LazyCascader from '@/components/LazyCascader'
  4. import { ModalForm, ProFormSelect, ProFormText } from '@ant-design/pro-form'
  5. import { Plus } from '@icon-park/react'
  6. import ModalDrag from '@/components/DragmModal'
  7. import { ChangeCompMap } from '@/pages/Customer/Company/components/ChangeCompany'
  8. const AddClient = props => {
  9. const { onConfirm, buttonProps, dataId, dataType, btnTitle = '联系人' } = props
  10. const formRef = useRef(null)
  11. const layout = {
  12. layout: 'horizontal',
  13. labelCol: { flex: '100px' }
  14. }
  15. const [showDataItem, setShowDataItem] = useState(false)
  16. return (
  17. <ModalForm
  18. {...layout}
  19. formRef={formRef}
  20. title={<ModalDrag title={'添加联系人'} />}
  21. trigger={
  22. <Button type="primary" {...buttonProps} className="mr-1">
  23. <Plus className="mr-1" />
  24. {btnTitle}
  25. </Button>
  26. }
  27. submitter={{
  28. render: ({ submit }, defaultDoms) => [
  29. ...defaultDoms,
  30. dataId ? (
  31. <Button
  32. type="primary"
  33. key="2"
  34. onClick={() => {
  35. setShowDataItem(true)
  36. const values = {}
  37. if (dataType === ChangeCompMap.BUSINESS.key) {
  38. values.businessId = dataId
  39. }
  40. formRef.current && formRef.current.setFieldsValue(values)
  41. submit()
  42. }}>
  43. 添加并关联
  44. </Button>
  45. ) : null
  46. ]
  47. }}
  48. onFinish={async values => {
  49. await onConfirm(values)
  50. formRef.current?.resetFields()
  51. return true
  52. }}>
  53. {showDataItem ? <ProFormText name={`${dataType}Id`} hidden /> : null}
  54. <ProFormText
  55. name="clientName"
  56. label="姓名"
  57. rules={[{ required: true, message: '请输入姓名' }]}
  58. />
  59. <Form.Item
  60. label="联系人地区"
  61. name="district"
  62. rules={[{ required: true, message: '请选择地区' }]}>
  63. <LazyCascader showFooter={true} />
  64. </Form.Item>
  65. <Row>
  66. <Col span={12}>
  67. <ProFormSelect
  68. name="gender"
  69. label="性别"
  70. rules={[{ message: '请选择性别' }]}
  71. options={[
  72. { label: '男', value: '男' },
  73. { label: '女', value: '女' }
  74. ]}
  75. />
  76. <ProFormText label="部门" name="department" />
  77. <ProFormText
  78. label="手机"
  79. name="telephone"
  80. rules={[{ required: true, message: '请输入手机号码' }]}
  81. />
  82. <ProFormText label="电话" name="phone" rules={[{ message: '请输入电话/座机号' }]} />
  83. <ProFormText label="联系人地址" name="address" />
  84. <ProFormText label="联系人地标" name="landmarks" />
  85. </Col>
  86. <Col span={12}>
  87. <ProFormText label="昵称" name="niceName" />
  88. <ProFormText label="职位" name="position" />
  89. <ProFormText label="QQ" name="qq" />
  90. <ProFormText label="邮箱" name="email" />
  91. <ProFormText label="联系人乘车" name="ride" />
  92. <ProFormText label="联系人住宿" name="stay" />
  93. </Col>
  94. </Row>
  95. <ProFormText label="备注" name="remakrs" />
  96. </ModalForm>
  97. )
  98. }
  99. export default AddClient