bug修改完

This commit is contained in:
2026-06-06 01:15:25 +08:00
parent b1f619083b
commit 66d705aa3e
4 changed files with 116 additions and 63 deletions

View File

@ -179,25 +179,30 @@ export const getPlacementZone = async (sku) => {
console.log('[放置区域] 当前配件的墙面配置:', wall_divisions);
// 将当前配件的墙面配置缓存起来(用于拖拽时查找)
wall_divisions.forEach(wall => {
wall_divisions_cache.set(wall.name, wall);
});
console.log('[放置区域] 已缓存的所有墙面配置:', Array.from(wall_divisions_cache.keys()));
// wall_divisions.forEach(wall => {
// wall_divisions_cache.set(wall.name, wall);
// });
// console.log('[放置区域] 已缓存的所有墙面配置:', Array.from(wall_divisions_cache.keys()));
// 只使用当前配件的墙面配置,不累积显示
const filteredDivisions = wall_divisions.filter(item => division_include.includes(item.name))
console.log('[放置区域] 当前显示的墙面:', filteredDivisions);
// 只清除旧的放置区域网格,不清除模型
kernel.dropZone.clearZones();
// 不需要手动 clearZonesupdateDivisions 会自动处理增量更新
const divisions = filteredDivisions.map(wall => ({
name: wall.name,
divisions: wall.divisions
}))
kernel.dropZone.updateDivisions(divisions);
// 显示放置区域
kernel.dropZone.show();
const zones = kernel.dropZone.updateDivisions(divisions);
// 隐藏所有,然后只显示当前需要的墙面
kernel.dropZone.hide();
// 从生成的 zones 中提取完整的墙面名称
const wallNamesToShow = new Set(zones.map(zone => zone.wallName));
wallNamesToShow.forEach(wallName => {
kernel.dropZone.showWall(wallName);
});
}
}
}
@ -231,9 +236,7 @@ export const showWallFromCache = (wallName) => {
if (wallConfig) {
console.log(`[放置区域] 从缓存恢复墙面 ${wallName}:`, wallConfig);
// 清除旧的放置区域网格
kernel.dropZone.clearZones();
// 不需要手动 clearZonesupdateDivisions 会自动处理增量更新
// 重新生成该墙面的放置区域
kernel.dropZone.updateDivisions([wallConfig]);
@ -370,6 +373,8 @@ export const executeEvent2 = async (result, sku) => {
kernel.model.removeAll();
// 清除所有 SKU 映射
clearAllSkuMappings();
// 只清除放置区域的网格和数据,不删除模型(模型已经在 removeAll 中删除了)
kernel.dropZone.clearZones();
}
// 先处理所有 change_model 事件