noticeTemplate.tsx 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import React from 'react';
  2. import { Ellipsis, TableCard } from '@/components';
  3. import '@/style/common.less';
  4. import '../index.less';
  5. export interface NoticeCardProps extends TemplateItem {
  6. detail?: React.ReactNode;
  7. actions?: React.ReactNode[];
  8. avatarSize?: number;
  9. }
  10. export const imgMap = {
  11. dingTalk: {
  12. dingTalkMessage: require('/public/images/notice/dingtalk.png'),
  13. dingTalkRobotWebHook: require('/public/images/notice/dingTalk-rebot.png'),
  14. },
  15. weixin: {
  16. corpMessage: require('/public/images/notice/weixin-corp.png'),
  17. officialMessage: require('/public/images/notice/weixin-official.png'),
  18. },
  19. email: {
  20. embedded: require('/public/images/notice/email.png'),
  21. },
  22. voice: {
  23. aliyun: require('/public/images/notice/voice.png'),
  24. },
  25. sms: {
  26. aliyunSms: require('/public/images/notice/sms.png'),
  27. },
  28. webhook: {
  29. http: require('/public/images/notice/webhook.png'),
  30. },
  31. };
  32. export const typeList = {
  33. weixin: {
  34. corpMessage: '企业消息',
  35. officialMessage: '服务号消息',
  36. },
  37. dingTalk: {
  38. dingTalkMessage: '钉钉消息',
  39. dingTalkRobotWebHook: '群机器人消息',
  40. },
  41. voice: {
  42. aliyun: '阿里云语音',
  43. },
  44. sms: {
  45. aliyunSms: '阿里云短信',
  46. },
  47. email: {
  48. embedded: '邮件',
  49. },
  50. webhook: {
  51. http: 'webhook',
  52. },
  53. };
  54. export default (props: NoticeCardProps) => {
  55. return (
  56. <TableCard actions={props.actions} showStatus={false} detail={props.detail} showMask={false}>
  57. <div className={'pro-table-card-item'}>
  58. <div className={'card-item-avatar'}>
  59. <img width={88} height={88} src={imgMap[props.type][props.provider]} alt={props.type} />
  60. </div>
  61. <div className={'card-item-body'}>
  62. <div className={'card-item-header'}>
  63. {/*<span className={'card-item-header-name ellipsis'}>*/}
  64. {/* <Tooltip placement="topLeft" title={props.name}>*/}
  65. {/* {props.name}*/}
  66. {/* </Tooltip>*/}
  67. {/*</span>*/}
  68. <Ellipsis title={props.name} titleClassName={'card-item-header-name'} />
  69. </div>
  70. <div className={'card-item-content'}>
  71. <div>
  72. <label>通知方式</label>
  73. <Ellipsis title={typeList[props.type][props.provider] || '暂无'} />
  74. {/*<div className={'ellipsis'}>{typeList[props.type][props.provider] || '暂无'}</div>*/}
  75. </div>
  76. <div>
  77. <label>说明</label>
  78. <Ellipsis tooltip={{ placement: 'topLeft' }} title={props.description} />
  79. {/*<div className={'ellipsis'}>*/}
  80. {/* <Tooltip placement="topLeft" title={props.description}>*/}
  81. {/* {props.description}*/}
  82. {/* </Tooltip>*/}
  83. {/*</div>*/}
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. </TableCard>
  89. );
  90. };