diff --git a/web/src/lib/api.ts b/web/src/lib/api.ts index 3b2c6c4..af576a9 100644 --- a/web/src/lib/api.ts +++ b/web/src/lib/api.ts @@ -210,6 +210,10 @@ export const adminApi = { setMemberRole: (teamId: number, memberId: number, isTeamAdmin: boolean) => api.patch(`/admin/teams/${teamId}/members/${memberId}/role`, { is_team_admin: isTeamAdmin }), + // 升某成员为主管(后端会自动同时设 is_team_admin=true) + setMemberAsOwner: (teamId: number, memberId: number) => + api.patch(`/admin/teams/${teamId}/members/${memberId}/role`, { is_team_owner: true }), + // User management createUser: (data: { username: string; diff --git a/web/src/pages/TeamsPage.tsx b/web/src/pages/TeamsPage.tsx index b139564..1272a27 100644 --- a/web/src/pages/TeamsPage.tsx +++ b/web/src/pages/TeamsPage.tsx @@ -833,21 +833,53 @@ export function TeamsPage() { } catch { showToast('操作失败'); } }}>主管理员 ) : m.is_team_admin ? ( - { - try { - await adminApi.setMemberRole(detailTeam!.id, m.id, false); - showToast('已取消副管理员'); - const { data: refreshed } = await adminApi.getTeamDetail(detailTeam!.id); setDetailTeam(refreshed); - } catch { showToast('操作失败'); } - }}>副管理员 + <> + { + try { + await adminApi.setMemberRole(detailTeam!.id, m.id, false); + showToast('已取消副管理员'); + const { data: refreshed } = await adminApi.getTeamDetail(detailTeam!.id); setDetailTeam(refreshed); + } catch { showToast('操作失败'); } + }}>副管理员 + + ) : ( - { - try { - await adminApi.setMemberRole(detailTeam!.id, m.id, true); - showToast('已设为副管理员'); - const { data: refreshed } = await adminApi.getTeamDetail(detailTeam!.id); setDetailTeam(refreshed); - } catch { showToast('操作失败'); } - }}>成员 + <> + { + try { + await adminApi.setMemberRole(detailTeam!.id, m.id, true); + showToast('已设为副管理员'); + const { data: refreshed } = await adminApi.getTeamDetail(detailTeam!.id); setDetailTeam(refreshed); + } catch { showToast('操作失败'); } + }}>成员 + + )}