channel.tsx 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import React from 'react';
  2. import { StatusColorEnum } from '@/components/BadgeStatus';
  3. import { TableCard, Ellipsis } from '@/components';
  4. import '@/style/common.less';
  5. import './index.less';
  6. export interface ChannelCardProps extends Partial<ChannelItem> {
  7. detail?: React.ReactNode;
  8. actions?: React.ReactNode[];
  9. avatarSize?: number;
  10. className?: string;
  11. content?: React.ReactNode[];
  12. onClick?: () => void;
  13. grantedPermissions?: string[];
  14. onUnBind?: (e: any) => void;
  15. showBindBtn?: boolean;
  16. cardType?: 'bind' | 'unbind';
  17. showTool?: boolean;
  18. }
  19. const modbusImage = require('/public/images/DataCollect/channel-modbus.png');
  20. const opcuaImage = require('/public/images/DataCollect/channel-opcua.png');
  21. export default (props: ChannelCardProps) => {
  22. return (
  23. <TableCard
  24. actions={props.actions}
  25. status={props.state?.value}
  26. statusText={props.state?.text}
  27. showMask={false}
  28. statusNames={{
  29. running: StatusColorEnum.success,
  30. disabled: StatusColorEnum.processing,
  31. partialError: StatusColorEnum.warning,
  32. failed: StatusColorEnum.error,
  33. stopped: StatusColorEnum.default,
  34. }}
  35. >
  36. <div className={'pro-table-card-item'}>
  37. <div className={'card-item-avatar'}>
  38. <img
  39. width={88}
  40. height={88}
  41. src={props.provider === 'MODBUS_TCP' ? modbusImage : opcuaImage}
  42. alt={''}
  43. />
  44. </div>
  45. <div className={'card-item-body'}>
  46. <div className={'card-item-header'}>
  47. <Ellipsis title={props.name} titleClassName={'card-item-header-name'} />
  48. </div>
  49. <div className={'card-item-content'}>
  50. <div>
  51. <label>协议</label>
  52. <Ellipsis title={props.provider} />
  53. </div>
  54. <div>
  55. <label>地址</label>
  56. <Ellipsis
  57. title={
  58. props.provider === 'MODBUS_TCP'
  59. ? props?.configuration?.host
  60. : props?.configuration?.endpoint
  61. }
  62. />
  63. </div>
  64. </div>
  65. </div>
  66. </div>
  67. </TableCard>
  68. );
  69. };