From 64aaf44b6b2948631ebd0d9840d51e5e31ae5479 Mon Sep 17 00:00:00 2001
From: zhangchen <1652267879@qq.com>
Date: 星期五, 25 七月 2025 01:44:25 +0800
Subject: [PATCH] Merge branch 'ID1825-床旁副屏改版' into test

---
 src/utils/cache.ts |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/src/utils/cache.ts b/src/utils/cache.ts
new file mode 100644
index 0000000..d351a77
--- /dev/null
+++ b/src/utils/cache.ts
@@ -0,0 +1,69 @@
+class Cache {
+  /**
+   * 设置本地缓存
+   * @param key 键名
+   * @param value 值(会自动序列化为 JSON)
+   */
+  set<T = any>(key: string, value: T): void {
+    try {
+      const json = JSON.stringify(value)
+      localStorage.setItem(key, json)
+    } catch (e) {
+      console.error(`缓存写入失败(${key}):`, e)
+    }
+  }
+
+  /**
+   * 获取本地缓存
+   * @param key 键名
+   * @returns 反序列化后的值,失败返回 null
+   */
+  get<T = any>(key: string): T | null {
+    try {
+      const json = localStorage.getItem(key)
+      return json ? JSON.parse(json) as T : null
+    } catch (e) {
+      console.error(`缓存读取失败(${key}):`, e)
+      return null
+    }
+  }
+
+  /**
+   * 删除指定缓存项
+   * @param key 键名
+   */
+  delete(key: string): void {
+    try {
+      localStorage.removeItem(key)
+    } catch (e) {
+      console.error(`缓存删除失败(${key}):`, e)
+    }
+  }
+
+  /**
+   * 判断某项缓存是否存在
+   * @param key 键名
+   * @returns 是否存在
+   */
+  has(key: string): boolean {
+    try {
+      return localStorage.getItem(key) !== null
+    } catch (e) {
+      console.error(`缓存判断失败(${key}):`, e)
+      return false
+    }
+  }
+
+  /**
+   * 清空所有本地缓存
+   */
+  clear(): void {
+    try {
+      localStorage.clear()
+    } catch (e) {
+      console.error('缓存清空失败:', e)
+    }
+  }
+}
+
+export default new Cache()

--
Gitblit v1.8.0