@@ -22,6 +22,7 @@ import { Textarea } from '@/components/ui/textarea'
2222import useAIImageConfigStore from ' @/stores/aiImageConfig'
2323import { useEditorStore } from ' @/stores/editor'
2424import { useUIStore } from ' @/stores/ui'
25+ import { store } from ' @/utils'
2526import { copyPlain } from ' @/utils/clipboard'
2627import AIImageConfig from ' ./AIImageConfig.vue'
2728
@@ -69,28 +70,27 @@ function isImageExpired(timestamp: number): boolean {
6970 return now - timestamp > EXPIRY_TIME
7071}
7172
72- function cleanExpiredImages() {
73- const savedImages = localStorage .getItem (` ai_generated_images ` )
74- const savedPrompts = localStorage .getItem (` ai_image_prompts ` )
75- const savedTimestamps = localStorage .getItem (` ai_image_timestamps ` )
73+ async function cleanExpiredImages() {
74+ const savedImages = await store .get (` ai_generated_images ` )
75+ const savedTimestamps = await store .get (` ai_image_timestamps ` )
7676
7777 if (! savedImages ) {
7878 return
7979 }
8080
81- const images = JSON . parse ( savedImages )
82- const prompts = savedPrompts ? JSON . parse ( savedPrompts ) : []
83- const timestamps = savedTimestamps ? JSON . parse ( savedTimestamps ) : []
81+ const images = await store . getJSON ( ` ai_generated_images ` , [] )
82+ const prompts = await store . getJSON ( ` ai_image_prompts ` , [])
83+ const timestamps = await store . getJSON ( ` ai_image_timestamps ` , [])
8484
8585 // 如果没有时间戳数据,说明是旧版本,默认清除所有数据
8686 if (! savedTimestamps || timestamps .length === 0 ) {
8787 console .log (` 🧹 检测到旧版本数据,清除所有过期图片 ` )
8888 generatedImages .value = []
8989 imagePrompts .value = []
9090 imageTimestamps .value = []
91- localStorage . removeItem (` ai_generated_images ` )
92- localStorage . removeItem (` ai_image_prompts ` )
93- localStorage . removeItem (` ai_image_timestamps ` )
91+ await store . remove (` ai_generated_images ` )
92+ await store . remove (` ai_image_prompts ` )
93+ await store . remove (` ai_image_timestamps ` )
9494 return
9595 }
9696
@@ -111,28 +111,28 @@ function cleanExpiredImages() {
111111 imagePrompts .value = validPrompts
112112 imageTimestamps .value = validTimestamps
113113
114- // 如果有数据被清除,更新localStorage
114+ // 如果有数据被清除,更新存储
115115 if (validImages .length < images .length ) {
116116 console .log (` 🧹 清除了 ${images .length - validImages .length } 张过期图片 ` )
117117 if (validImages .length > 0 ) {
118- localStorage . setItem (` ai_generated_images ` , JSON . stringify ( validImages ) )
119- localStorage . setItem (` ai_image_prompts ` , JSON . stringify ( validPrompts ) )
120- localStorage . setItem (` ai_image_timestamps ` , JSON . stringify ( validTimestamps ) )
118+ await store . setJSON (` ai_generated_images ` , validImages )
119+ await store . setJSON (` ai_image_prompts ` , validPrompts )
120+ await store . setJSON (` ai_image_timestamps ` , validTimestamps )
121121 }
122122 else {
123- localStorage . removeItem (` ai_generated_images ` )
124- localStorage . removeItem (` ai_image_prompts ` )
125- localStorage . removeItem (` ai_image_timestamps ` )
123+ await store . remove (` ai_generated_images ` )
124+ await store . remove (` ai_image_prompts ` )
125+ await store . remove (` ai_image_timestamps ` )
126126 }
127127 }
128128
129129 console .log (` 📊 过期检查完成,有效图片数量: ` , validImages .length )
130130}
131131
132132/* ---------- 初始数据 ---------- */
133- onMounted (() => {
133+ onMounted (async () => {
134134 // 先进行过期检查和清理
135- cleanExpiredImages ()
135+ await cleanExpiredImages ()
136136
137137 // 确保数组长度一致
138138 const imagesLength = generatedImages .value .length
@@ -147,9 +147,9 @@ onMounted(() => {
147147 generatedImages .value = []
148148 imagePrompts .value = []
149149 imageTimestamps .value = []
150- localStorage . removeItem (` ai_generated_images ` )
151- localStorage . removeItem (` ai_image_prompts ` )
152- localStorage . removeItem (` ai_image_timestamps ` )
150+ await store . remove (` ai_generated_images ` )
151+ await store . remove (` ai_image_prompts ` )
152+ await store . remove (` ai_image_timestamps ` )
153153 }
154154 else {
155155 // 补齐较短的数组
@@ -274,9 +274,9 @@ async function generateImage() {
274274 imageTimestamps .value = imageTimestamps .value .slice (0 , 20 )
275275 }
276276
277- localStorage . setItem (` ai_generated_images ` , JSON . stringify ( generatedImages .value ) )
278- localStorage . setItem (` ai_image_prompts ` , JSON . stringify ( imagePrompts .value ) )
279- localStorage . setItem (` ai_image_timestamps ` , JSON . stringify ( imageTimestamps .value ) )
277+ await store . setJSON (` ai_generated_images ` , generatedImages .value )
278+ await store . setJSON (` ai_image_prompts ` , imagePrompts .value )
279+ await store . setJSON (` ai_image_timestamps ` , imageTimestamps .value )
280280
281281 // 清空输入框
282282 prompt .value = ` `
@@ -311,14 +311,14 @@ function cancelGeneration() {
311311}
312312
313313/* ---------- 清空图像 ---------- */
314- function clearImages() {
314+ async function clearImages() {
315315 generatedImages .value = []
316316 imagePrompts .value = []
317317 imageTimestamps .value = []
318318 currentImageIndex .value = 0
319- localStorage . removeItem (` ai_generated_images ` )
320- localStorage . removeItem (` ai_image_prompts ` )
321- localStorage . removeItem (` ai_image_timestamps ` )
319+ await store . remove (` ai_generated_images ` )
320+ await store . remove (` ai_image_prompts ` )
321+ await store . remove (` ai_image_timestamps ` )
322322}
323323
324324/* ---------- 下载图像 ---------- */
@@ -446,9 +446,9 @@ async function regenerateWithPrompt(promptText: string) {
446446 imageTimestamps .value = imageTimestamps .value .slice (0 , 20 )
447447 }
448448
449- localStorage . setItem (` ai_generated_images ` , JSON . stringify ( generatedImages .value ) )
450- localStorage . setItem (` ai_image_prompts ` , JSON . stringify ( imagePrompts .value ) )
451- localStorage . setItem (` ai_image_timestamps ` , JSON . stringify ( imageTimestamps .value ) )
449+ await store . setJSON (` ai_generated_images ` , generatedImages .value )
450+ await store . setJSON (` ai_image_prompts ` , imagePrompts .value )
451+ await store . setJSON (` ai_image_timestamps ` , imageTimestamps .value )
452452 }
453453 }
454454 else {
0 commit comments