From f65b8d0e2e95909203fc88b5303c401916badc7d Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Tue, 7 Jul 2026 23:46:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=9B=9B=E9=A1=B5=E9=9D=A2=20savePrevie?= =?UTF-8?q?w=20=E6=A3=80=E6=9F=A5=20save-preview=20=E5=93=8D=E5=BA=94=20co?= =?UTF-8?q?de=EF=BC=8C=E5=A4=B1=E8=B4=A5=E6=97=B6=E4=B8=8D=E8=AF=AF?= =?UTF-8?q?=E6=98=BE=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ApiResponse.error 返回 HTTP 200 + JSON code:400,Axios 当成功处理 前端未检查 code 字段导致误显成功但 draft 实际未创建,发布按钮不出现 --- web/src/views/AccessResultCheck.vue | 4 +++- web/src/views/RiskRules.vue | 4 +++- web/src/views/SitePages.vue | 4 +++- web/src/views/Sites.vue | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/web/src/views/AccessResultCheck.vue b/web/src/views/AccessResultCheck.vue index 1ebb9dd..35111ba 100644 --- a/web/src/views/AccessResultCheck.vue +++ b/web/src/views/AccessResultCheck.vue @@ -241,7 +241,9 @@ const savePreview = async () => { // 先自动保存脚本 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() + const r = await api.raw.post('/admin/sites/' + siteId + '/save-preview') + if (r.code !== 200) { ElMessage.error(r.message || '保存预览版失败'); return } + 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 f7791bb..160259d 100644 --- a/web/src/views/RiskRules.vue +++ b/web/src/views/RiskRules.vue @@ -396,7 +396,9 @@ const savePreview = async () => { 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() + const r = await api.raw.post('/admin/sites/' + editType.value + '/save-preview') + if (r.code !== 200) { ElMessage.error(r.message || '保存预览版失败'); return } + 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 7b87157..eac83a6 100644 --- a/web/src/views/SitePages.vue +++ b/web/src/views/SitePages.vue @@ -245,7 +245,9 @@ const savePreview = async () => { 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() + const r = await api.raw.post('/admin/sites/' + editSiteId.value + '/save-preview') + if (r.code !== 200) { ElMessage.error(r.message || '保存预览版失败'); return } + 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 502a629..405afa3 100644 --- a/web/src/views/Sites.vue +++ b/web/src/views/Sites.vue @@ -186,7 +186,8 @@ const savePreview = async () => { 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') + const r = await api.raw.post('/admin/sites/' + editSiteId.value + '/save-preview') + if (r.code !== 200) { ElMessage.error(r.message || '保存预览版失败'); return } ElMessage.success('预览版已保存') fetchSnapshotStatus() } catch { ElMessage.error('保存预览版失败') }