PrintPage.tsx 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import React from 'react';
  2. import { useAppSelector } from '@/states/store';
  3. import BodyPositionList from '@/pages/exam/components/BodyPositionList';
  4. import FilmTabBar from './FilmTabBar';
  5. import Film from './Film';
  6. import OperationPanel from './OperationPanel';
  7. const PrintPage: React.FC = () => {
  8. // 从Redux获取患者信息
  9. const examWorksCache = useAppSelector((state) => state.examWorksCache);
  10. const patientName = examWorksCache.works[0]?.PatientName || '未知患者';
  11. return (
  12. <div className="print-page h-full flex flex-col">
  13. {/* 顶部标题栏 */}
  14. <div className="flex justify-between items-center p-0 border-b">
  15. <div>
  16. 患者名字: {patientName}
  17. </div>
  18. <div className="flex-1 ml-8">
  19. <FilmTabBar />
  20. </div>
  21. </div>
  22. {/* 内容区域 */}
  23. <div className="flex-1 flex gap-2 p-1 overflow-hidden h-full">
  24. {/* 左侧:体位列表 */}
  25. <div className="w-[15%] border rounded overflow-hidden h-full">
  26. <BodyPositionList layout="vertical" showAddButton={false} />
  27. </div>
  28. {/* 中间:胶片区域 */}
  29. <div className="flex-1 border rounded overflow-hidden">
  30. <Film />
  31. </div>
  32. {/* 右侧:操作面板 */}
  33. <div className="w-[20%] border rounded overflow-hidden">
  34. <OperationPanel />
  35. </div>
  36. </div>
  37. </div>
  38. );
  39. };
  40. export default PrintPage;