소스 검색

fix: 修复任务清单列表选中状态显示问题

- 在 isRecordSelected 函数中添加索引有效性检查(-1判断)
- 添加 ?? '' 操作符处理 undefined,保持与 useMultiSelection 一致
- 修复了两个问题:
  1. 进入列表时所有项被错误选中(undefined === undefined 误判)
  2. 修复后选中状态无法显示('' === undefined 不匹配)
- 确保本地任务和RIS任务的选中状态都能正确显示
- 更新版本号 1.2.3 -> 1.2.4

改动文件:
- src/pages/patient/components/WorklistTable.tsx
- package.json
dengdx 2 일 전
부모
커밋
231a35b8df
3개의 변경된 파일11개의 추가작업 그리고 5개의 파일을 삭제
  1. 2 2
      package-lock.json
  2. 1 1
      package.json
  3. 8 2
      src/pages/patient/components/WorklistTable.tsx

+ 2 - 2
package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "zsis",
-  "version": "1.2.1",
+  "version": "1.2.3",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "zsis",
-      "version": "1.2.1",
+      "version": "1.2.3",
       "dependencies": {
         "@babel/runtime": "^7.24.4",
         "@cornerstonejs/core": "^3.28.0",

+ 1 - 1
package.json

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

+ 8 - 2
src/pages/patient/components/WorklistTable.tsx

@@ -420,10 +420,16 @@ const WorklistTable: React.FC<WorklistTableProps> = ({
       // 新模式:检查双ID
       if (record.StudyID) {
         const indexByStudyId = selectedIds.indexOf(record.StudyID);
-        return selectedSecondaryIds[indexByStudyId] === record.entry_id;
+        // 关键修复:检查索引是否有效,避免 undefined === undefined 的误判
+        if (indexByStudyId === -1) return false;
+        // 修复:保持与 useMultiSelection 一致,使用 ?? '' 处理 undefined
+        return (selectedSecondaryIds[indexByStudyId] ?? '') === (record.entry_id ?? '');
       } else if (record.entry_id) {
         const indexByEntryId = selectedSecondaryIds.indexOf(record.entry_id);
-        return selectedIds[indexByEntryId] === record.StudyID;
+        // 关键修复:检查索引是否有效,避免 undefined === undefined 的误判
+        if (indexByEntryId === -1) return false;
+        // 修复:保持与 useMultiSelection 一致,使用 ?? '' 处理 undefined
+        return (selectedIds[indexByEntryId] ?? '') === (record.StudyID ?? '');
       }
       throw new Error('Record must have at least StudyID or entry_id defined in dual ID mode.');
     } else {