diff --git a/yanzhu-ui-vue3/public/images/pitMonitor.png b/yanzhu-ui-vue3/public/images/pitMonitor.png
new file mode 100644
index 00000000..0ed75985
Binary files /dev/null and b/yanzhu-ui-vue3/public/images/pitMonitor.png differ
diff --git a/yanzhu-ui-vue3/public/images/pitMonitor.svg b/yanzhu-ui-vue3/public/images/pitMonitor.svg
index e72ff1c2..d6f7ee8c 100644
--- a/yanzhu-ui-vue3/public/images/pitMonitor.svg
+++ b/yanzhu-ui-vue3/public/images/pitMonitor.svg
@@ -1 +1,2 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/yanzhu-ui-vue3/public/images/power.png b/yanzhu-ui-vue3/public/images/power.png
new file mode 100644
index 00000000..af6da13c
Binary files /dev/null and b/yanzhu-ui-vue3/public/images/power.png differ
diff --git a/yanzhu-ui-vue3/public/images/power.svg b/yanzhu-ui-vue3/public/images/power.svg
index fbf095fc..45203192 100644
--- a/yanzhu-ui-vue3/public/images/power.svg
+++ b/yanzhu-ui-vue3/public/images/power.svg
@@ -1,2 +1,2 @@
\ No newline at end of file
+
\ No newline at end of file
diff --git a/yanzhu-ui-vue3/public/images/towerMonitor.png b/yanzhu-ui-vue3/public/images/towerMonitor.png
new file mode 100644
index 00000000..12d0093e
Binary files /dev/null and b/yanzhu-ui-vue3/public/images/towerMonitor.png differ
diff --git a/yanzhu-ui-vue3/public/images/towerMonitor.svg b/yanzhu-ui-vue3/public/images/towerMonitor.svg
index 3c372688..8bb95249 100644
--- a/yanzhu-ui-vue3/public/images/towerMonitor.svg
+++ b/yanzhu-ui-vue3/public/images/towerMonitor.svg
@@ -1,3 +1,3 @@
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/yanzhu-ui-vue3/public/images/videoMonitor.png b/yanzhu-ui-vue3/public/images/videoMonitor.png
new file mode 100644
index 00000000..95eea9df
Binary files /dev/null and b/yanzhu-ui-vue3/public/images/videoMonitor.png differ
diff --git a/yanzhu-ui-vue3/src/api/bim/bim.js b/yanzhu-ui-vue3/src/api/bim/bim.js
index c31354f5..41899dd4 100644
--- a/yanzhu-ui-vue3/src/api/bim/bim.js
+++ b/yanzhu-ui-vue3/src/api/bim/bim.js
@@ -69,3 +69,19 @@ export function devicePositionGet(data) {
params: data,
});
}
+
+export function devicePositionAddItems(data) {
+ return request({
+ url: "/manage/api/bim/devicePosition/addItems",
+ method: "post",
+ data: data,
+ });
+}
+
+export function devicePositionUpdateItems(data) {
+ return request({
+ url: "/manage/api/bim/devicePosition/updatePosition",
+ method: "post",
+ data: data,
+ });
+}
\ No newline at end of file
diff --git a/yanzhu-ui-vue3/src/views/bim/bimModel/modelDialog.vue b/yanzhu-ui-vue3/src/views/bim/bimModel/modelDialog.vue
index 5bdb938e..b2c09e1e 100644
--- a/yanzhu-ui-vue3/src/views/bim/bimModel/modelDialog.vue
+++ b/yanzhu-ui-vue3/src/views/bim/bimModel/modelDialog.vue
@@ -1,6 +1,7 @@
@@ -15,8 +16,23 @@ export default {
title: '',
row: null,
bimStore: null,
- sapi_1: null,
elId: 'gis' + +new Date(),
+ defaults: {
+ serverIP: `model.jhncidg.com`, //服务IP地址 具体见引擎服务控制台
+ port: 8000, //HTTP端口 具体见引擎服务控制台
+ useHttps: true, //是否使用Https
+ container: `UEgineContainer`, //[必须]引擎场景容器ID
+ // Token 可从引擎工作站下载 (必须)不传入则无法加载模型
+ secretKey:
+ "cbe8c300dfb0280d71bf6546087c6d2fa49260085f53fca86c69755ac3a39199e08cb605efce617acfa509d5f3ee4d7f67a84d7c36cc175589405fde5d995a24258c47f45b34485a2edb350010e2f42cd5b388af45c6b070850288d284cbbbcd51e36f41b756a25f38d27dbe2e47e96b9eb56a96b59d61e02a467e881f70b21989b1a50685b6fc0265f528fc20b876d425a89c4bf6b33f829177fda27027e65b8a94867b381ae88ecd6668e8ca6b6d286dce7e5d799b0a1791905fc1eba1be4bd6b2a0d0983e9fd1184d8dbba49a8569257e195e636a849299be5a52d738b8218ae3e55ca95ec2999742c749dda98108ecfe0622c0e7fe1d76ad60b6c191c99adca5f9cf5e5f096c599f1874ee756fe16dce7e5d799b0a175d5afe5554a4332203e774bed8a045353e9bf5abfe83ffe0cca50ef6c618828a9d63dac2d06e44c19cc1e4d0220e60c6fb1ba2643538d1973ae24d1650ef196ed32b1cdbecb9bf3ae2651ff226b8a2383977aeaabb9225d76f8b62bd8891c29bfb1ba2643538d1973ae24d1650ef196ed32b1cdbecb9bf3aded264d2944b7de536ca05b5a67eccf9e531630520dbe46651d2e0212a534b5d37e40a524d2bbb8599a991777d21e7823e88c9264a91404ad3c355b1486472d2d33d2024825618176f3ca316f1c8864c67da113f439417e93a3a6e65f3b5b13e02b4cf797dd3ef437d453436628b776f17b592e82465766524d976e07cb995f7aeea64611acbe5c7afafd0506174e868b868cd5190eb2aca665e8d49164a81ede6cd674b6676107f753151533a277044030c6924517e4349b5024217bdf743a670fd5d571139e4f0e6cd674b6676107fc8b14b44ceeed441af4b194f05a9561933be0b316b16d035cf14829a5847f70377d6c12f1649400fcab44f4ff52989cf214f8b93be10da84253a49595b8ffa60e29586b86ee4d866c8ffcb81b934e9b51cd8670938da55d3ee5940a08809fab6f7c0a1702e2a8a95cc2ddffad05ffd7c7b7134e53eaa4f83b046182095e9d992f79b33aea9c3effbffbe7fd817b3e44233aa4802e15dfc49a29aa59c8f2497fa711bc068a62def563d8f10f7e48a08896850e0b312512643a819d6c108898dd8a2266bc2bd5ee75d866f1d98d020cafd7bd5f9c0972b08b652da3f7d8f2395dcf14e1860b5a41f63ca076947bd189a6df6b34a0d3b48e62299da383acb371030673a18f4f42a3e1ef21654bc56ed57d610df6c47a708c020420446a051fcfcfe2ec33e49302a9c7b920088012936f0e4972bd8f261f7b7345b2b4c07b28f439b8c363d561580eba60124eaa5aa0834e124254c2ea7e8b20334d705a519dd901833639d7019f49033c4bbb34a5481d3485125cdd7384aad1b3050717025af01dcfac91bea061f4ff485af667dd7ebaf4baeea64611acbe5c740e3c5229a33a810e6eb28a4163283ccebc424f09f933d0eb1a881ed05ca8d5c70958237eb5b91d4e574440ea0c9179a582dc966bcfc1f21cf3630a2823a9a2d22bd09a00b213aae3866768ae2f24dde59f3f21ab1f820a9d2bc9b9c79ecfe3a853fcb2bc95ee8056cd5b4826fa55926733ef859a5f169e6afafd0506174e86864d53d967da98ab0b0e08d14be6d452c753151533a2770444dc3bda33a30522cafafd0506174e868ad58c88e87a3bfc170e2ffb0f223e4e27d1f9f3c7343796941187054ec673ebdbd57ea3b34f9c6ccd2a3c00a7ba1a999546538785d7cc0b40a683a8bbd9cb842f96b87b99f2b3a0e241e69a6993bcca387380d5ea2d8e077753151533a277044c81e5b8a22ff6bdf23c4b6186d657cedfff99a50bc0729d1d320606a1d80beb0", //token
+ openearth: false, //[可选]是否开启GIS场景
+ bgcolor: "rgba(135 ,206 ,250,1)", //[可选]BIM模式场景背景色
+ },
+ // 此处传入模型访问地址 -可通过serverAPI接口获取该地址
+ modelPath:
+ "https://model.jhncidg.com:18086/Tools/output/model/4720827559401934284/root.glt",
+ // 模型ID 由用户自定义
+ modelID: "4720827559401934284",
}
},
mounted() {
@@ -34,6 +50,55 @@ export default {
})
},
initCesium() {
+<<<<<<< Updated upstream
+=======
+ window.api = new SAPI(
+ {
+ serverIP: `model.jhncidg.com`, //服务ip地址
+ port: 8000, //HTTP端口
+ useHttps: true, //使用Https
+ container: this.elId, //[必须]容器id
+ secretKey: "cbe8c300dfb0280d71bf6546087c6d2fa49260085f53fca86c69755ac3a39199e08cb605efce617acfa509d5f3ee4d7f67a84d7c36cc175589405fde5d995a24258c47f45b34485a2edb350010e2f42cd5b388af45c6b070850288d284cbbbcd51e36f41b756a25f38d27dbe2e47e96b9eb56a96b59d61e02a467e881f70b21989b1a50685b6fc0265f528fc20b876d425a89c4bf6b33f829177fda27027e65b8a94867b381ae88ecd6668e8ca6b6d286dce7e5d799b0a1791905fc1eba1be4bd6b2a0d0983e9fd1184d8dbba49a8569257e195e636a849299be5a52d738b8218ae3e55ca95ec2999742c749dda98108ecfe0622c0e7fe1d76ad60b6c191c99adca5f9cf5e5f096c599f1874ee756fe16dce7e5d799b0a175d5afe5554a4332203e774bed8a045353e9bf5abfe83ffe0cca50ef6c618828a9d63dac2d06e44c19cc1e4d0220e60c6fb1ba2643538d1973ae24d1650ef196ed32b1cdbecb9bf3ae2651ff226b8a2383977aeaabb9225d76f8b62bd8891c29bfb1ba2643538d1973ae24d1650ef196ed32b1cdbecb9bf3aded264d2944b7de536ca05b5a67eccf9e531630520dbe4663b2d265fe6a4c8877fcba7ce8189fbc216cdeb3ecbc1d365395fd220141d4e6d9fd317e3dac7bb223013404ec41c18c9cc748e652ce16fe7061c32d550edfda330c1555e0c08e51f698f96b91615d8229cf32d2e110ec91f1211e23c769b5bbe1aa9a9191a2d3da09800e6efdee12ee04fdc9df330134f94052efc320a8c1a143e939c0e3b1ad476cf3630a2823a9a2dc2a17ec077fd21bfa7550ed054853e32510f8a6ea5c1dff9c3d61f7cf5f649cb25f0dbad9f7f66e3b446946685cead0cfac91bea061f4ff49a2f853c245297edc3d61f7cf5f649cb0f9b84173857a7b67c27928b58b4a6a65f517a43f106335ecc43571d292f54baa4596f82cf86665b367e01045009c18a2b543696b93a5bd44ca8168b525235150ffadf3f628aa7e8a20b9e74d76bd3a1e26b026e5297005a780f011db11ddb55fbabdc0f876c1cdfa5ef7db74bbc52e19c6396ffcf10044da26ecd334722494fc515b205e9624a4468762f63f0143583d1eeaaa85ff95ee50d8f953f44140ab40f29957f914b2241fd1309b7be0d5f9e55207069d393244a5be14de83e99956e957e025b859c7dd3cebcdd4589bf15942a17f162a5b95af68b416632dbf24db069995334a82a49d6060f7a5b770b6e18ecf8cb01c0e21b608156b326e2f4461369f266ad62ac2edf64d1767ac6ea3d83c9ba33a4517541406791c384c597539cc1ffcdbe8f3563a125da5d3905c7f92abef0fe8b967e5bc2832940bf4230fe93bdd44267922427c4db140fd5cb164da87f17f480c39e9c1c17bd48d031e3ce8ab3a49456b48f3b49549c2da3f62d2a8da7d5f36e39ce04af5e3f8253971ef20b10b7b200fbc7c3d3f71e19f74e660313cf3630a2823a9a2d0acd9cb22f32e975d8b70082aab5ddbcb644d89a77efad286dee59796b124081510f8a6ea5c1dff9cb0f31d9a93422d1de95a0001376b8d685af667dd7ebaf4bdfc4840ac1126277417910a2ed0df6e3ca2026459a491059689206d702832f51afafd0506174e868c12cc462769b2e685be04514c976edd04ca2ef020dc56bee8321afe91a1dcbb1afafd0506174e8680f18f43fcd13957eef440c21db889c81888bce192514399191b48af868eda487753151533a27704469e5635404d6fdfb753151533a277044afdd825f7197f289753151533a27704484b9cf9eccaf749638930dbe9049f2ae36689b286e75a81e016aa63061505f57a8c1113b833628e3a18dff8ae8ac8eaae0e7c3406ae4dd4e10880b34c16e1b7405884ca1d5603015a7b0730878fafb08",
+ openEarth: false, //[可选]开启Gis场景
+ bgColor: 'rgba(135 ,206 ,250,1)', //[可选]bim场景背景色, 传值即为纯色天空盒
+ tintColor: 'rgba(255,255,0,1)', //[可选]osgb单体化颜色
+ sceneTime: ['13:00', '6:00', '18:00'], //[可选]分别为当前时间、日出时间、日落时间
+ cadMode: false, // 是否是Cad图纸预览模式
+ },
+ () => {
+ console.log(this.row)
+ //this.row.modelAccessAddress
+ console.log("场景初始化完成");
+ window.api.Public.setSkyBoxState(0);
+ this.addModels();
+
+ }
+ )
+ console.log('---->', api)
+ },
+ addModels() {
+ let modelPath=this.row.modelAccessAddress;
+ if(modelPath.indexOf("model.jhncidg.com")==-1){
+ modelPath="https://model.jhncidg.com:18086"+modelPath
+ }
+ window.api.Model.add(
+ // 此处传入模型访问地址 -可通过serverAPI接口获取该地址
+ modelPath,
+ // 模型ID 由用户自定义
+ this.row.lightweightName,
+ (res) => {
+ console.log("模型开始加载");
+ },
+ (res) => {
+ console.log("模型加载完毕");
+ },
+ {
+ FlyTo: true,
+ }
+ );
+ },
+ initCesium2() {
+>>>>>>> Stashed changes
// const defaults = { ...this.bimStore.defaults }
let defaults = {
container: 'cesiumContainer', //[必须]容器id
@@ -116,4 +181,10 @@ export default {
}
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/yanzhu-ui-vue3/src/views/bim/sandTableSetting/index.vue b/yanzhu-ui-vue3/src/views/bim/sandTableSetting/index.vue
index 3082afb0..0e04fd5b 100644
--- a/yanzhu-ui-vue3/src/views/bim/sandTableSetting/index.vue
+++ b/yanzhu-ui-vue3/src/views/bim/sandTableSetting/index.vue
@@ -85,6 +85,21 @@
/>
+
+ 保存
+
+
+
+
+
![]()
+
+
+ aaa
+
@@ -94,7 +109,7 @@ import useUserStore from "@/store/modules/user";
import { listBimModel } from "@/api/bim/bimModel";
import { ElMessage, ElMessageBox } from "element-plus";
import { emitter } from "@/router/index.js";
-import { devicePositionGet } from "@/api/bim/bim.js";
+import { devicePositionGet,devicePositionAddItems, devicePositionUpdateItems} from "@/api/bim/bim.js";
import icons from "./icons.js";
export default {
name: "SandTableSetting",
@@ -113,6 +128,7 @@ export default {
positionByModalId: "",
selItem: null,
iconVideo: "",
+ addLabels:[],
};
},
created() {
@@ -137,46 +153,107 @@ export default {
this.initEngine();
},
methods: {
- AddLable: function (e, t) {
+ doSave() {
+ this.$confirm("确认保存修改?", "提示", {
+ type:"warning",
+ confirmButtonText: "确 认",
+ cancelButtonText: "取 消",
+ }).then(() => {
+ let adds=this.devices.filter((item)=>{
+ return item.id==null
+ }).map(item=>{
+ return {
+ deviceId:item.deviceId,
+ deviceType:item.deviceType,
+ position:JSON.stringify( item.position),
+ enabled:item.show?1:0,
+ currentUser:this.userStore.name,
+ remark:'',
+ }
+ })
+ let updates=this.devices.filter((item)=>{
+ return item.id!=null
+ }).map(item=>{
+ return {
+ id:item.id,
+ position:JSON.stringify( item.position),
+ currentUser:this.userStore.name,
+ enabled:item.show?1:0,
+ }
+ })
+ console.log("-->",adds,updates)
+ let ajaxs=[];
+ if(adds.length>0){
+ ajaxs.push(devicePositionAddItems({items:adds}))
+ }
+ if(updates.length>0){
+ ajaxs.push(devicePositionUpdateItems({items:updates}))
+ }
+ Promise.all(ajaxs).then((res)=>{
+ ElMessage.success("保存成功")
+ })
+ });
+ },
+ clearLabels(){
+ this.addLabels.forEach(id=>{
+ window.sandSettingApi.Label.removeBalloon(id);
+ })
+ this.addLabels=[];
+ },
+ addDeviceLabel(){
+ this.devices.forEach(d=>{
+ if(d.position && d.position.length>0){
+ this.AddLable(d)
+ }
+ });
+ },
+ AddLable: function (item) {
+ let img = "videoMonitor";
+ if (this.activeMenu == 1) {
+ img = "videoMonitor";
+ } else if (this.activeMenu == 2) {
+ img = "pitMonitor";
+ } else if (this.activeMenu == 3) {
+ img = "towerMonitor";
+ } else if (this.activeMenu == 4) {
+ img = "power";
+ }
let html = `
+ text-align: center;color: #ffffff;display: flex;font-size:12px;}
-
- ${this.selItem.name} `;
- console.log(html);
+
+ ${item.name}
+
+ `;
+
window.sandSettingApi.Label.addBalloon({
Html: html,
- ID: this.selItem.elId,
+ ID: item.elId,
Pivot: "2",
- Position: t,
- Title: this.selItem.name,
+ Position: item.position,
+ Title: item.name,
MaxDistance: 1e6,
-
- // ID: e,
- // Position: t,
- // Html: `
${this.selItem.name}
`,
- // Pivot: 8,
- // onClick: function (e) {
- // console.log(e);
- // },
});
+ this.addLabels.push(item.elId);
},
getPosition(item, index) {
this.selItem = item;
window.sandSettingApi && window.sandSettingApi.Public.clearHandler();
ElMessage.info("请在场景中拾取坐标位置");
- window.sandSettingApi.Label.removeBalloon(item.elId);
+ window.sandSettingApi.Public.pickupCoordinate(false);
window.sandSettingApi.Public.event("LEFT_CLICK", (e) => {
window.sandSettingApi.Feature.getByPosition([e.x, e.y], (n) => {
if (n && n["id"]) {
this.positionByModalId = n.id.split("^")[0];
window.sandSettingApi.Public.pickupCoordinate(true, (e) => {
- this.AddLable("position_label", e);
+ this.selItem.position = e;
+ window.sandSettingApi.Label.removeBalloon(item.elId);
+ this.AddLable(this.selItem);
+ window.sandSettingApi.Public.pickupCoordinate(false);
window.sandSettingApi.Public.clearHandler();
});
} else {
@@ -184,28 +261,16 @@ export default {
}
});
});
-
- // window.sandSettingApi.Public.event("LEFT_CLICK", (function(e) {
- // window.sandSettingApi.Feature.getByEvent(e.position, n=> {
- // this.positionByModalId = n.id.split("^")[0];
- // window.sandSettingApi.Public.pickupCoordinate(e.position, (function(e) {
- // window.sandSettingApi.Lable.DeleteCustomLabel("position_label"),
- // this.AddLable("position_label", e)
- // }
- // ))) : ElMessage.warning("请在模型上选点!")
- // }
- // ), !1)
- // }
- // ))
},
doToolsClose() {
this.activeMenu = 0;
this.resetScene();
},
resetScene() {
- api.Camera.stopImmersiveRoam();
- api.Model.location(api.m_model.keys().toArray()[0]);
- api.Plugin.deleteMiniMap();
+ this.clearLabels();
+ sandSettingApi.Camera.stopImmersiveRoam();
+ sandSettingApi.Model.location(api.m_model.keys().toArray()[0]);
+ sandSettingApi.Plugin.deleteMiniMap();
},
doMenu(n) {
if (n == this.activeMenu) {
@@ -233,9 +298,12 @@ export default {
.filter((item) => item.deviceType == this.activeMenu)
.map((item) => {
item.show = item.enabled != 0;
+ item.position=this.$tryToJson(item.position,[]);
item.elId = (item.id ? item.id : cnt++) + "-" + item.deviceType;
return item;
});
+ this.clearLabels();
+ this.addDeviceLabel();
});
},
initEngine() {
@@ -387,7 +455,7 @@ export default {
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
min-width: 300px;
min-height: 400px;
-
+ padding-bottom: 50px;
.tools-title {
padding: 10px;
color: #114c5f;
@@ -402,6 +470,8 @@ export default {
}
.device-list {
padding: 0px 10px;
+ max-height: 60vh;
+ overflow-y: auto;
.device-item {
display: flex;
align-items: center;
@@ -419,6 +489,30 @@ export default {
}
}
}
+ .tools-bottom{
+ position: absolute;
+ bottom: 10px;
+ width:100%;
+ text-align: center;
+ }
+ }
+ .test-box {
+ position: absolute;
+ display: none;
+ top: 10px;
+ left: 10px;
+ .tag-box {
+ position: relative;
+ }
+ .tag-txt {
+ position: absolute;
+ top: 30%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ text-align: center;
+ color: #ffffff;
+ display: flex;
+ }
}
}