diff --git a/bin/mac-modules-job b/bin/mac-modules-job index b14bcb55..00c74aa9 100755 --- a/bin/mac-modules-job +++ b/bin/mac-modules-job @@ -1 +1 @@ -java -Dfile.encoding=utf-8 -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -jar ruoyi-modules/ruoyi-job/target/yanzhu-modules-job.jar +java -Dfile.encoding=utf-8 -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -jar yanzhu-modules/yanzhu-job/target/yanzhu-modules-job.jar diff --git a/yanzhu-bigscreen/src/views/bim/bim4DTools.js b/yanzhu-bigscreen/src/views/bim/bim4DTools.js index ffb9d2f4..a4d73db6 100644 --- a/yanzhu-bigscreen/src/views/bim/bim4DTools.js +++ b/yanzhu-bigscreen/src/views/bim/bim4DTools.js @@ -1,3 +1,5 @@ +import bimTools from "./bimTools"; + const options = { taskMapping: { progress: "percent", @@ -192,6 +194,7 @@ function initEngine(that) { showAxes: true, // 是否显示XYZ轴线 }; bim4DApi.Plugin.initNavCube(mapOptions); + bimTools.initBimGis(that, bim4DApi) } ); } @@ -231,6 +234,7 @@ function initLoadModel(that) { item.gis = JSON.parse(item.gisJson); addModel(that, item.lightweightName); }); + bimTools.initLoadModel(that, bim4DApi) } }); } @@ -242,7 +246,7 @@ function addModel(that, modelId, cb) { api.Model.add( url, modelId, - () => {}, + () => { }, () => { cb && cb(); console.log("加载模型成功"); @@ -255,7 +259,14 @@ function addModel(that, modelId, cb) { }); } that.modelLoaded = true; - that.initPlay(); + let fnInit = () => { + if (that.planLoaded) { + that.initPlay(); + } else { + setTimeout(fnInit, 100); + } + }; + fnInit(); }, 1000); } ); @@ -279,6 +290,7 @@ function showBim(that, index) { }); } } + console.log(index, showFeatureIds, currFeatureIds) if (showFeatureIds.length > 0) { setFeatueVisible(showFeatureIds, true); } diff --git a/yanzhu-bigscreen/src/views/bim/bimTools.js b/yanzhu-bigscreen/src/views/bim/bimTools.js new file mode 100644 index 00000000..e911b42d --- /dev/null +++ b/yanzhu-bigscreen/src/views/bim/bimTools.js @@ -0,0 +1,94 @@ +function initBimCfg(that) { + if (!that.bimCfg) { + that.bimCfg = {} + } + if (!that.hideParts) { + that.hideParts = []; + } + let config = that.$tryToJson(that.selProject?.bimConfig, {}) + that.bimCfg.background = config.background || '' + that.bimCfg.showGis = config.showGis || false + that.bimCfg.clientApi = config.clientApi || false +} + +function initBimGis(that, api) { + if (that.bimCfg.showGis) { + api.Public.setGisState(true); + api.Public.setTerrainState(false, "http://113.201.2.107:9304/layer.json", false) + api.Public.setGisState(true); + } else if (that.bimCfg.background) { + api.Public.setGisState(false, that.bimCfg.background); + } +} + +function initLoadModel(that, api) { + let fnInit = () => { + if (api.m_model.size > 0) { + setTimeout(() => { + initModelPosition(that, api) + }, 1000) + } else { + setTimeout(fnInit, 1000); + } + } + fnInit(); +} + +function initModelPosition(that, api) { + that.models.forEach(modelInfo => { + if (modelInfo) { + let modelId = modelInfo.lightweightName + let cfg = that.$tryToJson(modelInfo.bimConfig, {}); + let x = cfg?.x || 0; + let y = cfg?.y || 0; + let z = cfg?.z || 0; + let rotateZ = cfg?.rotateZ || 0; + if (x * 1 + y * 1 + z * 1 != 0) { + console.log("移动模型", modelId, x, y, z) + api.Model.moveToPosition([x, y, z], 0, modelId) + } + if (rotateZ * 1 != 0) { + api.Model.rotate(0, 0, rotateZ, modelId) + } + if (cfg && cfg.hideParts) { + cfg.hideParts.forEach(it => { + that.hideParts.push(it); + }) + } + setTimeout(() => { + api.Model.location(modelId); + setTimeout(() => { + that.resetScene(); + }, 1000); + }, 1000); + } + initHideParts(that, api) + }); +} + + +function initHideParts(that, api) { + let hideCnt = 0; + let hideFn = () => { + hideCnt++; + if (hideCnt > 30) { + return; + } + setTimeout(() => { + let featureIds = (that.hideParts || []).map(it => it.featureId); + if (featureIds.length > 0) { + api.Feature.setVisible(featureIds.join("#"), false); + } + hideFn(); + }, 100) + }; + hideFn(); +} + +export default { + initBimCfg, + initBimGis, + initLoadModel, + initModelPosition, + initHideParts +} \ No newline at end of file diff --git a/yanzhu-bigscreen/src/views/bim4DSimulation.vue b/yanzhu-bigscreen/src/views/bim4DSimulation.vue index 9dbeb87b..baa56f3a 100644 --- a/yanzhu-bigscreen/src/views/bim4DSimulation.vue +++ b/yanzhu-bigscreen/src/views/bim4DSimulation.vue @@ -73,6 +73,7 @@ import debounce from "lodash.debounce"; import ganttElastic from "gantt-elastic"; import ganttHeader from "gantt-elastic-header"; import bim4DTools from "./bim/bim4DTools"; +import bimTools from "./bim/bimTools"; export default { components: { @@ -98,6 +99,7 @@ export default { playTime: 500, showPlan: true, lastFeatureIds: [], + planLoaded:false, }; }, beforeDestroy() { @@ -166,6 +168,7 @@ export default { }, initEngine() { this.elId++; + bimTools.initBimCfg(this); setTimeout(() => { bim4DTools.initEngine(this); }, 10); @@ -174,11 +177,13 @@ export default { this.showPlan = !this.showPlan; }, initPlay() { + if (!bim4DTools.getFirstFeatureId(this)) { this.$message.error("未配置计划进度,无法播放!"); return; } let playIndex = bim4DTools.getCurrentTaskIndex(this); + console.log("--初始化播放---",playIndex) if (playIndex > 0) { bim4DTools.preparePlay(this); this.doPlayPan(playIndex); @@ -211,6 +216,7 @@ export default { return o; }); this.hasLoad = true; + this.planLoaded=true; }); } }, diff --git a/yanzhu-bigscreen/src/views/bimBriefing.vue b/yanzhu-bigscreen/src/views/bimBriefing.vue index 9601d51c..53b6574b 100644 --- a/yanzhu-bigscreen/src/views/bimBriefing.vue +++ b/yanzhu-bigscreen/src/views/bimBriefing.vue @@ -12,19 +12,10 @@ 模型结构树
- +
@@ -119,7 +110,8 @@
{{ item.show ? "隐藏" : "显示" }}
{{ item.id }}
-
+
+
@@ -227,6 +219,8 @@ import debounce from "lodash.debounce"; import { MergeArray, DelArray } from "@/utils/tools"; import briefingTools from "./bim/briefingTools"; import SvgIcon from "@/components/SvgIcon.vue"; +import BimTools from './bim/bimTools' +import bimTools from "./bim/bimTools"; export default { components: { SvgIcon }, name: "BimBriefing", @@ -288,7 +282,7 @@ export default { }); this.hideFeatureIds = []; }) - .catch(() => {}); + .catch(() => { }); }, changeSwitch(item) { let api = bimBriefingApi; @@ -371,10 +365,10 @@ export default { }, doSelectMenu(index) { this.selectMenu = index; - if(index==0){ + if (index == 0) { briefingTools.clearEvent(this); this.showClipping = false; - briefingTools.clearSelectFeature(this); + briefingTools.clearSelectFeature(this); } switch (index) { case 0: @@ -513,6 +507,7 @@ export default { this.viewPoint = []; this.info = []; this.attributeInformation = ""; + bimTools.initBimCfg(this); setTimeout(() => { this.loadEngine(); }, 10); @@ -566,11 +561,12 @@ export default { showAxes: true, // 是否显示XYZ轴线 }; bimBriefingApi.Plugin.initNavCube(mapOptions); + bimTools.initBimGis(this, bimBriefingApi) } ); }, initLoadModel() { - this.$api.bim.getDefaultViewPoint(this.selProject.id, 1).then((d) => { + this.$api.bim.getDefaultViewPoint(this.selProject.id, 1).then((d) => { let pt = ""; if (d.data && d.data.length > 0) { pt = d.data[0].viewPosition; @@ -608,11 +604,12 @@ export default { }, 3000); }); this.treeKey++; + bimTools.initLoadModel(this, bimBriefingApi) } }); this.init(); }, - init() {}, + init() { }, loadModelTree() { this.modelTrees = [ { @@ -675,17 +672,17 @@ export default { }, addModel(modelId, cb) { let url = `${window.config.modelUrl}/Tools/output/model/${modelId}/root.glt`; - let api=bimBriefingApi + let api = bimBriefingApi console.log(modelId, url); api.Model.add( url, modelId, - () => {}, + () => { }, () => { cb && cb(); console.log("加载模型成功"); setTimeout(() => { - if (this.viewPoint) { + if (this.viewPoint) { api.Camera.setViewPort(this.viewPoint); } else { api.Camera.getViewPort((p) => { @@ -715,30 +712,37 @@ export default { .bim-briefing { height: 100%; position: relative; + #bimBriefing { height: 100%; + #bimBriefingContainer { height: 100%; } } + .div-left { top: 10vh; left: 5%; position: absolute; height: 70vh; width: 14%; + &.isHide { left: 0%; wdith: 0%; + #arrowLeft { left: 0px !important; } } + #arrowLeft { top: calc(50% - 50px); right: -21px; left: unset !important; } + .div-row { height: 100%; } @@ -750,45 +754,56 @@ export default { position: absolute; height: 70vh; width: 14%; + &.isHide { right: 0%; width: 0%; } + #arrowRight { top: calc(50% - 50px); left: -21px; } + .div-row { &.r33 { height: 180px; } + &.r66 { height: calc(100% - 180px); } + &.r100 { height: 100%; } } + .clear-all-btn { margin: 10px; } + .hide-list { height: calc(100% - 60px); overflow-y: auto; padding: 0px 10px; + .hide-item { font-size: 12px; display: flex; margin-bottom: 8px; align-items: center; + .hide-item-state { color: #e4e7edcc; } + .hide-item-id { flex-grow: 1; margin: 0px 10px; color: #22d3f4; } + .hide-item-delete { font-size: 20px; color: #48f800; @@ -799,14 +814,17 @@ export default { .data-content { height: 100%; + .div-row { border: solid 1px #75fbfdaa; background-color: #06445b81; + .row-title { background: linear-gradient(0deg, #105696, #c0dafb00, #1765ae); padding-left: 10px; height: 36px; line-height: 36px; + .svg-icon { fill: #75fbfd; } @@ -822,23 +840,28 @@ export default { display: flex; background: #00000080; border-radius: 10px; + .tool-item { display: flex; flex-flow: column; padding: 10px; align-items: center; cursor: pointer; + &.is-selected { .icon { background: #097fca94; + .svg-icon { fill: #75fbfd; } } + .sp-text { color: #75fbfd; } } + .icon { width: 30px; height: 30px; @@ -847,11 +870,13 @@ export default { justify-content: center; align-items: center; border-radius: 15px; + .svg-icon { width: 20px; height: 20px; } } + .sp-text { margin-top: 4px; font-size: 12px; @@ -862,21 +887,26 @@ export default { .model-tree { height: calc(100% - 36px); overflow-y: auto; + .el-tree { background: transparent; color: #eee; + .el-checkbox { color: #45fdfe; } + .el-tree-node { &:focus { - & > .el-tree-node__content { + &>.el-tree-node__content { background: #3489d966; + &:hover { background: #3489d966; } } } + .el-tree-node__content:hover { background: #3489d966; } @@ -888,19 +918,24 @@ export default { height: calc(100% - 46px); overflow-y: auto; padding-bottom: 10px; + .model-property-nav { text-align: left; margin: 8px; } + .model-property-list { padding: 0px 10px; } + .info-list { padding: 10px; } } + .model-progress { padding: 10px; + .el-progress-bar { .el-progress-bar__innerText { color: #fff !important; @@ -915,17 +950,22 @@ export default { text-align: center; color: #edffff85; } + .group-info { padding: 4px 0px; + .svg-icon { fill: #45fdfe; } + span { font-size: 14px; } } + .my-table { border-collapse: collapse; + td, th { border: solid 1px #0e0f0f88; @@ -934,19 +974,23 @@ export default { font-size: 12px; text-align: left; } + th { color: #22d3f4; } } + @media (min-width: 2561px) { .data-content { .div-row { &.r33 { height: 210px; } + &.r66 { height: calc(100% - 210px); } + .row-title { height: 48px; line-height: 48px; @@ -954,36 +998,45 @@ export default { } } } + .div-right { .clear-all-btn { font-size: 20px; margin: 12px; } + .hide-list { height: calc(100% - 80px); + .hide-item { font-size: 20px; margin-bottom: 12px; + .hide-item-delete { font-size: 24px; } } } } + .div-tools { margin-left: -300px; border-radius: 10px; + .tool-item { padding: 10px 20px; + .icon { width: 60px; height: 60px; border-radius: 30px; + .svg-icon { width: 40px; height: 40px; } } + .sp-text { margin-top: 10px; font-size: 24px; @@ -994,18 +1047,23 @@ export default { .model-tree { .el-tree { font-size: 24px; + .el-tree-node__content { height: 36px; } + .el-tree-node__expand-icon { font-size: 24px; } + .el-checkbox { font-size: 24px; } + .el-tree-node__label { font-size: 24px; } + .el-tree__empty-text { font-size: 24px; } @@ -1017,6 +1075,7 @@ export default { width: 30px; height: 30px; } + span { font-size: 20px; position: relative; @@ -1025,6 +1084,7 @@ export default { } .my-table { + td, th { font-size: 20px; diff --git a/yanzhu-bigscreen/src/views/bimManage.vue b/yanzhu-bigscreen/src/views/bimManage.vue index 9c989456..f86c848e 100644 --- a/yanzhu-bigscreen/src/views/bimManage.vue +++ b/yanzhu-bigscreen/src/views/bimManage.vue @@ -101,11 +101,13 @@
- +
计划完成
- +
实际完成
@@ -175,8 +177,12 @@
- - + +
@@ -209,25 +215,29 @@ 默认视点
-
+
视频监控
-
+
基坑监控
-
+
塔机监控
-
+
@@ -378,12 +388,19 @@ export default { isClient: false, modelLoadSuccess: false, //模型加载成功 mode: "model", //显示模式 model-整体模型 plan-形象进度 + bimCfg: {//BIM显示配置 + background: '', + showGis: false, + clientApi: false, + }, + hideParts: [],//后台配置的隐藏 }; }, beforeDestroy() { document.body.classList.remove("is-sapi"); }, mounted() { + window.bimmgr = this this.$store.dispatch("ChangeNav", 701); this.dpi = this.$dpi(); window.addEventListener("resize", () => { @@ -751,11 +768,15 @@ export default { this.addLabels = []; }, initEngine() { + let config = this.$tryToJson(this.selProject?.bimConfig, {}) + this.bimCfg.background = config.background || '' + this.bimCfg.showGis = config.showGis || false + this.bimCfg.clientApi = config.clientApi || false this.elId++; this.activeMenu = 0; setTimeout(() => { this.isClient = localStorage.getItem("BimClient"); - if (this.isClient) { + if (this.bimCfg.clientApi) { this.loadEngine2(); } else { this.loadEngine(); @@ -765,15 +786,16 @@ export default { loadEngine2() { let opt = { container: "bimManageContainer", //[必须]容器id - showfps: true, //[可选]显示fps - openearth: false, //[可选]开启gis场景 - imageryprovider: "tianditu_image", //[可选]gis底图 + showfps: false, //[可选]显示fps + openearth: true, //[可选]开启gis场景 + // imageryprovider: "tianditu_image", //[可选]gis底图 openterrain: false, //[可选]开启gis地形 maxspaceerror: 5000, //[可选]模型可视距离; 建议设置:常规BIM时3000或更大、BIM启用LOD时100~1000、倾斜摄影,点云数据时0.1~0.5 loading: false, //[可选]gis模式加载动画 bgcolor: "#87CEFA", //[可选]bim模式场景背景色 selectedcolor: "#FFFF00", //[可选]选中构件颜色 throughwall: true, //[可选]相机是否穿墙 + sitepath: "../Cesium/",//[可选]设置天空盒路径,指向Cesium文件夹 editmode: true, //[可选]是否开启编辑模式 searchbox: true, //[可选]gis模型是否显示搜索框 mapbox: true, //[可选]gis模型是否显示地图选择 @@ -809,7 +831,7 @@ export default { console.log("初始化成功"); setTimeout(() => { this.initLoadModel(); - }, 10); + }, 1000); let mapOptions = { imgs: { // 六面图片 @@ -839,10 +861,21 @@ export default { showAxes: true, // 是否显示XYZ轴线 }; bimMgrApi.Plugin.initNavCube(mapOptions); + if (this.bimCfg.showGis) { + let api = bimMgrApi + api.Public.setGisState(true); + api.Public.setTerrainState(false, "http://113.201.2.107:9304/layer.json", false) + api.Public.setGisState(true); + } else if (this.bimCfg.background) { + api.Public.setGisState(false, this.bimCfg.background); + } } ); }, initLoadModel() { + if (this.selProject == null) { + return; + } this.$api.bim.getDefaultViewPoint(this.selProject.id, 1).then((d) => { let pt = ""; if (d.data && d.data.length > 0) { @@ -874,12 +907,23 @@ export default { this.models.forEach((item) => { this.addModel(item.lightweightName); }); + let api = bimMgrApi; + let fnInit = () => { + if (api.m_model.size > 0) { + setTimeout(() => { + this.initModelPosition() + }, 1000) + } else { + setTimeout(fnInit, 1000); + } + } + fnInit(); } }); }, addModel(modelId, cb) { let url = `${window.config.modelUrl}/Tools/output/model/${modelId}/root.glt`; - if (this.isClient) { + if (this.bimCfg.clientApi) { url = `/bimdata/Tools/output/model/${modelId}/root.glt`; } let api = bimMgrApi; @@ -887,12 +931,14 @@ export default { api.Model.add( url, modelId, - () => {}, + () => { }, () => { cb && cb(); console.log("加载模型成功"); this.loadDevicePosition(); + setTimeout(() => { + if (this.isClient) { } else { if (this.viewPoint) { @@ -903,11 +949,63 @@ export default { }); } } + //this.initModelPosition(modelId); this.modelLoadSuccess = true; + api.Model.location(modelId) }, 1000); } ); }, + initModelPosition() { + let api = bimMgrApi; + this.models.forEach(modelInfo => { + if (modelInfo) { + let modelId = modelInfo.lightweightName + let cfg = this.$tryToJson(modelInfo.bimConfig, {}); + let x = cfg?.x || 0; + let y = cfg?.y || 0; + let z = cfg?.z || 0; + let rotateZ = cfg?.rotateZ || 0; + if (x * 1 + y * 1 + z * 1 != 0) { + console.log("移动模型", modelId, x, y, z) + api.Model.moveToPosition([x, y, z], 0, modelId) + } + if (rotateZ * 1 != 0) { + api.Model.rotate(0, 0, rotateZ, modelId) + } + if (cfg && cfg.hideParts) { + cfg.hideParts.forEach(it => { + this.hideParts.push(it); + }) + } + setTimeout(() => { + api.Model.location(modelId); + setTimeout(() => { + this.resetScene(); + }, 1000); + }, 1000); + } + this.initHideParts() + }); + }, + initHideParts() { + let api = bimMgrApi; + let hideCnt = 0; + let hideFn = () => { + hideCnt++; + if (hideCnt > 30) { + return; + } + setTimeout(() => { + let featureIds = (this.hideParts || []).map(it => it.featureId); + if (featureIds.length > 0) { + api.Feature.setVisible(featureIds.join("#"), false); + } + hideFn(); + }, 100) + }; + hideFn(); + }, changeMode(mode) { if (!this.modelLoadSuccess) { this.$message.error("模型加载中,请稍后"); @@ -1148,41 +1246,50 @@ export default { .bim-manage { height: 100%; position: relative; + #bimManage { height: 100%; + #bimManageContainer { height: 100%; } } + .div-left { top: 10vh; left: 5%; position: absolute; height: 70vh; width: 20%; + &.isHide { left: 0%; wdith: 0%; + #arrowLeft { left: 0px !important; } } + #arrowLeft { top: calc(50% - 50px); right: -21px; left: unset !important; } } + .div-right { top: 10vh; right: 5%; position: absolute; height: 70vh; width: 20%; + &.isHide { right: 0%; width: 0%; } + #arrowRight { top: calc(50% - 50px); left: -21px; @@ -1191,21 +1298,25 @@ export default { .data-content { height: 100%; + .div-row { height: 33%; border: solid 1px #75fbfdaa; background-color: #06445b81; + .row-title { background: linear-gradient(0deg, #105696, #c0dafb00, #1765ae); padding-left: 10px; height: 36px; line-height: 36px; + .svg-icon { fill: #75fbfd; } } } } + .div-mode { position: absolute; top: calc(80vh - 110px); @@ -1215,6 +1326,7 @@ export default { background: #00000080; border-radius: 10px; margin-left: -125px; + .mode-item { display: flex; align-items: center; @@ -1225,14 +1337,17 @@ export default { padding: 0px 10px; border-radius: 13px; cursor: pointer; + &.is-active { background: #097fca94; color: #75fbfd; border: solid 1px #75fbfd; + .svg-icon { fill: #75fbfd; } } + .svg-icon { width: 24px; height: 24px; @@ -1240,6 +1355,7 @@ export default { } } } + .plan-legend { position: absolute; top: calc(80vh - 110px); @@ -1247,16 +1363,20 @@ export default { padding: 10px 10px 0px; background: #00000080; border-radius: 10px; + &.isShow { right: calc(20% + 140px); } + .plan-item { display: flex; font-size: 12px; margin-bottom: 10px; align-items: center; + span { display: block; + &:first-child { width: 15px; height: 15px; @@ -1265,6 +1385,7 @@ export default { } } } + .div-tools { position: absolute; top: calc(80vh - 50px); @@ -1273,15 +1394,19 @@ export default { display: flex; background: #00000080; border-radius: 10px; + &.menu-0 { margin-left: -34px; } + &.menu-1 { margin-left: -68px; } + &.menu-2 { margin-left: -102px; } + &.menu-3 { margin-left: -136px; } @@ -1296,17 +1421,21 @@ export default { padding: 10px; align-items: center; cursor: pointer; + &.is-active { .icon { background: #097fca94; + .svg-icon { fill: #75fbfd; } } + .sp-text { color: #75fbfd; } } + .icon { width: 30px; height: 30px; @@ -1315,17 +1444,20 @@ export default { justify-content: center; align-items: center; border-radius: 15px; + .svg-icon { width: 20px; height: 20px; } } + .sp-text { margin-top: 4px; font-size: 12px; } } } + .prj-info { padding: 20px; @@ -1335,33 +1467,41 @@ export default { font-weight: 700; font-size: 40px; } + .floor-area-text { line-height: 40px; } } + .tb-prj { border-collapse: collapse; width: 100%; + td, th { border: solid 1px #6ea9ab68; padding: 7px 4px; font-size: 12px; } + th { color: #b0cfff; } } } + .prj-worker { height: calc(100% - 30px); + .worker-chart { display: flex; height: 50%; + .chart-item { position: relative; width: 33.33%; height: 100%; + .chart-gif, .chart-text { left: 20px; @@ -1369,6 +1509,7 @@ export default { width: 120px; height: 120px; } + .chart-text { color: #3ffcff; font-weight: 700; @@ -1376,24 +1517,29 @@ export default { } } } + .worker-title { display: flex; height: 50%; + .title-item { flex: 1; display: flex; flex-flow: column; align-items: center; padding: 10px 0px 10px 0px; + .svg-icon { fill: #3ffcff; width: 80px; height: 80px; } + color: #3ffcff; } } } + .investment-stats-cost { margin: 0 auto; padding: 30px 20px; @@ -1407,6 +1553,7 @@ export default { gap: 24px; position: relative; } + .stat-card { background: linear-gradient(45deg, #122463, #0e79c969); padding: 16px 0; @@ -1418,16 +1565,19 @@ export default { border: solid 1px #22d0d2; border-radius: 10px; } + .stat-title { font-size: 16px; color: #b0cfff; margin-bottom: 8px; } + .stat-value { font-size: 40px; font-weight: bold; color: #3ffcff; } + .center-icon { position: absolute; left: 50%; @@ -1446,6 +1596,7 @@ export default { color: #3ffcff; box-shadow: 0 0 12px #3ffcff55; pointer-events: none; + .chart-gif { width: 70px; height: 70px; @@ -1454,17 +1605,21 @@ export default { } } } + .plan-chart { height: calc(100% - 30px); + .chart-item { position: relative; flex-grow: 1; display: inline-block; width: 49%; height: 100%; + .chart-data { top: -10px; } + .chart-title { position: relative; top: -40px; @@ -1472,9 +1627,11 @@ export default { } } } + .photography-list { height: calc(100% - 30px); padding: 10px 0px; + .el-carousel { height: calc(100% - 10px); } @@ -1488,6 +1645,7 @@ export default { line-height: 20px; text-align: center; } + .photography-list-nodata { background: rgba(255, 255, 255, 0.2); width: 80%; @@ -1515,39 +1673,48 @@ export default { } } } + .warn-info { height: calc(100% - 30px); + .warn-item { display: inline-flex; width: calc(50% - 30px); height: 50%; align-items: center; padding-left: 30px; + .czz-number-img { width: 80px; height: 80px; line-height: 80px; + .svg-icon { width: 40px; height: 40px; fill: #5cc0eb; position: relative; top: 12px; + &.red { fill: red; } + &.green { fill: #00e900; } } } + .warn-data { margin-left: 10px; + .warn-data-val { font-size: 40px; font-weight: 700; color: #22d0d2; } + .warn-data-text { margin-top: 10px; text-align: center; @@ -1555,17 +1722,20 @@ export default { } } } + .test-box { position: absolute; top: 10px; left: 10px; display: none; + .tag-box { position: relative; display: flex; flex-flow: column; align-items: center; } + .tag-img { width: 20px; height: 20px; @@ -1574,14 +1744,17 @@ export default { bottom: 18px; margin-left: -10px; } + .tag-bg-img { width: 16px; height: 80px; } + .tag-bg-img { width: 16px; height: 80px; } + .tag-txt { box-shadow: #1a9047 0px 4px 16px, rgba(10, 31, 68, 0.06) 0px 8px 24px, rgba(17, 17, 26, 0.1) 0px 16px 56px; color: #75fbfd; @@ -1590,18 +1763,22 @@ export default { background: #097fca63; border: solid 1px #75fbfdaa; } + .tb-power { border-collapse: collapse; } + .tb-power td { border: solid 1px #75fbfd33; padding: 4px 8px; } } + @media (max-width: 1920px) { .data-content { .div-row { min-height: 220px; + .row-title { height: 30px; line-height: 30px; @@ -1609,17 +1786,22 @@ export default { } } } + .div-tools { border-radius: 10px; + &.menu-0 { margin-left: -44px; } + &.menu-1 { margin-left: -88px; } + &.menu-2 { margin-left: -132px; } + &.menu-3 { margin-left: -176px; } @@ -1627,17 +1809,21 @@ export default { &.menu-4 { margin-left: -220px; } + .tool-item { padding: 10px 20px; + .icon { width: 30px; height: 30px; border-radius: 15px; + .svg-icon { width: 20px; height: 20px; } } + .sp-text { margin-top: 10px; font-size: 12px; @@ -1652,13 +1838,17 @@ export default { .floor-area { font-size: 24px; } + .floor-area-text { line-height: 20px; font-size: 12px; } + margin-bottom: 10px; } + .tb-prj { + td, th { border: solid 1px #6ea9ab68; @@ -1670,8 +1860,10 @@ export default { .prj-worker { height: calc(100% - 50px); + .worker-chart { .chart-item { + .chart-gif, .chart-text { left: 24px; @@ -1679,19 +1871,23 @@ export default { width: 80px; height: 80px; } + .chart-text { font-size: 20px; } } } + .worker-title { .title-item { padding: 20px 0px 10px 0px; + .svg-icon { fill: #3ffcff; width: 60px; height: 60px; } + font-size: 12px; color: #3ffcff; } @@ -1707,17 +1903,21 @@ export default { box-shadow: 0 2px 8px #0004; border-radius: 10px; } + .stat-title { font-size: 12px; margin-bottom: 8px; } + .stat-value { font-size: 20px; } + .center-icon { width: 60px; height: 60px; font-size: 24px; + .chart-gif { width: 50px; height: 50px; @@ -1726,8 +1926,10 @@ export default { } } } + .plan-chart { height: calc(100% - 30px); + .chart-item { .chart-title { font-size: 12px; @@ -1739,6 +1941,7 @@ export default { .photography-list { height: calc(100% - 30px); padding: 10px 0px; + .el-carousel { height: calc(100% - 10px); } @@ -1751,6 +1954,7 @@ export default { line-height: 24px; font-size: 12px; } + .photography-list-nodata { .video-play { width: 60px; @@ -1768,25 +1972,31 @@ export default { .warn-info { height: calc(100% - 30px); + .warn-item { width: calc(50% - 30px); height: 50%; padding-left: 30px; + .czz-number-img { width: 70px; height: 70px; line-height: 70px; + .svg-icon { width: 30px; height: 30px; top: 6px; } } + .warn-data { margin-left: 10px; + .warn-data-val { font-size: 30px; } + .warn-data-text { font-size: 12px; } @@ -1794,10 +2004,12 @@ export default { } } } + @media (min-width: 2561px) { .data-content { .div-row { min-height: 420px; + .row-title { height: 48px; line-height: 48px; @@ -1805,17 +2017,20 @@ export default { } } } + .div-mode { top: calc(80vh - 170px); border-radius: 20px; padding: 20px 0px; margin-left: -221px; + .mode-item { font-size: 24px; line-height: 60px; margin: 0px 20px; padding: 0px 20px; border-radius: 13px; + .svg-icon { width: 40px; height: 40px; @@ -1823,18 +2038,23 @@ export default { } } } + .plan-legend { top: calc(80vh - 110px); right: 40px; padding: 20px 20px 0px; + &.isShow { right: calc(20% + 220px); } + .plan-item { font-size: 24px; margin-bottom: 10px; + span { display: block; + &:first-child { width: 20px; height: 20px; @@ -1843,17 +2063,22 @@ export default { } } } + .div-tools { border-radius: 10px; + &.menu-0 { margin-left: -68px; } + &.menu-1 { margin-left: -136px; } + &.menu-2 { margin-left: -204px; } + &.menu-3 { margin-left: -272px; } @@ -1861,17 +2086,21 @@ export default { &.menu-4 { margin-left: -340px; } + .tool-item { padding: 10px 20px; + .icon { width: 60px; height: 60px; border-radius: 30px; + .svg-icon { width: 40px; height: 40px; } } + .sp-text { margin-top: 10px; font-size: 24px; @@ -1886,13 +2115,17 @@ export default { .floor-area { font-size: 60px; } + .floor-area-text { line-height: 40px; font-size: 24px; } + margin-bottom: 10px; } + .tb-prj { + td, th { border: solid 1px #6ea9ab68; @@ -1904,8 +2137,10 @@ export default { .prj-worker { height: calc(100% - 60px); + .worker-chart { .chart-item { + .chart-gif, .chart-text { left: 40px; @@ -1913,19 +2148,23 @@ export default { width: 180px; height: 180px; } + .chart-text { font-size: 60px; } } } + .worker-title { .title-item { padding: 20px 0px 10px 0px; + .svg-icon { fill: #3ffcff; width: 120px; height: 120px; } + font-size: 24px; color: #3ffcff; } @@ -1942,17 +2181,21 @@ export default { box-shadow: 0 2px 8px #0004; border-radius: 10px; } + .stat-title { font-size: 24px; margin-bottom: 8px; } + .stat-value { font-size: 60px; } + .center-icon { width: 120px; height: 120px; font-size: 48px; + .chart-gif { width: 110px; height: 110px; @@ -1961,8 +2204,10 @@ export default { } } } + .plan-chart { height: calc(100% - 60px); + .chart-item { .chart-title { font-size: 24px; @@ -1974,6 +2219,7 @@ export default { .photography-list { height: calc(100% - 60px); padding: 10px 0px; + .el-carousel { height: calc(100% - 10px); } @@ -1986,6 +2232,7 @@ export default { line-height: 36px; font-size: 24px; } + .photography-list-nodata { .video-play { width: 120px; @@ -2003,25 +2250,31 @@ export default { .warn-info { height: calc(100% - 60px); + .warn-item { width: calc(50% - 30px); height: 50%; padding-left: 30px; + .czz-number-img { width: 140px; height: 140px; line-height: 140px; + .svg-icon { width: 60px; height: 60px; top: 24px; } } + .warn-data { margin-left: 10px; + .warn-data-val { font-size: 60px; } + .warn-data-text { font-size: 24px; } diff --git a/yanzhu-bigscreen/src/views/bimRoaming.vue b/yanzhu-bigscreen/src/views/bimRoaming.vue index 958cb5f8..b30b24e8 100644 --- a/yanzhu-bigscreen/src/views/bimRoaming.vue +++ b/yanzhu-bigscreen/src/views/bimRoaming.vue @@ -12,20 +12,11 @@ 模型结构树
- +
@@ -43,7 +34,8 @@
暂无数据
-
+
{{ item.name }} @@ -72,7 +64,9 @@
暂无数据
-
+
@@ -102,6 +96,7 @@ + + + + + + + - - 导入(Project) + + 导入(Project) - 导出(Project) - 关联Bim + 导出(Project) + 关联Bim - + - + - + - + - +