feat: 本次提交更新内容如下
对接数据
This commit is contained in:
@@ -1,14 +1,5 @@
|
|||||||
import request from '@/api/request';
|
import request from "@/api/request";
|
||||||
|
// 首页仪表盘总览
|
||||||
// 设备统计
|
export function getDashboard() {
|
||||||
export function getDeviceStats() {
|
return request("/v1/dashboard", {}, "GET");
|
||||||
return request('/v1/dashboard/device-stats', {}, 'GET');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 微信号统计
|
|
||||||
export function getWechatStats() {
|
|
||||||
return request('/v1/dashboard/wechat-stats', {}, 'GET');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 你可以根据需要继续添加其他接口
|
|
||||||
// 例如:场景获客统计、今日数据统计等
|
|
||||||
|
|||||||
@@ -40,7 +40,6 @@
|
|||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #333;
|
color: #333;
|
||||||
margin-bottom: 4px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.user-level {
|
.user-level {
|
||||||
|
|||||||
@@ -13,10 +13,11 @@ import {
|
|||||||
import MeauMobile from "@/components/MeauMobile/MeauMoible";
|
import MeauMobile from "@/components/MeauMobile/MeauMoible";
|
||||||
import Layout from "@/components/Layout/Layout";
|
import Layout from "@/components/Layout/Layout";
|
||||||
import style from "./index.module.scss";
|
import style from "./index.module.scss";
|
||||||
|
import { useUserStore } from "@/store/module/user";
|
||||||
|
import { getDashboard } from "./api";
|
||||||
const Mine: React.FC = () => {
|
const Mine: React.FC = () => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const [userInfo, setUserInfo] = useState<any>(null);
|
const { user } = useUserStore();
|
||||||
const [stats, setStats] = useState({
|
const [stats, setStats] = useState({
|
||||||
devices: 12,
|
devices: 12,
|
||||||
wechat: 25,
|
wechat: 25,
|
||||||
@@ -25,21 +26,15 @@ const Mine: React.FC = () => {
|
|||||||
});
|
});
|
||||||
const [showLogoutDialog, setShowLogoutDialog] = useState(false);
|
const [showLogoutDialog, setShowLogoutDialog] = useState(false);
|
||||||
|
|
||||||
// 从localStorage获取用户信息
|
|
||||||
useEffect(() => {
|
|
||||||
const userInfoStr = localStorage.getItem("userInfo");
|
|
||||||
if (userInfoStr) {
|
|
||||||
setUserInfo(JSON.parse(userInfoStr));
|
|
||||||
}
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
// 用户信息
|
// 用户信息
|
||||||
const currentUserInfo = {
|
const currentUserInfo = {
|
||||||
name: userInfo?.username || "-",
|
name: user?.username || "-",
|
||||||
email: userInfo?.email || "-",
|
email: user?.account || "-",
|
||||||
role: "-",
|
role: user?.isAdmin === 1 ? "管理员" : "普通用户",
|
||||||
lastLogin: "-",
|
lastLogin: user?.lastLoginTime
|
||||||
avatar: userInfo?.avatar || "",
|
? new Date(user.lastLoginTime * 1000).toLocaleString()
|
||||||
|
: "-",
|
||||||
|
avatar: user?.avatar || "",
|
||||||
};
|
};
|
||||||
|
|
||||||
// 功能模块数据
|
// 功能模块数据
|
||||||
@@ -89,20 +84,12 @@ const Mine: React.FC = () => {
|
|||||||
// 加载统计数据
|
// 加载统计数据
|
||||||
const loadStats = async () => {
|
const loadStats = async () => {
|
||||||
try {
|
try {
|
||||||
// 这里可以调用实际的API
|
const res = await getDashboard();
|
||||||
// const [deviceStats, wechatStats, trafficStats, contentStats] = await Promise.allSettled([
|
|
||||||
// getDeviceStats(),
|
|
||||||
// getWechatStats(),
|
|
||||||
// getTrafficStats(),
|
|
||||||
// getContentStats(),
|
|
||||||
// ]);
|
|
||||||
|
|
||||||
// 暂时使用模拟数据
|
|
||||||
setStats({
|
setStats({
|
||||||
devices: 12,
|
devices: res.deviceNum,
|
||||||
wechat: 25,
|
wechat: res.wechatNum,
|
||||||
traffic: 8,
|
traffic: 999,
|
||||||
content: 156,
|
content: 999,
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("加载统计数据失败:", error);
|
console.error("加载统计数据失败:", error);
|
||||||
@@ -196,7 +183,6 @@ const Mine: React.FC = () => {
|
|||||||
display: "flex",
|
display: "flex",
|
||||||
alignItems: "center",
|
alignItems: "center",
|
||||||
gap: "8px",
|
gap: "8px",
|
||||||
marginBottom: "4px",
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div className={style["user-name"]}>{currentUserInfo.name}</div>
|
<div className={style["user-name"]}>{currentUserInfo.name}</div>
|
||||||
@@ -225,7 +211,6 @@ const Mine: React.FC = () => {
|
|||||||
<div
|
<div
|
||||||
style={{ display: "flex", flexDirection: "column", gap: "8px" }}
|
style={{ display: "flex", flexDirection: "column", gap: "8px" }}
|
||||||
>
|
>
|
||||||
<BellOutlined style={{ fontSize: "20px", color: "#666" }} />
|
|
||||||
<SettingOutlined style={{ fontSize: "20px", color: "#666" }} />
|
<SettingOutlined style={{ fontSize: "20px", color: "#666" }} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user