feat: 分类系统 + 标签系统 — Phase 4 完成
分类:Model/Repo/Service/Controller + 管理后台树形页面 + 首页导航栏
标签:Model/Repo/Service/Controller + /tags/{slug} 落地页 + 写文章页输入
Post 加 CategoryID,Create/Update 支持分类和标签
SQL 迁移含 categories/tags/post_tags 表及预设未分类
This commit is contained in:
@ -423,6 +423,32 @@
|
||||
}
|
||||
.announcement-error .announcement-title { color: #dc2626; }
|
||||
|
||||
/* --- Category Nav --- */
|
||||
.category-nav {
|
||||
max-width: 900px;
|
||||
margin: 0 auto 1.5rem;
|
||||
padding: 0 16px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.category-tag {
|
||||
padding: 4px 14px;
|
||||
border-radius: 20px;
|
||||
font-size: 13px;
|
||||
color: #4b5563;
|
||||
background: #f3f4f6;
|
||||
text-decoration: none;
|
||||
transition: all .15s;
|
||||
}
|
||||
|
||||
.category-tag:hover,
|
||||
.category-tag.active {
|
||||
background: var(--color-accent);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* ---------- Responsive ---------- */
|
||||
@media (max-width: 960px) {
|
||||
.home-grid {
|
||||
|
||||
@ -190,6 +190,8 @@ async function handleSubmit(e) {
|
||||
const reprintSource = document.getElementById('reprintSource')?.value.trim() || ''
|
||||
const declaration = document.getElementById('declaration')?.value || ''
|
||||
const reprintProhibited = document.getElementById('reprintProhibited')?.checked || false
|
||||
const categoryId = document.getElementById('categoryId')?.value || ''
|
||||
const tags = document.getElementById('tagInput')?.value.trim() || ''
|
||||
|
||||
const isEdit = !!postId
|
||||
const url = isEdit ? '/api/studio/posts/' + postId : '/api/studio/posts'
|
||||
@ -207,6 +209,8 @@ async function handleSubmit(e) {
|
||||
reprint_source: reprintSource,
|
||||
declaration,
|
||||
reprint_prohibited: reprintProhibited,
|
||||
category_id: categoryId,
|
||||
tags,
|
||||
}),
|
||||
})
|
||||
const data = await resp.json()
|
||||
|
||||
Reference in New Issue
Block a user