index.tsx 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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 } = 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. visible={addVisible}
  40. onClose={() => {
  41. setAddVisible(false)
  42. }}
  43. onChange={(e) => {
  44. setAccountCreateLogs(e);
  45. setAddVisible(false);
  46. clearData()
  47. }}
  48. />}
  49. </div>
  50. }
  51. export default React.memo(PageList)