ProcedureViewCard.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import React from 'react';
  2. import { Card } from 'antd';
  3. import { useDispatch } from 'react-redux';
  4. import type { Procedure } from '../../../states/patient/viewSelection';
  5. import { addProtocolViews } from '../../../states/patient/viewSelection';
  6. interface ProcedureViewCardProps {
  7. protocol: Procedure;
  8. selected?: boolean;
  9. }
  10. const ProcedureViewCard: React.FC<ProcedureViewCardProps> = ({
  11. protocol,
  12. selected,
  13. }) => {
  14. const dispatch = useDispatch();
  15. const handleClick = () => {
  16. dispatch(addProtocolViews(protocol));
  17. };
  18. return (
  19. <Card
  20. hoverable
  21. style={{
  22. marginBottom: 12,
  23. borderColor: selected ? '#1890ff' : undefined,
  24. boxShadow: selected ? '0 0 0 2px #1890ff33' : undefined,
  25. }}
  26. onClick={handleClick}
  27. title={protocol.ProcedureName}
  28. >
  29. <div>
  30. <div>
  31. <strong>代码:</strong>
  32. {protocol.ProcedureCode}
  33. </div>
  34. <div>
  35. <strong>别名:</strong>
  36. {protocol.ProcedureOtherName}
  37. </div>
  38. <div>
  39. <strong>描述:</strong>
  40. {protocol.ProcedureDescription}
  41. </div>
  42. <div>
  43. <strong>适用类型:</strong>
  44. {protocol.PatientType}
  45. </div>
  46. {/* 可根据需要展示更多字段 */}
  47. </div>
  48. </Card>
  49. );
  50. };
  51. export default ProcedureViewCard;