Kaynağa Gözat

fix (1.42.2 -> 1.42.3): 修复Redux state序列化警告 - 将Date类型改为ISO字符串

- 在 global.d.ts 中将 lastChecked 和 remindLaterTime 类型从 Date 改为 string
- 在 versionUpdateSlice.ts 中将 Date 对象转换为 ISO 字符串存储
- 在 VersionUpdateService.ts 中将稍后提醒时间转换为 ISO 字符串
- 在 versionUtils.ts 中适配 string 类型的时间戳比较
- 解决周期性 setQuota 时 Redux 序列化检查产生的控制台警告

改动文件:
- CHANGELOG.md
- package.json
- src/types/global.d.ts
- src/states/versionUpdateSlice.ts
- src/services/VersionUpdateService.ts
- src/utils/versionUtils.ts
dengdx 1 hafta önce
ebeveyn
işleme
106a1b01a7

+ 17 - 0
CHANGELOG.md

@@ -2,6 +2,23 @@
 
 本项目的所有重要变更都将记录在此文件中。
 
+## [1.42.3] - 2026-01-03 13:51
+
+### 修复 (Fixed)
+
+- **修复 Redux state 序列化警告** - 将 Date 类型改为 ISO 字符串存储
+  - 在 global.d.ts 中将 lastChecked 和 remindLaterTime 类型从 Date 改为 string
+  - 在 versionUpdateSlice.ts 中将 Date 对象转换为 ISO 字符串存储
+  - 在 VersionUpdateService.ts 中将稍后提醒时间转换为 ISO 字符串
+  - 在 versionUtils.ts 中适配 string 类型的时间戳比较
+  - 解决周期性 setQuota 时 Redux 序列化检查产生的控制台警告
+
+**改动文件:**
+- src/types/global.d.ts
+- src/states/versionUpdateSlice.ts
+- src/services/VersionUpdateService.ts
+- src/utils/versionUtils.ts
+
 ## [1.42.2] - 2026-01-03 13:16
 
 ### 修复 (Fixed)

+ 1 - 1
package.json

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

+ 2 - 2
src/services/VersionUpdateService.ts

@@ -206,9 +206,9 @@ class VersionUpdateService {
    * 处理用户选择 - 稍后提醒
    */
   handleRemindLater(): void {
-    const remindTime = new Date(Date.now() + REMIND_LATER_HOURS * 60 * 60 * 1000);
+    const remindTime = new Date(Date.now() + REMIND_LATER_HOURS * 60 * 60 * 1000).toISOString();
     store.dispatch(setRemindLater(remindTime));
-    console.log(`设置稍后提醒时间: ${remindTime.toISOString()}`);
+    console.log(`设置稍后提醒时间: ${remindTime}`);
   }
 
   /**

+ 2 - 2
src/states/versionUpdateSlice.ts

@@ -29,7 +29,7 @@ const versionUpdateSlice = createSlice({
     // 设置版本信息
     setVersionInfo: (state, action: PayloadAction<VersionInfo>) => {
       state.versionInfo = action.payload;
-      state.lastChecked = new Date();
+      state.lastChecked = new Date().toISOString();
     },
 
     // 设置下载进度
@@ -74,7 +74,7 @@ const versionUpdateSlice = createSlice({
     },
 
     // 设置稍后提醒时间
-    setRemindLater: (state, action: PayloadAction<Date>) => {
+    setRemindLater: (state, action: PayloadAction<string>) => {
       state.remindLaterTime = action.payload;
       state.userChoice = 'remind_later';
     },

+ 2 - 2
src/types/global.d.ts

@@ -36,8 +36,8 @@ export interface UpdateState {
   versionInfo: VersionInfo | null;
   downloadProgress: DownloadProgress | null;
   error: string | null;
-  lastChecked: Date | null;
+  lastChecked: string | null;
   skippedVersions: string[]; // 用户跳过的版本列表
-  remindLaterTime: Date | null; // 稍后提醒的时间戳
+  remindLaterTime: string | null; // 稍后提醒的时间戳
   userChoice: 'none' | 'update_now' | 'remind_later' | 'skip_version'; // 用户的选择记录
 }

+ 2 - 2
src/utils/versionUtils.ts

@@ -99,7 +99,7 @@ export const shouldShowUpdatePrompt = (
  * @param remindLaterTime 提醒时间
  * @returns 是否应该触发提醒
  */
-export const shouldTriggerRemindLater = (remindLaterTime: Date | null): boolean => {
+export const shouldTriggerRemindLater = (remindLaterTime: string | null): boolean => {
   if (!remindLaterTime) return false;
-  return new Date() >= remindLaterTime;
+  return new Date() >= new Date(remindLaterTime);
 };