diff --git a/SuperAdmin/app/dashboard/projects/[id]/page.tsx b/SuperAdmin/app/dashboard/projects/[id]/page.tsx index 0b673600..6296f8d4 100644 --- a/SuperAdmin/app/dashboard/projects/[id]/page.tsx +++ b/SuperAdmin/app/dashboard/projects/[id]/page.tsx @@ -74,6 +74,8 @@ export default function ProjectDetailPage({ params }: ProjectDetailPageProps) { const [sortOrder, setSortOrder] = useState<'asc' | 'desc' | null>(null) const [deviceStatusFilter, setDeviceStatusFilter] = useState<'all' | 'online' | 'offline'>('all') const [wechatStatusFilter, setWechatStatusFilter] = useState<'all' | 'loggedIn' | 'loggedOut' | 'notLogged'>('all') + const [userStatusFilter, setUserStatusFilter] = useState<'all' | 'enabled' | 'disabled'>('all') + const [userTypeFilter, setUserTypeFilter] = useState<'all' | 'system' | 'operator' | 'consultant'>('all') const fetchProject = async () => { try { @@ -148,26 +150,48 @@ export default function ProjectDetailPage({ params }: ProjectDetailPageProps) { fetchDevices() }, [activeTab, id, sortOrder, deviceStatusFilter, wechatStatusFilter]) - useEffect(() => { - const fetchSubUsers = async () => { - setIsSubUsersLoading(true) - try { - const result = await apiRequest(`/company/subusers?companyId=${id}`) - - if (result.code === 200) { - setSubUsers(result.data) - } else { - toast.error(result.msg || "获取子账号列表失败") - } - } catch (error) { - toast.error("网络错误,请稍后重试") - } finally { - setIsSubUsersLoading(false) - } - } + const fetchSubUsers = async () => { + if (activeTab !== "accounts") return + setIsSubUsersLoading(true) + try { + const result = await apiRequest(`/company/subusers?companyId=${id}`) + + if (result.code === 200) { + let filteredUsers = result.data + + // 应用状态筛选 + if (userStatusFilter !== 'all') { + filteredUsers = filteredUsers.filter(user => + userStatusFilter === 'enabled' ? user.status === 1 : user.status !== 1 + ) + } + + // 应用账号类型筛选 + if (userTypeFilter !== 'all') { + filteredUsers = filteredUsers.filter(user => { + if (userTypeFilter === 'system') return user.typeId === -1 + if (userTypeFilter === 'operator') return user.typeId === 1 + return user.typeId === 2 + }) + } + + setSubUsers(filteredUsers) + } else { + toast.error(result.msg || "获取子账号列表失败") + setSubUsers([]) + } + } catch (error) { + toast.error("网络错误,请稍后重试") + setSubUsers([]) + } finally { + setIsSubUsersLoading(false) + } + } + + useEffect(() => { fetchSubUsers() - }, [id]) + }, [activeTab, id, userStatusFilter, userTypeFilter]) const handleSort = () => { setSortOrder(prev => { @@ -378,71 +402,104 @@ export default function ProjectDetailPage({ params }: ProjectDetailPageProps) { - - - 子账号列表 - 项目下的所有子账号 - - - {isSubUsersLoading ? ( -
加载中...
- ) : subUsers.length === 0 ? ( -
暂无数据
- ) : ( - <> - - - - 头像 - 账号ID - 登录账号 - 昵称 - 手机号 - 状态 - 账号类型 - 创建时间 +
+
+

子账号列表

+
+
+ 状态: + +
+
+ 账号类型: + +
+
+
+ {isSubUsersLoading ? ( +
+ +
+ ) : subUsers.length > 0 ? ( +
+
+ + + 头像 + 账号ID + 登录账号 + 昵称 + 手机号 + 状态 + 账号类型 + 创建时间 + + + + {subUsers.map((user) => ( + + + + + {user.id} + {user.account} + {user.username} + {user.phone} + + + {user.status === 1 ? "启用" : "禁用"} + + + + {user.typeId === -1 + ? "系统账号" + : user.typeId === 1 + ? "操盘手" + : "门店顾问"} + + {user.createTime} - - - {subUsers.map((user) => ( - - - - - {user.id} - {user.account} - {user.username} - {user.phone} - - - {user.status === 1 ? "启用" : "禁用"} - - - - {user.typeId === -1 - ? "系统账号" - : user.typeId === 1 - ? "操盘手" - : "门店顾问"} - - {user.createTime} - - ))} - -
-
- 共 {subUsers.length} 条数据 -
- - )} -
-
+ ))} + + + + ) : ( +
+ 暂无子账号数据 +
+ )} +