From 419ce8d31a69c59d5796567173c1f8dc438652fc Mon Sep 17 00:00:00 2001 From: lixuliang <lixuliang_hd@126.com> Date: 星期四, 18 四月 2024 19:27:59 +0800 Subject: [PATCH] Merge branch 'master' of http://103.135.160.14:9034/r/wxdDemo --- src/components/props/situationComparison7-9.vue | 527 ++++++++++++++++++---------------------------------------- 1 files changed, 162 insertions(+), 365 deletions(-) diff --git a/src/components/props/situationComparison7-9.vue b/src/components/props/situationComparison7-9.vue index e1a551b..ede4313 100644 --- a/src/components/props/situationComparison7-9.vue +++ b/src/components/props/situationComparison7-9.vue @@ -4,124 +4,141 @@ <div class="top1"> <span class="botcon"> <span class="icon"></span> - <span class="text">鎬佸娍鏍囩粯</span> + <span class="text">鍐涙爣鏍囩粯</span> </span> <span class="close" @click="close">x</span> </div> - <div class="next"> - <el-form ref="form" - :model="form" - label-width="240px"> - <el-form-item label="鍖哄煙:"> - <el-select v-model="form.points" - @change="changeplase"> - <el-option v-for="(item, index) in regions" - :key="index" - :label="item.vname" - :value="{ value: item.vlatlngs, label: item.vname }"> - </el-option> - </el-select> - </el-form-item> - <el-form-item label="璧峰鏃堕棿:"> - <el-date-picker v-model="form.startTime" - value-format="yyyyMMdd" - :picker-options="pickerOptions" - format="yyyy-MM-dd" - type="date" - placeholder="閫夋嫨鏃ユ湡" - @change="change"> - </el-date-picker> - </el-form-item> - <el-form-item label="缁撴潫鏃堕棿:"> - <el-date-picker v-model="form.endTime" - value-format="yyyyMMdd" - :picker-options="pickerOptions" - format="yyyy-MM-dd" - type="date" - placeholder="閫夋嫨鏃ユ湡" - @change="change1"> - </el-date-picker> - </el-form-item> - <el-form-item label="鍒嗘瀽绫诲瀷:"> - <el-select v-model="form.analysisType"> - <el-option label="棰戠偣" - value="1"></el-option> - <el-option label="棰戞" - value="2"></el-option> - </el-select> - </el-form-item> - <el-form-item label="鏃犵嚎鐢典笟鍔�:"> - <el-select v-model="form.radio" - @change="choose"> - <el-option v-for="item in radios" - :key="item.value" - :label="item.bussName" - :value="item.startFreq + '-' + item.endFreq"> - </el-option> - </el-select> - </el-form-item> - </el-form> - <div class="btns"> - <span @click="reset">閲嶇疆</span> - <span @click="analysis">鍒嗘瀽</span> + <div class="content"> + <div class="plotTitle"> 浜岀淮鏍囩粯</div> + <div class="menuContent"> + <div class="menuItem" + @click="setMenuClick(item)" + v-for="(item,index) in Option" + :key="index"> + {{ item.name}} + </div> + </div> + + <div class="plotTitle"> 涓夌淮鏍囩粯</div> + <div class="menuContent"> + <div class="menuItem" + @click="setMenuClick(item)" + v-for="(item,index) in Option1" + :key="index"> + {{ item.name}} + </div> + </div> + <div class="plotTitle"> </div> + <div class="menuContent"> + <div class="menuItem" + @click="setMenuClick1()"> + 娓呴櫎缁樺埗 + </div> </div> </div> - <div class="showpic" - v-if="showpic"> - <div :style="innerbac" - @click="openDia"></div> - </div> - <changePic @colordata="getdata" /> </div> </template> <script> -import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; -import changePic from "../common/color.vue"; + import bus from "../../utils/bus"; import axios from "axios"; -let hander,divPoint3; -let Base64=require("js-base64").Base64; + + export default { components: { - changePic, + }, data () { return { - form: { - points: "", - startTime: new Date("2016-06-01"), - endTime: new Date("2016-06-30"), - radio: "璋冮骞挎挱", - freqStart: "87", - freqEnd: "108", - analysisType: "棰戠偣", - }, - nowfile: "", - showsituation: false, - imageid: null, - showpic: false, - pickerOptions: {}, - chooseplase: "", - options: [], - regions: [], - radios: [], - colorContainer: {}, - innerbac: { - width: "30%", - height: "70%", - border: "1px solid #000", - transform: "translate(40px,90px)", - backgroundImage: - "url("+require("@/assets/image/botbtn/color.png")+")", - backgroundPosition: "center", - backgroundSize: ` 100% 100%`, - }, + Option: [ + { + name: '绮楃洿绠ご', + type: 'StraightArrow', + value: 'polygon', + }, + { + name: '鐕曞熬鐩寸澶�', + type: 'SwallowtailArrow', + value: 'polygon', + },{ + name: '閽冲嚮绠ご', + type: 'PincerArrow', + value: 'polygon', + },{ + name: '闆嗙粨鍦�', + type: 'GatheringPlace', + value: 'polygon', + },{ + name: '鍦嗚鐭╁舰', + type: 'RoundedRectangle', + value: 'polygon', + }, + { + name: '鎵囧舰', + type: 'Sector', + value: 'polygon', + },{ + name: '寮撳舰', + type: 'Bow', + value: 'polygon', + },{ + name: '鏀诲嚮绠ご', + type: 'AttackArrow', + value: 'polygon', + },{ + name: '璐濆灏旀洸绾�', + type: 'Bezierline', + + },{ + name: '璐濆灏旂澶�', + type: 'BezierArrow', + + } + + ], + Option1: [ + { + name: '绮楃洿绠ご', + type: 'StraightArrow', + value: 'box', + }, + { + name: '鐕曞熬鐩寸澶�', + type: 'SwallowtailArrow', + value: 'box', + },{ + name: '閽冲嚮绠ご', + type: 'PincerArrow', + value: 'box', + },{ + name: '闆嗙粨鍦�', + type: 'GatheringPlace', + value: 'box', + },{ + name: '鍦嗚鐭╁舰', + type: 'RoundedRectangle', + value: 'box', + }, + { + name: '鎵囧舰', + type: 'Sector', + value: 'box', + },{ + name: '寮撳舰', + type: 'Bow', + value: 'box', + },{ + name: '鏀诲嚮绠ご', + type: 'AttackArrow', + value: 'box', + } + ], showdata1: true, showdata2: true, - showDianci: false, + showsituation: false, }; }, mounted () { @@ -132,250 +149,45 @@ this.radios=e; }); bus.$on("guanzhou",(e) => { - this.form.startTime=e.fromdate; - this.form.endTime=e.todate; + }); bus.$on("areaData",(e) => { this.regions=e; }); bus.$on("showdio",(e) => { - this.showsituation=e=="7-9" + this.showsituation=e=="7-9-1" this.showdata1=true; this.showdata2=true; }); }, methods: { - changeplase (value) { - if(value.label.indexOf("骞垮窞")>-1) { - this.chooseplase="骞垮窞"; - this.form.startTime=new Date("2019-10-08"); - this.form.endTime=new Date("2019-10-16"); - window.Viewer.camera.flyTo({ - destination: Cesium.Cartesian3.fromDegrees( - 113.29503528791071, - 23.104708355136264, - 4109.8492337442767 - ), - orientation: { - heading: 0.8349372341578318, - pitch: -0.85222154573481174, - roll: 0, - }, - }); - } else { - this.chooseplase="涓婃捣"; - this.form.startTime=new Date("2016-06-01"); - this.form.endTime=new Date("2016-06-30"); - window.Viewer.camera.flyTo({ - destination: Cesium.Cartesian3.fromDegrees( - 121.23142475566037, - 30.314431916707203, - 101204.78027978493 - ), - orientation: { - heading: 0.149372341578318, - pitch: -0.8022154573481174, - roll: 0, - }, - }); - } - }, + change () { this.showdata1=false; }, change1 () { this.showdata2=false; }, - openDia () { - bus.$emit("changeColor",true); - }, - choose (value) { - let arr=value.split("-"); - this.form.freqStart=arr[0]; - this.form.freqEnd=arr[1]; - }, + close () { this.showsituation=false; }, - getdata (data) { - this.colorContainer=data; + setMenuClick1 () { + sgworld.Creator.ClearMilitaryStandard(); }, - // 鐐瑰嚮鑾峰緱鎬佸娍 - getTaishi () { - if(hander) { - return; - } - hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); - let pickFeature; - // 榧犳爣鐐瑰嚮浜嬩欢 - hander.setInputAction((event) => { - // 鎷惧彇瀵硅薄 - divPoint3&&divPoint3.deleteObject(); - let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); - // 杞粡绾害锛堝姬搴︼級鍧愭爣 - let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); - let lon=Cesium.Math.toDegrees(radiansPos.longitude); - let lat=Cesium.Math.toDegrees(radiansPos.latitude); - let filename=this.nowfile; - let obj={ - lat: lat, - lng: lon, - analysisAction: "-1", - analysisType: "1", - filename: filename, - }; - showCQ(obj).then((res) => { - let data=res.data; - if(data!="鏃犳暟鎹�") { - divPoint3=sgworld.Creator.createDivPoint( - "鍚堣偉", - { lon: obj.lng,lat: obj.lat }, - { - type: "custom", - offset: ["c",60], - description: ` - <div class="divPoint-custom"> - <p>${data}</p> - </div> - `, - near: 0, - far: 100000, - } - ); - } + setMenuClick (res) { + if(res.value) { + sgworld.Creator.militaryPlotting(res.type,res.value,(entity) => { }); - //鎶婁綘鎷惧彇鐨勪笢瑗挎墦鍗板嚭鏉ョ湅鐪嬩粈涔堝�煎彲浠ョ敤浣滃垽鏂� - },Cesium.ScreenSpaceEventType.LEFT_CLICK); - }, - analysis () { - this.reset(); - let that=this; - if(that.imageid) { - window.Viewer.entities.removeById(that.imageid); - that.imageid=null; - } - let data={ - colorName: "-100,0000FF;120,FF0000", - startTime: "20160601000000", - endTime: 20160630000000, - freqStart: 87000000, - freqEnd: 108000000, - freqPoint: 87000000, - points: - "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", - radius: 0, - analysisAction: "3", - analysisType: 1, - }; - data={ ...data,...this.form }; - data.freqStart=data.freqStart*1000000; - data.freqEnd=data.freqEnd*1000000; - data.startTime=data.startTime+"000000"; - data.endTime=data.endTime*1000000; - data.analysisType=="棰戠偣"? (data.analysisType=1):""; - delete data.radio; - if(this.showdata1) { - data.startTime=20160601000000; - this.chooseplase&&this.chooseplase=="涓婃捣" - ? (data.startTime=20160601000000) - :(data.startTime=20191008000000); - } - if(this.showdata2) { - data.endTime=20160630000000; - this.chooseplase&&this.chooseplase=="涓婃捣" - ? (data.endTime=20160630000000) - :(data.endTime=20191016000000); - } - const loading=that.$loading({ - lock: true, - text: "璁$畻涓�", - spinner: "el-icon-loading", - background: "rgba(0, 0, 0, 0.7)", - }); - data.points=data.points.value; - freqBandAnalysis(data) - .then((res) => { - if(res.message==="Success") { - let points=res.data.imgBounds; - that.nowfile=Base64.encode(res.data.url) - var data1={ - colorSchemes: 1, - file: Base64.encode(res.data.url), - maxColor: "FF0000", - maxValue: 100, - minColor: "0000FF", - minValue: 0, - showBounds: this.form.points.value, - }; - data1={ ...data1,...this.colorContainer }; - createPic(data1) - .then((res2) => { - let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ - removeEdit: true, - coordinates: Cesium.Rectangle.fromDegrees( - points.xmin, - points.ymin, - points.xmax, - points.ymax - ), - color: "rgba(255,255,255,0.5)", - image: - "http://221.224.53.36:9081/calc/picurl?file="+ - Base64.encode(res2.data), - }); - that.showDianci=true; - // 鍥剧墖鑾峰彇鎴愬姛 寮�鍚嬀鍙� - that.getTaishi(); - if(that.imageid) { - window.Viewer.entities.removeById(that.imageid); - that.imageid=null; - } - that.imageid=rectangle.id; - - loading.close(); - that.$message({ - message: "璁$畻鎴愬姛", - type: "success", - }); - that.showpic=true; - }) - .catch((error) => { - loading.close(); - }); - } - }) - .catch((error) => { - loading.close(); + } else { + sgworld.Creator.militaryPlotting(res.type,(entity) => { }); - }, - reset () { - //閲嶇疆 - if(this.imageid) { - window.Viewer.entities.removeById(this.imageid); - hander&& - hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); - hander=null; - divPoint3&&divPoint3.deleteObject(); - - this.imageid=null; - this.showDianci=false; } - }, + + } }, watch: { - colorContainer: { - deep: true, - handler (data) { - let colornow={ - width: "30%", - height: "70%", - border: "1px solid #000", - transform: "translate(40px,90px)", - backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, - }; - this.innerbac=colornow; - }, - }, + }, }; </script> @@ -428,34 +240,7 @@ transition: color 1s; cursor: pointer; } -.next { - width: 89%; - height: 79%; - margin: 100px auto; -} -.next >>> .el-select { - width: 95% !important; -} -.next >>> .el-form-item { - margin-top: 60px; -} -.next >>> .el-input { - width: 84%; -} -.next >>> .el-date-editor { - width: 515px; -} -.next >>> .el-form-item__label { - color: #fff; - font-size: 40px; -} -.next >>> .el-input__inner { - font-size: 30px; -} -.next >>> .el-form-item__error { - font-size: 30px; - font-weight: 700; -} + .botcon { display: inline-block; margin-top: 34px; @@ -467,17 +252,7 @@ display: flex; justify-content: center; } -.btns > span { - display: block; - width: 200px; - height: 70px; - border: 1px solid #000; - text-align: center; - font-size: 35px; - margin: 0 50px; - line-height: 70px; - cursor: pointer; -} + .btns > span:nth-child(3) { color: #fff; background-image: linear-gradient(#76c2f6, #6a9cf1); @@ -486,14 +261,36 @@ color: #000; background: #cadaea; } -.showpic { - width: 260px; - height: 400px; - background: url(~@/assets/image/botbtn/bac.png); - background-position: center; - background-size: 100% 100%; - position: absolute; - top: 1200px; - right: 0px; +.content { + width: 92%; + height: 80%; + position: relative; + margin: 3% 4%; +} +.plotTitle { + width: 100%; + color: #fff; + font-size: 40px; +} +.menuContent { + width: 100%; + display: grid; + grid-template-columns: auto auto auto; + font-size: 32px; + margin: 10px 0px; + cursor: pointer; +} +.menuItem { + margin: 10px 40px; + min-width: 150px; + background: rgb(135, 206, 235, 0.6); + text-align: center; + padding: 10px; + border-radius: 5px; + color: #fff; +} +.menuItem:hover { + transform: scale(1.1); + color: #494949; } </style> -- Gitblit v1.9.3