123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- import { Card, Form, Input, Radio } from 'antd';
- import React, { useEffect } from 'react';
- import style from '../../index.less';
- import SendTimeSet from '@/pages/weComTask/components/sendTimeSet';
- import FilterUser from '@/pages/weComTask/components/filterUser';
- import dayjs from 'dayjs';
- import '../../global.less'
- /**
- * 群发预览
- * @param param0
- * @returns
- */
- const PreviewMassSendingStrategy: React.FC<{ massSendingStrategy: { [x: string]: any }, configType?: BUSINES_SPLAN_API.ConfigTypeProps }> = ({ massSendingStrategy, configType = 'USER_GROUP' }) => {
- /************************************************/
- const [form] = Form.useForm();
- const strategySettings = Form.useWatch('strategySettings', form);
- /************************************************/
- useEffect(() => {
- if (massSendingStrategy) {
- form.setFieldsValue({
- ...massSendingStrategy, strategySettings: massSendingStrategy?.strategySettings?.map(item => {
- const { sendTime, startTime, endTime, sendDay, timeRepeatType } = item
- if (timeRepeatType === 'TIME_TYPE_SINGLE_PLACE') {
- return {
- ...item,
- timeRepeatType,
- sendDay: sendDay ? dayjs(sendDay + ' ' + sendTime) : undefined
- }
- }
- return {
- ...item,
- timeRepeatType,
- sendTime: sendTime ? dayjs('2025-04-25 ' + sendTime) : undefined,
- startTime: startTime ? dayjs(startTime) : undefined,
- endTime: endTime ? dayjs(endTime) : undefined,
- sendDay: sendDay ? dayjs(sendDay) : undefined
- }
- })
- })
- }
- }, [massSendingStrategy])
- return <Form
- form={form}
- name={'newMassSendingShowzs' + configType}
- labelAlign='left'
- labelCol={{ span: 5 }}
- colon={false}
- preserve={true}
- >
- <Card
- title={<strong>基础信息配置</strong>}
- style={{ background: '#fff', marginBottom: 10 }}
- id='basicInfo'
- >
- <div className='block_tm'>
- <Form.Item label={<strong>群发标题</strong>} name="groupSendName">
- <Input placeholder="请输入标题" />
- </Form.Item>
- </div>
- </Card>
- <Form.List name="strategySettings">
- {(fields) => (
- <>
- {fields.map(({ key, name, ...restField }, index) => {
- const timeRepeatType = strategySettings?.[index]?.timeRepeatType
- const sendData = strategySettings?.[index]?.sendData
- return <Card
- key={key}
- title={<strong>策略{index + 1}配置</strong>}
- style={{ background: '#fff', marginBottom: 10 }}
- >
- <div className='block_tm'>
- <div className={style.strategy_item}>
- <Form.Item
- {...restField}
- label={<strong>策略名称</strong>}
- name={[name, 'strategyName']}
- >
- <Input placeholder="请输入标题" />
- </Form.Item>
- <SendTimeSet isShow active='all' form={form} restField={restField} name={name} timeRepeatType={timeRepeatType} />
- <Form.List name={[name, 'sendData']}>
- {(fields) => (
- <>
- {fields.map(({ key, name, ...restField }, i) => {
- return <Card
- key={i}
- title={<strong>策略{index + 1} 发送对象{i + 1}</strong>}
- style={{ background: '#fff', marginBottom: 10 }}
- >
- <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'flex-start' }}>
- <Form.Item
- {...restField}
- name={[name, 'externalUserType']}
- rules={[{ required: true, message: '请选择转移对象!' }]}
- noStyle
- >
- <Radio.Group options={[{ label: '全部', value: 'all' }, { label: '指定', value: 'specify' }]} />
- </Form.Item>
- {sendData?.[i]?.externalUserType === 'specify' && <div style={{ marginTop: 8, width: '100%' }}>
- <Form.Item
- {...restField}
- name={[name, 'externalUserFilter']}
- rules={[{ required: true, message: '请选择人群包!' }]}
- noStyle
- >
- <FilterUser isSHow configType={configType} />
- </Form.Item>
- </div>}
- </div>
- </Card>
- })}
- </>
- )}
- </Form.List>
- </div>
- </div>
- </Card>
- })}
- </>
- )}
- </Form.List>
- </Form>
- };
- export default React.memo(PreviewMassSendingStrategy);
|