Browse Source

添加跳转到图像处理的实现,还需要调试

sw 1 week ago
parent
commit
2c25345a2b
6 changed files with 21 additions and 0 deletions
  1. 1 0
      config/index.ts
  2. 6 0
      package-lock.json
  3. 1 0
      package.json
  4. 2 0
      src/domain/mqttService.ts
  5. 6 0
      src/states/BusinessFlowSlice.ts
  6. 5 0
      src/utils/eventEmitter.ts

+ 1 - 0
config/index.ts

@@ -4,6 +4,7 @@ import devConfig from './dev';
 import prodConfig from './prod';
 import path from 'path';
 import TerserPlugin from 'terser-webpack-plugin';
+import { DefinePlugin } from 'webpack';
 
 // https://taro-docs.jd.com/docs/next/config#defineconfig-辅助函数
 export default defineConfig<'webpack5'>(async (merge) => {

+ 6 - 0
package-lock.json

@@ -34,6 +34,7 @@
         "axios": "^1.9.0",
         "dayjs": "^1.11.13",
         "dicomweb-client": "0.10.4",
+        "mitt": "^3.0.1",
         "mqtt": "^5.14.0",
         "react": "^18.0.0",
         "react-dom": "^18.0.0",
@@ -16141,6 +16142,11 @@
       "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
       "dev": true
     },
+    "node_modules/mitt": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
+      "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw=="
+    },
     "node_modules/mkdirp": {
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",

+ 1 - 0
package.json

@@ -69,6 +69,7 @@
     "axios": "^1.9.0",
     "dayjs": "^1.11.13",
     "dicomweb-client": "0.10.4",
+    "mitt": "^3.0.1",
     "mqtt": "^5.14.0",
     "react": "^18.0.0",
     "react-dom": "^18.0.0",

+ 2 - 0
src/domain/mqttService.ts

@@ -1,5 +1,6 @@
 import mqtt from 'mqtt';
 import { MQTT_BROKER_URL } from '../API/config';
+import emitter from '../utils/eventEmitter';
 
 interface MqttMessage {
   dcm?: string;
@@ -31,6 +32,7 @@ const handleMqttMessage = (message: MqttMessage) => {
     case 'TASK_Success':
       console.log('Task succeeded:', message);
       // Handle success, e.g., process DCM and thumbnail files
+      emitter.emit('TASK_SUCCESS');
       break;
     case 'TASK_Failure':
       console.error('Task failed:', message.message);

+ 6 - 0
src/states/BusinessFlowSlice.ts

@@ -1,4 +1,6 @@
 import { createSlice, PayloadAction } from '@reduxjs/toolkit';
+import emitter from '../utils/eventEmitter';
+import store from './store';
 
 export interface BusinessFlowState {
   currentKey: string;
@@ -18,5 +20,9 @@ const BusinessFlowSlice = createSlice({
   },
 });
 
+emitter.on('TASK_SUCCESS', () => {
+  store.dispatch(setBusinessFlow('view'));
+});
+
 export const { setBusinessFlow } = BusinessFlowSlice.actions;
 export default BusinessFlowSlice.reducer;

+ 5 - 0
src/utils/eventEmitter.ts

@@ -0,0 +1,5 @@
+import mitt from 'mitt';
+
+const emitter = mitt();
+
+export default emitter;