import styles from '@/page/Home/index.module.scss' import { useEffect, useState } from "react"; import { Outlet, useNavigate } from 'react-router-dom'; import { Popconfirm } from 'antd'; import dayjs from 'dayjs'; import 'dayjs/locale/zh-cn' import { storage } from '@/utils'; import ImageUrl from '@/utils/package/ImageUrl' import Avatar from '@/components/Avatar'; dayjs.locale('zh-cn'); type navListType = { title: string; icon: string; iconActive: string; path: string; isHover: boolean; isActive: boolean; } const Home: React.FC = () => { const navigate = useNavigate(); const [navList, setNavList] = useState([ { title: '首页', icon: ImageUrl.icon12, iconActive: ImageUrl.icon12Active, isHover: false, isActive: true, path: '/home/index' }, { title: '人员', icon: ImageUrl.icon13, iconActive: ImageUrl.icon13Active, isHover: false, isActive: false, path: '/home/user' }, ]); const [userInfo, setUserInfo] = useState({}) const [dateInfo, setDateInfo] = useState<{ work: string; time: string; specific: string; }>({ work: '', time: '', specific: '', }) useEffect(() => { const user = JSON.parse(storage.getItem('user') as string); setUserInfo(user) const updateTime = () => { setDateInfo({ work: dayjs().format('ddd'), time: dayjs().format('HH:mm'), specific: dayjs().format('YYYY/MM/DD') }) }; const timer = setInterval(updateTime, 1000); return () => { clearInterval(timer); }; }, []); const changtNavList = (index: number, bool?: boolean): void => { const newNavList = [...navList]; if (typeof bool === 'boolean') { newNavList[index].isHover = bool; } else { newNavList.forEach((item) => { item.isActive = false; }) newNavList[index].isActive = true; navigate(newNavList[index].path) } setNavList(newNavList) } return ( <>
欢迎您,{userInfo.userName}
{dateInfo.time} {dateInfo.work}
{dateInfo.specific}
{navList.map((item: navListType, index: number) => { return (
changtNavList(index, false)} onMouseEnter={() => changtNavList(index, true)} onClick={() => changtNavList(index)}>
{item.isHover || item.isActive ? : }
{item.title}
) })}
设置
{ try { window.electron.setMainWindowSize({ width: 752, height: 520, key: 'login' }) } catch { } navigate('/login') storage.removeItem('user') }} onCancel={() => { }} okText="确认" cancelText="取消" >
退出
) } export default Home