diff --git a/web/src/views/SitePages.vue b/web/src/views/SitePages.vue index 3000214..9266eec 100644 --- a/web/src/views/SitePages.vue +++ b/web/src/views/SitePages.vue @@ -5,6 +5,21 @@

页面配置

刷新 + + + + +
+
+
+ {{ dt }} + 编辑 +
+
+
+
+ + @@ -73,6 +88,7 @@ import api from '../api'; import { Refresh } from '@element-plus/icons-vue' const loading = ref(false), saving = ref(false), deleting = ref(false), sites = ref([]), pagesMap = ref({}), sitesList = ref([]) const editSiteId = ref(''), editorJson = ref('[]') +const defaultTypes = ['nexusphp','mtorrent','gazelle','unit3d'] const fmt = (t) => t ? (t.substring(0,19)||'').replace('T',' ') : '-' const parsed = computed(() => { try { return JSON.parse(editorJson.value) } catch { return [] } }) const resolveUrl = (url) => url?.replace('{base}', sitesList.value.find(s=>s.siteId===editSiteId.value)?.urls?.[0] || '{base}') || '' @@ -100,7 +116,10 @@ const fetchAll = async () => { const editPage = async (row) => { editSiteId.value = row.siteId - try { const r = await api.raw.get('/admin/site-pages/'+row.siteId); editorJson.value = (r?.data||r)?.entries ? JSON.stringify((r.data||r).entries, null, 2) : '[]' } + const url = row.siteId.startsWith('default:') + ? '/admin/default-pages/' + row.siteId.replace('default:','') + : '/admin/site-pages/' + row.siteId + try { const r = await api.raw.get(url); editorJson.value = (r?.data||r)?.entries ? JSON.stringify((r.data||r).entries, null, 2) : '[]' } catch { editorJson.value = '[]' } } @@ -117,8 +136,13 @@ const deletePages = async () => { const savePages = async () => { saving.value = true - try { await api.raw.put('/sites/'+editSiteId.value+'/pages', { entries: parsed.value }); ElMessage.success('已保存'); editSiteId.value=''; fetchAll() } - 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 }) + ElMessage.success('已保存'); editSiteId.value=''; fetchAll() + } catch { ElMessage.error('保存失败') } finally { saving.value = false } } onMounted(fetchAll)