瀏覽代碼

Mode Push

Haobin Luo 2 年之前
父節點
當前提交
ecf2d7250d

+ 20 - 9
vue/src/views/ECMManager/index.vue

@@ -31,9 +31,9 @@
                         <span>干扰目标选择</span>
                     </div>
                     <div>
-                        干扰目标:
                         <el-select :change="targetChange()" v-model="targetID" placeholder="请选择">
-                            <el-option v-for="item in targetTable" :key="item.value" :label="item.label" :value="item.value">
+                            <el-option v-for="item in thaadInstances" :key="item.instanceID" :label="item.instanceName"
+                                :value="item.instanceID">
                             </el-option>
                         </el-select>
                     </div>
@@ -72,11 +72,11 @@
                             </el-option>
                         </el-select>
                     </div>
-                    <el-table :data="propertyinittable" :row-style="{ height: '20px' }" :cell-style="{ padding: '0px' }"
+                    <!-- <el-table :data="propertyinittable" :row-style="{ height: '20px' }" :cell-style="{ padding: '0px' }"
                         style="font-size: 10px;width: 100%;" height="100%" highlight-current-row border>
                         <el-table-column prop="key" label="属性"></el-table-column>
                         <el-table-column prop="value" label="值"></el-table-column>
-                    </el-table>
+                    </el-table> -->
                 </el-card>
 
             </el-row>
@@ -84,10 +84,12 @@
             <el-row>
                 <el-card>
                     <div slot="header" class="clearfix">
-                        <span>干扰脉冲描述</span>
+                        <span>干扰工作状态</span>
                     </div>
-                    <el-table>
-                        <el-table-column prop="uState" label="是否有效"></el-table-column>
+                    <el-table :data="jamTable">
+                        <el-table-column prop="key" label="属性"></el-table-column>
+                        <el-table-column prop="value" label="状态"></el-table-column>
+                        <!-- <el-table-column prop="uState" label="是否有效"></el-table-column>
                         <el-table-column prop="ulCarryAcID" label="载机编号"></el-table-column>
                         <el-table-column prop="ulTgtAcID" label="目标(电磁波指向)飞机的编号"></el-table-column>
                         <el-table-column prop="ulJamType" label="干扰类型"></el-table-column>
@@ -106,7 +108,7 @@
                         <el-table-column prop="fAziGe" label="地理系方位指向角度"></el-table-column>
                         <el-table-column prop="fEliGe" label="地理系俯仰指向角度"></el-table-column>
                         <el-table-column prop="fAzAn" label="机体系方位指向角度"></el-table-column>
-                        <el-table-column prop="fElAn" label="机体系俯仰指向角度"></el-table-column>
+                        <el-table-column prop="fElAn" label="机体系俯仰指向角度"></el-table-column> -->
                     </el-table>
                 </el-card>
             </el-row>
@@ -174,11 +176,12 @@ export default {
             frequencevalue: '',
             workvalue: '',
             frequenceAverageShow: false,
+            jamTable: null,
             radarEchart: null,
             instancetable: null,
             instanceID: null,
             targetTable: null,
-            targetID: null, 
+            targetID: null,
             propertyinittable: null,
             propertycontroltable: null,
 
@@ -274,6 +277,7 @@ export default {
 
         },
         workStyleChange(val) {
+
             console.log(val);
             this.$wst.send({
                 url: 'setJammingStyle',
@@ -283,6 +287,13 @@ export default {
                     Style: val
                 }
             })
+
+            this.jamTable = [
+                { key: "是否有效", value: "是" },
+                { key: "导弹编号", value: this.instanceID },
+                { key: "目标编号", value: this.targetID },
+                { key: "干扰类型", value: val}
+            ]
         },
         targetChange(val) {
             console.log(val);

+ 182 - 11
vue/src/views/networkManagement/index.vue

@@ -7,14 +7,15 @@
             <span>网络状态</span>
           </div>
           <div>
-            <el-radio-group v-model="radio2">
+            <!-- <el-radio-group v-model="radio2">
               <el-radio-button label="编队1"></el-radio-button>
               <el-radio-button label="编队2"></el-radio-button>
               <el-radio-button label="编队3"></el-radio-button>
               <el-radio-button label="编队4"></el-radio-button>
-            </el-radio-group>
-            <el-table>
-              <el-table-column prop="platID" label="平台ID"></el-table-column>
+            </el-radio-group> -->
+
+            <el-table :data="teamTable">
+              <el-table-column prop="platId" label="平台ID"></el-table-column>
               <el-table-column prop="PlatName" label="平台名称"></el-table-column>
               <el-table-column prop="NetState" label="网络状态"></el-table-column>
             </el-table>
@@ -59,31 +60,169 @@
         <div slot="header" class="clearfix">
           <span>网络拓扑</span>
         </div>
+        <div class="echarts-box">
+          <div id="topoEchart" class="topoecharts"></div>
+        </div>
       </el-card>
     </el-col>
   </div>
 </template>
 
 <script>
+import { mapGetters } from "vuex";
 export default {
+  computed: {
+    ...mapGetters(["init", "leadPost", "platforms", "platformID", "airLine", "taskPlan"]),
+  },
+  mounted() {
+    if (this.platformID == "1001" || this.platformID == "1002" || this.platformID == "1003" || this.platformID == "1004") {
+      this.teamTable = this.teamTableTemplate;
+    }
+  },
+  watch: {
+    platformID: {
+      handler: function (val, oldVal) {
+        if (val == "1001" || val == "1002" || val == "1003" || val == "1004") {
+          this.teamTable = this.teamTableTemplate;
+          this.topoInit();
+        }
+        else {
+          this.teamTable = null;
+        }
+      }
+    }
+  },
   data() {
     return {
       radio2: "编队1",
+      teamTable: null,
+      topoEcharts: null,
+      topoOption: {
+        title: {
+          text: '编队网络拓扑'
+        },
+        tooltip: {},
+        animationDurationUpdate: 1500,
+        animationEasingUpdate: 'quinticInOut',
+        series: [
+          {
+            type: 'graph',
+            layout: 'none',
+            symbolSize: 50,
+            roam: true,
+            label: {
+              show: true
+            },
+            edgeSymbol: ['circle', 'arrow'],
+            edgeSymbolSize: [4, 10],
+            edgeLabel: {
+              fontSize: 20
+            },
+            data: [
+              {
+                name: '弹道导弹1',
+                x: 300,
+                y: 300
+              },
+              {
+                name: '弹道导弹2',
+                x: 600,
+                y: 600
+              },
+              {
+                name: '弹道导弹3',
+                x: 300,
+                y: 600
+              },
+              {
+                name: '弹道导弹4',
+                x: 600,
+                y: 300
+              }
+            ],
+            // links: [],
+            links: [
+              // {
+              //   source: 0,
+              //   target: 1,
+              //   symbolSize: [5, 20],
+              //   label: {
+              //     show: true
+              //   },
+              //   lineStyle: {
+              //     width: 5,
+              //     curveness: 0.2
+              //   }
+              // },
+              // {
+              //   source: 'Node 2',
+              //   target: 'Node 1',
+              //   label: {
+              //     show: true
+              //   },
+              //   lineStyle: {
+              //     curveness: 0.2
+              //   }
+              // },
+              {
+                source: '弹道导弹1',
+                target: '弹道导弹2'
+              },
+              {
+                source: '弹道导弹1',
+                target: '弹道导弹3'
+              },
+              {
+                source: '弹道导弹1',
+                target: '弹道导弹4'
+              }
+            ],
+            lineStyle: {
+              opacity: 0.9,
+              width: 2,
+              curveness: 0
+            }
+          }
+        ]
+      },
+
+      teamTableTemplate: [
+        {
+          platId: "1001",
+          PlatName: "弹道导弹1",
+          NetState: "在线"
+        },
+        {
+          platId: "1002",
+          PlatName: "弹道导弹2",
+          NetState: "在线"
+        },
+        {
+          platId: "1003",
+          PlatName: "弹道导弹3",
+          NetState: "在线"
+        },
+        {
+          platId: "1004",
+          PlatName: "弹道导弹4",
+          NetState: "在线"
+        },
+      ],
       tableData5: [{
-        linkId: 'xxxx',
-        linkName: 'J',
+        linkId: '1',
+        linkName: '弹道导弹1-弹道导弹2',
         lossRate: 2.6,
         latency: 2,
         capacity: 12000
       }, {
-        linkId: 'xxxx',
-        linkName: 'V/U',
+        linkId: '2',
+        linkName: '弹道导弹1-弹道导弹3',
         lossRate: 5,
         latency: 2,
         capacity: 24000
       }, {
-        linkId: 'xxxx',
-        linkName: 'ZY数传',
+        linkId: '3',
+        linkName: '弹道导弹1-弹道导弹4',
         lossRate: 9,
         latency: 2,
         capacity: 48000
@@ -95,9 +234,41 @@ export default {
     };
   },
   methods: {
+    topoInit() {
+      if (this.topoEchart == null) {
+        this.topoEchart = this.$echarts.init(document.getElementById('topoEchart'))
+      }
+      this.topoEchart.setOption(this.topoOption);
+      this.resizeDom()
+    },
+    resizeDom() {
+      console.log("高度自适应")
+      this.$echarts.init(document.getElementById('topoEchart')).resize()
+      // var mapEchart = document.getElementById('mapEchart')
+      // var mapEchart = document.getElementById('mapEchart')
+      // var mapEchart = document.getElementById('mapEchart')
+      // var mapEchart = document.getElementById('mapEchart')
+      // const boxHeight = document.getElementsByClassName("echarts-box")[0].clientHeight
+      // mapEchart.style.height = (boxHeight/2-65)+'px';
+      // mapEchart.style.height = (boxHeight/2-65)+'px';
+      // mapEchart.style.height = (boxHeight/2-65)+'px';
+      // mapEchart.style.height = (boxHeight/2-65)+'px';
+    },
     submitForm() {
       // 这里可以编写提交表单的代码
     },
   },
 };
-</script>
+</script>
+<style scoped>
+.echarts-box {
+  height: 600px;
+  width: 500px;
+  background-size: 100% 100%;
+}
+
+.topoecharts {
+  width: 100%;
+  height: 100%;
+}
+</style>

+ 363 - 358
vue/src/views/situation/index.vue

@@ -1,47 +1,46 @@
 <template>
   <div class="container">
-  <el-row :gutter="10" style="height:100%;">
-
-    <el-col style="height:100%;position: relative;" :span="24">
-      <el-radio-group class="model" v-model="pattern" label="size control" size="small">
-        <el-radio-button  label="two-dimensional" @click="pattern='two-dimensional'">二维态势</el-radio-button>
-        <el-radio-button label="three-dimensional" @click="pattern='three-dimensional'">三维态势</el-radio-button>
-      </el-radio-group>
-      <el-card class="table1">
+    <el-row :gutter="10" style="height:100%;">
+
+      <el-col style="height:100%;position: relative;" :span="24">
+        <el-radio-group class="model" v-model="pattern" label="size control" size="small">
+          <el-radio-button label="two-dimensional" @click="pattern = 'two-dimensional'">二维态势</el-radio-button>
+          <el-radio-button label="three-dimensional" @click="pattern = 'three-dimensional'">三维态势</el-radio-button>
+        </el-radio-group>
+        <el-card class="table1">
           <div slot="header" class="clearfix">
-              <span>兵力装备显示</span>
+            <span>兵力装备显示</span>
           </div>
           <el-table :data="instancetable" @current-change="instanceChange">
-              <el-table-column prop="instanceID" label="ID"></el-table-column>
-              <el-table-column prop="instanceName" label="名称"></el-table-column>
-              <el-table-column prop="instanceState" label="敌我属性"></el-table-column>
+            <el-table-column prop="instanceID" label="ID"></el-table-column>
+            <el-table-column prop="instanceName" label="名称"></el-table-column>
+            <el-table-column prop="instanceState" label="敌我属性"></el-table-column>
           </el-table>
-      </el-card>
-      <el-card class="table2">
+        </el-card>
+        <el-card class="table2">
           <div slot="header" class="clearfix">
-              <span>战损显示</span>
+            <span>战损显示</span>
           </div>
           <el-table :data="instancetable" @current-change="instanceChange">
             <el-table-column prop="instanceID" label="ID"></el-table-column>
-              <el-table-column prop="instanceName" label="名称"></el-table-column>
-              <el-table-column prop="instanceState" label="健康度"></el-table-column>
+            <el-table-column prop="instanceName" label="名称"></el-table-column>
+            <el-table-column prop="instanceState" label="健康度"></el-table-column>
           </el-table>
-      </el-card>
-        <div v-show="pattern=='two-dimensional'" class="echarts-box">
-          <div id="mapEchart"  class="mapecharts"></div>
-        </div> 
-        <div v-show="pattern=='three-dimensional'" class="main-layout">
+        </el-card>
+        <div v-show="pattern == 'two-dimensional'" class="echarts-box">
+          <div id="mapEchart" class="mapecharts"></div>
+        </div>
+        <div v-show="pattern == 'three-dimensional'" class="main-layout">
           <div id="cesiumContainer" class="mapecharts"></div>
         </div>
-    </el-col>
-  </el-row>
+      </el-col>
+    </el-row>
   </div>
-  
 </template>
-  <script>
-  import { mapGetters } from 'vuex'
-export default({
-    computed: {
+<script>
+import { mapGetters } from 'vuex'
+export default ({
+  computed: {
     ...mapGetters([
       'map',
       'init',
@@ -50,418 +49,424 @@ export default({
       'properties',
       'platformShow'
     ]),
+  },
+  watch: {
+    init: {
+      handler: function (val, oldVal) {
+        console.log(val)
+        this.setTimer();
+      }
     },
-    watch: {
-       init: {
-          handler: function(val, oldVal){
-            console.log(val)
-            this.setTimer();
-          }
-       },
-       platforms: {
-          handler: function(val, oldVal){
-            
-          }
-       },
-       instances: {
-        handler: function(val, oldVal){
+    platforms: {
+      handler: function (val, oldVal) {
 
-            this.instancetable = val 
-          }
-       },
-       platformID: {
-          handler: function(val, oldVal){
-            this.$wst.send({
-              url:'getRadarInstances',
-              data:{PlatformID: val}
-            })
+      }
+    },
+    instances: {
+      handler: function (val, oldVal) {
 
-          }
-       },
-       properties: {
-        handler: function(val,oldVal){
-            this.propertyinittable = val.InitParams
-            this.propertycontroltable = val.CtrlParams
-        }
-       },
-       platformShow: {
-        handler: function(val,oldVal){
-            this.resizeDom()
-        }
-       }
+        this.instancetable = val
+      }
     },
-    data() {
-      return {
-        pattern:"two-dimensional",
-        instancetable: null,
-        propertyinittable: null,
-        propertycontroltable: null,     
-        timer: null,
-        mapEchart: null,
-        mapOption: {
-              aria: {
-                  show: true
-              },
-              tooltip: {
-                formatter: '{a}&name:{b}&location:{c}',  
-              },
-              legend: {
-                  orient: 'vertical',
-                  left: 'left',
-                  data:['categoryA','categoryB','categoryC']
-              },
-              geo: {
+    platformID: {
+      handler: function (val, oldVal) {
+        this.$wst.send({
+          url: 'getRadarInstances',
+          data: { PlatformID: val }
+        })
+
+      }
+    },
+    properties: {
+      handler: function (val, oldVal) {
+        this.propertyinittable = val.InitParams
+        this.propertycontroltable = val.CtrlParams
+      }
+    },
+    platformShow: {
+      handler: function (val, oldVal) {
+        this.resizeDom()
+      }
+    }
+  },
+  data() {
+    return {
+      pattern: "two-dimensional",
+      instancetable: null,
+      propertyinittable: null,
+      propertycontroltable: null,
+      timer: null,
+      mapEchart: null,
+      mapOption: {
+        aria: {
+          show: true
+        },
+        tooltip: {
+          formatter: '{a}&name:{b}&location:{c}',
+        },
+        legend: {
+          orient: 'vertical',
+          left: 'left',
+          data: ['categoryA', 'categoryB', 'categoryC']
+        },
+        geo: {
           map: "china",
           // zoom: 1,
           // center: [120.397128, 25.916527],
           roam: true,
-        scaleLimit:{
-          min: 1,
-          max: 20
-        },
-      label: {
-        color: "#fff",
-        show: true
-      },
-      emphasis: {
-        label: {
-          color: "#fff",
-          show: true
-        },
-        itemStyle: {
-          areaColor: {
-            x: 0,
-            y: 0,
-            x2: 0,
-            y2: 1,
-            colorStops: [
-              {
-                offset: 0,
-                color: "#073684" // 0% 处的颜色
-              },
-              {
-                offset: 1,
-                color: "#2B91B7" // 100% 处的颜色
-              }
-            ]
-          }
-        }
-      },
-      itemStyle: {
-        areaColor: {
-          x: 0,
-          y: 0,
-          x2: 0,
-          y2: 1,
-          colorStops: [
-            {
-              offset: 0,
-              color: "#073684" // 0% 处的颜色
+          scaleLimit: {
+            min: 1,
+            max: 20
+          },
+          label: {
+            color: "#fff",
+            show: true
+          },
+          emphasis: {
+            label: {
+              color: "#fff",
+              show: true
             },
-            {
-              offset: 1,
-              color: "#061E3D" // 100% 处的颜色
+            itemStyle: {
+              areaColor: {
+                x: 0,
+                y: 0,
+                x2: 0,
+                y2: 1,
+                colorStops: [
+                  {
+                    offset: 0,
+                    color: "#073684" // 0% 处的颜色
+                  },
+                  {
+                    offset: 1,
+                    color: "#2B91B7" // 100% 处的颜色
+                  }
+                ]
+              }
             }
-          ]
-        },
-        borderColor: "#87ADCB",
-        shadowColor: "rgba(10,76,139,1)",
-        shadowOffsetY: 0,
-        shadowBlur: 60,
-        borderWidth: 1
-      },
-      tooltip: {
-        show: false
-      }
-              },
-              graphic: [{
-                type: 'circle',
-                shape: {
-                  cx: 73.675379,
-                  cy: 42.442284,
-                  r: 100// 以米为单位设置视野半径
-                },
-                style: {
-                  fill: '#ffa500',
-                  opacity: 0.2
-                },
-                z: 10 // 设置层级为10,确保在地图上显示在最上层
-              }],
-              series : [
+          },
+          itemStyle: {
+            areaColor: {
+              x: 0,
+              y: 0,
+              x2: 0,
+              y2: 1,
+              colorStops: [
                 {
-                    name: '我方飞机',
-                    type: 'scatter',
-                    coordinateSystem: 'geo',
-                    symbol: 'image://'+ require('@/assets/image/redairplane.png'),
-                    symbolSize: 20,
-                    data: null,
-                    label: {
-                        normal: {
-                            formatter: '{b}',
-                            position: 'right',
-                            show: false
-                        },
-                        emphasis: {
-                            show: true
-                        }
-                    },
-                    itemStyle: {
-                        normal: {
-                            color: '#ddb926'
-                            //color: '#0000ff'
-                        }
-                    }
+                  offset: 0,
+                  color: "#073684" // 0% 处的颜色
                 },
                 {
-                    name: '我方dddd',
-                    type: 'scatter',
-                    coordinateSystem: 'geo',
-                    symbol: 'image://'+ require('@/assets/image/redmissile.png'),
-                    symbolSize: 20,
-                    data: null,
-                    label: {
-                        normal: {
-                            formatter: '{b}',
-                            position: 'right',
-                            show: false
-                        },
-                        emphasis: {
-                            show: true
-                        }
-                    },
-                    itemStyle: {
-                        normal: {
-                            color: '#ddb926'
-                            //color: '#0000ff'
-                        }
-                    }
-                },
-                {
-                    name: '敌方',
-                    type: 'scatter',
-                    coordinateSystem: 'geo',
-                    symbol: 'image://'+ require('@/assets/image/blueradar.png'),
-                    symbolSize: 20,
-                    data: null,
-                    label: {
-                        normal: {
-                            formatter: '{b}',
-                            position: 'right',
-                            show: false
-                        },
-                        emphasis: {
-                            show: true
-                        }
-                    },
-                    itemStyle: {
-                        normal: {
-                            color: '#ff0000'
-                        }
-                    }
-                },
-                  
-            
+                  offset: 1,
+                  color: "#061E3D" // 100% 处的颜色
+                }
               ]
+            },
+            borderColor: "#87ADCB",
+            shadowColor: "rgba(10,76,139,1)",
+            shadowOffsetY: 0,
+            shadowBlur: 60,
+            borderWidth: 1
+          },
+          tooltip: {
+            show: false
           }
+        },
+        graphic: [{
+          type: 'circle',
+          shape: {
+            cx: 73.675379,
+            cy: 42.442284,
+            r: 100// 以米为单位设置视野半径
+          },
+          style: {
+            fill: '#ffa500',
+            opacity: 0.2
+          },
+          z: 10 // 设置层级为10,确保在地图上显示在最上层
+        }],
+        series: [
+          {
+            name: '我方飞机',
+            type: 'scatter',
+            coordinateSystem: 'geo',
+            symbol: 'image://' + require('@/assets/image/redairplane.png'),
+            symbolSize: 20,
+            data: null,
+            label: {
+              normal: {
+                formatter: '{b}',
+                position: 'right',
+                show: false
+              },
+              emphasis: {
+                show: true
+              }
+            },
+            itemStyle: {
+              normal: {
+                color: '#ddb926'
+                //color: '#0000ff'
+              }
+            }
+          },
+          {
+            name: '我方dddd',
+            type: 'scatter',
+            coordinateSystem: 'geo',
+            symbol: 'image://' + require('@/assets/image/redmissile.png'),
+            symbolSize: 20,
+            data: null,
+            label: {
+              normal: {
+                formatter: '{b}',
+                position: 'right',
+                show: false
+              },
+              emphasis: {
+                show: true
+              }
+            },
+            itemStyle: {
+              normal: {
+                color: '#ddb926'
+                //color: '#0000ff'
+              }
+            }
+          },
+          {
+            name: '敌方',
+            type: 'scatter',
+            coordinateSystem: 'geo',
+            symbol: 'image://' + require('@/assets/image/blueradar.png'),
+            symbolSize: 20,
+            data: null,
+            label: {
+              normal: {
+                formatter: '{b}',
+                position: 'right',
+                show: false
+              },
+              emphasis: {
+                show: true
+              }
+            },
+            itemStyle: {
+              normal: {
+                color: '#ff0000'
+              }
+            }
+          },
+
+
+        ]
+      }
+
+
+
+    }
 
+  },
+  mounted() {
+    this.echartsInit();
+    this.cesiumInit();
+    // 页面加载设置高度自适应
+    window.onresize = () => {
 
+      this.resizeDom()
+    };
+    // 页面加载设置高度自适应
+    this.resizeDom()
+    if (this.init == 100) {
+      this.setTimer();
+    }
 
+  },
+  beforeDestroy() {
+    this.timerDestory()
+  },
+  methods: {
+    setTimer() {
+      if (this.timer == null) {
+        this.timer = setInterval(() => {
+          console.log('开始定时...每过一秒执行一次')
+          this.echartsInit()
+        }, 1000)
       }
-    
     },
-    mounted(){
-      this.echartsInit();
-      this.cesiumInit();
-      // 页面加载设置高度自适应
-      window.onresize = () => {
-        
-        this.resizeDom()
-      };
-      // 页面加载设置高度自适应
-        this.resizeDom()
-        if(this.init == 100){
-          this.setTimer();
-        }
+    //初始化echarts
+    echartsInit() {
+
+      if (this.init == 100) { this.$wst.send({ url: 'getLocalMap' }) }
+      if (this.map != null && this.map.type == 'local') { this.submitForm('mapEchart') }
+      if (this.mapEchart == null) {
+        this.mapEchart = this.$echarts.init(document.getElementById('mapEchart'))
+      }
+      this.mapEchart.setOption(this.mapOption);
+      this.resizeDom()
 
     },
-      beforeDestroy() {
-        this.timerDestory()
-    },
-    methods: {
-      setTimer() {
-                if(this.timer == null) {
-                    this.timer = setInterval( () => {
-                        console.log('开始定时...每过一秒执行一次')
-                        this.echartsInit()
-                    }, 1000)
-                }
-            },
-      //初始化echarts
-      echartsInit() {
-       
-          if(this.init == 100){ this.$wst.send({url:'getLocalMap'})}
-          if(this.map != null && this.map.type=='local'){ this.submitForm('mapEchart')}
-          if(this.mapEchart == null){
-          this.mapEchart = this.$echarts.init(document.getElementById('mapEchart'))
-          }
-          this.mapEchart.setOption(this.mapOption);
-          this.resizeDom()
-        
-      },
-      //初始化echarts
-      cesiumInit() {
-          this.viewer = new this.Cesium.Viewer('cesiumContainer', {
-          animation: true, // 是否显示时间轴动画
-          baseLayerPicker: false,
-          // homeButton: false,
-          // geocoder: false,
-          timeline: false,
-          fullscreenButton: false,
-          // sceneModePicker: false,
-          navigationHelpButton: false,
-          imageryProvider:new this.Cesium.ArcGisMapServerImageryProvider({
-              url: 'https://server.arcgisonline.com/arcgis/rest/services/World_Terrain_Base/MapServer'
-          }),
+    //初始化echarts
+    cesiumInit() {
+      this.viewer = new this.Cesium.Viewer('cesiumContainer', {
+        animation: true, // 是否显示时间轴动画
+        baseLayerPicker: false,
+        // homeButton: false,
+        // geocoder: false,
+        timeline: false,
+        fullscreenButton: false,
+        // sceneModePicker: false,
+        navigationHelpButton: false,
+        imageryProvider: new this.Cesium.ArcGisMapServerImageryProvider({
+          url: 'https://server.arcgisonline.com/arcgis/rest/services/World_Terrain_Base/MapServer'
+        }),
 
       });
       this.viewer._cesiumWidget._creditContainer.style.display = "none";
-      },
-      //通过窗体高宽计算容器高宽,渲染echart图表的div的宽高度以达到自适应目的
-      resizeDom() {
-        console.log("高度自适应")
-        this.$echarts.init(document.getElementById('mapEchart')).resize()
-        // var mapEchart = document.getElementById('mapEchart')
-        // var mapEchart = document.getElementById('mapEchart')
-        // var mapEchart = document.getElementById('mapEchart')
-        // var mapEchart = document.getElementById('mapEchart')
-        // const boxHeight = document.getElementsByClassName("echarts-box")[0].clientHeight
-        // mapEchart.style.height = (boxHeight/2-65)+'px';
-        // mapEchart.style.height = (boxHeight/2-65)+'px';
-        // mapEchart.style.height = (boxHeight/2-65)+'px';
-        // mapEchart.style.height = (boxHeight/2-65)+'px';
-      },
-      echartsChange(){
-        this.timerDestory()
-        this.echartsInit();
-        this.setTimer();
-      },
-      timerDestory(){
-        if (this.timer) {
+    },
+    //通过窗体高宽计算容器高宽,渲染echart图表的div的宽高度以达到自适应目的
+    resizeDom() {
+      console.log("高度自适应")
+      this.$echarts.init(document.getElementById('mapEchart')).resize()
+      // var mapEchart = document.getElementById('mapEchart')
+      // var mapEchart = document.getElementById('mapEchart')
+      // var mapEchart = document.getElementById('mapEchart')
+      // var mapEchart = document.getElementById('mapEchart')
+      // const boxHeight = document.getElementsByClassName("echarts-box")[0].clientHeight
+      // mapEchart.style.height = (boxHeight/2-65)+'px';
+      // mapEchart.style.height = (boxHeight/2-65)+'px';
+      // mapEchart.style.height = (boxHeight/2-65)+'px';
+      // mapEchart.style.height = (boxHeight/2-65)+'px';
+    },
+    echartsChange() {
+      this.timerDestory()
+      this.echartsInit();
+      this.setTimer();
+    },
+    timerDestory() {
+      if (this.timer) {
         clearInterval(this.timer);
       }
-      },
-      submitForm(map) {
-        console.log("放入数据")
-        this.mapOption.series[0].data = this.map.data.friend.Planes;
-        this.mapOption.series[1].data = this.map.data.friend.Missiles;
-        this.mapOption.series[2].data = this.map.data.enemy.Radars; 
-        this.$echarts.init(document.getElementById(map)).setOption(this.mapOption);
-        console.log(this.mapOption);
-      },
-      instanceChange(val) {
-      
-      if(val.instanceName.includes("信号侦察")){
-        this.$wst.send({
-                url:'getESMParams',
-                data:{InstanceID: val.instanceID}
-        })
-      }else
-      if(val.instanceName.includes("导航")) {
-        this.$wst.send({
-                url:'getNavParams',
-                data:{InstanceID: val.instanceID}
-        })
+    },
+    submitForm(map) {
+      console.log("放入数据")
+      this.mapOption.series[0].data = this.map.data.friend.Planes;
+      this.mapOption.series[1].data = this.map.data.friend.Missiles;
+      this.mapOption.series[2].data = this.map.data.enemy.Radars;
+      this.$echarts.init(document.getElementById(map)).setOption(this.mapOption);
+      console.log(this.mapOption);
+    },
+    instanceChange(val) {
 
-      }else
-      if(val.instanceName.includes("雷达")) {
+      if (val.instanceName.includes("信号侦察")) {
         this.$wst.send({
-                url:'getRadarParams',
-                data:{InstanceID: val.instanceID}
+          url: 'getESMParams',
+          data: { InstanceID: val.instanceID }
         })
+      } else
+        if (val.instanceName.includes("导航")) {
+          this.$wst.send({
+            url: 'getNavParams',
+            data: { InstanceID: val.instanceID }
+          })
 
-      }else
-      if(val.instanceName.includes("电子攻击")) {
-        this.$wst.send({
-                url:'getECMParams',
-                data:{InstanceID: val.instanceID}
-        })
-      }
-      
-      }
-    },
-  })
-  </script>
+        } else
+          if (val.instanceName.includes("雷达")) {
+            this.$wst.send({
+              url: 'getRadarParams',
+              data: { InstanceID: val.instanceID }
+            })
+
+          } else
+            if (val.instanceName.includes("电子攻击")) {
+              this.$wst.send({
+                url: 'getECMParams',
+                data: { InstanceID: val.instanceID }
+              })
+            }
+
+    }
+  },
+})
+</script>
 <style scoped>
-.model{
+.model {
   position: absolute;
   top: 20px;
   left: 20px;
   z-index: 999;
   background-color: #66b1ff;
 }
-.table1{
+
+.table1 {
   position: absolute;
   top: 20px;
   right: 20px;
   z-index: 999;
   width: 400px;
   height: 400px;
-  
+
 }
 
-.table1 /deep/ .el-card__header{
+.table1 /deep/ .el-card__header {
   background-color: #66b1ff;
 }
 
-.table2{
+.table2 {
   position: absolute;
   top: 440px;
   right: 20px;
   z-index: 999;
   width: 400px;
   height: 400px;
-  
+
 }
 
-.table2 /deep/ .el-card__header{
+.table2 /deep/ .el-card__header {
   background-color: #66b1ff;
 }
 
 
 
-.box-card{
+.box-card {
   min-height: 100%;
   height: 100%;
 }
-/deep/ .el-card__body{
+
+/deep/ .el-card__body {
   height: 100% !important;
   padding: 0px !important;
 }
 
-.echarts-box{
+.echarts-box {
   height: 100%;
   width: 100%;
   background-image: url('~@/assets/image/map-bg.png');
   background-repeat: no-repeat;
-  background-size:100% 100%;
+  background-size: 100% 100%;
 }
-.main-layout{
+
+.main-layout {
   height: 100%;
   width: 100%;
 }
-.container{
+
+.container {
   height: 100%;
 }
-.mapecharts{
+
+.mapecharts {
   width: 100%;
   height: 100%;
 }
-.tableHeight{
+
+.tableHeight {
   flex-grow: 1;
   height: 33%;
 }
-.tableHeight /deep/ .el-card__body{
+
+.tableHeight /deep/ .el-card__body {
   height: calc(100% - 95px) !important;
-  
-}
-</style>  
+
+}</style>  

+ 17 - 18
vue/src/views/taskManagement/index.vue

@@ -8,7 +8,7 @@
         <el-table :data="leadPost">
           <el-table-column prop="time" label="时间"></el-table-column>
           <el-table-column prop="GroupID" label="编队号"></el-table-column>
-          <el-table-column prop="LeaderID" label="长机平台"></el-table-column>
+          <el-table-column prop="LeaderID" label="主导平台"></el-table-column>
           <el-table-column prop="Abstract" label="摘要"></el-table-column>
         </el-table>
       </el-card>
@@ -74,24 +74,27 @@
           </div>
         </el-card>
       </el-row>
-      <el-row>
+      <!-- <el-row>
         <el-card class="box-card">
           <div slot="header" class="clearfix">
             <span>任务监控管理</span>
           </div>
         </el-card>
-      </el-row>
+      </el-row> -->
       <el-row>
         <el-card class="box-card">
           <div slot="header" class="clearfix">
             <span>外部协同管理</span>
           </div>
-          <el-cascader :options="options" v-model="selectedOptions" @change="handleChange">
-          </el-cascader>
+          <el-select v-model="selectedOptions">
+            <el-option v-for="item in options" :key="item.label" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
           <el-select v-model="selectedCoopPlatform" @change="handleCoopPlatformChange">
             <el-option v-for="item in platforms" :key="item.platformID" :label="item.platformID" :value="item.value">
             </el-option>
           </el-select>
+          <el-button>发起协同</el-button>
         </el-card>
       </el-row>
     </el-col>
@@ -141,20 +144,16 @@ export default {
       radius: "",
       options: [
         {
-          value: "co-investigate",
-          label: "协同侦察",
-          children: [
-            { value: "air-air", label: "空-空协同侦察" },
-            { value: "air-land", label: "空-地协同侦察" },
-          ],
+          value: "co-missile",
+          label: "协同打击",
+        },
+        {
+          value: "co-jamming",
+          label: "协同干扰",
         },
         {
-          value: "co-opration",
-          label: "协同作战",
-          children: [
-            { value: "coop-jamming", label: "干扰机协同作战" },
-            { value: "coop-warning", label: "预警机协同作战" },
-          ],
+          value: "co-jamAndAttack",
+          label: "干、打协同",
         },
       ],
       options1: [
@@ -216,7 +215,7 @@ export default {
       }
     },
     handleChange() {
-      this.optionsCoopPlatform = platforms
+      // this.optionsCoopPlatform = platforms
     },
     handleCoopPlatformChange(val, oldVal) {
       this.selectedCoopPlatform = val