CNWei
|
2c126b410c
|
feat(admin): 首页卡片改为左侧列表 + 右侧分组表格
- 左侧卡片列表切换,右侧当前卡片的分组表格(分组/条数/展示)
- 新建卡片即新建一张表,创建后自动选中
- 表格内开关与条数即时保存,标题失焦保存
- 去掉纵向堆叠与卡片级保存按钮
- Playwright 验证:切换、创建、开关落库
|
2026-10-31 11:46:50 +08:00 |
|
CNWei
|
c1a4da5458
|
feat(admin): 首页卡片按侧边栏逻辑交互
- 分组勾选:标题在左、开关在右,勾选即保存,去掉每卡保存按钮
- 卡片标题与每组条数改为失焦保存
- 保留删除卡片按钮
- Playwright 验证:无保存按钮、开关右置、勾选/条数/改名即时落库
|
2026-10-31 11:35:48 +08:00 |
|
CNWei
|
87b3c3b35a
|
fix(admin): 内容下拉去格式后缀,侧边栏开关右置并即时保存
- 内容页/条目弹窗的分组下拉只显示名称,去掉格式后缀与缩进,统一对齐
- 侧边栏开关移到右侧;拨动即保存到 settings.sidebar.tree_hidden
- 移除侧边栏页的保存/撤销按钮
- Playwright 验证:选项无括号且对齐、开关在右、无保存按钮、设置即时落库
|
2026-10-31 11:19:30 +08:00 |
|
CNWei
|
b04842978c
|
feat(admin): 内容页列表化,主分组汇总子分组条目
- 内容页改为列表:标题 / 跳转链接 / 所属分组 / 操作
- 选中主分组时递归列出全部子分组条目;选子分组只列该子树
- 编辑弹窗始终显示「标识」(编辑时只读)
- 图文条目接口补齐 href,列表统一显示跳转链接
- 测试 59 passed;Playwright 验证 20 条汇总、子分组 4 条、标识只读
|
2026-10-31 10:46:02 +08:00 |
|
CNWei
|
c249fbd826
|
feat(admin): 分组管理改为树形表格(图标/排序/状态)
- 参考需求页重做分组管理:树形表格(名称/排序权重/关联网页数/状态/操作),去掉展开全部/折叠全部,新建根分组置于左侧
- 分组弹窗支持上级分组移动、格式、图标(可留空)、排序权重、启停状态
- 数据层 v20:node.enabled 启停;icon/sort 可编辑;禁用分组前台侧栏与卡片隐藏
- 修复同一父级下编辑排序权重被重置为末尾
- 测试 59 passed;Playwright 验证无图标/图标/排序/禁用/折叠
|
2026-10-31 10:22:58 +08:00 |
|
CNWei
|
165d3f112e
|
feat(front): 前台切换到分组树 + 卡片组合
- 新 AppNext:首页按 /api/catalog2 的卡片勾选渲染(支持混合格式、每组条数),侧栏按分组树 + tree_hidden 渲染
- 分组页 /g/<key>、条目页 /g/<key>/i/<id>;条目在子树内递归查找,面包屑显示祖先链
- SPA 回落增加 /g/ 前缀;旧 /c/... 地址兼容
- 文档同步(路由、API、v19、限制)
- 测试 59 passed;Playwright 验证首页/混合卡片/分组页/条目页/侧栏隐藏
|
2026-10-30 20:45:39 +08:00 |
|
CNWei
|
2ccfb9b623
|
feat(admin): 新后台信息架构(分组管理/内容/侧边栏/卡片)
- /admin 切换为 AdminNext:分组管理(多层树、格式、增删改)、内容(选分组新增/编辑/删除条目)
- 侧边栏按分组树勾选,存入 settings.sidebar.tree_hidden
- 首页卡片:新建卡片、勾选分组(可混合格式)、每组条数
- 新增 manage.ts 客户端;旧 AdminPage 暂留作回退
- 测试 59 passed;Playwright 跑通 建根/子分组 → 加条目 → 侧栏勾选 → 混合卡片
|
2026-10-30 20:40:31 +08:00 |
|
CNWei
|
6340e435e9
|
feat(api): 原子模型分组树 / 卡片 / catalog2
- 新增 /api/catalog2:多层分组树(继承格式、带条目)+ 卡片勾选列表
- 新增 /api/nodes CRUD:任意层级分组、移动(防环)、排序、根分组格式
- 新增 /api/cards CRUD 与 PUT /api/cards/{id}/groups:一张卡可混合格式、可复用分组
- 条目允许挂在任意层级分组
- 测试 59 passed;API 冒烟通过(三级分组、卡片混合格式)
|
2026-10-30 20:35:37 +08:00 |
|
CNWei
|
eb4fded8db
|
feat(schema): v19 卡片/分组组合表与迁移回填
- 新增 card / card_group:卡片只存标题与顺序,内容由勾选分组组成,支持混合格式
- v18→v19 迁移:按现有 section_block 回填卡片与分组勾选(card-<section>)
- 新库 seed 完成后同样回填,旧界面暂不受影响
- 测试 59 passed(含 15→19 迁移)
|
2026-10-30 20:32:58 +08:00 |
|
CNWei
|
e52db54bdc
|
fix(admin): 子分组开关即时保存并立即显示分组管理
- 拨动开关即调用 PATCH allowGroups,成功后本地更新分类,无需再点保存
- 侧栏导航的分组列表同样跟随开关显示
- 失败时回滚开关状态
|
2026-10-30 20:10:07 +08:00 |
|
CNWei
|
22c73c1145
|
docs: 同步子分组开关与 v18 迁移
|
2026-10-30 20:05:33 +08:00 |
|
CNWei
|
be7a0747ed
|
feat(admin): 分区增加「允许子分组」开关(与类型解耦)
- node 新增 allow_groups(迁移 v18):应用默认开、海报/图文默认关,已有分组的非应用分区自动开启
- 后台每行一个「子分组」开关;分组管理、卡片预览、内容弹窗选组、侧栏建组都跟随开关
- 关闭开关时条目平铺且不丢内容;首页卡片指向分组会自动挪回分区
- 三种类型共用同一模板,类型只决定渲染方式
- 测试 59 passed(迁移 15→18、开关建组、类型切换)
|
2026-10-30 20:05:33 +08:00 |
|
CNWei
|
8df9ecdfda
|
docs: 同步分组按类型收口
|
2026-10-30 19:55:45 +08:00 |
|
CNWei
|
261d202ce0
|
feat(admin): 分组能力按类型收口(应用可分组,海报/图文平铺)
- 只有应用类分区显示分组管理与卡片预览分组;海报/图文保持平铺
- 后端 create_group 拒绝非应用分区;海报/图文读取时把历史分组条目一并平铺
- 侧栏不再显示非应用分组与空分组
- 类型 应用 ↔ 海报 切换时分组入口和侧栏子项随之出现/消失
- 测试 59 passed
|
2026-10-30 19:55:45 +08:00 |
|
CNWei
|
1a4a6a3655
|
style(content): 明细页分组标题增加分区色条
- 分组标题与首页卡片统一为「色条 + 标题」,颜色取分区的 barColor
- 空分组不再在明细页占标题(后台仍保留)
|
2026-10-30 19:42:18 +08:00 |
|
CNWei
|
58725caa95
|
docs: 同步统一内容模型(分组对所有类型生效)
|
2026-10-30 18:56:18 +08:00 |
|
CNWei
|
c84c41dc7d
|
feat(content): 分组对所有内容类型生效,统一分区/分组/条目模型
- 分区=容器,分组=任意类型的可选子容器,条目可挂分区或分组(直属分区)
- catalog 所有类型统一输出 groups + items,条目查询按节点取
- 详情/侧栏/首页卡片预览支持所有类型的分组;多组显示小标题 + 未分组
- 后台「分区」「侧栏导航」对所有类型可建组;「内容」弹窗分组可选直属分区,编辑可换组
- 修复首页卡片配置为「整个分区」时预览为空
- 测试 59 passed
|
2026-10-30 18:56:17 +08:00 |
|
CNWei
|
cc08188c1e
|
docs: 交接文档同步弹窗编辑与侧栏建组
|
2026-10-30 18:31:41 +08:00 |
|
CNWei
|
71061c6b87
|
feat(admin): 内容弹窗新增/编辑、侧栏直接建子分组
- 内容 Tab 改为弹窗式新增;列表支持编辑(含换分区/分组)与删除
- 条目 PATCH 支持 nodeKey 移动,EntryPatch 改为 camelCase 解析
- 侧栏导航的每个应用分区下可直接新建子分组
- 测试 59 passed;Playwright 覆盖 建组→新增→编辑→移动分组
|
2026-10-30 18:31:41 +08:00 |
|
CNWei
|
26042c3e3f
|
docs: 交接文档同步后台内容新增与分组 CRUD
|
2026-10-30 12:53:49 +08:00 |
|
CNWei
|
5982e0db5a
|
feat(admin): 后台新增条目与分组 CRUD
- POST /api/items + DELETE /api/items/{key}:新增应用/海报/图文,按分区/分组挂载;PATCH 支持 nodeKey 移动
- 分组 CRUD:POST /api/categories/{id}/groups、PATCH/DELETE /api/groups/{id}(删除级联组内条目)
- PATCH /api/categories/{id} 增加 blockNodeKey,首页卡片可选择预览分组
- /admin 新增「内容」Tab(新增/删除条目),「分区」Tab 内联分组管理与卡片预览
- 测试 59 passed(条目创建/移动/删除、分组增删改)
|
2026-10-30 12:53:49 +08:00 |
|
CNWei
|
f56614489a
|
docs: 交接文档同步跳转修复、子分类与归类管理
|
2026-10-30 12:33:52 +08:00 |
|
CNWei
|
94e16b783c
|
feat(admin): 跳转规范化、侧栏子分类与归类管理
- 条目保存时规范化 href(裸域名补 https,拒绝 javascript:/data: 等协议),详情按钮按解析结果置灰/跳转
- settings.sidebar 增加 hidden_groups / shown_groups / group_order,侧栏 Tab 支持分组显隐与排序
- 新增 PATCH /api/categories/{id} 与「归类」Tab:编辑类型/标题/图标/色条/条数;改类型自动迁移条目与首页卡片
- 测试 54 passed(href 规范化 3 例、分类更新 3 例)
|
2026-10-30 12:33:52 +08:00 |
|
CNWei
|
00e0360c85
|
docs: 交接文档同步组件库 v0.3.1
|
2026-10-30 08:59:22 +08:00 |
|
CNWei
|
5a411fdda8
|
docs: 交接文档同步组件库 v0.3.0(42 个组件)
|
2026-10-29 20:46:11 +08:00 |
|
CNWei
|
fe9d1b2659
|
refactor(admin): 接入 PasswordInput,删除分类改用 Modal 确认
- 登录弹窗与系统改密统一用 @stash/ui 的 PasswordInput(改密页补上显隐切换)
- 删除分类不再用 window.confirm,改用 Modal + 危险按钮(组件库推荐的组合)
- 删除页面私有的 PasswordInput 组件与 .password-field 样式
|
2026-10-29 20:46:11 +08:00 |
|
stash
|
5de1382262
|
docs: 新增交接文档(架构、命令、状态、限制、下一步)
|
2026-10-29 20:31:52 +08:00 |
|
stash
|
f9915535b6
|
fix(admin): 修复新增分类行 Select 覆盖「新增」按钮
- Select 自带 min-width:160px,原 120px 网格列导致溢出遮挡
- 第三列改为 160px,网格项 min-width:0
- 实测:select 875..1035,按钮 1043..1135,间隔 8px
|
2026-10-29 20:31:19 +08:00 |
|
stash
|
6d43b191c9
|
fix(admin): 删除按钮按可删性区分颜色(危险色 / 弱化色,均用主题令牌)
- 可删:var(--su-color-danger);hover 用 danger 10% 背景
- 不可删(本地服务):disabled + var(--su-text-muted)、opacity .45
- 侧栏与首页卡片两处共用同一个按钮组
|
2026-10-29 20:28:11 +08:00 |
|
stash
|
427338b329
|
feat(admin): 分区增删、资料设置、操作条与交互收尾
- POST/DELETE /api/categories(需登录,级联,local 保护)
- profile 设置(头像/名称/角色/简介/位置)应用到资料卡
- 详情操作条:浏览 +1、点赞切换、分享复制、跳转外链
- 编辑按钮垂直居中且留 12px;设置页按钮上间距、保存 Toast、Tabs 去滚动条
- 登录密码可见切换
- 测试 48 passed
|
2026-10-29 20:15:56 +08:00 |
|
stash
|
3c6c20e534
|
feat(admin): 首页卡片配置 + 页头开关验证 + 编辑按钮仅登录可见
- settings.sections:显隐 / 顺序 / 标题覆盖 / 预览条数,HomeView 应用
- /admin 新增「首页卡片」Tab,卡片标题使用展示块标题(常用站点等)
- 详情页 [编辑] 仅在登录后渲染(canEdit)
- 测试:46 passed;页头禁用、卡片隐藏/改标题/限条数、编辑可见性均实测
- 文档:ADMIN-PLAN、README
|
2026-10-29 19:21:34 +08:00 |
|
stash
|
8f688885ed
|
feat(edit): P2 条目就地编辑 + P3 备份/审计/改密
- 迁移 v17:entry.updated_at(乐观锁)+ audit 表
- GET/PATCH /api/items/{key}:字段编辑、标签替换、409 冲突、400 校验
- 详情页 [编辑] → Drawer 表单(标题/简介/标签/评价/正文/封面/跳转),保存后局部刷新
- GET /api/backup:VACUUM INTO 一致性快照,附件下载
- /admin 系统 Tab:修改密码(清空会话)、下载备份
- 审计:item.update / settings.update
- 测试 46 passed(entries 4 例)
- 文档:ADMIN-PLAN P2/P3 记录、README
|
2026-10-29 12:59:21 +08:00 |
|
stash
|
9ae5a455c5
|
feat(admin): 登录改页内弹窗 + P1 站点设置(页头/侧栏)
- 登录:LoginDialog(Modal)替代 /login 页面;/login 重定向回首页
- 设置接口:GET /api/settings 公开读、PATCH 需登录 + version 乐观锁(409/400)
- setting 表存 site JSON:页头(启用/速度/条目+标签+色调)、侧栏(hidden/order)
- /admin:Tabs 页头/侧栏,条目增删与上下移,保存后首页生效
- 首页应用设置:ticker 文本占位符与速度、侧栏顺序与显隐
- 测试 42 passed(settings 5 例)
|
2026-10-29 12:52:29 +08:00 |
|
stash
|
dea7781b86
|
feat(auth): P0 登录与会话(迁移 v16、argon2id、HttpOnly Cookie)
- 迁移机制:schema::migrate 支持 15→16,新增 admin/session/setting 表
- 接口:session/setup/login/logout/password;SameSite=Strict + Origin 校验 + 失败限流
- 会话只存 token 的 sha256;改密清空全部会话
- 前端:/login 独立壳(首次=设置密码),页头登录/退出切换
- 测试:37 passed(迁移 + 登录/会话 4 例)
- 文档:README 登录说明、docs/ADMIN-PLAN.md 方案与 P0 记录
|
2026-10-29 12:41:03 +08:00 |
|
stash
|
1aac8bcbe7
|
docs: 后台/编辑能力方案(登录、设置页、就地编辑、数据模型、风险清单)
|
2026-10-29 12:26:27 +08:00 |
|
stash
|
fcba8274c8
|
fix(web): 渐隐遮罩不吃布局高度(抵消 gap)
- margin-bottom 改为 -32px - gap,首卡回到 148,滚动高度回到 979
|
2026-10-29 11:34:22 +08:00 |
|
stash
|
f456829d16
|
fix(web): 内容区顶部渐隐恢复(content-veil)
- 滚动后用 sticky 遮罩在内容顶端做 32px 渐变,避免卡片/标题被硬切
- 未滚动时 opacity 0,滚动阈值沿用 scrolled 状态(>4px)
- 尊重 reduced-motion
|
2026-10-29 11:33:00 +08:00 |
|
stash
|
22f7853bdd
|
feat(web): 页头滚动信息、移除返回按钮、面包屑左侧可点、侧栏加首页
- 页头中间信息改为无缝滚动 ticker(3 份拼接,24s 线性,尊重 reduced-motion)
- 去掉分区 / 条目 / 文章三处「返回」「返回首页」按钮
- 面包屑移到左侧,中间项可点击并通过 onNavigate 走 SPA 路由
- 侧栏新增「首页」,首页时高亮,点击回首页
|
2026-10-29 11:26:47 +08:00 |
|
stash
|
2724d6f3ff
|
fix(web): 计数角标改回悬挂在标题右上角,搜索框圆角恢复 12px
- 角标:绝对定位 top -8 / right -18、16 高、8 圆角、12/700、危险色阴影(原来跟在标题后面占行内空间)
- 标题前色条补 8px 右间距,标题起点与旧版一致
- 搜索框:圆角 6 → 12(旧版 card-box 的圆角)
|
2026-10-29 10:23:09 +08:00 |
|
stash
|
de1af92ee5
|
fix(web): 条目详情恢复 24px 标题、179px 封面与左对齐正文
- 标题:level1 24/600(原来 level2 18/500)
- 封面:portrait 179x269、square 96x96,margin 18/10,底色 primary-soft(原来 160 宽、灰底)
- 标签:22 高、12px、2px 10px 内边距(原来 24 高 13px)
- 正文段落:width 100%、14/1.7、次级色、左对齐(原来 16px 主色,flex 下收缩成内容宽而居中)
- 引用:引号 32/700 红色 35%(原来 18px 主色)
|
2026-10-29 10:17:54 +08:00 |
|
stash
|
43bf742df6
|
fix(web): 分区头恢复 44px 圆形图标、24/700 标题与 [n] 计数
- 图标:44×44 圆形 + 主色浅底(原来是裸字形 40px)
- 标题:24/700(原来用 Title level=2 的 18/500)
- 计数:改回旧版 [12] 文本(原来用了 Badge 胶囊)
- 间距:图标下 8、标题行高 1.5、计数上 4,与原版逐像素一致
|
2026-10-29 09:22:59 +08:00 |
|
stash
|
ffb96ec7d1
|
fix(web): 文章头恢复居中排版,内容区补 4px 右留白
- 文章头:align-items center + text-align center + gap 12 + padding 4px 0(旧版规则)
- 文章元信息:改回 .article-meta 12px 行,圆点 3px、左右 8px(原来用 Space + 13px 文本)
- 内容区补 padding-right 4px(旧版 scroll 容器的留白),整体宽度与原版一致
|
2026-10-29 09:16:59 +08:00 |
|
stash
|
95b6cedb06
|
fix(web): 搜索框聚焦双框与滚动条
- 组件库 Input:聚焦只用边框变主色,不再叠加 outline(文本框点击也会命中 :focus-visible)
- 页面全局 :focus-visible 收窄到非表单控件,避免覆盖输入框自身的 outline 处理
- 搜索框恢复旧版浅边框 + 卡片阴影,聚焦不追加边框/焦点环
- Layout 新增 hideScrollbar,内容区滚动条隐藏(旧版行为)
|
2026-10-28 20:29:36 +08:00 |
|
stash
|
1942e201e9
|
fix(web): 视觉与交互 1:1(页头/侧栏/卡片/详情/动效)
对齐项(8080 vs 8081 实测,误差 ≤1px):
- 侧栏:资料卡 224、服务面板 144、导航 143,navTop 548 与原版一致
- 分区卡:142/142/327/270 vs 142/142/326/269;标题 16/1.2、更多按钮 24px
- 应用条目:48px 圆形头像 + 10px 小认证标;hover 名字变主色(不再整行变色)
- 封面:hover 上浮 2px(0.2s ease),去掉缩放;CES 封面恢复 16/10
- 搜索框:44 高、无边框 + 卡片阴影
- 服务面板:状态药丸 22、统计 12/18、操作按钮 28、刷新时图标原地旋转
- 详情:返回链接 hover 下划线、跳转按钮 hover 深主色、view-in 淡入动画
- 菜单:hover 主色、子菜单 0.28s grid 高度动画、chevron 6px 旋转
- 回到顶部:right 30、top 50%、滚动后淡入(补内容区滚动监听)
- 主题:卡片阴影恢复 2%/6%(旧版值)
|
2026-10-28 20:16:41 +08:00 |
|
stash
|
6b0c0a62e9
|
fix(web): 1:1 对齐——页头通栏、内部滚动、侧栏菜单与详情导航
- Layout: screen 模式下约束 body/main 高度,恢复内容区内部滚动(原来内容把根撑高被裁切)
- Layout: contentOffset=88,滚动区从页头下方开始,内容不再从悬浮搜索框下穿过
- 页头改回通栏 60px(contained 只包页身);资料卡头像恢复 64px 图标 + 品牌底色
- 详情导航条左右撑开(返回 / 面包屑),不再挤在左侧
- 侧栏菜单:行高 39、字重 500、圆角 8、CSS chevron、项间距 4px
- 服务面板去掉多余分隔线与外边距,恢复原高度
|
2026-10-28 19:45:37 +08:00 |
|
stash
|
1bdcca025b
|
fix(web): 恢复与旧版一致的布局与组件参数
- 布局:Layout 使用 contained(1380)+gutter20+siderWidth240+gap20、solid 60px 页头、整屏内部滚动
- 搜索框恢复悬浮居中;侧栏与内容恢复 52/88px 顶部偏移
- 新增并使用 @stash/ui 的 Cover(海报 2:3 / 图文 4:3 / 宽图)替换手写封面
- 头像恢复 64px 品牌底色;正文恢复 14/1.9;详情标题、标签、引用、统计、跳转按原版还原
- 分区卡 padding 20、分区标题 16、网格间距 12/16 对齐原值
|
2026-10-28 18:12:14 +08:00 |
|
stash
|
64f1fbf906
|
refactor(web): 前端改用 @stash/ui 组件库
- 新增本地依赖 @stash/ui(file:../../stash-ui),引入其 style.css 与设计令牌
- 页面骨架改用 Layout(contained + header/sider),搜索框改为吸顶
- 卡片/菜单/按钮/标签/头像/分页/空态/提示全部换成组件库组件
- 删除本地 iconfont 与 1400 行手写组件样式,App.css 只保留页面级样式
- 数据层、路由、过滤逻辑未改动;33 个 Rust 测试通过
|
2026-10-28 12:44:50 +08:00 |
|
CNWei
|
19ead7b716
|
feat(web): 地址栏驱动视图,刷新详情页不再回首页
- 新增 data/view.ts 与 useViewRoute:视图与地址双向同步,支持前进后退
- 条目地址带上所属分组,刷新 / 收藏后「返回」有确定落点
- 服务端只把 /c/** 回落到 index.html,其余路径仍返回 404
- 明细页返回按钮去掉左侧箭头图标
|
2026-10-24 17:18:30 +08:00 |
|
CNWei
|
41fed5e64d
|
feat(db): 内容库迁入 SQLite,分类与侧栏导航改为数据库驱动
|
2026-10-23 20:22:23 +08:00 |
|
CNWei
|
386c0f77c7
|
feat(web): 对齐 Alright 主题视觉规范(配色/字体/图标/背景/动效),并补充设计规范文档
|
2026-10-22 20:27:10 +08:00 |
|