diff --git a/yanzhu-bigscreen/public/index.html b/yanzhu-bigscreen/public/index.html index 83e09a54..7f78b80e 100644 --- a/yanzhu-bigscreen/public/index.html +++ b/yanzhu-bigscreen/public/index.html @@ -30,7 +30,7 @@ - + diff --git a/yanzhu-bigscreen/src/views/bim/bim4DTools.js b/yanzhu-bigscreen/src/views/bim/bim4DTools.js index 83cd0ded..b0d393bd 100644 --- a/yanzhu-bigscreen/src/views/bim/bim4DTools.js +++ b/yanzhu-bigscreen/src/views/bim/bim4DTools.js @@ -143,7 +143,7 @@ const ganttStyle = { }; function initEngine(that) { - console.log("开始初始化引擎") + console.log("开始初始化引擎"); window.bim4DApi = new SAPI( { serverIP: window.config.serverIP, //服务ip地址 @@ -240,6 +240,7 @@ function addModel(that, modelId, cb) { that.viewPoint = p; that.modelLoaded = true; }); + that.initPlay(); }, 1000); } ); @@ -251,9 +252,8 @@ function showBim(that, index) { if (index <= 0) { index = getCurrentTaskIndex(that); } - console.log(index); let showFeatureIds = []; - let currFeatureId = []; + let currFeatureIds = []; for (let i = 0; i <= that.taskList.length; i++) { if (i <= index) { that.taskList[i].gis.forEach((item) => { @@ -265,13 +265,20 @@ function showBim(that, index) { } } if (showFeatureIds.length > 0) { - let featureId = showFeatureIds[0]; - let modelId = featureId.split("_")[0]; - let tmpsIds2 = showFeatureIds.splice(0, maxLen); - api.Model.original(modelId); - api.Feature.showFeatures(tmpsIds2.join("#")); setFeatueVisible(showFeatureIds, true); } + setTimeout(() => { + that.lastFeatureIds.forEach((it) => { + api.Feature.setColor(it, "rgba(255,255,255,1)"); + }); + currFeatureIds = that.taskList[index].gis.map((item) => item.featureId); + if (currFeatureIds.length > 0) { + currFeatureIds.forEach((it) => { + api.Feature.setColor(it, "rgba(255,0,255,1)"); + }); + } + that.lastFeatureIds = currFeatureIds; + }, 0); } function setFeatueVisible(featureIds, show) { @@ -299,10 +306,95 @@ function getCurrentTaskIndex(that) { return index; } +function resetScene(that) { + let api = bim4DApi; + api.Camera.stopImmersiveRoam(); + api.Model.location(api.m_model.keys().toArray()[0]); + api.Plugin.deleteMiniMap(); + if (that.viewPoint) { + api.Camera.setViewPort(that.viewPoint); + } +} + +function original() { + let api = bim4DApi; + for (let modelId in api.m_model) { + api.Model.original(modelId); + } +} + +function getFirstFeatureId(that) { + for (let i = 0; i < that.taskList.length; i++) { + let task = that.taskList[i]; + if (task.gis.length > 0) { + return task.gis[0].featureId; + } + } + return ""; +} + +function preparePlay(that) { + let featureId = getFirstFeatureId(that); + if (!featureId) { + return; + } + let api = bim4DApi; + api.Feature.showFeatures(featureId); + api.Feature.setColor(featureId, "rgba(255,255,255,0)"); +} + +function playStop(that) { + let api = bim4DApi; + that.lastFeatureIds.forEach((it) => { + api.Feature.setColor(it, "rgba(255,255,255,1)"); + }); +} + +function doPLay(that) { + that.playTimer = setInterval(() => { + that.playValue++; + if (that.playValue >= that.taskList.length) { + playStop(that); + that.doStop(); + } else { + that.doPlayPan(that.playValue); + } + }, that.playTime); +} +function modelRotate(that) { + let api = bim4DApi; + if(that.isPlay!=0){ + return; + } + if (that.models.length > 0) { + api.Model.getCenter(that.models[0].modelId, (data) => { + data.xx = 0.5; + api.Camera.autoRotate({ + Speed: 0.5, + Position: data.position, + }); + }); + } +} +function modelClearRotate() { + let api = window.bim4DApi; + if (api) { + api.Camera.stopAutoRotate(); + } +} export default { options, ganttStyle, initEngine, initLoadModel, showBim, + resetScene, + original, + getFirstFeatureId, + preparePlay, + playStop, + getCurrentTaskIndex, + doPLay, + modelRotate, + modelClearRotate, }; diff --git a/yanzhu-bigscreen/src/views/bim4DSimulation.vue b/yanzhu-bigscreen/src/views/bim4DSimulation.vue index ed47f018..49071d5b 100644 --- a/yanzhu-bigscreen/src/views/bim4DSimulation.vue +++ b/yanzhu-bigscreen/src/views/bim4DSimulation.vue @@ -11,7 +11,20 @@
-
+ +
+
+ + 设置间隔时间(单位:毫秒,最小值为500) +
+ +
+ 确定 + 取消 +
+
+
+
@@ -66,14 +82,36 @@ export default { planStyle: bim4DTools.ganttStyle, playValue: 0, isPlay: 0, - playTime: 300, + playTime: 500, showPlan: true, + lastFeatureIds: [], }; }, beforeDestroy() { document.body.classList.remove("is-sapi"); }, mounted() { + let timer; + const resetTimer = () => { + clearTimeout(timer); + bim4DTools.modelClearRotate(); + timer = setTimeout(() => { + bim4DTools.modelRotate(this) + clearTimeout(timer); + }, 1000 * 60 * 5); + }; + + document.addEventListener('mousemove', resetTimer); + document.addEventListener('keydown', resetTimer); + + resetTimer(); + + this.$once('hook:beforeDestroy', () => { + document.removeEventListener('mousemove', resetTimer); + document.removeEventListener('keydown', resetTimer); + clearTimeout(timer); + }); + this.$store.dispatch("ChangeNav", 705); this.dpi = this.$dpi(); window.addEventListener("resize", () => { @@ -97,6 +135,22 @@ export default { window.D4App = this; }, methods: { + doSaveSetting() { + if (isNaN(parseInt(this.playTime))) { + this.playTime = 500; + } + if (this.playTime < 500) { + this.playTime = 500; + } + this.$refs.popSetting.showPopper = false; + }, + doCancelSetting() { + this.playTime = this.oldPlayTime; + this.$refs.popSetting.showPopper = false; + }, + showSetting() { + this.oldPlayTime = this.playTime; + }, initEngine() { this.elId++; setTimeout(() => { @@ -106,6 +160,17 @@ export default { doSwitchPlan() { this.showPlan = !this.showPlan; }, + initPlay() { + if (!bim4DTools.getFirstFeatureId(this)) { + this.$message.error("未配置计划进度,无法播放!"); + return; + } + let playIndex = bim4DTools.getCurrentTaskIndex(this); + if (playIndex > 0) { + bim4DTools.preparePlay(this); + this.doPlayPan(playIndex); + } + }, initPlanList() { if (this.selProject?.id) { this.$api.bim.getPlanList(this.selProject.id).then((res) => { @@ -116,6 +181,7 @@ export default { label: item.taskName, start: item.planStartDate, end: item.planEndDate, + percent: 100, duration: item.taskDuation * 24 * 60 * 60 * 1000, days: item.taskDuation + "(天)", collapsed: false, @@ -136,19 +202,23 @@ export default { } }, playPlay() { - this.playTimer = setInterval(() => { - this.playValue++; - if (this.playValue > this.taskList.length) { - this.doStop(); - } else { - this.doSliderChange(); - } - }, this.playTime); + bim4DTools.original(); + bim4DTools.resetScene(this); + this.lastFeatureIds = []; + if (!bim4DTools.getFirstFeatureId(this)) { + this.$message.error("未配置计划进度,无法播放!"); + return; + } + bim4DTools.preparePlay(this); + bim4DTools.doPLay(this); }, - doSliderChange() { - let task = this.taskList[this.playValue]; + doPlayPan(playIndex) { + if (playIndex >= this.taskList.length) { + return; + } + let task = this.taskList[playIndex]; this.$refs.gantt.scrollToTime(this.$dt(task.start)); - console.log(task.start); + let d = this.$dt(task.start).$d; const current = +d; const currentOffset = this.$refs.gantt.timeToPixelOffsetX(current); @@ -157,8 +227,21 @@ export default { el.setAttribute("x1", currentOffset); el.setAttribute("x2", currentOffset); } - this.$refs.gantt.scrollTo(null, 36 * this.playValue); - bim4DTools.showBim(this, this.playValue); + this.$refs.gantt.scrollTo(null, 36 * playIndex); + bim4DTools.showBim(this, playIndex); + }, + doSliderChange() { + this.isPlay = 0; + clearInterval(this.playTimer); + bim4DTools.original(); + bim4DTools.resetScene(this); + this.lastFeatureIds = []; + if (!bim4DTools.getFirstFeatureId(this)) { + this.$message.error("未配置计划进度,无法播放!"); + return; + } + bim4DTools.preparePlay(this); + this.doPlayPan(this.playValue); }, doPlay() { this.isPlay = 1; @@ -176,7 +259,7 @@ export default { }, doContinue() { this.isPlay = 1; - this.playPlay(); + bim4DTools.doPLay(this); }, }, }; @@ -264,6 +347,7 @@ export default { .svg-icon { width: 24px; height: 24px; + fill: deepskyblue; } } .el-slider { @@ -291,12 +375,14 @@ export default { } .icon-switch-plan { position: absolute; - top: 40px; + top: 100px; right: 40px; cursor: pointer; + z-index: 9999; .svg-icon { width: 30px; height: 30px; + fill: darkturquoise; } } } diff --git a/yanzhu-bigscreen/src/views/bimBriefing.vue b/yanzhu-bigscreen/src/views/bimBriefing.vue index 3a322728..4fa09ac7 100644 --- a/yanzhu-bigscreen/src/views/bimBriefing.vue +++ b/yanzhu-bigscreen/src/views/bimBriefing.vue @@ -115,7 +115,7 @@ -
+
进度信息 @@ -278,7 +278,10 @@ export default { resolve(nd); setTimeout(() => { - document.querySelectorAll(".bim-briefing .model-tree .el-tree-node")[0].click(); + let els = document.querySelectorAll(".bim-briefing .model-tree .el-tree-node"); + if (els.length > 0) { + els[0].click(); + } }, 1000); } else if (node.level == 1) { let nd = []; @@ -421,7 +424,7 @@ export default { api.Model.setVisible(node.modelId, true); this.models.find((mm) => mm.modelId == node.modelId).visible = true; api.Model.original(node.modelId); - if(tmps.length>0){ + if (tmps.length > 0) { let tmpsIds2 = tmps.splice(0, 1000); api.Feature.showFeatures(tmpsIds2.join("#")); this.setFeatueVisible(tmps, true); @@ -707,7 +710,7 @@ export default { &.r66 { height: calc(100% - 180px); } - &.r100{ + &.r100 { height: 100%; } } diff --git a/yanzhu-bigscreen/src/views/bimManage.vue b/yanzhu-bigscreen/src/views/bimManage.vue index 16071f7a..fc38b477 100644 --- a/yanzhu-bigscreen/src/views/bimManage.vue +++ b/yanzhu-bigscreen/src/views/bimManage.vue @@ -223,58 +223,6 @@ 电箱监控
-
-
-
-
高度:15m
-
高度:15m
-
高度:15m
-
高度:15m
-
高度:15m
-
高度:15m
-
高度:15m
-
高度:15m
-
高度:15m
-
- - -
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
电压电流功率
A向123
A向123
A向123
-
- - -
-
diff --git a/yanzhu-bigscreen/src/views/bimRoaming.vue b/yanzhu-bigscreen/src/views/bimRoaming.vue index c122500c..5cf02872 100644 --- a/yanzhu-bigscreen/src/views/bimRoaming.vue +++ b/yanzhu-bigscreen/src/views/bimRoaming.vue @@ -164,7 +164,10 @@ export default { resolve(nd); setTimeout(() => { - document.querySelectorAll(".bim-roaming .model-tree .el-tree-node")[0].click(); + let els = document.querySelectorAll(".bim-roaming .model-tree .el-tree-node"); + if (els.length > 0) { + els[0].click(); + } }, 1000); } else if (node.level == 1) { let nd = []; diff --git a/yanzhu-bigscreen/src/views/greenCarbon.vue b/yanzhu-bigscreen/src/views/greenCarbon.vue index 7ee955eb..a3f9b9c3 100644 --- a/yanzhu-bigscreen/src/views/greenCarbon.vue +++ b/yanzhu-bigscreen/src/views/greenCarbon.vue @@ -767,7 +767,6 @@ export default { }, ], } - console.log(option) return option }, renderChart7() { diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/trouble/SmzSspProblemmodifyMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/trouble/SmzSspProblemmodifyMapper.xml index 1585fee2..202a836e 100644 --- a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/trouble/SmzSspProblemmodifyMapper.xml +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/trouble/SmzSspProblemmodifyMapper.xml @@ -318,7 +318,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select 'a' projectName, count(1) id ,'全部' remark from smz_ssp_problemmodify a where a.projectId=#{projectId} and a.infoType=#{infoType} union - select 'b' projectName, count(1) id,'待整改' remark from smz_ssp_problemmodify a where a.projectId=#{projectId} and a.infoType=#{infoType} + select 'b' projectName, count(1) id,'待整改' remark from smz_ssp_problemmodify a where a.projectId=#{projectId} and a.infoType=#{infoType} and a.checkState in (0) union select 'c' projectName, count(1) id,'待复检' remark from smz_ssp_problemmodify a where a.projectId=#{projectId} and a.infoType=#{infoType} and a.checkState in (1) diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/SmzSspProblemmodifyController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/SmzSspProblemmodifyController.java index 6ed51ff2..9ae37b71 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/SmzSspProblemmodifyController.java +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/SmzSspProblemmodifyController.java @@ -58,11 +58,11 @@ public class SmzSspProblemmodifyController extends BaseController SysUser user = SecurityUtils.getLoginUser().getSysUser(); where.setProjectId(user.getActiveProjectId()); //where.setComId(user.getActiveComId()); - if(SecurityUtils.isAdmin(SecurityUtils.getUserId()) || SecurityUtils.isGSAdmin()) { - where.setCurrentUserId(null); - }else{ - where.setCurrentUserId(user.getUserId()); - } +// if(SecurityUtils.isAdmin(SecurityUtils.getUserId()) || SecurityUtils.isGSAdmin()) { +// where.setCurrentUserId(null); +// }else{ +// where.setCurrentUserId(user.getUserId()); +// } startPage(); List list = smzSspProblemmodifyService.selectList(where); return getDataTable(list); @@ -98,11 +98,11 @@ public class SmzSspProblemmodifyController extends BaseController SysUser user=SecurityUtils.getLoginUser().getSysUser(); where.setProjectId(user.getActiveProjectId()); //where.setComId(user.getActiveComId()); - if(SecurityUtils.isAdmin(SecurityUtils.getUserId()) || SecurityUtils.isGSAdmin()) { - where.setCurrentUserId(null); - }else{ - where.setCurrentUserId(user.getUserId()); - } +// if(SecurityUtils.isAdmin(SecurityUtils.getUserId()) || SecurityUtils.isGSAdmin()) { +// where.setCurrentUserId(null); +// }else{ +// where.setCurrentUserId(user.getUserId()); +// } List result=smzSspProblemmodifyService.getListCount(where); return AjaxResult.success(result); }