|
|
@@ -453,6 +453,8 @@ onMounted(() => {
|
|
|
goods_art_nos.value = Array.isArray(goods_art_data) ? goods_art_data : [goods_art_data]
|
|
|
getCompanyTemplates()
|
|
|
getLogolist()
|
|
|
+
|
|
|
+ loadDetailCache()
|
|
|
})
|
|
|
|
|
|
// 页面卸载时清理监听器
|
|
|
@@ -529,6 +531,65 @@ const scenePromptDialogVisible = ref(false)
|
|
|
const selectedModels = ref<{ female: any; male: any } | null>(null)
|
|
|
const scenePrompt = ref('')
|
|
|
|
|
|
+// 本地缓存键(与弹窗组件保持一致)
|
|
|
+const DETAIL_MODEL_CACHE_KEY = 'model_selection_cache'
|
|
|
+const DETAIL_SCENE_PROMPT_CACHE_KEY = 'scene_prompt_cache'
|
|
|
+
|
|
|
+// 读取本地缓存
|
|
|
+const loadDetailCache = () => {
|
|
|
+ console.log('loadDetailCache');
|
|
|
+ try {
|
|
|
+ const m = localStorage.getItem(DETAIL_MODEL_CACHE_KEY)
|
|
|
+ if (m) {
|
|
|
+ const parsed = JSON.parse(m)
|
|
|
+ if (parsed && (parsed.female || parsed.male)) {
|
|
|
+ selectedModels.value = parsed
|
|
|
+ console.log('loadDetailCache');
|
|
|
+ console.log(selectedModels.value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch {}
|
|
|
+ try {
|
|
|
+ const p = localStorage.getItem(DETAIL_SCENE_PROMPT_CACHE_KEY)
|
|
|
+ if (p) {
|
|
|
+ console.log('scenePrompt');
|
|
|
+ scenePrompt.value = p
|
|
|
+ console.log(scenePrompt.value);
|
|
|
+ }
|
|
|
+ } catch {}
|
|
|
+}
|
|
|
+
|
|
|
+// 保存到本地缓存(仅保存必要字段)
|
|
|
+const saveModelsToCache = (models: { female: any; male: any }) => {
|
|
|
+ try {
|
|
|
+ const payload = {
|
|
|
+ female: models?.female ? {
|
|
|
+ id: models.female.id,
|
|
|
+ name: models.female.name,
|
|
|
+ image_url: models.female.image_url,
|
|
|
+ gender: models.female.gender,
|
|
|
+ keywords: models.female.keywords,
|
|
|
+ status: models.female.status
|
|
|
+ } : null,
|
|
|
+ male: models?.male ? {
|
|
|
+ id: models.male.id,
|
|
|
+ name: models.male.name,
|
|
|
+ image_url: models.male.image_url,
|
|
|
+ gender: models.male.gender,
|
|
|
+ keywords: models.male.keywords,
|
|
|
+ status: models.male.status
|
|
|
+ } : null
|
|
|
+ }
|
|
|
+ localStorage.setItem(DETAIL_MODEL_CACHE_KEY, JSON.stringify(payload))
|
|
|
+ } catch {}
|
|
|
+}
|
|
|
+const saveScenePromptToCache = (prompt: string) => {
|
|
|
+ try {
|
|
|
+ const v = (prompt || '').trim()
|
|
|
+ if (v) localStorage.setItem(DETAIL_SCENE_PROMPT_CACHE_KEY, v)
|
|
|
+ } catch {}
|
|
|
+}
|
|
|
+
|
|
|
const openModelDialog = () => {
|
|
|
modelDialogVisible.value = true
|
|
|
}
|
|
|
@@ -537,11 +598,13 @@ const openScenePromptDialog = () => {
|
|
|
}
|
|
|
const handleModelSelection = (models: { female: any; male: any }) => {
|
|
|
selectedModels.value = models
|
|
|
+ saveModelsToCache(models)
|
|
|
modelDialogVisible.value = false
|
|
|
ElMessage.success('模特选择完成!')
|
|
|
}
|
|
|
const handleScenePromptConfirm = (prompt: string) => {
|
|
|
scenePrompt.value = prompt
|
|
|
+ saveScenePromptToCache(prompt)
|
|
|
}
|
|
|
|
|
|
|