|
@@ -1,5 +1,6 @@
|
|
|
import React, { useMemo } from 'react';
|
|
import React, { useMemo } from 'react';
|
|
|
import { Button, Flex, message, Modal } from 'antd';
|
|
import { Button, Flex, message, Modal } from 'antd';
|
|
|
|
|
+import { useIntl } from 'react-intl';
|
|
|
import { useSelector } from 'react-redux';
|
|
import { useSelector } from 'react-redux';
|
|
|
import { RootState, useAppDispatch } from '@/states/store';
|
|
import { RootState, useAppDispatch } from '@/states/store';
|
|
|
import {
|
|
import {
|
|
@@ -28,6 +29,7 @@ import { useButtonAvailability } from '@/utils/useButtonAvailability';
|
|
|
* - 另存为按钮始终可见但禁用
|
|
* - 另存为按钮始终可见但禁用
|
|
|
*/
|
|
*/
|
|
|
const ImageStateControl: React.FC = () => {
|
|
const ImageStateControl: React.FC = () => {
|
|
|
|
|
+ const intl = useIntl();
|
|
|
const dispatch = useAppDispatch();
|
|
const dispatch = useAppDispatch();
|
|
|
const { disabled:ofReject } = useButtonAvailability('拒绝');
|
|
const { disabled:ofReject } = useButtonAvailability('拒绝');
|
|
|
const { disabled:ofRecover } = useButtonAvailability('恢复');
|
|
const { disabled:ofRecover } = useButtonAvailability('恢复');
|
|
@@ -60,10 +62,10 @@ const ImageStateControl: React.FC = () => {
|
|
|
const handleReject = async () => {
|
|
const handleReject = async () => {
|
|
|
if (!selectedImage) return;
|
|
if (!selectedImage) return;
|
|
|
Modal.confirm({
|
|
Modal.confirm({
|
|
|
- title: '确认拒绝',
|
|
|
|
|
- content: `确定要拒绝选中的图像吗?`,
|
|
|
|
|
- okText: '确认拒绝',
|
|
|
|
|
- cancelText: '取消',
|
|
|
|
|
|
|
+ title: intl.formatMessage({ id: 'imageStateControl.confirmReject' }),
|
|
|
|
|
+ content: intl.formatMessage({ id: 'imageStateControl.confirmRejectMessage' }),
|
|
|
|
|
+ okText: intl.formatMessage({ id: 'imageStateControl.confirmRejectButton' }),
|
|
|
|
|
+ cancelText: intl.formatMessage({ id: 'imageStateControl.cancel' }),
|
|
|
okButtonProps: {
|
|
okButtonProps: {
|
|
|
danger: true,
|
|
danger: true,
|
|
|
'data-testid': 'modal-confirm-delete'
|
|
'data-testid': 'modal-confirm-delete'
|
|
@@ -80,10 +82,10 @@ const ImageStateControl: React.FC = () => {
|
|
|
accept: false,
|
|
accept: false,
|
|
|
})
|
|
})
|
|
|
).unwrap();
|
|
).unwrap();
|
|
|
- message.success('图像已拒绝');
|
|
|
|
|
|
|
+ message.success(intl.formatMessage({ id: 'imageStateControl.imageRejected' }));
|
|
|
} catch (err) {
|
|
} catch (err) {
|
|
|
console.error('拒绝图像失败:', err);
|
|
console.error('拒绝图像失败:', err);
|
|
|
- message.error('拒绝图像失败');
|
|
|
|
|
|
|
+ message.error(intl.formatMessage({ id: 'imageStateControl.rejectFailed' }));
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
});
|
|
});
|
|
@@ -101,10 +103,10 @@ const ImageStateControl: React.FC = () => {
|
|
|
})
|
|
})
|
|
|
).unwrap();
|
|
).unwrap();
|
|
|
|
|
|
|
|
- message.success('图像已恢复');
|
|
|
|
|
|
|
+ message.success(intl.formatMessage({ id: 'imageStateControl.imageRestored' }));
|
|
|
} catch (err) {
|
|
} catch (err) {
|
|
|
console.error('恢复图像失败:', err);
|
|
console.error('恢复图像失败:', err);
|
|
|
- message.error('恢复图像失败');
|
|
|
|
|
|
|
+ message.error(intl.formatMessage({ id: 'imageStateControl.restoreFailed' }));
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -113,10 +115,10 @@ const ImageStateControl: React.FC = () => {
|
|
|
if (!selectedImage) return;
|
|
if (!selectedImage) return;
|
|
|
|
|
|
|
|
Modal.confirm({
|
|
Modal.confirm({
|
|
|
- title: '确认另存为',
|
|
|
|
|
- content: `确定要复制选中的图像吗?`,
|
|
|
|
|
- okText: '确认',
|
|
|
|
|
- cancelText: '取消',
|
|
|
|
|
|
|
+ title: intl.formatMessage({ id: 'imageStateControl.confirmSaveAs' }),
|
|
|
|
|
+ content: intl.formatMessage({ id: 'imageStateControl.confirmSaveAsMessage' }),
|
|
|
|
|
+ okText: intl.formatMessage({ id: 'imageStateControl.confirm' }),
|
|
|
|
|
+ cancelText: intl.formatMessage({ id: 'imageStateControl.cancel' }),
|
|
|
centered: true,
|
|
centered: true,
|
|
|
onOk: async () => {
|
|
onOk: async () => {
|
|
|
try {
|
|
try {
|
|
@@ -126,10 +128,10 @@ const ImageStateControl: React.FC = () => {
|
|
|
studyId: selectedImage.study_id || '',
|
|
studyId: selectedImage.study_id || '',
|
|
|
})
|
|
})
|
|
|
).unwrap();
|
|
).unwrap();
|
|
|
- message.success('图像另存为成功,体位列表已更新');
|
|
|
|
|
|
|
+ message.success(intl.formatMessage({ id: 'imageStateControl.saveAsSuccess' }));
|
|
|
} catch (err) {
|
|
} catch (err) {
|
|
|
console.error('图像另存为失败:', err);
|
|
console.error('图像另存为失败:', err);
|
|
|
- message.error('图像另存为失败');
|
|
|
|
|
|
|
+ message.error(intl.formatMessage({ id: 'imageStateControl.saveAsFailed' }));
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
});
|
|
});
|
|
@@ -162,7 +164,7 @@ const ImageStateControl: React.FC = () => {
|
|
|
padding: 0,
|
|
padding: 0,
|
|
|
}}
|
|
}}
|
|
|
disabled={ofReject}
|
|
disabled={ofReject}
|
|
|
- title="拒绝"
|
|
|
|
|
|
|
+ title={intl.formatMessage({ id: 'imageStateControl.reject' })}
|
|
|
/>
|
|
/>
|
|
|
)}
|
|
)}
|
|
|
{showRestoreButton && (
|
|
{showRestoreButton && (
|
|
@@ -184,7 +186,7 @@ const ImageStateControl: React.FC = () => {
|
|
|
height: '1.5rem',
|
|
height: '1.5rem',
|
|
|
padding: 0,
|
|
padding: 0,
|
|
|
}}
|
|
}}
|
|
|
- title="恢复"
|
|
|
|
|
|
|
+ title={intl.formatMessage({ id: 'imageStateControl.restore' })}
|
|
|
disabled={ofRecover}
|
|
disabled={ofRecover}
|
|
|
/>
|
|
/>
|
|
|
)}
|
|
)}
|
|
@@ -207,7 +209,7 @@ const ImageStateControl: React.FC = () => {
|
|
|
height: '1.5rem',
|
|
height: '1.5rem',
|
|
|
padding: 0,
|
|
padding: 0,
|
|
|
}}
|
|
}}
|
|
|
- title="另存为"
|
|
|
|
|
|
|
+ title={intl.formatMessage({ id: 'imageStateControl.saveAs' })}
|
|
|
disabled={ofSaveAs}
|
|
disabled={ofSaveAs}
|
|
|
/>
|
|
/>
|
|
|
)}
|
|
)}
|