index.tsx 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import React, { useContext, useState } from 'react';
  2. import style from '../../../../businessPlan/create/index.less'
  3. import useNewToken from '@/Hook/useNewToken';
  4. import { App, Button, Empty } from 'antd';
  5. import { DispatchGroupChatCreate } from '../..';
  6. import SettingsGroupUser from './settingsGroupUser';
  7. import PreviewGroupUser from './previewGroupUser';
  8. /**
  9. * 进群对象
  10. * @returns
  11. */
  12. const GroupUser: React.FC = () => {
  13. /*********************************/
  14. const { message } = App.useApp()
  15. const { token } = useNewToken()
  16. const { setSettings, settings, onPreviewReset, bookPlatForm, bookList } = useContext(DispatchGroupChatCreate)!;
  17. const [newVisible, setNewVisible] = useState<boolean>(false);
  18. /*********************************/
  19. return <>
  20. <div className={`${style.settingsBody_content_row}`} style={{ width: '65%' }}>
  21. <div className={`${style.settingsBody_content_col}`} style={{ width: '100%' }}>
  22. <div className={style.title}>
  23. <span>群</span>
  24. {settings?.strategyDTO?.strategyList?.every(item => item?.groupObjectList?.length > 0) && <a
  25. style={{ color: 'red' }}
  26. onClick={() => {
  27. setSettings({
  28. ...settings,
  29. strategyDTO: {
  30. ...settings.strategyDTO,
  31. strategyList: settings.strategyDTO.strategyList.map(item => ({
  32. ...item,
  33. groupObjectList: []
  34. }))
  35. }
  36. });
  37. }}
  38. >清空</a>}
  39. </div>
  40. <div className={style.detail}>
  41. <div className={style.detail_title}>群配置</div>
  42. <div className={style.detail_body}>
  43. {settings?.strategyDTO && Object.keys(settings?.strategyDTO).length > 0 ? <PreviewGroupUser
  44. strategyList={settings?.strategyDTO?.strategyList || []}
  45. bookList={bookList}
  46. bookPlatForm={bookPlatForm}
  47. /> : <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />}
  48. </div>
  49. </div>
  50. <div className={style.detail_footer}>
  51. {settings?.strategyDTO && Object.keys(settings?.strategyDTO).length > 0 ?
  52. <Button type="link" style={{ padding: 0, fontSize: 12, color: token.colorPrimary }} size="small" onClick={() => setNewVisible(true)}>编辑</Button> :
  53. <Button type="link" style={{ padding: 0, fontSize: 12, color: token.colorPrimary }} size="small" onClick={() => message.error('请先编辑群聊创建策略')}>编辑</Button>}
  54. </div>
  55. </div>
  56. </div>
  57. {/* 配置群聊创建进群对象 */}
  58. {newVisible && <SettingsGroupUser
  59. visible={newVisible}
  60. onClose={() => setNewVisible(false)}
  61. onChange={(values) => {
  62. setSettings({
  63. ...settings,
  64. strategyDTO: values
  65. });
  66. onPreviewReset();
  67. setNewVisible(false);
  68. }}
  69. value={settings?.strategyDTO}
  70. />}
  71. </>
  72. };
  73. export default React.memo(GroupUser);