ruleInstance.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import React from 'react';
  2. import { TableCard } from '@/components';
  3. import { StatusColorEnum } from '@/components/BadgeStatus';
  4. import '@/style/common.less';
  5. import type { InstanceItem } from '@/pages/rule-engine/Instance/typings';
  6. export interface RuleInstanceCardProps extends InstanceItem {
  7. detail?: React.ReactNode;
  8. actions?: React.ReactNode[];
  9. avatarSize?: number;
  10. }
  11. const defaultImage = require('/public/images/device-type-3-big.png');
  12. export default (props: RuleInstanceCardProps) => {
  13. return (
  14. <TableCard
  15. detail={props.detail}
  16. actions={props.actions}
  17. status={props.state.value}
  18. statusText={props.state.text}
  19. statusNames={{
  20. started: StatusColorEnum.success,
  21. stopped: StatusColorEnum.error,
  22. disable: StatusColorEnum.processing,
  23. }}
  24. >
  25. <div className={'pro-table-card-item'}>
  26. <div className={'card-item-avatar'}>
  27. <img width={88} height={88} src={defaultImage} alt={''} />
  28. </div>
  29. <div className={'card-item-body'}>
  30. <div className={'card-item-header'}>
  31. <span className={'card-item-header-name ellipsis'}>{props.name}</span>
  32. </div>
  33. <div className={'card-item-content'}>{props.description}</div>
  34. </div>
  35. </div>
  36. </TableCard>
  37. );
  38. };