cascade.tsx 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import React from 'react';
  2. import type { CascadeItem } from '@/pages/media/Cascade/typings';
  3. import { StatusColorEnum } from '@/components/BadgeStatus';
  4. import { TableCard } from '@/components';
  5. import '@/style/common.less';
  6. import '../index.less';
  7. import { Badge } from 'antd';
  8. export interface CascadeCardProps extends CascadeItem {
  9. detail?: React.ReactNode;
  10. actions?: React.ReactNode[];
  11. avatarSize?: number;
  12. }
  13. const defaultImage = require('/public/images/device-type-3-big.png');
  14. export default (props: CascadeCardProps) => {
  15. return (
  16. <TableCard
  17. showMask={false}
  18. actions={props.actions}
  19. status={props.status.value}
  20. statusText={props.status.text}
  21. statusNames={{
  22. enabled: StatusColorEnum.processing,
  23. disabled: StatusColorEnum.error,
  24. }}
  25. >
  26. <div className={'pro-table-card-item'}>
  27. <div className={'card-item-avatar'}>
  28. <img width={88} height={88} src={defaultImage} alt={''} />
  29. </div>
  30. <div className={'card-item-body'}>
  31. <div className={'card-item-header'}>
  32. <span className={'card-item-header-name ellipsis'}>{props.name}</span>
  33. </div>
  34. <div>通道数量: 5</div>
  35. <div>
  36. <Badge
  37. status={props.onlineStatus?.value === 'offline' ? 'error' : 'success'}
  38. text={`sip:${props.sipConfigs[0]?.sipId}@${props.sipConfigs[0]?.hostAndPort}`}
  39. />
  40. </div>
  41. </div>
  42. </div>
  43. </TableCard>
  44. );
  45. };