bug修改完
This commit is contained in:
29
index.js
29
index.js
@ -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();
|
||||
// 不需要手动 clearZones,updateDivisions 会自动处理增量更新
|
||||
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();
|
||||
|
||||
// 不需要手动 clearZones,updateDivisions 会自动处理增量更新
|
||||
// 重新生成该墙面的放置区域
|
||||
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 事件
|
||||
|
||||
Reference in New Issue
Block a user