Browse Source

实现:删除已选体位列表中的体位

dengdx 1 month ago
parent
commit
dd0e17c397

+ 5 - 5
src/pages/patient/components/register.selected.view.list.tsx

@@ -4,9 +4,10 @@ import { CloseOutlined } from '@ant-design/icons';
 import { getViewIconUrl } from '@/API/bodyPosition';
 import { Image } from 'antd';
 import { FormattedMessage } from 'react-intl';
-import { useSelector } from 'react-redux';
+import { useSelector, useDispatch } from 'react-redux';
 import type { RootState } from '@/states/store';
 import type { View } from '@/states/patient/viewSelection';
+import { removeSelectedView } from '@/states/patient/viewSelection';
 
 const { useBreakpoint } = Grid;
 
@@ -25,6 +26,7 @@ interface SelectedProtocolListProps {
   className?: string;
 }
 const SelectedProtocolList: React.FC<SelectedProtocolListProps> = () => {
+  const dispatch = useDispatch();
   const screens = useBreakpoint();
   const cardSize = getCardSize(screens);
 
@@ -35,9 +37,7 @@ const SelectedProtocolList: React.FC<SelectedProtocolListProps> = () => {
 
   // 移除操作(实际项目可用props传递onRemove)
   const handleRemove = (id: string) => {
-    // 这里仅做演示
-    // 实际应通过props回调或状态管理移除
-    alert(`移除体位ID: ${id}`);
+    dispatch(removeSelectedView(id));
   };
 
   return (
@@ -67,7 +67,7 @@ const SelectedProtocolList: React.FC<SelectedProtocolListProps> = () => {
             type="text"
             size="small"
             icon={<CloseOutlined />}
-            onClick={() => handleRemove(item.internal_id)}
+            onClick={() => handleRemove(item.view_id)}
             style={{
               position: 'absolute',
               top: 2,

+ 6 - 0
src/states/patient/viewSelection/index.ts

@@ -155,6 +155,11 @@ const viewSelectionSlice = createSlice({
     setProtocols(state, action: PayloadAction<Procedure[]>) {
       state.protocols = action.payload;
     },
+    removeSelectedView(state, action: PayloadAction<string>) {
+      state.selectedViews = state.selectedViews.filter(
+        (view) => view.view_id !== action.payload
+      );
+    },
   },
   extraReducers: (builder) => {
     builder
@@ -232,6 +237,7 @@ export const {
   addProtocolViews,
   setAvailableViews,
   setProtocols,
+  removeSelectedView,
 } = viewSelectionSlice.actions;
 
 export default viewSelectionSlice.reducer;