import React, { useState, useEffect } from "react"; import { useNavigate } from "react-router-dom"; import { Card, NavBar, List, Button, Dialog, Toast } from "antd-mobile"; import { LogoutOutlined, PhoneOutlined, MessageOutlined, DatabaseOutlined, FolderOpenOutlined, BellOutlined, SettingOutlined, } from "@ant-design/icons"; import MeauMobile from "@/components/MeauMobile/MeauMoible"; import Layout from "@/components/Layout/Layout"; import style from "./index.module.scss"; const Mine: React.FC = () => { const navigate = useNavigate(); const [userInfo, setUserInfo] = useState(null); const [stats, setStats] = useState({ devices: 12, wechat: 25, traffic: 8, content: 156, }); const [showLogoutDialog, setShowLogoutDialog] = useState(false); // 从localStorage获取用户信息 useEffect(() => { const userInfoStr = localStorage.getItem("userInfo"); if (userInfoStr) { setUserInfo(JSON.parse(userInfoStr)); } }, []); // 用户信息 const currentUserInfo = { name: userInfo?.username || "售前", email: userInfo?.email || "zhangsan@example.com", role: "管理员", lastLogin: "2024-01-20 14:30", avatar: userInfo?.avatar || "", }; // 功能模块数据 const functionModules = [ { id: "devices", title: "设备管理", description: "管理您的设备和微信账号", icon: , count: stats.devices, path: "/devices", bgColor: "#e6f7ff", iconColor: "#1890ff", }, { id: "wechat", title: "微信号管理", description: "管理微信账号和好友", icon: , count: stats.wechat, path: "/wechat-accounts", bgColor: "#f6ffed", iconColor: "#52c41a", }, { id: "traffic", title: "流量池", description: "管理用户流量池和分组", icon: , count: stats.traffic, path: "/traffic-pool", bgColor: "#f9f0ff", iconColor: "#722ed1", }, { id: "content", title: "内容库", description: "管理营销内容和素材", icon: , count: stats.content, path: "/content", bgColor: "#fff7e6", iconColor: "#fa8c16", }, ]; // 加载统计数据 const loadStats = async () => { try { // 这里可以调用实际的API // const [deviceStats, wechatStats, trafficStats, contentStats] = await Promise.allSettled([ // getDeviceStats(), // getWechatStats(), // getTrafficStats(), // getContentStats(), // ]); // 暂时使用模拟数据 setStats({ devices: 12, wechat: 25, traffic: 8, content: 156, }); } catch (error) { console.error("加载统计数据失败:", error); } }; useEffect(() => { loadStats(); }, []); const handleLogout = () => { // 清除本地存储的用户信息 localStorage.removeItem("token"); localStorage.removeItem("token_expired"); localStorage.removeItem("s2_accountId"); localStorage.removeItem("userInfo"); setShowLogoutDialog(false); navigate("/login"); Toast.show({ content: "退出成功", position: "top", }); }; const handleFunctionClick = (path: string) => { navigate(path); }; // 渲染用户头像 const renderUserAvatar = () => { if (currentUserInfo.avatar) { return 头像; } return (
); }; // 渲染功能模块图标 const renderModuleIcon = (module: any) => (
{module.icon}
); return (
我的
} footer={} >
{/* 用户信息卡片 */}
{renderUserAvatar()}
{currentUserInfo.name}
{currentUserInfo.role}
{currentUserInfo.email}
最近登录: {currentUserInfo.lastLogin}
{/* 我的功能 */} {functionModules.map((module) => ( {module.count} } arrow onClick={() => handleFunctionClick(module.path)} /> ))} {/* 退出登录按钮 */}
{/* 退出登录确认对话框 */} setShowLogoutDialog(false)} />
); }; export default Mine;