refactor: 合并三级缓存为统一缓存 + 重命名 saveDraft → savePreview
1. 三个 Caffeine Cache 合并为一个 jsonCache,key 用 :published/:draft 后缀区分 2. saveDraft → savePreview,更准确反映「预览版」语义(非临时草稿) 3. getPreviewBundleJson 去掉独立缓存,直接查 DB(preview 是 draft+published 逻辑并集,缓存意义不大) 4. 前端按钮「保存草稿」→「保存预览版」,API 路径 /save-draft → /save-preview
This commit is contained in:
@@ -57,7 +57,7 @@
|
||||
<div style="display:flex;gap:8px">
|
||||
<el-button size="small" @click="editSiteId=''">返回列表</el-button>
|
||||
<el-button size="small" @click="saveSite" :loading="saving">保存站点</el-button>
|
||||
<el-button size="small" @click="saveDraft" :loading="savingDraft">保存草稿</el-button>
|
||||
<el-button size="small" @click="savePreview" :loading="savingPreview">保存预览版</el-button>
|
||||
<el-button size="small" type="success" @click="publishSite" :loading="publishing">发布正式版</el-button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -108,7 +108,7 @@
|
||||
<script setup>
|
||||
import api from '../api'
|
||||
|
||||
const loading = ref(false), saving = ref(false), savingDraft = ref(false), publishing = ref(false), pendingCount = ref(0)
|
||||
const loading = ref(false), saving = ref(false), savingPreview = ref(false), publishing = ref(false), pendingCount = ref(0)
|
||||
const sites = ref([]), editSiteId = ref(''), editorJson = ref('{}'), jsonError = ref(false)
|
||||
const form = reactive({ siteId:'', namesStr:'', urlsStr:'', tagsStr:'', desc:'', siteType:'nexusphp', status:'active' })
|
||||
let syncing = false
|
||||
@@ -155,13 +155,13 @@ const newSite = () => {
|
||||
editorJson.value = JSON.stringify({siteId:'',names:[''],urls:[''],siteType:'nexusphp',status:'active'}, null, 2)
|
||||
}
|
||||
|
||||
const saveDraft = async () => {
|
||||
savingDraft.value = true
|
||||
const savePreview = async () => {
|
||||
savingPreview.value = true
|
||||
try {
|
||||
await api.raw.post('/admin/sites/' + editSiteId.value + '/save-draft')
|
||||
ElMessage.success('草稿已保存(预览版)')
|
||||
} catch { ElMessage.error('保存草稿失败') }
|
||||
finally { savingDraft.value = false }
|
||||
await api.raw.post('/admin/sites/' + editSiteId.value + '/save-preview')
|
||||
ElMessage.success('预览版已保存')
|
||||
} catch { ElMessage.error('保存预览版失败') }
|
||||
finally { savingPreview.value = false }
|
||||
}
|
||||
|
||||
const publishSite = async () => {
|
||||
|
||||
Reference in New Issue
Block a user