details.tsx 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import React from "react";
  2. import { ACTICITYTHEME, ACTICITYTHEMEXH, DISPLAYTYPE, LINKTYPE, LINKTYPEEle, PAGETYPE, RESOURCETTYPE } from "./const";
  3. interface Props {
  4. linkType: keyof typeof LINKTYPE,
  5. linkContent: { [x: string]: any }
  6. }
  7. const Details: React.FC<Props> = ({ linkType, linkContent }) => {
  8. if (linkType === 1) {
  9. return <div>
  10. <div>链接类型:{LINKTYPEEle[linkType]}</div>
  11. <div>页面类型:<span style={{ color: '#1890ff' }}>{PAGETYPE[linkContent?.pageType] || linkContent?.pageType}</span></div>
  12. {linkContent?.cost && <div>消耗:<span style={{ color: '#1890ff' }}>{linkContent?.cost}</span></div>}
  13. </div>
  14. } else if (linkType === 2) {
  15. return <div>
  16. <div>链接类型:{LINKTYPEEle[linkType]}</div>
  17. <div>作品(书籍)ID:<span style={{ color: '#1890ff' }}>{linkContent?.bookId}</span></div>
  18. <div>章节ID:<span style={{ color: '#1890ff' }}>{linkContent?.chapterId}</span></div>
  19. <div>强关设置:<span style={{ color: '#1890ff' }}>{linkContent?.forceStyle === '1' ? '不设置强关' : linkContent?.forceStyle === '2' ? '主动强关' : '强制关注'}</span></div>
  20. {linkContent?.forceChapter && <div>强关章节序号:<span style={{ color: '#1890ff' }}>{linkContent?.forceChapter}</span></div>}
  21. <div>是否添加底部关注引导:<span style={{ color: '#1890ff' }}>{linkContent?.isOpenBottom ? '是' : '否'}</span></div>
  22. {linkContent?.cost && <div>消耗:<span style={{ color: '#1890ff' }}>{linkContent?.cost}</span></div>}
  23. </div>
  24. } else if (linkType === 3) {
  25. return <div>
  26. <div>链接类型:{LINKTYPEEle[linkType]}</div>
  27. <div>活动名称:<span style={{ color: '#1890ff' }}>{linkContent?.activityName}</span></div>
  28. <div>活动主题:<span style={{ color: '#1890ff' }}>{ACTICITYTHEME[linkContent?.activityTheme]}</span></div>
  29. <div>充值挡位:<span style={{ color: '#1890ff' }}>充值{linkContent?.rechargeAmount}元,送{linkContent?.giftAmount}书卷</span></div>
  30. <div>活动次数:<span style={{ color: '#1890ff' }}>{linkContent?.rechargeCount}</span></div>
  31. <div>是否每日充值活动:<span style={{ color: '#1890ff' }}>{linkContent?.isDayRepeat ? '是' : '否'}</span></div>
  32. <div>活动时间:<span style={{ color: '#1890ff' }}>{linkContent?.startTime}~{linkContent?.endTime}</span></div>
  33. <div>活动时间状态:<span style={{ color: '#1890ff' }}>{linkContent?.timeIsShow ? '开启' : '关闭'}</span></div>
  34. {linkContent?.display && <div>活动展示位:<span style={{ color: '#1890ff' }}>{linkContent.display.split(',').map(item => DISPLAYTYPE[item]).join('、')}</span></div>}
  35. </div>
  36. } else if (linkType === 4) {
  37. return <div>
  38. <div>链接类型:{LINKTYPEEle[linkType]}</div>
  39. <div>活动名称:<span style={{ color: '#1890ff' }}>{linkContent?.activityName}</span></div>
  40. <div>赠送道具:<span style={{ color: '#1890ff' }}>{RESOURCETTYPE[linkContent?.resourceType]}</span></div>
  41. <div>赠送书卷量:<span style={{ color: '#1890ff' }}>{linkContent?.freeAmount}</span></div>
  42. <div>书卷有效期:<span style={{ color: '#1890ff' }}>{linkContent?.expire}天</span></div>
  43. <div>赠送名额:<span style={{ color: '#1890ff' }}>{linkContent?.totalGift}</span></div>
  44. <div>活动时间:<span style={{ color: '#1890ff' }}>{linkContent?.startTime}~{linkContent?.endTime}</span></div>
  45. {linkContent?.display && <div>活动展示位:<span style={{ color: '#1890ff' }}>{linkContent.display.split(',').map(item => DISPLAYTYPE[item]).join('、')}</span></div>}
  46. </div>
  47. } else if (linkType === 5) {
  48. return <div>
  49. <div>链接类型:{LINKTYPEEle[linkType]}</div>
  50. <div>活动名称:<span style={{ color: '#1890ff' }}>{linkContent?.activityName}</span></div>
  51. <div>活动主题:<span style={{ color: '#1890ff' }}>{ACTICITYTHEMEXH[linkContent?.activityTheme]}</span></div>
  52. <div>购买章节数量:<span style={{ color: '#1890ff' }}>{linkContent?.unlockChapter}</span></div>
  53. <div>生效书籍:<span style={{ color: '#1890ff' }}>{linkContent?.bookId || '全部'}</span></div>
  54. <div>赠送书卷数量:<span style={{ color: '#1890ff' }}>{linkContent?.giftAmount}</span></div>
  55. <div>赠送名额:<span style={{ color: '#1890ff' }}>{linkContent?.totalGift}</span></div>
  56. <div>活动时间:<span style={{ color: '#1890ff' }}>{linkContent?.startTime}~{linkContent?.endTime}</span></div>
  57. {linkContent?.display && <div>活动展示位:<span style={{ color: '#1890ff' }}>{linkContent.display.split(',').map(item => DISPLAYTYPE[item]).join('、')}</span></div>}
  58. </div>
  59. }
  60. return null
  61. }
  62. export default React.memo(Details);