refactor: 保存预览版自动先保存源数据,简化操作一步完成

This commit is contained in:
mediabot-pt
2026-07-07 13:16:34 +08:00
parent 6505f621d1
commit e659b9bca6
4 changed files with 28 additions and 6 deletions

View File

@@ -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 }
}

View File

@@ -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 }
}

View File

@@ -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 }
}

View File

@@ -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()