增加ico文件

This commit is contained in:
2026-03-05 14:43:00 +08:00
parent 4cab051f9c
commit 6117222625
15 changed files with 288 additions and 28 deletions
+57 -1
View File
@@ -175,6 +175,7 @@ async function loadPosts() {
<td>${post.published_at ? new Date(post.published_at).toLocaleDateString() : '-'}</td>
<td>
<button class="btn-success" onclick="editPost(${post.id})">编辑</button>
${post.status !== 'published' ? `<button class="btn-primary" onclick="changePostStatus(${post.id}, 'published')">发布</button>` : `<button class="btn-secondary" onclick="changePostStatus(${post.id}, 'draft')">下架</button>`}
<button class="btn-danger" onclick="deletePost(${post.id})">删除</button>
</td>
</tr>
@@ -272,6 +273,29 @@ async function handlePostSubmit(e) {
}
}
// 更改文章状态
async function changePostStatus(id, status) {
const actionText = status === 'published' ? '发布' : '下架';
if (!confirm(`确定要${actionText}这篇文章吗?`)) return;
try {
const res = await fetch(`${API_BASE}/admin/posts/${id}`, {
method: 'PUT',
headers: getHeaders(),
body: JSON.stringify({ status })
});
if (res.ok) {
loadPosts();
} else {
const err = await res.json();
alert(err.error || '操作失败');
}
} catch (err) {
alert('网络错误');
}
}
// 删除文章
async function deletePost(id) {
if (!confirm('确定要删除这篇文章吗?')) return;
@@ -437,14 +461,17 @@ async function handleModalSubmit(e) {
const id = document.getElementById('modal-id').value;
const data = {
name: document.getElementById('modal-name').value,
slug: document.getElementById('modal-slug').value
};
// 页面使用 title,分类和标签使用 name
if (type === 'page') {
data.title = document.getElementById('modal-name').value;
data.content = document.getElementById('modal-content').value;
data.order = parseInt(document.getElementById('modal-order').value) || 0;
data.status = 'published';
} else {
data.name = document.getElementById('modal-name').value;
}
try {
@@ -499,6 +526,35 @@ function editTag(id, name, slug) {
document.getElementById('modal').classList.remove('hidden');
}
// 编辑页面
async function editPage(id) {
try {
const res = await fetch(`${API_BASE}/pages/${id}`, { headers: getHeaders() });
const data = await res.json();
const page = data.data;
document.getElementById('modal-type').value = 'page';
document.getElementById('modal-id').value = id;
document.getElementById('modal-title').textContent = '编辑页面';
document.getElementById('modal-name').value = page.title;
document.getElementById('modal-slug').value = page.slug;
// 添加内容区域
document.querySelector('.modal-extra').innerHTML = `
<label>内容</label>
<textarea id="modal-content" rows="5"></textarea>
<label>排序</label>
<input type="number" id="modal-order" value="0">
`;
document.getElementById('modal-content').value = page.content;
document.getElementById('modal-order').value = page.order;
document.getElementById('modal').classList.remove('hidden');
} catch (err) {
alert('加载页面失败');
}
}
// 删除分类
async function deleteCategory(id) {
if (!confirm('确定要删除这个分类吗?')) return;
+1 -1
View File
@@ -247,6 +247,6 @@
</div>
</div>
<script src="/static/admin/app.js?v=3"></script>
<script src="/static/admin/app.js?v=6"></script>
</body>
</html>