Compare commits
1 Commits
d179e456fc
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| bc64854cae |
@ -93,7 +93,6 @@ const getAutoLoadModelList = async () => {
|
||||
|
||||
//获取放置区域
|
||||
const getPlacementZone = async (sku) => {
|
||||
//pergolaSku 是需要在加载棚子的时取其引用,传进来的sku则是配件的sku,根据配件的sku来判断放置区域
|
||||
const kernel = getKernel();
|
||||
let division_include = []
|
||||
// 同时包含10和13
|
||||
@ -104,8 +103,6 @@ const getPlacementZone = async (sku) => {
|
||||
const only10_12 = /(?=.*10)(?=.*12)/.test(pergolaSku)
|
||||
// 同时包含10和20
|
||||
const only10_20 = /(?=.*10)(?=.*20)/.test(pergolaSku)
|
||||
// 只包含13 无13 无12 无20
|
||||
const only13 = /(?=.*13)(?!.*10)(?!.*12)(?!.*20)/.test(pergolaSku)
|
||||
|
||||
// 1. 只要字符串里包含 10,就返回 true
|
||||
const has10 = /10/.test(sku);
|
||||
@ -154,14 +151,8 @@ const getPlacementZone = async (sku) => {
|
||||
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 result = await response.json();
|
||||
@ -170,20 +161,27 @@ const getPlacementZone = async (sku) => {
|
||||
const { enable_placement_zone, wall_divisions } = result.data;
|
||||
// const {position_x, position_y, position_z} = data;
|
||||
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))
|
||||
console.log(filteredDivisions);
|
||||
// 只清除旧的放置区域网格,不清除模型
|
||||
kernel.dropZone.clearZones();
|
||||
console.log('[放置区域] 当前显示的墙面:', filteredDivisions);
|
||||
|
||||
// 不需要手动 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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -585,7 +585,7 @@
|
||||
</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="./app-global.js"></script>
|
||||
<script>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
6
index.js
6
index.js
@ -178,13 +178,7 @@ export const getPlacementZone = async (sku) => {
|
||||
if (enable_placement_zone && wall_divisions != undefined) {
|
||||
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))
|
||||
console.log('[放置区域] 当前显示的墙面:', filteredDivisions);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user