AddRecord.jsx 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import React, { useRef, useState } from 'react'
  2. import { Form, Button, Radio, DatePicker, Switch } from 'antd'
  3. import { dayjsFormat } from '@/utils/utils'
  4. import { Plus } from '@icon-park/react'
  5. import dayjs from 'dayjs'
  6. import ModalDragForm from '@/components/Modal/src/components/ModalDragForm'
  7. import { ProFormTextArea } from '@ant-design/pro-form'
  8. const AddRecord = props => {
  9. const formRef = useRef(null)
  10. const { onConfirm } = props
  11. const [showExtraItem, setShowExtraItem] = useState(false)
  12. const onChange = value => {
  13. setShowExtraItem(value)
  14. }
  15. const disabledDate = current => {
  16. return current && current < dayjs().endOf('day')
  17. }
  18. return (
  19. <ModalDragForm
  20. layout="vertical"
  21. title="添加服务记录"
  22. formRef={formRef}
  23. onVisibleChange={e => !e && onChange(e)}
  24. trigger={
  25. <Button type="primary" ghost size="small" className="mr-1">
  26. <Plus className="mr-1" /> 添加服务记录
  27. </Button>
  28. }
  29. onFinish={async values => {
  30. try {
  31. const newVal = { ...values }
  32. formRef.current?.resetFields()
  33. if (values.date) {
  34. newVal.date = dayjsFormat(values.date, 'YYYY-MM-DD')
  35. }
  36. if (values.remindTime) {
  37. newVal.remindTime = dayjsFormat(values.remindTime, 'YYYY-MM-DD')
  38. }
  39. await onConfirm(newVal)
  40. return true
  41. } catch (error) {
  42. return false
  43. }
  44. }}>
  45. <Form.Item name="status" rules={[{ required: true, message: '请选择类型' }]}>
  46. <Radio.Group>
  47. <Radio value={1}>上门服务</Radio>
  48. <Radio value={2}>电话拜访</Radio>
  49. <Radio value={3}>其他事项</Radio>
  50. <Radio value={4}>在线服务</Radio>
  51. </Radio.Group>
  52. </Form.Item>
  53. <Form.Item name="date" label="服务日期" initialValue={dayjs(new Date())}>
  54. <DatePicker style={{ width: '100%' }} disabledDate={disabledDate} />
  55. </Form.Item>
  56. <ProFormTextArea name="mark" label="内容" />
  57. <div className="pb-5">
  58. <Switch onChange={onChange} checked={showExtraItem} />
  59. <span className="ml-2">添加备忘录</span>
  60. </div>
  61. {showExtraItem ? (
  62. <>
  63. <Form.Item name="remindTime" label="备忘日期" required={true}>
  64. <DatePicker style={{ width: '100%' }} disabledDate={disabledDate} />
  65. </Form.Item>
  66. <ProFormTextArea name="remarks" label="备忘内容" />
  67. </>
  68. ) : null}
  69. </ModalDragForm>
  70. )
  71. }
  72. export default AddRecord