From 59077bd254e68d1ddfa2d93ff222e6324df2e93e Mon Sep 17 00:00:00 2001 From: suerprisePlus <15810472099@163.com> Date: 星期二, 19 十一月 2024 14:57:55 +0800 Subject: [PATCH] 图层控制增加全部关闭按钮,图层双击自动定位到对应位置,信令数据的时间条美化下,对接UE视频流,数字人功能开启,逻辑单体化数据体现 --- src/components/menu/bottom-menu.vue | 322 +++++++++++++++++++++++++--------------------------- 1 files changed, 155 insertions(+), 167 deletions(-) diff --git a/src/components/menu/bottom-menu.vue b/src/components/menu/bottom-menu.vue index 2634a4a..5927469 100644 --- a/src/components/menu/bottom-menu.vue +++ b/src/components/menu/bottom-menu.vue @@ -1,9 +1,6 @@ <template> <div class="specialTool"> - <div - class="bottomwrapper" - :class="{ 'top-btn-active': viewer1Show && isLand }" - > + <div class="bottomwrapper" :class="{ 'top-btn-active': viewer1Show && isLand }"> <div class="imgbox" @click="tdglHandle"> <img src="@assets/img/new/tudiguanli.png" alt="" /> </div> @@ -12,11 +9,7 @@ </div> </div> - <div - class="bottomwrapper" - @click="historyHandle" - :class="{ 'top-btn-active': viewer1Show && !isLand }" - > + <div class="bottomwrapper" @click="historyHandle" :class="{ 'top-btn-active': viewer1Show && !isLand }"> <div class="imgbox"> <img src="@assets/img/new/chengshigengxin.png" alt="" /> </div> @@ -24,40 +17,24 @@ <span> 鍘嗗彶褰卞儚 </span> </div> </div> - <div class="bottomwrapper csbj"> - <el-dropdown trigger="click" @command="handleCommand"> - <div class="imgbox"> - <img src="@assets/img/new/chengshibujian.png" alt="" /> - </div> - <div class="textbox"> - <span> 缁煎悎鎵╁睍 </span> - </div> - <el-dropdown-menu - slot="dropdown" - :append-to-body="false" - class="popper-dropdown" - > - <el-dropdown-item command="stdsjHandle" - >瑙嗗浘澶ф暟鎹钩鍙�</el-dropdown-item - > - <el-dropdown-item command="bzdSystem" - >鏍囧噯鍦扮洃绠″钩鍙�</el-dropdown-item - > - <el-dropdown-item v-if="isShowSPJK" command="spjkHandle" - >瑙嗛闆嗘垚涓庡彲瑙嗗寲</el-dropdown-item - > - <el-dropdown-item v-else command="closeSpjk" - >鍏抽棴瑙嗛鐐逛綅鍒嗗竷</el-dropdown-item - > - <el-dropdown-item v-if="isShowSjxl" command="sjxlHandle" - >鎵嬫満淇′护鐑姏鍒嗗竷</el-dropdown-item - > - <el-dropdown-item v-else command="closeSjxl" - >鍏抽棴淇′护鐑姏鍒嗗竷</el-dropdown-item - > - </el-dropdown-menu> - </el-dropdown> + <div class="bottomwrapper csbj" @click="spjkHandle" :class="{ 'top-btn-active': !isShowSPJK }"> + <div class="imgbox"> + <img src="@assets/img/new/spjk.png" alt="" /> + </div> + <div class="textbox"> + <span>瑙嗛鐩戞帶</span> + </div> </div> + + <div class="bottomwrapper spjk" @click="shoujixinling" :class="{ 'top-btn-active': !isShowSjxl }"> + <div class="imgbox"> + <img src="@assets/img/new/sjxl.png" alt="" /> + </div> + <div class="textbox"> + <span> 鎵嬫満淇′护 </span> + </div> + </div> + <div class="bottomwrapper jxmx"> <el-dropdown trigger="click" @command="handleCommand"> <div class="imgbox"> @@ -66,19 +43,12 @@ <div class="textbox"> <span> 绮炬ā绀鸿寖 </span> </div> - <el-dropdown-menu - slot="dropdown" - :append-to-body="false" - class="popper-dropdown" - > + <el-dropdown-menu slot="dropdown" :append-to-body="false" class="popper-dropdown"> <el-dropdown-item command="fcfhHandle">鍒嗗眰鍒嗘埛</el-dropdown-item> <!-- <el-dropdown-item command="sprhHandle">鍦烘櫙瑙嗛铻嶅悎</el-dropdown-item> --> - <el-dropdown-item v-if="isShowSPRH" command="jiqirendahui" - >鍦烘櫙瑙嗛铻嶅悎</el-dropdown-item - > - <el-dropdown-item v-else command="jiqirendahui" - >鍏抽棴瑙嗛铻嶅悎</el-dropdown-item - > + <el-dropdown-item v-if="isShowSPRH" command="jiqirendahui">鍦烘櫙瑙嗛铻嶅悎</el-dropdown-item> + <el-dropdown-item v-else command="jiqirendahui">鍏抽棴瑙嗛铻嶅悎</el-dropdown-item> + <el-dropdown-item command="gkshHandle">楂樺彲瑙嗗寲妯″瀷</el-dropdown-item> </el-dropdown-menu> </el-dropdown> </div> @@ -93,68 +63,48 @@ @input="updateVideo" > </el-slider> --> - <el-slider - :min="0" - :max="360" - v-model="robotVideoList[3].heading" - @input="updateVideo" - > + <el-slider :min="0" :max="360" v-model="robotVideoList[3].heading" @input="updateVideo"> </el-slider> </el-form-item> <el-form-item label="淇话瑙掑害:"> - <el-slider - :min="-89" - :max="89" - v-model="robotVideoList[3].pitch" - @input="updateVideo" - > + <el-slider :min="-89" :max="89" v-model="robotVideoList[3].pitch" @input="updateVideo"> </el-slider> </el-form-item> <el-form-item label="姘村钩瑙嗚:"> - <el-slider - :min="30" - :max="120" - v-model="robotVideoList[3].horizonAngle" - @input="updateVideo" - > + <el-slider :min="30" :max="120" v-model="robotVideoList[3].horizonAngle" @input="updateVideo"> </el-slider> </el-form-item> <el-form-item label="鍨傜洿瑙嗚:"> - <el-slider - :min="30" - :max="120" - v-model="robotVideoList[3].verticalAngle" - @input="updateVideo" - > + <el-slider :min="30" :max="120" v-model="robotVideoList[3].verticalAngle" @input="updateVideo"> </el-slider> </el-form-item> <el-form-item label="鏈�杩滄姇灏�:"> - <el-slider - :min="100" - :max="300" - v-model="robotVideoList[3].far" - @input="updateVideo" - > + <el-slider :min="100" :max="300" v-model="robotVideoList[3].far" @input="updateVideo"> </el-slider> </el-form-item> <el-form-item label="閫忔槑搴�:"> - <el-slider - :step="0.1" - :min="0" - :max="1" - v-model="robotVideoList[3].alpha" - @input="updateVideo" - > + <el-slider :step="0.1" :min="0" :max="1" v-model="robotVideoList[3].alpha" @input="updateVideo"> </el-slider> </el-form-item> </el-form> + </div> + <!-- 鏁扮粍浜烘枃瀛楄緭鍏ュ脊妗� --> + <div class="SZRtextAreaBox" v-if="isShowTextArea"> + <el-row :gutter="10"> + <el-col :span="19"> + <el-input v-model="input" placeholder="璇疯緭鍏ュ唴瀹�" clearable @keyup.enter.native="sendCommand($event)"></el-input> + </el-col> + <el-col :span="4"> + <el-button type="primary" @click="sendCommand('click')">鎼滅储</el-button> + </el-col> + </el-row> </div> </div> </template> <style scoped> .specialTool { - width: 440px; + width: 550px; position: absolute; bottom: 65px; color: #fff; @@ -166,8 +116,36 @@ justify-content: space-between; } -.specialTool .bottomwrapper:nth-of-type(2), +.SZRtextAreaBox { + background: rgba(5, 39, 126, 0.7); + padding: 10px; + width: 375px; + position: absolute; + /* display: flex; */ + /* justify-content: space-around; */ + bottom: 165px; + color: #fff; + left: 50%; + transform: translateX(-50%); + z-index: 99999; +} + +.SZRtextAreaBox .el-form-item { + margin: 0; +} + +.SZRtextAreaBox .el-input { + /* width: 300px; */ +} + .specialTool .bottomwrapper:nth-of-type(3) { + /* background: red; */ + position: relative; + top: -30px; +} + +.specialTool .bottomwrapper:nth-of-type(2), +.specialTool .bottomwrapper:nth-of-type(4) { /* background: red; */ position: relative; top: -18px; @@ -187,6 +165,7 @@ background-size: 100% 100%; position: relative; } + .imgbox:hover { background-image: url("~@/assets/img/new/h1.png"); } @@ -256,7 +235,7 @@ } .jxmx .el-dropdown-menu { - top: -110px !important; + top: -133px !important; left: -26.5% !important; } @@ -337,7 +316,8 @@ let video4; let heatMapItem; import { mapState, mapMutations } from "vuex"; -import { queryBySquare } from "@/utils/request"; +import { queryBySquare } from "@/api/api"; + import Bus from "../tools/Bus"; import { roman } from "../../assets/json/index.js"; import URLInCode from "@/assets/js/urlInCode"; @@ -353,6 +333,7 @@ isShowSPRH: true, csbjShow: false, jxmxShow: false, + input: "", romanOption: [ { name: "鏍稿績鍖�" }, { name: "鏅缁垮湴" }, @@ -480,6 +461,12 @@ }, computed: { ...mapState(["viewer1Show", "isLand", "yqfk", "qyEchartsShow"]), + isShowTextArea() { + if (this.$store.state.isShowTextArea) { + this.input = ""; + } + return this.$store.state.isShowTextArea; + }, }, methods: { ...mapMutations(["setViewer1Show", "setIsLand", "setqyEchartsShow"]), @@ -495,8 +482,16 @@ break; } }, + sendCommand(event) { + // if (event == "click") { + mapMsg.testMsg(this.input); + // } else { + // // 闃绘榛樿琛屼负锛堝鏋滈渶瑕佺殑璇濓級 + // mapMsg.testMsg(this.input); + // event.preventDefault(); + // } + }, handleCommand(command) { - this.setViewer1Show(false); switch (command) { case "spjkHandle": this.spjkHandle(); @@ -509,6 +504,10 @@ break; case "bzdSystem": this.bzdSystem(); + break; + + case "gkshHandle": + window.open('http://10.128.12.160:8002/') break; case "fcfhHandle": this.fencengfenhu(); @@ -528,6 +527,7 @@ } }, historyHandle() { + this.switchMenu(1); if (this.isLand) { this.$parent.changeMode("褰卞儚搴曞浘"); if (!this.viewer1Show) { @@ -555,6 +555,7 @@ } }, tdglHandle() { + this.switchMenu(1); if (!this.isLand) { if (!this.viewer1Show) { let p = sgworld.Navigate.getCameraInfo(); @@ -612,52 +613,32 @@ "http://10.9.2.29:8080/#/login?token=1ed14c5157acb8088efe65bc93a032c3" ); }, + switchMenu(id) { + if (id != 1) { + this.setViewer1Show(false); + } + if (id != 3) { + this.closeSjxl(); + } + if (id != 4) { + this.closeSpjk(); + } + }, bzdSystem() { window.open("http://192.162.24.2:8076/login"); }, shoujixinling() { - const loading = this.$loading({ - lock: true, - text: "鎵嬫満淇′护鏁版嵁鍔犺浇涓紝璇风◢鍚�", - spinner: "el-icon-loading", - background: "rgba(0, 0, 0, 0.7)", - }); - setTimeout(() => { - loading.close(); - }, 2000); - this.isShowSjxl = false; - let heatMapUrl = URLInCode.heatMapUrl; - sgworld.Core.getJSON(heatMapUrl, (data) => { - let res = []; - data.features.forEach((item) => { - let obj = { - x: item.properties["center_x"], - y: item.properties["center_y"], - value: item.properties["sd_total"], - radius: 50, - }; - res.push(obj); - }); - // //鍒涘缓鐑姏鍥� - heatMapItem = sgworld.Creator.addHeatMap("鐑姏鍥�", { - type: "Heatmap", // 鐑姏鍥剧被鍨嬨�怘eatmap/HeatmapGL銆戯紙鍙�夛級 - sourceData: res, - radius: 7, - gradient: { - ".3": "blue", - ".5": "green", - ".7": "yellow", - ".95": "red", - }, - tooltip: true, // tooltip鏄剧ず鏁板�� - }); - }); + this.switchMenu(3); + if (this.isShowSjxl) { + this.isShowSjxl = false; + this.$parent.signallingShow = true; + } else { + this.closeSjxl(); + } }, closeSjxl() { - if (heatMapItem) { - this.isShowSjxl = true; - heatMapItem.deleteObject(); - } + this.isShowSjxl = true; + this.$parent.signallingShow = false; }, // historyHandle() { // this.$store.commit("showHistory", true); @@ -703,42 +684,49 @@ }); }, spjkHandle() { - const loading = this.$loading({ - lock: true, - text: "瑙嗛鐐逛綅鏁版嵁鍔犺浇涓紝璇风◢鍚�", - spinner: "el-icon-loading", - background: "rgba(0, 0, 0, 0.7)", - }); - setTimeout(() => { - loading.close(); - }, 2000); - this.isShowSPJK = false; - if (window.sxtkGeojson) { - window.sxtkGeojson.deleteObject(); - window.sxtkGeojson = null; - window.sxthandler.destroy(); - //鍏抽棴寮圭獥 - Bus.$emit("closeRightPop", true); - layuiLayer.close(SmartEarthPopupData.layerProp); - return; + this.switchMenu(4); + if (this.isShowSPJK) { + const loading = this.$loading({ + lock: true, + text: "瑙嗛鐐逛綅鏁版嵁鍔犺浇涓紝璇风◢鍚�", + spinner: "el-icon-loading", + background: "rgba(0, 0, 0, 0.7)", + }); + setTimeout(() => { + loading.close(); + }, 1500); + this.isShowSPJK = false; + if (window.sxtkGeojson) { + window.sxtkGeojson.deleteObject(); + window.sxtkGeojson = null; + window.sxthandler.destroy(); + //鍏抽棴寮圭獥 + Bus.$emit("closeRightPop", true); + layuiLayer.close(SmartEarthPopupData.layerProp); + return; + } else { + Bus.$emit("showSPJK"); + // this.spjkLoad(); + } } else { - Bus.$emit("showSPJK"); - // this.spjkLoad(); + this.closeSpjk(); } }, closeSpjk() { - this.isShowSPJK = true; - if (window.sxtkGeojson) { - window.sxtkGeojson.deleteObject(); - window.sxtkGeojson = null; - window.sxthandler.destroy(); - //鍏抽棴寮圭獥 - Bus.$emit("closeRightPop", true); - layuiLayer.close(SmartEarthPopupData.layerProp); - return; - } else { - Bus.$emit("closeSPJK"); - // this.spjkLoad(); + if (!this.isShowSPJK) { + this.isShowSPJK = true; + if (window.sxtkGeojson) { + window.sxtkGeojson.deleteObject(); + window.sxtkGeojson = null; + window.sxthandler.destroy(); + //鍏抽棴寮圭獥 + Bus.$emit("closeRightPop", true); + layuiLayer.close(SmartEarthPopupData.layerProp); + return; + } else { + Bus.$emit("closeSPJK"); + // this.spjkLoad(); + } } }, // 鍒嗗眰鍒嗘埛 -- Gitblit v1.9.3