创建主题修改成从现有主题作为模板。

This commit is contained in:
2026-08-07 01:32:43 +08:00
parent ec1a19f469
commit 808f2e7523
3 changed files with 64 additions and 161 deletions
+31 -7
View File
@@ -1135,11 +1135,33 @@ function showThemeMessage(message, type = 'info') {
}
// 显示创建主题弹窗
function showCreateThemeModal() {
async function showCreateThemeModal() {
// 打开创建主题模态框并动态加载现有主题作为模板选项
document.getElementById('theme-modal').classList.remove('hidden');
document.getElementById('new-theme-name').value = '';
document.getElementById('theme-template').value = 'default';
document.getElementById('create-css').checked = true;
const themeSelect = document.getElementById('theme-template');
try {
// 获取所有可用主题
const res = await fetch(`${API_BASE}/themes`, {
headers: getHeaders()
});
const themesData = await res.json();
themeSelect.innerHTML = '';
// 填充下拉列表
themesData.themes.forEach(theme => {
const option = document.createElement('option');
option.value = theme;
option.textContent = theme;
if (theme === currentTheme) {
option.selected = true;
}
themeSelect.appendChild(option);
});
} catch (err) {
themeSelect.innerHTML = '<option value="">加载失败</option>';
}
const createCssEl = document.getElementById('theme-template');
if (createCssEl) createCssEl.checked = true;
}
// 隐藏创建主题弹窗
@@ -1160,13 +1182,16 @@ async function handleCreateTheme(e) {
const themeName = document.getElementById('new-theme-name').value.trim();
const template = document.getElementById('theme-template').value;
const createCSS = document.getElementById('create-css').checked;
if (!themeName) {
showThemeMessage('请输入主题名称', 'error');
return;
}
if (!template) {
showThemeMessage('请选择一个已有主题作为模板', 'error');
return;
}
try {
const response = await fetch(`${API_BASE}/themes/create`, {
method: 'POST',
@@ -1176,8 +1201,7 @@ async function handleCreateTheme(e) {
},
body: JSON.stringify({
name: themeName,
template: template,
create_css: createCSS
template: template
})
});
+2 -10
View File
@@ -348,8 +348,8 @@
<select id="theme-select" class="theme-selector">
<option value="">加载中...</option>
</select>
<button class="btn-primary" onclick="switchTheme()">切换主题</button>
</div>
<button class="btn-primary" onclick="switchTheme()">切换主题</button>
<div id="theme-message" class="theme-message"></div>
</div>
<div class="theme-list" id="theme-list">
@@ -467,16 +467,8 @@
<div class="form-group">
<label>基于模板创建</label>
<select id="theme-template">
<option value="default">default(默认主题)</option>
<option value="minimal">minimal(极简主题)</option>
<option value="blank">blank(空白主题)</option>
<option value="">加载中...</option>
</select>
<small>选择新主题的初始模板</small>
</div>
<div class="form-group">
<label>
<input type="checkbox" id="create-css" checked> 创建样式文件
</label>
</div>
<div class="modal-actions">
<button type="button" class="btn-secondary" onclick="hideThemeModal()">取消</button>