previewMomentsStrategy.tsx 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import { Card, Form, Input } from 'antd';
  2. import React, { useEffect } from 'react';
  3. import style from '../../../../businessPlan/create/index.less';
  4. import SendTimeSet from '@/pages/weComTask/components/sendTimeSet';
  5. import dayjs from 'dayjs';
  6. import '../../../../businessPlan/create/global.less'
  7. /**
  8. * 朋友圈预览
  9. * @param param0
  10. * @returns
  11. */
  12. const PreviewMomentsStrategy: React.FC<{ massSendingStrategy: { [x: string]: any } }> = ({ massSendingStrategy }) => {
  13. /************************************************/
  14. const [form] = Form.useForm();
  15. const strategyList = Form.useWatch('strategyList', form);
  16. /************************************************/
  17. useEffect(() => {
  18. if (massSendingStrategy) {
  19. form.setFieldsValue({
  20. ...massSendingStrategy, strategyList: massSendingStrategy?.strategyList?.map(item => {
  21. const { sendTime, startTime, endTime, sendDay, timeRepeatType } = item
  22. if (timeRepeatType === 'TIME_TYPE_SINGLE_PLACE') {
  23. const data = {
  24. ...item,
  25. timeRepeatType,
  26. sendDay: sendDay ? dayjs(sendDay + ' ' + sendTime) : undefined
  27. }
  28. delete data?.sendTime
  29. return data
  30. }
  31. return {
  32. ...item,
  33. timeRepeatType,
  34. sendTime: sendTime ? dayjs('2025-04-25 ' + sendTime) : undefined,
  35. startTime: startTime ? dayjs(startTime) : undefined,
  36. endTime: endTime ? dayjs(endTime) : undefined,
  37. sendDay: sendDay ? dayjs(sendDay) : undefined
  38. }
  39. })
  40. })
  41. }
  42. }, [massSendingStrategy])
  43. return <Form
  44. form={form}
  45. name={'newMomentsShowzs'}
  46. labelAlign='left'
  47. labelCol={{ span: 5 }}
  48. colon={false}
  49. preserve={true}
  50. >
  51. <Card
  52. title={<strong>基础信息配置</strong>}
  53. style={{ background: '#fff', marginBottom: 10 }}
  54. id='basicInfo'
  55. >
  56. <div className='block_tm'>
  57. <Form.Item label={<strong>朋友圈标题</strong>} name="momentSendName">
  58. <Input placeholder="请输入标题" />
  59. </Form.Item>
  60. </div>
  61. </Card>
  62. <Form.List name="strategyList">
  63. {(fields) => (
  64. <>
  65. {fields.map(({ key, name, ...restField }, index) => {
  66. const timeRepeatType = strategyList?.[index]?.timeRepeatType
  67. return <Card
  68. key={key}
  69. title={<strong>策略{index + 1}配置</strong>}
  70. style={{ background: '#fff', marginBottom: 10 }}
  71. >
  72. <div className='block_tm'>
  73. <div className={style.strategy_item}>
  74. <Form.Item
  75. {...restField}
  76. label={<strong>策略名称</strong>}
  77. name={[name, 'strategyName']}
  78. >
  79. <Input placeholder="请输入标题" />
  80. </Form.Item>
  81. <SendTimeSet isShow active='all' form={form} restField={restField} name={name} timeRepeatType={timeRepeatType} />
  82. </div>
  83. </div>
  84. </Card>
  85. })}
  86. </>
  87. )}
  88. </Form.List>
  89. </Form>
  90. };
  91. export default React.memo(PreviewMomentsStrategy);