import {
DeleteOutlined,
EditOutlined,
PlusOutlined,
TeamOutlined,
UserAddOutlined,
UserOutlined,
} from '@ant-design/icons';
import { Card, Button, List, Tag, Space, Popconfirm, App as AntApp, Modal, Form, Input, Empty } from 'antd';
import { TeamAPI, type Team } from '../../../api';
import type { TeamsPageLogicOutput } from '../TeamsPageLogic';
import '../styles/teams-page-h5.css';
interface Props {
logic: TeamsPageLogicOutput;
}
export default function TeamsPageH5({ logic }: Props) {
const { message } = AntApp.useApp();
const {
list,
active,
handleDelete,
handleRename,
handleRemoveMember,
handleAddMember,
setCreateOpen,
setRenameOpen,
setAddMemberOpen,
} = logic;
return (
协作组织空间
团队管理
团队不只是成员列表,更是共享智能体、协同运营和权限分工的组织单元。
}
onClick={() => setCreateOpen(true)}
className="teams-page-h5-create-btn"
>
创建团队
{[
{ label: '团队数量', value: list.length, type: 'brand' },
{ label: '当前成员数', value: active?.members?.length ?? 0, type: 'info' },
{ label: '共享智能体', value: active?.agentCount ?? 0, type: 'success' },
].map((item) => (
{item.label}
{item.value}
当前选中
))}
{list.length > 0 && (
{list.map((item) => (
{
logic.setActive(await TeamAPI.detail(item.id));
}}
>
{item.name}
{item.agentCount ?? 0} 个智能体
))}
)}
{active ? (
{active.name}
}
onClick={() => setRenameOpen(true)}
className="teams-page-h5-edit-btn"
/>
{active.myRole}
{active.agentCount ?? 0} 智能体
管理成员权限、邀请新伙伴。
{active.myRole === 'owner' && (
{
await handleDelete(active.id);
message.success('已删除');
}}
>
} className="teams-page-web-soft-btn">
删除团队
)}
成员规模
{active.members?.length || 0}
共享智能体
{active.agentCount ?? 0}
成员 ({active.members?.length || 0})
{(active.myRole === 'owner' || active.myRole === 'admin') && (
}
onClick={() => setAddMemberOpen(true)}
className="teams-page-web-soft-btn"
>
添加成员
)}
(
{
await handleRemoveMember(m.id);
}}
>
,
]
: []
}
>
}
title={
{m.name}
{m.role}
}
description={
{m.email}
加入时间 {new Date(m.joinedAt).toLocaleDateString('zh-CN')}
}
/>
)}
/>
) : (
)}
logic.setCreateOpen(false)}
footer={null}
width="95%"
destroyOnHidden
>
logic.setRenameOpen(false)} footer={null} width="95%" destroyOnHidden>
logic.setAddMemberOpen(false)} footer={null} width="95%" destroyOnHidden>
);
}