Merge branch 'dev-lhk' into shenzhen-dev

This commit is contained in:
kun 2024-01-11 17:51:56 +08:00
commit 7b9909052e
4 changed files with 157 additions and 42 deletions

View File

@ -37,6 +37,8 @@
hideArr: [],
colorArr: [],
};
let firstEnter = 0;
let dealArr = [];
async function main() {
// 创建实例需要传入的参数部署环境serviceConfig 和 用户有效期getAccessToken
const applicationOptions = {
@ -68,7 +70,59 @@
obvDocument: obvDocument,
viewer3dItem: viewer3dItems[0],
});
// 设置监听事件
// 监听模型树加载完成可以查询模型树getObjectTree
obvApi.addEventListener(
OBV.ViewerEventTypes.V3dModelTreeLoadedEvent,
(event) => {
console.log("V3dModelTreeLoadedEvent", event);
// 设置监听事件(主要用于模型树隐藏)
obvApi.addEventListener(
OBV.ViewerEventTypes.V3dHideEvent,
(event) => {
console.log(event);
// obvApi
// .getObjectTree(event.nodeIdArray[0].modelId)
// .then(async (modelTreeData) => {
// console.log(JSON.parse(JSON.stringify(modelTreeData)));
// let responseData = JSON.parse(JSON.stringify(modelTreeData))
// dealArr.push({modelId: responseData.modelId, dbId: responseData.rootId})
// await dealArrData(responseData.root.children);
// // 往父级传递
// window.parent.postMessage({ msg: dealArr, tip: 'hidden' });
// });
// 往父级传递
window.parent.postMessage({
msg: event.nodeIdArray,
tip: "hidden",
});
}
);
// 设置监听事件(主要用于模型树显示)
obvApi.addEventListener(
OBV.ViewerEventTypes.V3dShowEvent,
(event) => {
console.log(event);
// obvApi
// .getObjectTree(event.nodeIdArray[0].modelId)
// .then(async (modelTreeData) => {
// console.log(JSON.parse(JSON.stringify(modelTreeData)));
// let responseData = JSON.parse(JSON.stringify(modelTreeData))
// dealArr.push({dbId: responseData.rootId})
// await dealArrData(responseData.root.children);
// // 往父级传递
// window.parent.postMessage({ msg: dealArr, tip: 'hidden' });
// });
// 往父级传递
window.parent.postMessage({
msg: event.nodeIdArray,
tip: "show",
});
}
);
}
);
// 设置监听事件(构件选择)
obvApi.addEventListener(
OBV.ViewerEventTypes.V3dSelectionChangedEvent,
(event) => {
@ -77,44 +131,60 @@
window.parent.postMessage({ msg: event.nodeIdArray });
}
);
// 监听相机改变
obvApi.addEventListener(
OBV.ViewerEventTypes.V3dCameraChangeEvent,
(event) => {
console.log("V3dCameraChangeEvent", event);
// 操作模型
renderConfigModel(obvApi);
if (firstEnter == 0) {
// 首次进入才操作模型
// 操作模型
renderConfigModel(obvApi);
}
}
);
}
// 处理数据
function dealArrData(arr) {
arr.map((item) => {
if (item.children && item.children.length > 0) {
dealArrData(item.children);
}
dealArr.push({ dbId: item.dbId });
});
}
function renderConfigModel(obvApi) {
console.log(obvApi);
console.log(configValue.hideArr);
++firstEnter; // 避免多次调用
// 隐藏构件
if (configValue.hideArr.length > 0) {
obvApi.hide(configValue.hideArr);
} else {
obvApi.showAll();
}
// else {
// obvApi.showAll();
// }
// 构件着色
if (configValue.colorArr.length > 0) {
configValue.colorArr.map((item) => {
let firstIndex = item.color.indexOf(",");
let secondIndex = item.color.indexOf(",", firstIndex + 1);
let thirdIndex = item.color.indexOf(")", -1);
// 构件着色
obvApi.setObjectsColor(
[item],
item.color.substring(4, firstIndex),
item.color.substring(firstIndex + 2, secondIndex),
item.color.substring(secondIndex + 2, thirdIndex),
1
);
if (item.modelId) {
let firstIndex = item.color.indexOf(",");
let secondIndex = item.color.indexOf(",", firstIndex + 1);
let thirdIndex = item.color.indexOf(")", -1);
// 构件着色
obvApi.setObjectsColor(
[item],
item.color.substring(4, firstIndex),
item.color.substring(firstIndex + 2, secondIndex),
item.color.substring(secondIndex + 2, thirdIndex),
1
);
}
});
} else {
obvApi.restoreObjectsColor();
}
// else {
// obvApi.restoreObjectsColor();
// }
}
// 访问的令牌 getAccessToken 和 令牌有效期 expiresIn
function getAccessToken(callBack) {
@ -127,6 +197,7 @@
const data = e.data || {};
console.log(data.token);
console.log(data.urn);
firstEnter = 0;
if (data.token && data.urn) {
configValue.viewToken = data.token;
configValue.urn = data.urn;

View File

@ -89,10 +89,17 @@
}
function renderConfigModel(obvApi) {
console.log(obvApi);
console.log(configValue.bimComponent);
// 构件着色
if (configValue.bimComponent.length > 0) {
// 构件着色
obvApi.setObjectsColor(configValue.bimComponent, 51, 122, 183, 1);
configValue.bimComponent.map((item) => {
if(item.modelId){
// 构件着色
obvApi.setObjectsColor([item], 51, 122, 183, 1);
}
});
// obvApi.setObjectsColor(configValue.bimComponent, 51, 122, 183, 1);
} else {
obvApi.restoreObjectsColor();
}

View File

@ -67,7 +67,7 @@ if (process.env.NODE_ENV == 'development') {
// axios.defaults.baseURL = 'http://183.234.150.152:9090/' //华发 huaxin 123456789
// axios.defaults.baseURL = 'http://182.90.224.147:18170' //瑞士恒通线上
// axios.defaults.baseURL = 'http://58.250.210.9:9090/' //深汕线上
// axios.defaults.baseURL = 'http://101.43.164.214:11111/' //百色线上
axios.defaults.baseURL = 'http://101.43.164.214:11111/' //百色线上
// axios.defaults.baseURL = 'http://101.43.164.214:12345/'//内蒙古线上
// axios.defaults.baseURL = 'http://121.196.214.246/api/'//金林湾线上新
// axios.defaults.baseURL = 'http://42.194.144.62:8088/'//中建四局线上(新)地址

View File

@ -11,10 +11,19 @@
:value="item.value"
/>
</el-select>
<el-color-picker
v-model="formData.color"
v-if="formData.type == 2"
style="margin-left: 10px;"
color-format="rgb"
></el-color-picker>
<el-button type="primary" size="small" @click="saveSelected" style="margin-left: 10px;"
>保存</el-button
>
</div>
<div class="data-show">
<!-- <div class="data-show" v-if="formData.type == 1">
<span>选中的数据值</span>
<div class="selected-box" v-if="formData.type == 1">
<div class="selected-box">
<template v-show="selectedHideList.length > 0">
<div v-for="(item, index) in selectedHideList" :key="index">
<span>{{ item ? item.dbId : "" }}</span>
@ -22,7 +31,13 @@
</div>
</template>
</div>
<div class="selected-box" v-if="formData.type == 2">
<el-button type="primary" size="small" @click="saveSelected"
>保存</el-button
>
</div> -->
<!-- <div class="data-show" v-if="formData.type == 2">
<span>选中的数据值</span>
<div class="selected-box">
<template v-show="selectedColorList.length > 0">
<div v-for="(item, index) in selectedColorList" :key="index">
<span
@ -41,7 +56,7 @@
<el-button type="primary" size="small" @click="saveSelected"
>保存</el-button
>
</div>
</div> -->
</div>
<iframe
:src="url"
@ -148,30 +163,50 @@ export default {
this.getModelList();
},
getIframeMessage(e) {
console.log("Message from iframe", e.data.msg);
console.log("Message from iframe", e.data);
if (e.data.msg && e.data.msg.length > 0) {
if (this.formData.type == 1) {
let dataIndex = null;
dataIndex = this.selectedHideList.find((item) => {
return item.dbId == e.data.msg[0].dbId;
});
if (!dataIndex) {
this.selectedHideList.push({
...e.data.msg[0],
if (e.data.tip == "show") {
let dataShowIndex = null;
e.data.msg.map((item) => {
dataShowIndex = this.selectedHideList.findIndex((item2) => {
return item2.dbId == item.dbId;
});
console.log(dataShowIndex);
if (dataShowIndex>=0) {
this.selectedHideList.splice(dataShowIndex, 1);
}
});
} else {
let dataHiddenIndex = null;
e.data.msg.map((item) => {
dataHiddenIndex = this.selectedHideList.find((item2) => {
return item2.dbId == item.dbId;
});
if (!dataHiddenIndex) {
this.selectedHideList.push({
...item,
});
}
});
}
} else {
let dataIndex = null;
dataIndex = this.selectedColorList.find((item) => {
return item.dbId == e.data.msg[0].dbId;
});
if (!dataIndex) {
this.selectedColorList.push({
...e.data.msg[0],
color: this.formData.color,
if (!e.data.tip) {
let dataIndex = null;
e.data.msg.map((item) => {
dataIndex = this.selectedColorList.find((item2) => {
return item2.dbId == item.dbId;
});
if (!dataIndex) {
this.selectedColorList.push({
...item,
color: this.formData.color,
});
}
});
}
}
this.selectedColorList = this.selectedColorList;
this.$forceUpdate();
}
},
@ -230,15 +265,17 @@ export default {
@include flex;
margin-top: 10px;
.selected-box {
flex: 1%;
flex: 1;
min-width: 208px;
min-height: 32px;
max-height: 100px;
border: 1px solid #c0c4cc;
border-radius: 4px;
@include flex;
flex-wrap: wrap;
padding-left: 6px;
margin-right: 15px;
overflow-y: scroll;
> div {
@include flex;
background-color: #f4f4f5;