From e659b9bca68e1a2926eb895e9e8b4913cbba0528 Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Tue, 7 Jul 2026 13:16:34 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BF=9D=E5=AD=98=E9=A2=84?= =?UTF-8?q?=E8=A7=88=E7=89=88=E8=87=AA=E5=8A=A8=E5=85=88=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E6=BA=90=E6=95=B0=E6=8D=AE=EF=BC=8C=E7=AE=80=E5=8C=96=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E4=B8=80=E6=AD=A5=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/views/AccessResultCheck.vue | 8 ++++++-- web/src/views/RiskRules.vue | 9 +++++++-- web/src/views/SitePages.vue | 12 ++++++++++-- web/src/views/Sites.vue | 5 +++++ 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/web/src/views/AccessResultCheck.vue b/web/src/views/AccessResultCheck.vue index fd65775..a2795e2 100644 --- a/web/src/views/AccessResultCheck.vue +++ b/web/src/views/AccessResultCheck.vue @@ -244,8 +244,12 @@ const fetchSnapshotStatus = async () => { const savePreview = async () => { savingPreview.value = true - try { await api.raw.post('/admin/sites/' + siteId + '/save-preview'); ElMessage.success('预览版已保存'); fetchSnapshotStatus() } - catch { ElMessage.error('保存预览版失败') } + try { + // 先自动保存脚本 + if (selectedConfig.value) { await api.adminConfigs.updateScript(selectedConfig.value.id, scriptContent.value); originalScript.value = scriptContent.value } + // 再拍快照 + await api.raw.post('/admin/sites/' + siteId + '/save-preview'); ElMessage.success('预览版已保存'); fetchSnapshotStatus() + } catch { ElMessage.error('保存预览版失败') } finally { savingPreview.value = false } } diff --git a/web/src/views/RiskRules.vue b/web/src/views/RiskRules.vue index 2a646be..ce257fa 100644 --- a/web/src/views/RiskRules.vue +++ b/web/src/views/RiskRules.vue @@ -393,8 +393,13 @@ const fetchSnapshotStatus = async () => { const savePreview = async () => { savingPreview.value = true - try { await api.raw.post('/admin/sites/' + editType.value + '/save-preview'); ElMessage.success('预览版已保存'); fetchSnapshotStatus() } - catch { ElMessage.error('保存预览版失败') } + try { + // 先自动保存风险规则 + await api.raw.post('/risk-rules/' + editType.value, { rules: parsed.value }) + originalJson.value = editorJson.value + // 再拍快照 + await api.raw.post('/admin/sites/' + editType.value + '/save-preview'); ElMessage.success('预览版已保存'); fetchSnapshotStatus() + } catch { ElMessage.error('保存预览版失败') } finally { savingPreview.value = false } } diff --git a/web/src/views/SitePages.vue b/web/src/views/SitePages.vue index eda20f8..face7e5 100644 --- a/web/src/views/SitePages.vue +++ b/web/src/views/SitePages.vue @@ -237,8 +237,16 @@ const fetchSnapshotStatus = async () => { const savePreview = async () => { savingPreview.value = true - try { await api.raw.post('/admin/sites/' + editSiteId.value + '/save-preview'); ElMessage.success('预览版已保存'); fetchSnapshotStatus() } - catch { ElMessage.error('保存预览版失败') } + try { + // 先自动保存页面配置 + const url = editSiteId.value.startsWith('default:') + ? '/admin/default-pages/' + editSiteId.value.replace('default:','') + : '/sites/' + editSiteId.value + '/pages' + await api.raw.put(url, { entries: parsed.value, authType: authType.value }) + originalJson.value = editorJson.value + // 再拍快照 + await api.raw.post('/admin/sites/' + editSiteId.value + '/save-preview'); ElMessage.success('预览版已保存'); fetchSnapshotStatus() + } catch { ElMessage.error('保存预览版失败') } finally { savingPreview.value = false } } diff --git a/web/src/views/Sites.vue b/web/src/views/Sites.vue index dff68fc..46ac1b4 100644 --- a/web/src/views/Sites.vue +++ b/web/src/views/Sites.vue @@ -182,6 +182,11 @@ const newSite = () => { const savePreview = async () => { savingPreview.value = true try { + // 先自动保存站点数据 + const s = JSON.parse(editorJson.value) + await api.raw.put('/sites/' + s.siteId, {names:s.names||[],urls:s.urls||[],tags:s.tags||[],description:s.description||'',siteType:s.siteType||'unknown',status:s.status||'active'}) + originalJson.value = editorJson.value + // 再拍快照 await api.raw.post('/admin/sites/' + editSiteId.value + '/save-preview') ElMessage.success('预览版已保存') fetchSnapshotStatus()