You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.6 KiB
2.6 KiB
资源面板项目关联修复
问题描述
在素材库的搜索框里选择了项目后,无法正确展示该项目下管理的素材。具体表现为:
- 选择"西游记之大圣归来 - 2015第一部"项目后,素材列表为空
- 调试信息显示API调用正常,但资源过滤失败
问题分析
通过代码分析发现以下问题:
- 类型不匹配:项目ID在不同层级使用了不同的数据类型(string vs number)
- API过滤逻辑:resourceApi中的类型转换不够明确
- 调试信息不足:缺乏详细的调试信息来排查问题
修复方案
1. 修复API层类型转换
- 在
resourceApi.getByProjectId中增强类型转换逻辑 - 添加详细的调试信息,包括类型检查和项目ID映射
2. 增强素材数据
- 为"西游记之大圣归来"项目添加更多素材样本
- 确保每个素材类别都有足够的数据用于测试
修复内容
文件:client/src/services/mockApi.ts
// 修复前
let filteredResources = resources.filter(
(r) => r.projectId === parseInt(projectId)
);
// 修复后
const projectIdNum = parseInt(projectId);
let filteredResources = resources.filter((r) => r.projectId === projectIdNum);
console.log("📦 Resources for project:", {
projectId,
projectIdNum,
found: filteredResources.length,
allProjectIds: resources.map((r) => r.projectId),
});
文件:client/src/mocks/resources.ts
增加了以下素材:
角色素材(新增2个):
- 猪八戒-憨态可掬 (ID: 26)
- 沙僧-忠诚护法 (ID: 27)
场景素材(新增2个):
- 西天取经路 (ID: 28)
- 盘丝洞 (ID: 29)
道具素材(新增2个):
- 九齿钉耙 (ID: 30)
- 降妖宝杖 (ID: 31)
实拍素材(新增2个):
- 飞行特效参考 (ID: 32)
- 变身特效参考 (ID: 33)
预期结果
修复后,当用户在素材库搜索框中选择"西游记之大圣归来 - 2015第一部"项目时:
- 角色类别显示5个素材(孙悟空、唐僧、猪八戒、沙僧等)
- 场景类别显示4个素材(花果山、天宫、取经路、盘丝洞)
- 道具类别显示4个素材(金箍棒、紧箍咒、九齿钉耙、降妖宝杖)
- 实拍类别显示3个素材(武打、飞行、变身特效参考)
测试验证
- 打开应用,进入素材库面板
- 点击搜索框,选择"西游记之大圣归来 - 2015第一部"项目
- 切换不同的素材类别标签,验证每个类别都有对应的素材显示
- 检查浏览器控制台,确认调试信息正确输出
修复时间
2026年1月12日
修复状态
✅ 已完成