ruleInstance.tsx 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { Avatar, Card } from 'antd';
  2. import React from 'react';
  3. import { BadgeStatus } from '@/components';
  4. import { StatusColorEnum } from '@/components/BadgeStatus';
  5. import '@/style/common.less';
  6. import type { InstanceItem } from '@/pages/rule-engine/Instance/typings';
  7. export interface RuleInstanceCardProps extends InstanceItem {
  8. actions?: React.ReactNode[];
  9. avatarSize?: number;
  10. }
  11. export default (props: RuleInstanceCardProps) => {
  12. return (
  13. <Card style={{ width: '100%' }} cover={null} actions={props.actions}>
  14. <div className={'pro-table-card-item'}>
  15. <div className={'card-item-avatar'}>
  16. <Avatar
  17. size={props.avatarSize || 64}
  18. src={
  19. 'https://lf1-cdn-tos.bytegoofy.com/goofy/lark/passport/staticfiles/passport/OKR.png'
  20. }
  21. />
  22. </div>
  23. <div className={'card-item-body'}>
  24. <div className={'card-item-header'}>
  25. <span className={'card-item-header-name ellipsis'}>{props.name}</span>
  26. <BadgeStatus
  27. status={props.state.value}
  28. text={props.state.text}
  29. statusNames={{
  30. started: StatusColorEnum.success,
  31. stopped: StatusColorEnum.error,
  32. disable: StatusColorEnum.processing,
  33. }}
  34. />
  35. </div>
  36. {props.description}
  37. </div>
  38. </div>
  39. </Card>
  40. );
  41. };