fix: 修复项目详情页面模板绑定和素材绑定页面的搜索功能
- 修复项目详情页面模板绑定搜索功能:使用过滤后的绑定详情而不是原始数据 - 修复素材绑定页面搜索功能:添加useEffect监听搜索条件变化并重新加载数据 - 修复素材绑定页面统计功能:实现全局模特绑定统计API和前端调用 - 优化MaterialModelBindingService的getMaterialsByFilter方法,正确处理多重过滤条件 - 添加后端get_global_model_binding_stats命令和相关仓库方法 - 确保搜索和统计功能在所有相关页面正常工作
This commit is contained in:
@@ -35,7 +35,7 @@ export const MaterialModelBinding: React.FC = () => {
|
||||
|
||||
const [materials, setMaterials] = useState<Material[]>([]);
|
||||
const [models, setModels] = useState<Model[]>([]);
|
||||
const [stats] = useState<MaterialModelBindingStats | null>(null);
|
||||
const [stats, setStats] = useState<MaterialModelBindingStats | null>(null);
|
||||
const [selectedModel, setSelectedModel] = useState<string>('');
|
||||
const [searchQuery, setSearchQuery] = useState('');
|
||||
const [filterType, setFilterType] = useState<'all' | 'bound' | 'unbound'>('all');
|
||||
@@ -50,6 +50,13 @@ export const MaterialModelBinding: React.FC = () => {
|
||||
loadData();
|
||||
}, []);
|
||||
|
||||
// 当搜索条件变化时重新加载素材
|
||||
useEffect(() => {
|
||||
if (searchQuery !== '' || filterType !== 'all' || selectedModel !== '') {
|
||||
loadMaterials();
|
||||
}
|
||||
}, [searchQuery, filterType, selectedModel]);
|
||||
|
||||
const loadData = async () => {
|
||||
setLoading(true);
|
||||
try {
|
||||
@@ -92,9 +99,8 @@ export const MaterialModelBinding: React.FC = () => {
|
||||
|
||||
const loadStats = async () => {
|
||||
try {
|
||||
// 这里需要一个获取全局统计的API,暂时跳过
|
||||
// const statsData = await invoke<MaterialModelBindingStats>('get_global_model_binding_stats');
|
||||
// setStats(statsData);
|
||||
const statsData = await MaterialModelBindingService.getGlobalModelBindingStats();
|
||||
setStats(statsData);
|
||||
} catch (err) {
|
||||
console.error('加载统计失败:', err);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user