feat(front): 前台切换到分组树 + 卡片组合
- 新 AppNext:首页按 /api/catalog2 的卡片勾选渲染(支持混合格式、每组条数),侧栏按分组树 + tree_hidden 渲染 - 分组页 /g/<key>、条目页 /g/<key>/i/<id>;条目在子树内递归查找,面包屑显示祖先链 - SPA 回落增加 /g/ 前缀;旧 /c/... 地址兼容 - 文档同步(路由、API、v19、限制) - 测试 59 passed;Playwright 验证首页/混合卡片/分组页/条目页/侧栏隐藏
This commit is contained in:
@@ -34,7 +34,7 @@ cargo run -- --root ./sites --host 0.0.0.0 --port 3000
|
||||
### 登录与设置(v0.1.1 起)
|
||||
|
||||
- 登录是**页内弹窗**:点右上角用户图标;首次使用弹窗里是「设置密码 + 确认」(至少 8 位);
|
||||
- 登录后点「站点设置」进入 `/admin`,可编辑页头滚动信息、首页卡片、内容(弹窗新增/编辑应用、海报、图文并选择分区/分组)、分区与分组(类型、标题、图标、色条、预览条数、**子分组开关**;三种类型共用模板,开关打开才分组)以及侧栏顺序、显隐;
|
||||
- 登录后点「站点设置」进入 `/admin`:分组管理(多层、格式、增删改)、内容(选分组新增/编辑条目)、侧边栏(勾选分组树)、首页卡片(建卡 + 勾选分组,可混合格式),以及页头滚动信息、资料与系统设置;
|
||||
- 详情页的 `[编辑]` 只在登录后显示;保存后局部刷新,`updated_at` 乐观锁;
|
||||
- `/admin` 的「系统」页可以改密码、下载整库备份(`VACUUM INTO` 快照);
|
||||
- 密码用 argon2id 哈希存在 `data/stash.db` 的 `admin` 表,会话是 HttpOnly + SameSite=Strict 的 Cookie(7 天);
|
||||
@@ -65,11 +65,9 @@ cargo run -- --root ./sites --host 0.0.0.0 --port 3000
|
||||
|
||||
| 地址 | 页面 |
|
||||
| --- | --- |
|
||||
| `/` | 首页分区卡片 |
|
||||
| `/c/<分区>` | 分类明细 |
|
||||
| `/c/<分区>/<分组>` | 只展示该分组 |
|
||||
| `/c/<分区>/i/<条目>` | 条目详情,返回 → 分类明细 |
|
||||
| `/c/<分区>/<分组>/i/<条目>` | 条目详情,返回 → 该分组 |
|
||||
| `/` | 首页卡片(按后台勾选的分组组合) |
|
||||
| `/g/<分组>` | 分组页(自身内容 + 子分组) |
|
||||
| `/g/<分组>/i/<条目>` | 条目详情 |
|
||||
|
||||
地址里的每一段都是**业务键**(也就是接口 JSON 里的 `id`):库里是 `node.key` / `entry.key`,
|
||||
本地项目则是目录名(访问地址仍然是 `route_path`,两者不再混用)。
|
||||
|
||||
Reference in New Issue
Block a user