From eeb8f56742441a7e2fdc4ade55c8a0cc693ea466 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD?= <3401797899@qq.com> Date: Sun, 26 Jul 2026 20:19:30 +0800 Subject: [PATCH] =?UTF-8?q?fix(filelib-web):=20=E8=A1=A5=E9=BD=90=20Group?= =?UTF-8?q?=20=E7=AE=A1=E7=90=86=E9=9D=A2=E6=9D=BF,=E4=B8=8E=E6=97=A7?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E9=9D=A2=E6=9D=BF=E9=80=90=E6=9D=A1=E5=AF=B9?= =?UTF-8?q?=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 迁移时误把分支上一个早先存在的简易 GroupAdmin(281 行)当成迁移产物, 它与旧 renderGroupsPanel(747 行)从来不是同一个东西,于是后端 8 个 group 端点前端只调了 5 个。 补上的功能(端点一直可用,只是没有入口): PATCH /groups/:id 重命名 / 改描述 GET /groups?includeArchived=1 列出已归档组 POST /groups/:id/restore 恢复(连带恢复已归档祖先链,子树仍归档) GET /users/search 成员选择器,不再手敲 userId 影响最实际的是恢复:软删的组此前在界面上无法恢复。 补上的交互:折叠树、组名过滤(命中项保留整条祖先链,过滤态强制展开)、 右键菜单(归档组只给「恢复」)、面包屑、统计条、树底部计数、成员表的 头像/openId/加入时间三列。 types.ts 之前也是截断的:MemberGroupNode 少 archivedAt, MemberGroupMember 少 feishuOpenId/avatarUrl/joinedAt —— 类型里没有, UI 自然渲染不出来。 一处实现偏离:折叠状态用数组而非 Set。Svelte 5 的 $state 深层代理不 跟踪 Set 变更,用 Set 会点了没反应。 groups tab 外框补 padding:20px/overflow:hidden,对齐旧 #tab-groups, 否则面板贴着侧边栏。 --- hub/filelib-web/src/lib/GroupAdmin.svelte | 766 ++++++++++++++++++---- hub/filelib-web/src/lib/types.ts | 64 ++ 2 files changed, 688 insertions(+), 142 deletions(-) diff --git a/hub/filelib-web/src/lib/GroupAdmin.svelte b/hub/filelib-web/src/lib/GroupAdmin.svelte index 8eaea46..4577c88 100644 --- a/hub/filelib-web/src/lib/GroupAdmin.svelte +++ b/hub/filelib-web/src/lib/GroupAdmin.svelte @@ -1,78 +1,174 @@ -