import { Card, Link, Space, Grid, Divider, Typography } from '@arco-design/web-react'; import { IconApps, IconUser, IconUserGroup } from 'tushan/icon'; import React, { useState, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; const authStorageKey = 'tushan:auth'; export const Dashboard: React.FC = React.memo(() => { const [userCount, setUserCount] = useState(0); //用户数量 const [kbCount, setkbCount] = useState(0); const [modelCount, setmodelCount] = useState(0); useEffect(() => { const fetchCounts = async () => { const baseUrl = import.meta.env.VITE_PUBLIC_SERVER_URL; const { token } = JSON.parse(window.localStorage.getItem(authStorageKey) ?? '{}'); const headers = { 'Content-Type': 'application/json', Authorization: `Bearer ${token}` }; const userResponse = await fetch(`${baseUrl}/users?_end=1`, { headers }); const kbResponse = await fetch(`${baseUrl}/kbs?_end=1`, { headers }); const modelResponse = await fetch(`${baseUrl}/models?_end=1`, { headers }); const userTotalCount = userResponse.headers.get('X-Total-Count'); const kbTotalCount = kbResponse.headers.get('X-Total-Count'); const modelTotalCount = modelResponse.headers.get('X-Total-Count'); console.log(userTotalCount); if (userTotalCount) { setUserCount(Number(userTotalCount)); } if (kbTotalCount) { setkbCount(Number(kbTotalCount)); } if (modelTotalCount) { setmodelCount(Number(modelTotalCount)); } }; fetchCounts(); }, []); return (