index.tsx 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import React, { useContext, useState } from "react";
  2. import style from '../../../../../businessPlan/create/index.less'
  3. import { App, Button, Empty, Popconfirm } from "antd";
  4. import useNewToken from "@/Hook/useNewToken";
  5. import { DispatchOfficialChatCreate } from "../..";
  6. import SettingsStrategy from "./settingsStrategy";
  7. import PreviewStrategy from "./previewStrategy";
  8. const Strategy: React.FC = () => {
  9. /*********************************/
  10. const { message } = App.useApp()
  11. const { token } = useNewToken()
  12. const { setSettings, settings, onPreviewReset, mpList, corpList } = useContext(DispatchOfficialChatCreate)!;
  13. const [newVisible, setNewVisible] = useState<boolean>(false);
  14. /*********************************/
  15. return <>
  16. <div className={`${style.settingsBody_content_row}`} style={{ width: '35%' }}>
  17. <div className={`${style.settingsBody_content_col}`} style={{ width: '100%' }}>
  18. <div className={style.title}>
  19. <span>策略</span>
  20. {settings?.strategyDTO && Object.keys(settings?.strategyDTO).length > 0 && <Popconfirm
  21. title="确定清空?"
  22. onConfirm={() => {
  23. setSettings(undefined)
  24. onPreviewReset();
  25. }}
  26. >
  27. <a style={{ color: 'red' }}>清空</a>
  28. </Popconfirm>}
  29. </div>
  30. <div className={style.detail}>
  31. <div className={style.detail_title}>群发策略配置</div>
  32. <div className={style.detail_body}>
  33. {settings?.strategyDTO && Object.keys(settings?.strategyDTO).length > 0 ? <>
  34. <PreviewStrategy strategyDTO={settings?.strategyDTO} mpList={mpList} corpList={corpList} />
  35. </> : <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />}
  36. </div>
  37. </div>
  38. <div className={style.detail_footer}>
  39. <Button type="link" style={{ padding: 0, fontSize: 12, color: token.colorPrimary }} size="small" onClick={() => setNewVisible(true)}>编辑</Button>
  40. </div>
  41. </div>
  42. </div>
  43. {/* 配置基础信息 */}
  44. {newVisible && <SettingsStrategy
  45. visible={newVisible}
  46. value={settings?.strategyDTO}
  47. mpList={mpList}
  48. corpList={corpList}
  49. onClose={() => {
  50. setNewVisible(false);
  51. }}
  52. onChange={(values) => {
  53. setSettings({
  54. ...settings,
  55. strategyDTO: values
  56. });
  57. onPreviewReset();
  58. setNewVisible(false);
  59. }}
  60. />}
  61. </>
  62. }
  63. export default React.memo(Strategy);