index.tsx 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import React, { useContext, useState } from 'react'
  2. import style from '../index.less'
  3. import { Button, Empty, Typography } from 'antd'
  4. import { DispatchAddelivery } from '..';
  5. import { PlusCircleOutlined } from '@ant-design/icons';
  6. import PageModal from '@/pages/launchSystemV3/components/PageModal';
  7. const { Title, Text } = Typography;
  8. /**
  9. * 落地页
  10. * @returns
  11. */
  12. const PageList: React.FC = () => {
  13. /********************************/
  14. const { addelivery, accountCreateLogs, setAccountCreateLogs, clearData } = useContext(DispatchAddelivery)!;
  15. const { dynamic, adgroups } = addelivery
  16. const [addVisible, setAddVisible] = useState<boolean>(false)
  17. /********************************/
  18. return <div className={`${style.settingsBody_content_row} ${style.row6}`}>
  19. <div className={style.title}>
  20. <span>落地页</span>
  21. </div>
  22. <div className={style.detail}>
  23. <div className={style.detail_body}>
  24. {accountCreateLogs?.map((item, index) => {
  25. return <div key={index}>
  26. <Title level={5} style={{ fontSize: 12 }}>{item.accountId}</Title>
  27. {item?.pageList?.length ?
  28. item?.pageList?.map((page: { pageName: string, id: number }) => <div key={page.id} className={style.text}><Text ellipsis={{ tooltip: true }}>{page['pageName']}</Text></div>) :
  29. <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} style={{ margin: 0, fontSize: 12 }} imageStyle={{ height: 18 }} />}
  30. </div>
  31. })}
  32. </div>
  33. <div className={style.detail_footer}>
  34. <Button disabled={!(dynamic && Object.keys(dynamic)?.length > 0)} type="link" icon={<PlusCircleOutlined />} style={{ padding: 0, fontSize: 12 }} onClick={() => setAddVisible(true)}>添加</Button>
  35. </div>
  36. </div>
  37. {addVisible && <PageModal
  38. data={accountCreateLogs}
  39. adgroups={adgroups}
  40. visible={addVisible}
  41. onClose={() => {
  42. setAddVisible(false)
  43. }}
  44. onChange={(e) => {
  45. setAccountCreateLogs(e);
  46. setAddVisible(false);
  47. clearData()
  48. }}
  49. />}
  50. </div>
  51. }
  52. export default React.memo(PageList)