feat(admin): 新后台信息架构(分组管理/内容/侧边栏/卡片)
- /admin 切换为 AdminNext:分组管理(多层树、格式、增删改)、内容(选分组新增/编辑/删除条目) - 侧边栏按分组树勾选,存入 settings.sidebar.tree_hidden - 首页卡片:新建卡片、勾选分组(可混合格式)、每组条数 - 新增 manage.ts 客户端;旧 AdminPage 暂留作回退 - 测试 59 passed;Playwright 跑通 建根/子分组 → 加条目 → 侧栏勾选 → 混合卡片
This commit is contained in:
@@ -92,6 +92,10 @@ pub struct SidebarSettings {
|
||||
pub shown_groups: Vec<String>,
|
||||
/// 每个分区下分组的顺序:分区 id → 分组 id 列表
|
||||
pub group_order: std::collections::HashMap<String, Vec<String>>,
|
||||
/// 新模型:侧栏隐藏的分组 key(任意层级)
|
||||
pub tree_hidden: Vec<String>,
|
||||
/// 新模型:每级分组的顺序,键是父分组 key(根级用空串)
|
||||
pub tree_order: std::collections::HashMap<String, Vec<String>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Default)]
|
||||
@@ -181,6 +185,8 @@ pub fn validate(settings: &Settings) -> Result<(), StashError> {
|
||||
if settings.sidebar.hidden_groups.len() > 200
|
||||
|| settings.sidebar.shown_groups.len() > 200
|
||||
|| settings.sidebar.group_order.len() > 100
|
||||
|| settings.sidebar.tree_hidden.len() > 500
|
||||
|| settings.sidebar.tree_order.len() > 200
|
||||
{
|
||||
return Err(StashError::InvalidDirectory("侧栏分组配置过长".into()));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user