'use client'; import { Box, Paper, Button, IconButton, InputBase, CircularProgress } from '@mui/material'; import { Search as SearchIcon, FilterList as FilterIcon, Download as DownloadIcon, Delete as DeleteIcon } from '@mui/icons-material'; import { useTranslation } from 'react-i18next'; /** * 搜索栏组件 * @param {string} searchKeyword - 搜索关键词 * @param {function} onSearchChange - 搜索关键词变化回调 * @param {function} onSearch - 搜索回调 * @param {function} onFilterClick - 筛选按钮点击回调 * @param {function} onExportClick - 导出按钮点击回调 * @param {boolean} exportLoading - 导出加载状态 * @param {number} selectedCount - 选中的项目数量 * @param {function} onBatchDelete - 批量删除回调 * @param {boolean} batchDeleteLoading - 批量删除加载状态 */ const SearchBar = ({ searchKeyword, onSearchChange, onSearch, onFilterClick, onExportClick, exportLoading = false, selectedCount = 0, onBatchDelete, batchDeleteLoading = false }) => { const { t } = useTranslation(); return ( onSearchChange(e.target.value)} onKeyPress={e => e.key === 'Enter' && onSearch()} /> {selectedCount > 0 && ( )} ); }; export default SearchBar;