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