|
|
@@ -540,77 +540,71 @@ const fetchTeamMembersForCurrentUser = async () => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// 为管理员加载所有团队的成员数据
|
|
|
+// 为管理员加载所有团队的成员数据(一次性获取)
|
|
|
const loadAllTeamMembers = async () => {
|
|
|
try {
|
|
|
- const allMembers = []
|
|
|
- // 确保 teamStore.teams 已加载
|
|
|
- if (teamStore.teams.length === 0) {
|
|
|
- await teamStore.loadTeams()
|
|
|
- }
|
|
|
- for (const team of teamStore.teams) {
|
|
|
- try {
|
|
|
- const response = await listMembers(0, 100, undefined, team.id)
|
|
|
- if (response.content) {
|
|
|
- const hasNestedChildren = response.content.some(item =>
|
|
|
- item.children && Array.isArray(item.children) && item.children.length > 0
|
|
|
- )
|
|
|
-
|
|
|
- if (hasNestedChildren) {
|
|
|
- allMembers.push(...flattenTeamMembersTree(response.content))
|
|
|
- } else {
|
|
|
- allMembers.push(...(response.content || []).map(item => {
|
|
|
- const { children, ...rest } = item
|
|
|
- return {
|
|
|
- ...rest,
|
|
|
- parentId: item.parentId !== undefined ? item.parentId : null
|
|
|
- }
|
|
|
- }))
|
|
|
+ // 一次性获取所有团队成员,不传teamId参数
|
|
|
+ const response = await listMembers(0, 1000)
|
|
|
+ if (response.content && Array.isArray(response.content) && response.content.length > 0) {
|
|
|
+ // 检查是否有嵌套的children结构
|
|
|
+ const hasNestedChildren = response.content.some(item =>
|
|
|
+ item.children && Array.isArray(item.children) && item.children.length > 0
|
|
|
+ )
|
|
|
+
|
|
|
+ if (hasNestedChildren) {
|
|
|
+ // 扁平化树状结构数据
|
|
|
+ teamMembers.value = flattenTeamMembersTree(response.content)
|
|
|
+ } else {
|
|
|
+ // 没有嵌套结构,直接使用
|
|
|
+ teamMembers.value = (response.content || []).map(item => {
|
|
|
+ const { children, ...rest } = item
|
|
|
+ return {
|
|
|
+ ...rest,
|
|
|
+ parentId: item.parentId !== undefined ? item.parentId : null
|
|
|
}
|
|
|
- }
|
|
|
- } catch (err) {
|
|
|
- console.error(`获取团队 ${team.id} 的成员失败:`, err)
|
|
|
+ })
|
|
|
}
|
|
|
+ } else {
|
|
|
+ teamMembers.value = []
|
|
|
}
|
|
|
- teamMembers.value = allMembers
|
|
|
} catch (error) {
|
|
|
console.error('获取所有团队成员失败:', error)
|
|
|
teamMembers.value = []
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// 根据落地域名池数据加载需要的团队成员数据
|
|
|
+// 根据落地域名池数据加载需要的团队成员数据(一次性获取)
|
|
|
const loadTeamMembersForPools = async (pools) => {
|
|
|
if (!pools || pools.length === 0) return
|
|
|
|
|
|
try {
|
|
|
- // 收集所有需要的 teamId
|
|
|
- const teamIds = new Set()
|
|
|
- pools.forEach(pool => {
|
|
|
- if (pool.teamId) {
|
|
|
- teamIds.add(pool.teamId)
|
|
|
- }
|
|
|
- })
|
|
|
-
|
|
|
- // 加载这些团队的成员数据
|
|
|
- const allMembers = []
|
|
|
- for (const teamId of teamIds) {
|
|
|
- try {
|
|
|
- const response = await listMembers(0, 100, undefined, teamId)
|
|
|
- if (response.content) {
|
|
|
- allMembers.push(...response.content)
|
|
|
- }
|
|
|
- } catch (err) {
|
|
|
- console.error(`获取团队 ${teamId} 的成员失败:`, err)
|
|
|
+ // 一次性获取所有团队成员,不传teamId参数
|
|
|
+ const response = await listMembers(0, 1000)
|
|
|
+ if (response.content && Array.isArray(response.content) && response.content.length > 0) {
|
|
|
+ // 检查是否有嵌套的children结构
|
|
|
+ const hasNestedChildren = response.content.some(item =>
|
|
|
+ item.children && Array.isArray(item.children) && item.children.length > 0
|
|
|
+ )
|
|
|
+
|
|
|
+ if (hasNestedChildren) {
|
|
|
+ // 扁平化树状结构数据
|
|
|
+ teamMembers.value = flattenTeamMembersTree(response.content)
|
|
|
+ } else {
|
|
|
+ // 没有嵌套结构,直接使用
|
|
|
+ teamMembers.value = (response.content || []).map(item => {
|
|
|
+ const { children, ...rest } = item
|
|
|
+ return {
|
|
|
+ ...rest,
|
|
|
+ parentId: item.parentId !== undefined ? item.parentId : null
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
+ } else {
|
|
|
+ teamMembers.value = []
|
|
|
}
|
|
|
-
|
|
|
- // 合并到现有的团队成员列表中(避免重复)
|
|
|
- const existingIds = new Set(teamMembers.value.map(m => m.id))
|
|
|
- const newMembers = allMembers.filter(m => !existingIds.has(m.id))
|
|
|
- teamMembers.value.push(...newMembers)
|
|
|
} catch (error) {
|
|
|
console.error('加载团队成员数据失败:', error)
|
|
|
+ teamMembers.value = []
|
|
|
}
|
|
|
}
|
|
|
|