|
@@ -4,39 +4,189 @@
|
|
|
<span>
|
|
|
鸟瞰视角
|
|
|
</span>
|
|
|
- <sapn>
|
|
|
+ <sapn @click="quitFollow">
|
|
|
退出跟随
|
|
|
</sapn>
|
|
|
</div>
|
|
|
<div class="bottom">
|
|
|
<div class="bottom_left">
|
|
|
<div class="left_fxlc">
|
|
|
-
|
|
|
+ <div class="single-item">飞行里程(M)</div>
|
|
|
+ <div class="single-item num">{{ singleLength }}</div>
|
|
|
</div>
|
|
|
<div class="left_txxh">
|
|
|
-
|
|
|
+ <img src="../../../assets/images/page/信号.png" alt="">
|
|
|
+ <div class="single-item">通信信号</div>
|
|
|
+ <div class="single-item num">3</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="bottom_middle">
|
|
|
- <div class="left_fxlc">
|
|
|
+ <div class="middle_left_fxlc">
|
|
|
|
|
|
</div>
|
|
|
- <div class="left_txxh">
|
|
|
+ <div id="chart-ybp" class="middle_center_fxlc">
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div class="middle_right_fxlc">
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="bottom_right">
|
|
|
-
|
|
|
+ <div class="right_fxlc">
|
|
|
+ <div class="single-item">飞行时长(S)</div>
|
|
|
+ <div class="single-item num">{{ singleTime }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="right_txxh">
|
|
|
+ <img src="../../../assets/images/page/风量.png" alt="">
|
|
|
+ <div class="single-item">风力级数</div>
|
|
|
+ <div class="single-item num">0</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
import {useMapStore} from "@/store/map.js";
|
|
|
-
|
|
|
+import {onMounted,ref, watch} from "vue";
|
|
|
+import {nowSize, setOptions} from "@/utils/echarts.js";
|
|
|
+import {graphic} from "echarts";
|
|
|
+import * as echarts from 'echarts'
|
|
|
+import {changePointStatus} from "@/utils/map/addLayer.js";
|
|
|
export default {
|
|
|
setup(props) {
|
|
|
const mapStore = useMapStore();
|
|
|
+ let option;
|
|
|
+ let singleLength = ref(0);
|
|
|
+ let singleTime = ref(0);
|
|
|
+ onMounted(()=>{
|
|
|
+ loadChart()
|
|
|
+ })
|
|
|
+ function loadChart() {
|
|
|
+ option = {
|
|
|
+ backgroundColor: 'transparent',
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ type: 'gauge',
|
|
|
+ z:100,
|
|
|
+ axisLine: {
|
|
|
+ lineStyle: {
|
|
|
+ width: 5,
|
|
|
+ color: [
|
|
|
+ [
|
|
|
+ 0.3, new echarts.graphic.LinearGradient(
|
|
|
+ 0, 1, 1, 0, [{
|
|
|
+ offset: 0,
|
|
|
+ color: 'rgba(0, 237, 3,0.1)',
|
|
|
+ }, {
|
|
|
+ offset: 0.5,
|
|
|
+ color: 'rgba(0, 237, 3,0.6)',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ offset: 1,
|
|
|
+ color: 'rgba(0, 237, 3,1)',
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 0.7, new echarts.graphic.LinearGradient(
|
|
|
+ 0, 1, 1, 0, [{
|
|
|
+ offset: 0,
|
|
|
+ color: 'rgba(255, 184, 0,0.1)',
|
|
|
+ }, {
|
|
|
+ offset: 0.5,
|
|
|
+ color: 'rgba(255, 184, 0,0.6)',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ offset: 1,
|
|
|
+ color: 'rgba(255, 184, 0,1)',
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 1, new echarts.graphic.LinearGradient(
|
|
|
+ 0, 1, 1, 0, [{
|
|
|
+ offset: 0,
|
|
|
+ color: 'rgba(175, 36, 74,0.1)',
|
|
|
+ }, {
|
|
|
+ offset: 0.5,
|
|
|
+ color: 'rgba(255, 36, 74,0.6)',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ offset: 1,
|
|
|
+ color: 'rgba(255, 36, 74,1)',
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ )
|
|
|
+ ]
|
|
|
+ ],
|
|
|
+ }
|
|
|
+ },
|
|
|
+ radius: '110%',
|
|
|
+ center: ['50%', '55%'],
|
|
|
+ pointer: {
|
|
|
+ itemStyle: {
|
|
|
+ color: 'auto'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ axisTick: {
|
|
|
+ distance: 0,
|
|
|
+ length: 8,
|
|
|
+ lineStyle: {
|
|
|
+ color: 'auto',
|
|
|
+ width: 2
|
|
|
+ }
|
|
|
+ },
|
|
|
+ splitLine: {
|
|
|
+ distance: 0,
|
|
|
+ length: 20,
|
|
|
+ lineStyle: {
|
|
|
+ color: 'auto',
|
|
|
+ width: 4
|
|
|
+ }
|
|
|
+ },
|
|
|
+ axisLabel: {
|
|
|
+ color: 'white',
|
|
|
+ distance: 8,
|
|
|
+ fontSize: 12
|
|
|
+ },
|
|
|
+ detail: {
|
|
|
+ fontSize: 14,
|
|
|
+ valueAnimation: true,
|
|
|
+ formatter: '{value} 米/秒',
|
|
|
+ color: 'white',
|
|
|
+ },
|
|
|
+ data: [{
|
|
|
+ value: 0
|
|
|
+ }]
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ function quitFollow(){
|
|
|
+ debugger
|
|
|
+ changePointStatus({
|
|
|
+ "uavid": mapStore.currentUavInfo.uavid,
|
|
|
+ "isFollow": false,
|
|
|
+ });
|
|
|
+ mapStore.isFollow = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ watch(() => mapStore.currentUavInfo, (val) => {
|
|
|
+ option.series[0].data[0].value = mapStore.currentUavInfo.speed;
|
|
|
+ singleLength.value = mapStore.currentUavInfo.lastFlightDistance;
|
|
|
+ singleTime.value = mapStore.currentUavInfo.lastFlightTime;
|
|
|
+ setOptions(document.getElementById('chart-ybp'), option)
|
|
|
+ }, {
|
|
|
+ deep: true
|
|
|
+ })
|
|
|
+ return{
|
|
|
+ singleLength,
|
|
|
+ singleTime,
|
|
|
+ quitFollow
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
@@ -81,14 +231,140 @@ export default {
|
|
|
.bottom_left{
|
|
|
width: 33%;
|
|
|
height: 100%;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ .left_fxlc{
|
|
|
+ width: 100%;
|
|
|
+ height: 78%;
|
|
|
+ background: url("../../../assets/images/page/左.png") no-repeat;
|
|
|
+ background-position: center right;
|
|
|
+ background-size: 40% 90%;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: flex-end;
|
|
|
+ .single-item{
|
|
|
+ padding-bottom: 14px;
|
|
|
+ font-family: Microsoft YaHei;
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #CAD6F1;
|
|
|
+ }
|
|
|
+ .num{
|
|
|
+ font-family: BarlowBold;
|
|
|
+ font-size: 16px;;
|
|
|
+ color: transparent;
|
|
|
+ background: linear-gradient(0deg, #00A8FF 0%, #8FDFFE 100%);
|
|
|
+ -webkit-background-clip: text !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .left_txxh{
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: flex-start;
|
|
|
+ align-items: center;
|
|
|
+ width: 100%;
|
|
|
+ height: 22%;
|
|
|
+ img{
|
|
|
+ padding-left: 40px;
|
|
|
+ width: 18px;
|
|
|
+ height: 18px;
|
|
|
+ }
|
|
|
+ .single-item{
|
|
|
+ padding-left: 10px;
|
|
|
+ font-family: Microsoft YaHei;
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 16px;
|
|
|
+ color: #FFFFFF;
|
|
|
+ line-height: 60px;
|
|
|
+ }
|
|
|
+ .num{
|
|
|
+ padding-bottom: 4px;
|
|
|
+ font-family: BarlowBold;
|
|
|
+ font-size: 24px;;
|
|
|
+ color: transparent;
|
|
|
+ background: linear-gradient(0deg, #00A8FF 0%, #8FDFFE 100%);
|
|
|
+ -webkit-background-clip: text !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
.bottom_middle{
|
|
|
width: 33%;
|
|
|
height: 100%;
|
|
|
+ display: flex;
|
|
|
+ .middle_left_fxlc{
|
|
|
+ width: 10%;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+ .middle_center_fxlc{
|
|
|
+ width: 80%;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+ .middle_right_fxlc{
|
|
|
+ width: 10%;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
}
|
|
|
.bottom_right{
|
|
|
width: 33%;
|
|
|
height: 100%;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ .right_fxlc{
|
|
|
+ width: 100%;
|
|
|
+ height: 78%;
|
|
|
+ background: url("../../../assets/images/page/右.png") no-repeat;
|
|
|
+ background-position: center left;
|
|
|
+ background-size: 40% 90%;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: flex-start;
|
|
|
+ .single-item{
|
|
|
+ padding-bottom: 14px;
|
|
|
+ font-family: Microsoft YaHei;
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #CAD6F1;
|
|
|
+ }
|
|
|
+ .num{
|
|
|
+ font-family: BarlowBold;
|
|
|
+ font-size: 16px;;
|
|
|
+ color: transparent;
|
|
|
+ background: linear-gradient(0deg, #00A8FF 0%, #8FDFFE 100%);
|
|
|
+ -webkit-background-clip: text !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .right_txxh{
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ justify-content: flex-end;
|
|
|
+ align-items: center;
|
|
|
+ width: 100%;
|
|
|
+ height: 22%;
|
|
|
+ img{
|
|
|
+ padding-right: 10px;
|
|
|
+ width: 18px;
|
|
|
+ height: 18px;
|
|
|
+ }
|
|
|
+ .single-item{
|
|
|
+ padding-right: 10px;
|
|
|
+ font-family: Microsoft YaHei;
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: 16px;
|
|
|
+ color: #FFFFFF;
|
|
|
+ line-height: 60px;
|
|
|
+ }
|
|
|
+ .num{
|
|
|
+ padding-right: 40px;
|
|
|
+ padding-bottom: 4px;
|
|
|
+ font-family: BarlowBold;
|
|
|
+ font-size: 24px;;
|
|
|
+ color: transparent;
|
|
|
+ background: linear-gradient(0deg, #00A8FF 0%, #8FDFFE 100%);
|
|
|
+ -webkit-background-clip: text !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|