Compare commits

..

2 Commits

Author SHA1 Message Date
wangqiujuan0808 204a47bde4 解决冲突 2023-12-15 20:11:12 +08:00
wangqiujuan0808 babcf2d5a2 详情标签 2023-12-15 20:09:13 +08:00
1 changed files with 40 additions and 33 deletions

View File

@ -91,6 +91,7 @@ Bus.on('clickDevice', (isParent) => {
if (!isParent) {//
var clickName = bimStore().activateDevice.clickName;
var Floor = scene.getObjectByName(clickName);
removeLabel();
boxLight(Floor);
//
// nearCamera(Floor);
@ -101,10 +102,10 @@ Bus.on('clickDevice', (isParent) => {
//
Bus.on('clickApplication', (isParent) => {
// Todo
if(!isParent) {
if (!isParent) {
xiaof();
}
})
watch(() => bimStore().activateMenu, value => {
@ -215,7 +216,7 @@ const isSelent = (obj) => {
}
let selectedObjects = ref([]);
let selectBoxByClick, selectBoxByMouseon, pointLabel;
let selectBoxByClick, selectBoxByMouseon, pointLabel, selectedObject;
var marginLeft = 0;
var marginTop = 70;
//
@ -227,7 +228,7 @@ const onMouseMove = (event) => {
const intersects = raycaster.intersectObjects(scene.children, true);
if (intersects.length > 0) {
const clickedObject = intersects[0].object;
var selectedObject = isSelent(clickedObject);
selectedObject = isSelent(clickedObject);
if (selectedObject) {
selectedObjects[0] = selectedObject;
if (selectBoxByMouseon) {
@ -251,9 +252,8 @@ const onMouseDownRight = (event) => {
if (intersects.length > 0) {
const clickedObject = intersects[0].object;
console.log('这是我选中的模型', clickedObject);
var selectedObject = isSelent(clickedObject);
// addLabel(selectedObject, true);
emit('handleRightClick', selectedObject);
selectedObject = isSelent(clickedObject);
addLabel(selectedObject, true);
}
}
//
@ -269,7 +269,7 @@ const onMouseDown = (event) => {
if (intersects.length > 0) {
clickedObject = intersects[0].object;
console.log('这是我选中的模型', clickedObject);
var selectedObject = isSelent(clickedObject);
selectedObject = isSelent(clickedObject);
//
boxLight(selectedObject);
//
@ -279,12 +279,12 @@ const onMouseDown = (event) => {
Bus.emit('handleTreeClick', clickedObject);
return;
}
if(bimStore().activateIndex == '1') {
if (bimStore().activateIndex == '1') {
//
Bus.emit('handleTreeClick1', clickedObject);
return;
}
}
}
const changeColor = (Floor) => {
@ -417,10 +417,8 @@ const toHomeView = () => {
scene.remove(selectBoxByClick);
}
//
if(!isAddLabel.value) {
removeLabel();
isAddLabel.value = !isAddLabel.value;
}
removeLabel();
isAddLabel.value = true;
//
controls.reset();
}
@ -442,44 +440,52 @@ const nearCamera = (floor) => {
//
const setLabel = () => {
if (isAddLabel.value) {
let obj = scene.getObjectByName('set2');
addLabel(obj, false);
let obj = scene.getObjectByName('set2');
addLabel(obj, false);
} else {
removeLabel();
}
isAddLabel.value = !isAddLabel.value;
}
//
const addLabel = (obj,isShowDetail) => {
const addLabel = (obj, isShowDetail) => {
removeLabel();
// console.log(123, obj);
centerSelectedGroup(obj);
let text = "设备二";
pointLabel = createLableObj(text,isShowDetail);
pointLabel = createLableObj(text, isShowDetail);
obj.add(pointLabel);
labelRenderer.setSize(window.innerWidth, window.innerHeight);
labelRenderer.domElement.style.position = "absolute";
labelRenderer.domElement.style.top = 0;
labelRenderer.domElement.style.pointerEvents = 'none';//
document.body.appendChild(labelRenderer.domElement);
// HTML
document.getElementById("dom").appendChild(renderer.domElement);
};
const createLableObj = (text,isShowDetail) => {
const createLableObj = (text, isShowDetail) => {
let laberDiv = document.createElement("div"); //div
if(!isShowDetail) {
if (!isShowDetail) {
laberDiv.className = "laber_name";
laberDiv.innerHTML = `<div class="arrow_outer"></div><span>设备名称:${text}</span><span>状态:启用</span><span>压力50 Pa</span>`
} else {
laberDiv.style.pointerEvents = 'auto';//
laberDiv.className = "laber_name1";
laberDiv.innerHTML = `<div class="detail-btn">详情</div>`
laberDiv.innerHTML = `<div class="detail-btn">详情</div>`;
laberDiv.addEventListener('click', function (event) {
emit('handleRightClick', selectedObject);
console.log(labelRenderer.domElement);
})
}
let pointLabel = new CSS2DObject(laberDiv);
return pointLabel;
};
const removeLabel = () => {
document.body.removeChild(labelRenderer.domElement);
if(pointLabel) {
pointLabel.visible = false;
}
// document.body.removeChild(labelRenderer.domElement);
}
//
@ -496,18 +502,18 @@ const setBottom = () => {
//
const xiaof = () => {
xfobj.forEach((o)=>{
xfadd(o,Math.random() < 0.3);
xfobj.forEach((o) => {
xfadd(o, Math.random() < 0.3);
})
}
let xfobj = [];
//
const xfadd = (obj,state)=> {
const texLoader= new THREE.TextureLoader();
const xfadd = (obj, state) => {
const texLoader = new THREE.TextureLoader();
let texture = null;
if(state){
texture= texLoader.load("/ygr.png");
}else{
if (state) {
texture = texLoader.load("/ygr.png");
} else {
texture = texLoader.load("/yg.png");
}
const spriteMaterial = new THREE.SpriteMaterial({
@ -566,8 +572,9 @@ const xfadd = (obj,state)=> {
line-height: 24px;
}
}
.laber_name1 {
width:100px;
width: 100px;
height: 50px;
border-radius: 5px;
cursor: pointer;
@ -576,6 +583,6 @@ const xfadd = (obj,state)=> {
display: flex;
align-items: center;
justify-content: center;
z-index:999;
z-index: 999;
}
</style>