scene.tsx 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import React from 'react';
  2. import { StatusColorEnum } from '@/components/BadgeStatus';
  3. import { Ellipsis, TableCard } from '@/components';
  4. import '@/style/common.less';
  5. import '../index.less';
  6. import type { SceneItem } from '@/pages/rule-engine/Scene/typings';
  7. export interface DeviceCardProps extends SceneItem {
  8. tools: React.ReactNode[];
  9. detail?: React.ReactNode;
  10. }
  11. const defaultImage = require('/public/images/scene.png');
  12. enum TriggerWayType {
  13. manual = '手动触发',
  14. timer = '定时触发',
  15. device = '设备触发',
  16. }
  17. export default (props: DeviceCardProps) => {
  18. return (
  19. <TableCard
  20. // showMask={false}
  21. detail={props.detail}
  22. actions={props.tools}
  23. status={props.state.value}
  24. statusText={props.state.text}
  25. statusNames={{
  26. started: StatusColorEnum.success,
  27. disable: StatusColorEnum.error,
  28. notActive: StatusColorEnum.warning,
  29. }}
  30. >
  31. <div className={'pro-table-card-item'}>
  32. <div className={'card-item-avatar'}>
  33. <img width={88} height={88} src={defaultImage} alt={''} />
  34. </div>
  35. <div className={'card-item-body'}>
  36. <div className={'card-item-header'}>
  37. <Ellipsis title={props.name} titleClassName={'card-item-header-name'} />
  38. </div>
  39. <div>
  40. <div>
  41. <label>触发方式</label>
  42. <Ellipsis title={TriggerWayType[props.triggerType]} />
  43. </div>
  44. <div>
  45. <label>说明</label>
  46. <Ellipsis title={props.description} />
  47. </div>
  48. </div>
  49. </div>
  50. </div>
  51. </TableCard>
  52. );
  53. };