feat(admin): 添加后台显示设置功能

- 新增后台显示设置页面,允许自定义布局标题
- 在布局组件中动态显示自定义标题
- 在后端添加对应的 API 端点用于获取和保存显示配置
- 移除无用的 Demo.vue 组件文件
This commit is contained in:
anghunk
2026-02-02 16:42:03 +08:00
parent abeb7f2d41
commit 4231928f9f
6 changed files with 161 additions and 13 deletions

View File

@@ -9,7 +9,7 @@
>
<PhTextIndent :size="20" />
</button>
<div class="layout-title">CWD 评论系统</div>
<div class="layout-title">{{ layoutTitle }}</div>
<div class="layout-actions-wrapper">
<div class="layout-domain-filter layout-domain-filter-header">
<select v-model="domainFilter" class="layout-domain-select">
@@ -173,7 +173,7 @@
<script setup lang="ts">
import { ref, onMounted, watch, provide, computed } from "vue";
import { useRouter, useRoute } from "vue-router";
import { logoutAdmin, fetchDomainList } from "../../api/admin";
import { logoutAdmin, fetchDomainList, fetchAdminDisplaySettings } from "../../api/admin";
import { useTheme } from "../../composables/useTheme";
import packageJson from "../../../package.json";
@@ -191,6 +191,7 @@ const apiVersion = ref("");
const checkedApiBaseUrl = ref("");
const apiVersionError = ref("");
const versionModalVisible = ref(false);
const layoutTitle = ref("CWD 评论系统");
const themeTitle = computed(() => {
if (theme.value === "light") return "明亮模式";
@@ -254,11 +255,21 @@ async function loadVersion() {
}
}
async function loadDisplaySettings() {
try {
const res = await fetchAdminDisplaySettings();
layoutTitle.value = res.layoutTitle || "CWD 评论系统";
} catch {
layoutTitle.value = "CWD 评论系统";
}
}
provide("domainFilter", domainFilter);
onMounted(() => {
loadDomains();
loadVersion();
loadDisplaySettings();
});
watch(domainFilter, (value) => {