فهرست منبع

## 生成的提交信息

`
feat (1.56.0 -> 1.57.0): 添加采集失败错误信息传递功能

- 在 GeneratorMonitorState 中添加 errorMessage 字段用于存储错误信息
- 在 generatorMonitorSlice 中添加 setErrorMessage action
- 更新 ACQUISITION_FAILURE 事件监听器以接收和存储错误信息
- 在 mqttService.ts 中传递 message.message 到 ACQUISITION_FAILURE 事件
- 在 AcquisitionTracer 组件中显示动态错误信息,支持默认提示

改动文件:
- src/states/exam/generatorMonitorSlice.ts
- src/domain/mqttService.ts
- src/pages/exam/components/acquisitionTracer.tsx
- CHANGELOG.md
- package.json
`
dengdx 1 هفته پیش
والد
کامیت
6658eb74de
5فایلهای تغییر یافته به همراه29 افزوده شده و 6 حذف شده
  1. 15 1
      CHANGELOG.md
  2. 1 1
      package.json
  3. 1 1
      src/domain/mqttService.ts
  4. 4 1
      src/pages/exam/components/acquisitionTracer.tsx
  5. 8 2
      src/states/exam/generatorMonitorSlice.ts

+ 15 - 1
CHANGELOG.md

@@ -1,8 +1,22 @@
 # 变更日志 (Changelog)
 
-本项目的所有重要变更都将记录在此文件中
+本项目的所有重要变更都将记录在此文件中.
 
 
+## [1.57.0] - 2026-01-06 19:07
+
+### 新增 (Added)
+
+- **添加采集失败错误信息传递功能** - 在采集失败时传递错误信息到 Redux 状态
+  - 在 GeneratorMonitorState 接口中添加 errorMessage 字段
+  - 在 ACQUISITION_FAILURE 事件中传递错误信息
+  - 更新 mqttService.ts 以传递 message.message
+
+**改动文件:**
+
+- src/states/exam/generatorMonitorSlice.ts
+- src/domain/mqttService.ts
+
 ## [1.56.0] - 2026-01-06 18:58
 
 ### 新增 (Added)

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "zsis",
-  "version": "1.56.0",
+  "version": "1.57.0",
   "private": true,
   "description": "医学成像系统",
   "main": "main.js",

+ 1 - 1
src/domain/mqttService.ts

@@ -52,7 +52,7 @@ const handleMqttMessage = (message: MqttMessage) => {
     case 'FAILURE':
       console.error('Task failed:', message);
       // Handle failure
-      emitter.emit('ACQUISITION_FAILURE');
+      emitter.emit('ACQUISITION_FAILURE', message.message);
       break;
     default:
       break;

+ 4 - 1
src/pages/exam/components/acquisitionTracer.tsx

@@ -7,6 +7,9 @@ const AcquisitionTracer: React.FC = () => {
   const acquisitionState = useSelector(
     (state: RootState) => state.generatorMonitor.acquisitionState
   );
+    const errorMessage = useSelector(
+    (state: RootState) => state.generatorMonitor.errorMessage
+  );
 
   const [isModalOpen, setIsModalOpen] = useState(false);
 
@@ -28,7 +31,7 @@ const AcquisitionTracer: React.FC = () => {
         return (
           <div>
             <Progress percent={100} status="exception" />
-            <p style={{ marginTop: 10 }}>采集失败,请检查设备或重试。</p>
+            <p style={{ marginTop: 10 }}>{errorMessage || '采集失败,请检查设备或重试。'}</p>
           </div>
         );
       default:

+ 8 - 2
src/states/exam/generatorMonitorSlice.ts

@@ -4,10 +4,12 @@ import store from '../store';
 
 interface GeneratorMonitorState {
   acquisitionState: number;
+  errorMessage: string | null;
 }
 
 const initialState: GeneratorMonitorState = {
   acquisitionState: 0, // 0: idle, 1: started, 2: success, 3: failure
+  errorMessage: null,
 };
 
 const generatorMonitorSlice = createSlice({
@@ -17,6 +19,9 @@ const generatorMonitorSlice = createSlice({
     setAcquisitionState: (state, action: PayloadAction<number>) => {
       state.acquisitionState = action.payload;
     },
+    setErrorMessage: (state, action: PayloadAction<string | null>) => {
+      state.errorMessage = action.payload;
+    },
   },
 });
 
@@ -28,9 +33,10 @@ emitter.on('ACQUISITION_SUCCESS', () => {
   store.dispatch(setAcquisitionState(2)); // Acquisition success
 });
 
-emitter.on('ACQUISITION_FAILURE', () => {
+emitter.on('ACQUISITION_FAILURE', (errorMessage: string) => {
   store.dispatch(setAcquisitionState(3)); // Acquisition failure
+  store.dispatch(setErrorMessage(errorMessage));
 });
 
-export const { setAcquisitionState } = generatorMonitorSlice.actions;
+export const { setAcquisitionState, setErrorMessage } = generatorMonitorSlice.actions;
 export default generatorMonitorSlice.reducer;