AlarmConfig.tsx 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import React from 'react';
  2. import { PermissionButton, TableCard } from '@/components';
  3. import '@/style/common.less';
  4. import '../index.less';
  5. import { StatusColorEnum } from '@/components/BadgeStatus';
  6. import { Tooltip } from 'antd';
  7. import { Store } from 'jetlinks-store';
  8. import { getMenuPathByCode, MENUS_CODE } from '@/utils/menu';
  9. import { useHistory } from 'umi';
  10. export interface AlarmConfigProps extends ConfigurationItem {
  11. detail?: React.ReactNode;
  12. actions?: React.ReactNode[];
  13. avatarSize?: number;
  14. }
  15. export const aliyunSms = require('/public/images/alarm/alarm-config.png');
  16. export default (props: AlarmConfigProps) => {
  17. const history = useHistory();
  18. return (
  19. <TableCard
  20. actions={props.actions}
  21. detail={props.detail}
  22. status={props.state?.value}
  23. statusText={props.state?.text}
  24. statusNames={{
  25. enabled: StatusColorEnum.success,
  26. disabled: StatusColorEnum.error,
  27. }}
  28. showMask={false}
  29. >
  30. <div className={'pro-table-card-item'}>
  31. <div className={'card-item-avatar'}>
  32. <img width={88} height={88} src={aliyunSms} alt={''} />
  33. </div>
  34. <div className={'card-item-body'}>
  35. <div className={'card-item-header'}>
  36. <span className={'card-item-header-name ellipsis'}>
  37. <Tooltip title={props?.name}>{props?.name}</Tooltip>
  38. </span>
  39. </div>
  40. <div className={'card-item-content'}>
  41. <div>
  42. <label>关联场景联动</label>
  43. <div className={'ellipsis'}>
  44. <PermissionButton
  45. type={'link'}
  46. isPermission={!!getMenuPathByCode(MENUS_CODE['rule-engine/Scene'])}
  47. style={{ padding: 0, height: 'auto' }}
  48. tooltip={{
  49. title: !!getMenuPathByCode(MENUS_CODE['rule-engine/Scene'])
  50. ? props?.sceneName
  51. : '没有权限,请联系管理员',
  52. }}
  53. onClick={() => {
  54. const url = getMenuPathByCode('rule-engine/Scene/Save');
  55. history.push(`${url}?id=${props.sceneId}`);
  56. }}
  57. >
  58. {props?.sceneName || ''}
  59. </PermissionButton>
  60. </div>
  61. </div>
  62. <div>
  63. <label>告警级别</label>
  64. <div className={'ellipsis'}>
  65. <Tooltip
  66. title={
  67. (Store.get('default-level') || []).find(
  68. (item: any) => item?.level === props?.level,
  69. )?.title || props?.level
  70. }
  71. >
  72. {(Store.get('default-level') || []).find(
  73. (item: any) => item?.level === props?.level,
  74. )?.title || props?.level}
  75. </Tooltip>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. </div>
  81. </TableCard>
  82. );
  83. };