import { DetailedHTMLProps, HTMLAttributes, ReactNode } from 'react' import Icon from '@ant-design/icons' import VanillaTilt, { TiltOptions } from 'vanilla-tilt' import '@/assets/css/pages/system/index.scss' import HideScrollbar from '@/components/common/HideScrollbar' import FitFullscreen from '@/components/common/FitFullscreen' import FlexBox from '@/components/common/FlexBox' import Card from '@/components/common/Card' import Permission from '@/components/common/Permission' interface CommonCardProps extends DetailedHTMLProps, HTMLDivElement> { icon: IconComponent description?: ReactNode options?: TiltOptions url?: string } const CommonCard = forwardRef( ({ style, // eslint-disable-next-line @typescript-eslint/no-unused-vars ref, icon, description, options = { reverse: true, max: 8, glare: true, scale: 1.03 }, url, children, ...props }) => { const navigate = useNavigate() const cardRef = useRef(null) useEffect(() => { cardRef.current && VanillaTilt.init(cardRef.current, options) }, [options]) const handleCardOnClick = () => { url && navigate(url) } return (
{children}
{description}
) } ) const System = () => { return ( <> 系统概况 系统设置 用户管理 角色管理 群组管理 系统日志 ) } export default System