From cbe569d7e6b4f5f15bc7c6e04dbd09ef3ee8e634 Mon Sep 17 00:00:00 2001 From: ChickenPige0n <2336983354@qq.com> Date: Tue, 14 Jul 2026 00:10:13 +0800 Subject: [PATCH] style(admin-web): apply Prettier formatting Run `prettier --write .` across all source files. Changes are purely formatting: trailing commas, line wrapping at 120 chars, import reordering, and CSS whitespace. No logic changes. Verified with `prettier --check .` and `svelte-check` (0 errors, 0 warnings). --- hub/admin-web/src/lib/api.ts | 46 ++++++++++------- .../src/lib/components/CheckboxControl.svelte | 2 +- .../src/lib/components/EmptyState.svelte | 6 ++- .../src/lib/components/ErrorBanner.svelte | 2 +- .../src/lib/components/FolderNode.svelte | 2 +- .../src/lib/components/FolderTree.svelte | 2 +- hub/admin-web/src/lib/components/Icon.svelte | 26 +++++++--- hub/admin-web/src/lib/components/Modal.svelte | 4 +- .../src/lib/components/PageHeader.svelte | 2 +- .../src/lib/components/SelectField.svelte | 9 +--- .../src/lib/components/StatCard.svelte | 2 +- .../src/lib/components/SwitchControl.svelte | 2 +- .../src/lib/components/ToastHost.svelte | 9 ++-- hub/admin-web/src/lib/constants.ts | 6 +-- hub/admin-web/src/lib/format.ts | 9 +--- hub/admin-web/src/lib/session.ts | 4 +- hub/admin-web/src/routes/+layout.svelte | 50 ++++++++++--------- .../src/routes/admin/org/[slug]/+page.svelte | 18 ++----- .../admin/org/[slug]/feishu/+page.svelte | 7 +-- .../admin/org/[slug]/members/+page.svelte | 20 ++++---- .../admin/org/[slug]/projects/+page.svelte | 9 ++-- .../[slug]/projects/[projectId]/+page.svelte | 29 +++++------ .../admin/org/[slug]/provider/+page.svelte | 21 ++------ .../admin/org/[slug]/teams/+page.svelte | 8 +-- hub/admin-web/src/routes/app.css | 43 ++++++++++++---- hub/admin-web/svelte.config.js | 6 +-- hub/admin-web/vite.config.ts | 6 +-- 27 files changed, 176 insertions(+), 174 deletions(-) diff --git a/hub/admin-web/src/lib/api.ts b/hub/admin-web/src/lib/api.ts index 1888089..4aab20e 100644 --- a/hub/admin-web/src/lib/api.ts +++ b/hub/admin-web/src/lib/api.ts @@ -18,7 +18,7 @@ async function request(method: string, url: string, body?: unknown): Promise get('/api/me') as Promise, logout: () => post('/auth/logout'), - org: (slug: string) => get(orgBase(slug)) as Promise<{ organization: { id: string; slug: string; name: string; status: string }; actorRole: string }>, + org: (slug: string) => + get(orgBase(slug)) as Promise<{ + organization: { id: string; slug: string; name: string; status: string }; + actorRole: string; + }>, settings: (slug: string) => get(`${orgBase(slug)}/settings`) as Promise<{ membersCanCreateProjects: boolean }>, setSettings: (slug: string, body: { membersCanCreateProjects: boolean }) => patch(`${orgBase(slug)}/settings`, body) as Promise<{ membersCanCreateProjects: boolean }>, @@ -202,18 +206,15 @@ export const api = { members: (slug: string) => get(`${orgBase(slug)}/members`) as Promise<{ members: OrgMember[] }>, addMember: (slug: string, body: { feishuOpenId: string; displayName?: string; role: string }) => post(`${orgBase(slug)}/members`, body) as Promise, - setMemberRole: (slug: string, userId: string, role: string) => - patch(`${orgBase(slug)}/members/${userId}`, { role }), - revokeMember: (slug: string, userId: string) => - post(`${orgBase(slug)}/members/${userId}/revoke`), + setMemberRole: (slug: string, userId: string, role: string) => patch(`${orgBase(slug)}/members/${userId}`, { role }), + revokeMember: (slug: string, userId: string) => post(`${orgBase(slug)}/members/${userId}/revoke`), teams: (slug: string) => get(`${orgBase(slug)}/teams`) as Promise<{ teams: TeamRow[] }>, createTeam: (slug: string, body: { slug: string; name: string; description?: string }) => post(`${orgBase(slug)}/teams`, body) as Promise, updateTeam: (slug: string, teamId: string, body: { name?: string; description?: string | null }) => patch(`${orgBase(slug)}/teams/${teamId}`, body) as Promise, - archiveTeam: (slug: string, teamId: string) => - post(`${orgBase(slug)}/teams/${teamId}/archive`), + archiveTeam: (slug: string, teamId: string) => post(`${orgBase(slug)}/teams/${teamId}/archive`), teamMembers: (slug: string, teamId: string) => get(`${orgBase(slug)}/teams/${teamId}/members`) as Promise<{ members: TeamMemberRow[] }>, addTeamMember: (slug: string, teamId: string, body: { userId?: string; feishuOpenId?: string }) => @@ -223,23 +224,30 @@ export const api = { explorer: (slug: string) => get(`${orgBase(slug)}/explorer`) as Promise, createFolder: (slug: string, body: { name: string; parentId?: string; sortKey?: string }) => - post(`${orgBase(slug)}/folders`, body) as Promise<{ id: string; name: string; parentId: string | null; sortKey: string }>, + post(`${orgBase(slug)}/folders`, body) as Promise<{ + id: string; + name: string; + parentId: string | null; + sortKey: string; + }>, renameFolder: (slug: string, folderId: string, body: { name?: string; sortKey?: string; parentId?: string | null }) => - patch(`${orgBase(slug)}/folders/${folderId}`, body) as Promise<{ id: string; name: string; parentId: string | null; sortKey: string }>, + patch(`${orgBase(slug)}/folders/${folderId}`, body) as Promise<{ + id: string; + name: string; + parentId: string | null; + sortKey: string; + }>, archiveFolder: (slug: string, folderId: string) => post(`${orgBase(slug)}/folders/${folderId}/archive`) as Promise<{ archived: true; folderId: string }>, createProject: (slug: string, body: { name: string; folderId?: string }) => post(`${orgBase(slug)}/projects`, body) as Promise<{ id: string; name: string }>, - project: (slug: string, projectId: string) => - get(`${orgBase(slug)}/projects/${projectId}`) as Promise, + project: (slug: string, projectId: string) => get(`${orgBase(slug)}/projects/${projectId}`) as Promise, renameProject: (slug: string, projectId: string, name: string) => patch(`${orgBase(slug)}/projects/${projectId}`, { name }), moveProject: (slug: string, projectId: string, folderId: string | null) => patch(`${orgBase(slug)}/projects/${projectId}/folder`, { folderId }), - archiveProject: (slug: string, projectId: string) => - post(`${orgBase(slug)}/projects/${projectId}/archive`), - archiveBinding: (slug: string, projectId: string) => - post(`${orgBase(slug)}/projects/${projectId}/binding/archive`), + archiveProject: (slug: string, projectId: string) => post(`${orgBase(slug)}/projects/${projectId}/archive`), + archiveBinding: (slug: string, projectId: string) => post(`${orgBase(slug)}/projects/${projectId}/binding/archive`), teamAccess: (slug: string, projectId: string) => get(`${orgBase(slug)}/projects/${projectId}/team-access`) as Promise<{ access: TeamAccessEntry[] }>, @@ -249,7 +257,9 @@ export const api = { del(`${orgBase(slug)}/projects/${projectId}/team-access/${teamId}`), sessions: (slug: string, projectId: string, limit?: number) => - get(`${orgBase(slug)}/projects/${projectId}/sessions${limit !== undefined ? `?limit=${limit}` : ''}`) as Promise<{ sessions: SessionSummary[] }>, + get(`${orgBase(slug)}/projects/${projectId}/sessions${limit !== undefined ? `?limit=${limit}` : ''}`) as Promise<{ + sessions: SessionSummary[]; + }>, usage: (slug: string, params?: { from?: string; to?: string; folderId?: string }) => { const q = new URLSearchParams(); if (params?.from) q.set('from', params.from); @@ -286,5 +296,5 @@ export const api = { }, ) => put(`${orgBase(slug)}/feishu-application-connection`, body) as Promise, disableFeishuApplication: (slug: string) => - del(`${orgBase(slug)}/feishu-application-connection`) as Promise + del(`${orgBase(slug)}/feishu-application-connection`) as Promise, }; diff --git a/hub/admin-web/src/lib/components/CheckboxControl.svelte b/hub/admin-web/src/lib/components/CheckboxControl.svelte index 0cab84c..c85806c 100644 --- a/hub/admin-web/src/lib/components/CheckboxControl.svelte +++ b/hub/admin-web/src/lib/components/CheckboxControl.svelte @@ -6,7 +6,7 @@ checked = $bindable(false), disabled = false, class: className = '', - onchange + onchange, }: { checked?: boolean; disabled?: boolean; diff --git a/hub/admin-web/src/lib/components/EmptyState.svelte b/hub/admin-web/src/lib/components/EmptyState.svelte index 0f6a5bd..37be260 100644 --- a/hub/admin-web/src/lib/components/EmptyState.svelte +++ b/hub/admin-web/src/lib/components/EmptyState.svelte @@ -4,7 +4,7 @@ let { title = '暂无数据', description, - action + action, }: { title?: string; description?: string; @@ -13,7 +13,9 @@
-
+
diff --git a/hub/admin-web/src/lib/components/ErrorBanner.svelte b/hub/admin-web/src/lib/components/ErrorBanner.svelte index b33eecd..d5258f0 100644 --- a/hub/admin-web/src/lib/components/ErrorBanner.svelte +++ b/hub/admin-web/src/lib/components/ErrorBanner.svelte @@ -1,7 +1,7 @@ -
+
{#each $toasts as t (t.id)}

{t.message}

diff --git a/hub/admin-web/src/lib/constants.ts b/hub/admin-web/src/lib/constants.ts index 8440255..92af44b 100644 --- a/hub/admin-web/src/lib/constants.ts +++ b/hub/admin-web/src/lib/constants.ts @@ -15,7 +15,7 @@ export const TOOL_OPTIONS: ToolOption[] = [ { id: 'send_file', label: '发送文件(飞书)', group: '飞书' }, { id: 'feishu_read_context', label: '读飞书上下文', group: '飞书' }, { id: 'feishu_download_resource', label: '下载飞书资源', group: '飞书' }, - { id: 'request_approval', label: '请求审批', group: '飞书' } + { id: 'request_approval', label: '请求审批', group: '飞书' }, ]; /** 组织成员角色(接口枚举保持英文,界面用 orgRoleLabel) */ @@ -25,7 +25,7 @@ export type OrgRole = (typeof ORG_ROLES)[number]; export const ORG_ROLE_LABELS: Record = { OWNER: '所有者', ADMIN: '管理员', - MEMBER: '成员' + MEMBER: '成员', }; /** 项目团队授权角色(接口枚举保持英文,界面用 permissionRoleLabel) */ @@ -35,5 +35,5 @@ export type PermissionRole = (typeof PERMISSION_ROLES)[number]; export const PERMISSION_ROLE_LABELS: Record = { READ: '只读', EDIT: '编辑', - MANAGE: '管理' + MANAGE: '管理', }; diff --git a/hub/admin-web/src/lib/format.ts b/hub/admin-web/src/lib/format.ts index 80160da..07391b5 100644 --- a/hub/admin-web/src/lib/format.ts +++ b/hub/admin-web/src/lib/format.ts @@ -1,9 +1,4 @@ -import { - ORG_ROLE_LABELS, - PERMISSION_ROLE_LABELS, - type OrgRole, - type PermissionRole -} from './constants'; +import { ORG_ROLE_LABELS, PERMISSION_ROLE_LABELS, type OrgRole, type PermissionRole } from './constants'; export function fmtDate(iso: string): string { if (!iso) return '—'; @@ -14,7 +9,7 @@ export function fmtDate(iso: string): string { month: 'short', day: '2-digit', hour: '2-digit', - minute: '2-digit' + minute: '2-digit', }); } diff --git a/hub/admin-web/src/lib/session.ts b/hub/admin-web/src/lib/session.ts index 8110a84..a219994 100644 --- a/hub/admin-web/src/lib/session.ts +++ b/hub/admin-web/src/lib/session.ts @@ -10,7 +10,7 @@ interface SessionState { export const session = writable({ loading: true, me: null, - error: null + error: null, }); export async function loadSession(): Promise { @@ -27,7 +27,7 @@ export async function loadSession(): Promise { session.set({ loading: false, me: null, - error: err instanceof Error ? err.message : String(err) + error: err instanceof Error ? err.message : String(err), }); } } diff --git a/hub/admin-web/src/routes/+layout.svelte b/hub/admin-web/src/routes/+layout.svelte index 22f711b..bf629ff 100644 --- a/hub/admin-web/src/routes/+layout.svelte +++ b/hub/admin-web/src/routes/+layout.svelte @@ -24,7 +24,7 @@ { key: 'teams', label: '团队', icon: 'teams' as const }, { key: 'projects', label: '项目', icon: 'projects' as const }, { key: 'provider', label: '供应方', icon: 'provider' as const }, - { key: 'feishu', label: '飞书', icon: 'feishu' as const } + { key: 'feishu', label: '飞书', icon: 'feishu' as const }, ]; function isAdmin(org: OrgMembership): boolean { @@ -68,7 +68,7 @@ function navHref(key: string): string { const slug = currentOrg()?.slug ?? pickHomeOrg()?.slug; - if (!slug) return '/'; + if (!slug) return '/'; if (key === 'overview') return `/admin/org/${slug}`; return `/admin/org/${slug}/${key}`; } @@ -92,7 +92,7 @@ function orgSelectItems(list: OrgMembership[]) { return list.map((o) => ({ value: o.slug, - label: `${o.name} · ${orgRoleLabel(o.role)}` + label: `${o.name} · ${orgRoleLabel(o.role)}`, })); } @@ -142,7 +142,11 @@ {:else if $session.error}
-
!
+
+ ! +

无法连接到后端

{$session.error}

@@ -151,7 +155,9 @@ {:else if !$session.me}
-
+
CPH

Curriculum Project Hub

@@ -177,7 +183,9 @@ {mobileNavOpen ? 'translate-x-0' : '-translate-x-full md:translate-x-0'}" >
-
+
CPH
@@ -191,17 +199,14 @@ 组织
- +