import { LinkOutlined } from '@ant-design/icons'; import { PageHeader } from '@ant-design/pro-layout'; import { request, useParams } from '@umijs/max'; import { App, Button, Card, List } from 'antd'; import React, { useEffect, useState } from 'react'; // 定义链接项的类型 interface LinkItem { title: string; url: string; } const LinksPage: React.FC = () => { const { siteId } = useParams<{ siteId: string }>(); const { message: antMessage } = App.useApp(); const [links, setLinks] = useState([]); const [loading, setLoading] = useState(true); // 获取链接列表的函数 const fetchLinks = async () => { if (!siteId) return; setLoading(true); try { const response = await request(`/site-api/${siteId}/links`); if (response.success && response.data) { setLinks(response.data); } else { antMessage.error(response.message || '获取链接列表失败'); } } catch (error) { antMessage.error('获取链接列表失败'); } finally { setLoading(false); } }; // 页面加载时获取链接列表 useEffect(() => { fetchLinks(); }, [siteId]); // 处理链接点击事件,在新标签页打开 const handleLinkClick = (url: string) => { window.open(url, '_blank', 'noopener,noreferrer'); }; return (
刷新列表 } > ( } onClick={() => handleLinkClick(item.url)} target="_blank" > 访问 , ]} > {item.url} } /> )} />
); }; export default LinksPage;