import * as React from 'react'; import { Pagination } from 'antd'; import { AppCard, FilterDrawer, HeroBanner, StatsGrid } from '@/components/common'; import { useAppStore, type FilterState } from './store'; import './style.scss'; // 导入全局 Mock 数据 import { getAppsByPageType, getPageConfig, processAppData, mockCurrentUser } from '@/mock'; import { message } from 'antd'; import { useNavigate } from 'react-router-dom'; const AppPlazaList: React.FC = () => { const { filterOpen, setFilterOpen, selectedSort, setSelectedSort, category1, category2, sort, setFilters, currentPage, pageSize, setCurrentPage, setPageSize, } = useAppStore(); // 组合 filters 对象 const filters: FilterState = { category1, category2, sort }; // 获取页面配置 const pageConfig = getPageConfig('appPlaza'); // 获取应用数据(使用全局 Mock) const allApps = getAppsByPageType('appPlaza'); const handleApplyFilter = (newFilters: FilterState) => { setFilters(newFilters); setSelectedSort(newFilters.sort); setCurrentPage(1); console.log('应用筛选:', newFilters); }; const handleSortChange = (sortType: string) => { setSelectedSort(sortType); setFilters({ sort: sortType }); }; // 根据筛选和分页处理数据 const getFilteredAndPaginatedApps = () => { let filtered = [...allApps]; // 根据排序筛选 if (filters.sort === '最新上线') { filtered.sort((a, b) => b.id.localeCompare(a.id)); } else if (filters.sort === '高频率调用') { // 模拟按热度排序(使用 viewCount) filtered.sort((a, b) => (b.viewCount || 0) - (a.viewCount || 0)); } // 分页 const startIndex = (currentPage - 1) * pageSize; const endIndex = startIndex + pageSize; return filtered.slice(startIndex, endIndex); }; const paginatedApps = getFilteredAndPaginatedApps(); const navigate = useNavigate(); const handlePlay = (appId: string) => { console.log('立即使用:', appId); }; const handleApi = (appId: string) => { console.log('API 服务:', appId); message.info('API 文档功能开发中'); }; const handleEdit = (appId: string) => { console.log('编辑应用:', appId); navigate(`/appCenter/questionAnswer/modify?id=${appId}`); }; const handleDelete = (appId: string) => { console.log('删除应用:', appId); message.info('删除功能开发中'); }; const handleShare = (appId: string) => { console.log('分享应用:', appId); message.info('分享功能开发中'); }; const handleFavorite = (appId: string) => { console.log('收藏应用:', appId); message.success('已收藏'); }; const handlePageChange = (page: number, size: number) => { setCurrentPage(page); setPageSize(size); }; return (
{pageConfig.description}