This commit is contained in:
2026-06-06 02:47:54 +08:00
parent d179e456fc
commit bc64854cae
5 changed files with 333 additions and 1353 deletions

View File

@ -93,8 +93,7 @@ const getAutoLoadModelList = async () => {
//获取放置区域 //获取放置区域
const getPlacementZone = async (sku) => { const getPlacementZone = async (sku) => {
//pergolaSku 是需要在加载棚子的时取其引用传进来的sku则是配件的sku根据配件的sku来判断放置区域 const kernel = getKernel();
const kernel = getKernel();
let division_include = [] let division_include = []
// 同时包含10和13 // 同时包含10和13
const only10_13 = /(?=.*10)(?=.*13)/.test(pergolaSku) const only10_13 = /(?=.*10)(?=.*13)/.test(pergolaSku)
@ -104,8 +103,6 @@ const getPlacementZone = async (sku) => {
const only10_12 = /(?=.*10)(?=.*12)/.test(pergolaSku) const only10_12 = /(?=.*10)(?=.*12)/.test(pergolaSku)
// 同时包含10和20 // 同时包含10和20
const only10_20 = /(?=.*10)(?=.*20)/.test(pergolaSku) const only10_20 = /(?=.*10)(?=.*20)/.test(pergolaSku)
// 只包含13 无13 无12 无20
const only13 = /(?=.*13)(?!.*10)(?!.*12)(?!.*20)/.test(pergolaSku)
// 1. 只要字符串里包含 10就返回 true // 1. 只要字符串里包含 10就返回 true
const has10 = /10/.test(sku); const has10 = /10/.test(sku);
@ -154,14 +151,8 @@ const getPlacementZone = async (sku) => {
division_include.push('前', '后') division_include.push('前', '后')
} }
} }
//棚子只包13的并且含配件是13
if (pergolaSku === "SPF111SEM13" && has13) {
division_include.push('前', '后')
}
if (pergolaSku === "SPF111SEM13" && has10) {
division_include.push('左', '右')
}
console.log('[放置区域] 本次配件的方向:', division_include);
const response = await fetch(getApiUrl(`/api/product-configs/by-sku/${sku}`)); const response = await fetch(getApiUrl(`/api/product-configs/by-sku/${sku}`));
const result = await response.json(); const result = await response.json();
@ -170,20 +161,27 @@ const getPlacementZone = async (sku) => {
const { enable_placement_zone, wall_divisions } = result.data; const { enable_placement_zone, wall_divisions } = result.data;
// const {position_x, position_y, position_z} = data; // const {position_x, position_y, position_z} = data;
if (enable_placement_zone && wall_divisions != undefined) { if (enable_placement_zone && wall_divisions != undefined) {
console.log(wall_divisions); console.log('[放置区域] 当前配件的墙面配置:', wall_divisions);
const filteredDivisions = wall_divisions.filter(item => division_include.includes(item.name)) const filteredDivisions = wall_divisions.filter(item => division_include.includes(item.name))
console.log(filteredDivisions); console.log('[放置区域] 当前显示的墙面:', filteredDivisions);
// 只清除旧的放置区域网格,不清除模型
kernel.dropZone.clearZones(); // 不需要手动 clearZonesupdateDivisions 会自动处理增量更新
const divisions = filteredDivisions.map(wall => ({ const divisions = filteredDivisions.map(wall => ({
name: wall.name, name: wall.name,
divisions: wall.divisions divisions: wall.divisions
})) }))
kernel.dropZone.updateDivisions(divisions); const zones = kernel.dropZone.updateDivisions(divisions);
// 显示放置区域
kernel.dropZone.show(); // 隐藏所有,然后只显示当前需要的墙面
kernel.dropZone.hide();
// 从生成的 zones 中提取完整的墙面名称
const wallNamesToShow = new Set(zones.map(zone => zone.wallName));
wallNamesToShow.forEach(wallName => {
kernel.dropZone.showWall(wallName);
});
} }
} }
} }

View File

@ -585,7 +585,7 @@
</div> </div>
</div> </div>
</div> </div>
<script src="https://sdk.zguiy.com/zt/assets/index.global.js?v=1234"></script> <script src="./index.global.js?v=1234"></script>
<!-- <script src="./index.global.js?v=1234"></script> --> <!-- <script src="./index.global.js?v=1234"></script> -->
<script src="./app-global.js"></script> <script src="./app-global.js"></script>
<script> <script>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -178,13 +178,7 @@ export const getPlacementZone = async (sku) => {
if (enable_placement_zone && wall_divisions != undefined) { if (enable_placement_zone && wall_divisions != undefined) {
console.log('[放置区域] 当前配件的墙面配置:', wall_divisions); console.log('[放置区域] 当前配件的墙面配置:', wall_divisions);
// 将当前配件的墙面配置缓存起来(用于拖拽时查找)
// 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)) const filteredDivisions = wall_divisions.filter(item => division_include.includes(item.name))
console.log('[放置区域] 当前显示的墙面:', filteredDivisions); console.log('[放置区域] 当前显示的墙面:', filteredDivisions);