Jelajahi Sumber

打印,当toolmode处于windowLevel zoom pan 模式时,对应的按钮变成down状态,并且点击图像后不处理选中与取消选中

dengdx 1 bulan lalu
induk
melakukan
7159c7db26

+ 4 - 0
src/pages/output/print/DcmCell.tsx

@@ -323,6 +323,10 @@ const ViewportContainer = ({ imageId, className, currentFilm, indexOfCell }: Vie
   // 处理格子点击事件
   const handleCellClick = (e: React.MouseEvent) => {
     e.stopPropagation();
+    // 如果不是normal模式(即处于zoom pan windowlevel模式)时,不响应选中/取消选中
+    if(toolMode!=='normal'){
+      return;
+    }
     dispatch(toggleCellSelection(cellId));
   };
 

+ 8 - 1
src/pages/output/print/ImageOperationPanel.tsx

@@ -13,6 +13,7 @@ interface ImageOperationButtonProps {
   iconName: string;
   onClick: () => void;
   disabled?: boolean;
+  state?:string;
 }
 
 const ImageOperationButton: React.FC<ImageOperationButtonProps> = ({
@@ -20,6 +21,7 @@ const ImageOperationButton: React.FC<ImageOperationButtonProps> = ({
   iconName,
   onClick,
   disabled = false,
+  state='normal'
 }) => {
   const themeType = useAppSelector((state) => state.theme.themeType);
 
@@ -34,7 +36,7 @@ const ImageOperationButton: React.FC<ImageOperationButtonProps> = ({
           userId="base"
           theme={themeType}
           size="2x"
-          state="normal"
+          state={state??"normal"}
         />
       }
       style={{
@@ -50,6 +52,8 @@ const ImageOperationButton: React.FC<ImageOperationButtonProps> = ({
 
 const ImageOperationPanel: React.FC = () => {
     const dispatch = useDispatch();
+      // 监听工具模式状态
+      const toolMode = useAppSelector(state => state.print.toolMode);
       // 工具模式切换处理函数
   const handleToggleToolMode = (mode: ToolMode) => {
     dispatch(toggleToolMode(mode));
@@ -62,11 +66,13 @@ const ImageOperationPanel: React.FC = () => {
         <ImageOperationButton
           title="缩放图像"
           iconName="Zoom"
+          state={toolMode==='zoom'?'down':'normal'}
           onClick={() => handleToggleToolMode('zoom')}
         />
         <ImageOperationButton
           title="漫游图像"
           iconName="Pan"
+          state={toolMode==='pan'?'down':'normal'}
           onClick={() => handleToggleToolMode('pan')}
         />
         <ImageOperationButton
@@ -112,6 +118,7 @@ const ImageOperationPanel: React.FC = () => {
         <ImageOperationButton
           title="鼠标调节亮度和对比度"
           iconName="btn_BrightnessContrast"
+          state={toolMode==='windowLevel'?'down':'normal'}
           onClick={() => handleToggleToolMode('windowLevel')}
         />
         <ImageOperationButton