import React, { useEffect } from 'react'; import { Row, Col, Image, Card, Typography, Tag, Empty, Badge } from 'antd'; import { FormattedMessage } from 'react-intl'; import { useDispatch, useSelector } from 'react-redux'; import store, { AppDispatch, RootState } from '@/states/store'; import { dview } from '@/domain/dview'; import { clearThumbnails, updateThumbnailsFromHistorySelection } from '@/states/patient/worklist/slices/thumbnailListSlice'; import { CheckOutlined, CloseOutlined } from '@ant-design/icons'; const { Text, Title } = Typography; interface ThumbnailListProps { className?: string; } const ThumbnailList: React.FC = ({ className }) => { const dispatch = useDispatch(); const thumbnails = useSelector( (state: RootState) => state.thumbnailList.thumbnails ); const currentKey = useSelector( (state: RootState) => state.BusinessFlow.currentKey ); const loading = useSelector( (state: RootState) => state.thumbnailList.loading ); const error = useSelector((state: RootState) => state.thumbnailList.error); const workSelectedIds = useSelector((state: RootState) => state.workSelection.selectedIds); const workHistorySelectedIds = useSelector((state: RootState) => state.historySelection.selectedIds); useEffect(() => { // 组件挂载时清空 // 基于currentKey,查找history或者worklist中的选中项, if (currentKey === 'worklist') { const selectedId = store.getState().workSelection.selectedIds; if (selectedId.length > 0) { dispatch(updateThumbnailsFromHistorySelection(selectedId)); } } if (currentKey === 'historylist') { const selectedId = store.getState().historySelection.selectedIds; if (selectedId.length > 0) { dispatch(updateThumbnailsFromHistorySelection(selectedId)); } } // 组件卸载时清空 return () => { dispatch(clearThumbnails()); }; }, [dispatch,workHistorySelectedIds,workSelectedIds]); if (error) { return (
{error}
); } if (loading) { return (
); } if (thumbnails.length === 0) { return (
} />
); } return (
{/* <FormattedMessage id="thumbnailList.title" defaultMessage="Image Thumbnails" /> */} {thumbnails.map((thumbnail: dview) => ( {thumbnail.view_description
), }} /> {/* 左上角:判断状态badge */} {/* {thumbnail.expose_status === 'Exposed' && thumbnail.judged_status && (
) : thumbnail.judged_status === 'Reject' ? ( ) : 'Un' } style={{ backgroundColor: thumbnail.judged_status === 'Accept' ? '#52c41a' : '#ff4d4f', }} />
)} */} {/* 右上角:曝光状态tag */} {/*
{thumbnail.expose_status}
*/} } > {thumbnail.view_description || thumbnail.view_type} } // description={ // // ID: {thumbnail.view_id} // // } /> ))} ); }; export default ThumbnailList;