Haobin Luo 1 ano atrás
pai
commit
27b7edd595

+ 3 - 3
src/layout/Footer/index.vue

@@ -10,7 +10,7 @@
           style="font-size: 1.5em;font-weight: 600; display: table; margin: 0 auto;color: #19c3eb" v-if="!isCollapse"></i>
       </el-tooltip>
        </div>
-        <dv-decoration-6 style="width:300px;height:30px;" />
+        <!-- <dv-decoration-6 style="width:300px;height:30px;" /> -->
         <span style="margin-top:4px;margin-left:10px;">初始化状态</span>
         <dv-percent-pond :config="{value: init}" style="width:200px;margin-top: 5px;margin-left: 5px;" />
         <span style="margin-top:4px;margin-left:10px;">平台信息</span>
@@ -23,8 +23,8 @@
         </el-switch>  
         <span style="margin-top:4px;margin-left:10px;">平台编号</span>
         <el-input v-model="platformID" :disabled="true" style="margin-top:2px; margin-bottom:2px;width:100px;margin-left:10px;" class="platformId" size="mini"></el-input>
-        <dv-decoration-3 style="width:250px;height:30px;" />
-        <dv-decoration-10 style="width:300px;height:30px;" />
+        <!-- <dv-decoration-3 style="width:250px;height:30px;" />
+        <dv-decoration-10 style="width:300px;height:30px;" /> -->
     </el-footer>
 </template>
 <script>

+ 2 - 1
src/main.js

@@ -5,7 +5,8 @@ import 'element-ui/lib/theme-chalk/index.css';
 import router from './router'
 import store from './store'
 import echarts from 'echarts'
-import 'echarts/map/js/china' 
+import 'echarts/map/js/china'
+import 'echarts/map/js/world'
 import websocket from 'vue-native-websocket'
 import wst from  '@/utils/websocket'
 import SvgIcon from '@/components/svgIcon/index.vue'// svg component

+ 11 - 6
src/store/getters.js

@@ -3,8 +3,6 @@ const getters = {
   isCollapse: state => state.app.isCollapse,
   map: state => state.app.map,
   platforms: state => state.app.platforms,
-  esmInstances: state => state.app.esmInstances,
-  esmParams: state => state.app.esmParams,
   properties: state => state.app.properties,
   platformShow: state => state.app.platformShow,
   platformID: state => state.app.platformID,
@@ -12,10 +10,12 @@ const getters = {
   airLine: state => state.app.airLine,
   taskPlan: state => state.app.taskPlan,
   // 通信管理
-  netMembertable: state => state.app.netMembertable,
-  linkVUtable: state => state.app.linkVUtable,
-  linkJtable: state => state.app.linkJtable,
-  linkZYtable: state => state.app.linkZYtable,
+  linkVU: state => state.app.linkVU,
+  linkJ: state => state.app.linkJ,
+  linkZY: state => state.app.linkZY,
+  memberVU: state => state.app.memberVU,
+  memberJ: state => state.app.memberJ,
+  memberZY: state => state.app.memberZY,
   // 健康管理
   systemFunctionality: state => state.app.systemFunctionality,
   threads: state => state.app.threads,
@@ -23,5 +23,10 @@ const getters = {
   deviceVU: state => state.app.deviceVU,
   deviceJ: state => state.app.deviceJ,
   deviceZY: state => state.app.deviceZY,
+  // 雷侦 & 通侦
+  esmInstances: state => state.app.esmInstances,
+  esmParams: state => state.app.esmParams,
+  esmStatus: state => state.app.esmStatus,
+  esmData: state => state.app.esmData
 }
 export default getters

+ 118 - 97
src/store/modules/app.js

@@ -1,103 +1,124 @@
 const getDefaultState = () => {
-  return {
-    init: 0,
-    map: null,
-    isCollapse: true,
-    platforms: null,
-    esmInstances: null,
-    esmParams: null,
-    platformShow: false,
-    platformID: null,
-    leadPost: null,
-    airLine: {
-      TargetArea: 1,
-      radius: 300000
-    },
-    taskPlan: null,
-    // 通信管理
-    netMembertable: null,
-    linkVUtable: null,
-    linkJtable: null,
-    linkZYtable: null,
-    // 健康管理
-    systemFunctionality: null,
-    threads: null,
-    sensors: null,
-    deviceVU: null,
-    deviceJ: null,
-    deviceZY: null,
-  }
+    return {
+        init: 0,
+        map: null,
+        isCollapse: false,
+        platforms: null,
+        platformShow: false,
+        platformID: 8015,
+        leadPost: null,
+        airLine: {
+            TargetArea: 1,
+            radius: 300000
+        },
+        taskPlan: null,
+        // 通信管理
+        linkVU: null,
+        linkJ: null,
+        linkZY: null,
+        memberVU: null,
+        memberJ: null,
+        memberZY: null,
+        // 健康管理
+        systemFunctionality: null,
+        threads: null,
+        sensors: null,
+        deviceVU: null,
+        deviceJ: null,
+        deviceZY: null,
+        // 雷侦 & 通侦
+        esmInstances: null,
+        esmParams: {
+            InitParams: null,
+            CtrlParams: null
+        },
+        esmStatus: null,
+        esmData: null
+    }
 }
 
 const state = getDefaultState()
 
 const mutations = {
 
-  setInit(state, init) {
-    state.init = init
-  },
-  setMap(state, map) {
-    state.map = map
-  },
-  setPlatforms(state, platforms) {
-    state.platforms = platforms
-  },
-  setESMInstances(state, esmInstances) {
-    state.esmInstances = esmInstances
-  },
-  setESMParams(state, esmParams) {
-    state.esmParams = esmParams
-  },
-  setPlatformShow(state, platformShow) {
-    state.platformShow = platformShow
-  },
-  setPlatformID(state, platformID) {
-    state.platformID = platformID
-  },
-  setLeadPost(state, leadPost) {
-    state.leadPost = leadPost
-  },
-  setAirLine(state, airLine) {
-    state.airLine = airLine
-  },
-  setTaskPlan(state, taskPlan) {
-    state.taskPlan = taskPlan
-  },
-  // 通信管理
-  setNetMembertable(state, netMembertable) {
-    state.netMembertable = netMembertable
-  },
-  setLinkVUtable(state, linkVUtable) {
-    state.linkVUtable = linkVUtable
-  },
-  setLinkJtable(state, linkJtable) {
-    state.linkJtable = linkJtable
-  },
-  setLinkZYtable(state, linkZYtable) {
-    state.linkZYtable = linkZYtable
-  },
-  // 健康管理
-  setSystemFunctionality(state, systemFunctionality) {
-    state.systemFunctionality = systemFunctionality
-  },
-  setThreads(state, threads) {
-    state.threads = threads
-  },
-  setSensors(state, sensors) {
-    state.sensors = sensors
-  },
-  setDeviceVU(state, deviceVU) {
-    state.deviceVU = deviceVU
-  },
-  setDeviceJ(state, deviceJ) {
-    state.deviceJ = deviceJ
-  },
-  setDeviceZY(state, deviceZY) {
-    state.deviceZY = deviceZY
-  },
-  setIsCollapse(state, isCollapse) {
-    state.isCollapse = isCollapse
-  }
+    setInit(state, init) {
+        state.init = init
+    },
+    setMap(state, map) {
+        state.map = map
+    },
+    setPlatforms(state, platforms) {
+        state.platforms = platforms
+    },
+    setPlatformShow(state, platformShow) {
+        state.platformShow = platformShow
+    },
+    setPlatformID(state, platformID) {
+        state.platformID = platformID
+    },
+    setLeadPost(state, leadPost) {
+        state.leadPost = leadPost
+    },
+    setAirLine(state, airLine) {
+        state.airLine = airLine
+    },
+    setTaskPlan(state, taskPlan) {
+        state.taskPlan = taskPlan
+    },
+    // 通信管理
+    setLinkVU(state, linkVU) {
+        state.linkVU = linkVU
+    },
+    setLinkJ(state, linkJ) {
+        state.linkJ = linkJ
+    },
+    setLinkZY(state, linkZY) {
+        state.linkZY = linkZY
+    },
+    setMemberVU(state, memberVU) {
+        state.memberVU = memberVU
+    },
+    setMemberJ(state, memberJ) {
+        state.memberJ = memberJ
+    },
+    setMemberZY(state, memberZY) {
+        state.memberZY = memberZY
+    },
+    // 健康管理
+    setSystemFunctionality(state, systemFunctionality) {
+        state.systemFunctionality = systemFunctionality
+    },
+    setThreads(state, threads) {
+        state.threads = threads
+    },
+    setSensors(state, sensors) {
+        state.sensors = sensors
+    },
+    setDeviceVU(state, deviceVU) {
+        state.deviceVU = deviceVU
+    },
+    setDeviceJ(state, deviceJ) {
+        state.deviceJ = deviceJ
+    },
+    setDeviceZY(state, deviceZY) {
+        state.deviceZY = deviceZY
+    },
+    setIsCollapse(state, isCollapse) {
+        state.isCollapse = isCollapse
+    },
+    // 雷侦 & 通侦 
+    setESMInstances(state, esmInstances) {
+        state.esmInstances = esmInstances
+    },
+    setESMParams(state, esmParams) {
+        state.esmParams = esmParams
+    },
+    setESMStatus(state, esmStatus) {
+        state.esmStatus = esmStatus
+    },
+    setESMData(state, esmData) {
+        state.esmData = esmData
+    },
 }
 
 const actions = {
@@ -107,8 +128,8 @@ const actions = {
 }
 
 export default {
-  namespaced: true,
-  state,
-  mutations,
-  actions
+    namespaced: true,
+    state,
+    mutations,
+    actions
 }

+ 91 - 93
src/utils/websocket.js

@@ -1,112 +1,110 @@
 
 import Vue from 'vue'
 var vm = new Vue()
-var that = this; 
-var map = {data:null,type:null}
-export default{
-    
+var that = this;
+var map = { data: null, type: null }
+export default {
+
     websocketonopen(e) {
-    //  链接ws服务器,e.target.readyState = 0/1/2/3
-    //0 CONNECTING ,1 OPEN, 2 CLOSING, 3 CLOSED
-      console.log("WebSocket连接成功");
-      vm.$socket.send(JSON.stringify({
-        url:'getInit'
+        //  链接ws服务器,e.target.readyState = 0/1/2/3
+        //0 CONNECTING ,1 OPEN, 2 CLOSING, 3 CLOSED
+        console.log("WebSocket连接成功");
+        vm.$socket.send(JSON.stringify({
+            url: 'getInit'
         }))
-      
-      
-      
+
+
+
     },
- 
+
     websocketonerror(e) {
-      //错误
-      console.log("WebSocket连接发生错误");
+        //错误
+        console.log("WebSocket连接发生错误");
     },
-    
+
     websocketonmessage(e) {
-      //数据接收
-      console.log("已接收数据:")
-      console.log(JSON.parse(e.data))
-      messageresolve(e);
+        //数据接收
+        console.log("已接收数据:")
+        console.log(JSON.parse(e.data))
+        messageresolve(e);
     },
-    
+
     send(e) {
-      
-      //数据发送
-      vm.$socket.send(JSON.stringify(e));
-      
-      console.log("已发送数据:")
-      console.log(e)
+
+        //数据发送
+        vm.$socket.send(JSON.stringify(e));
+
+        console.log("已发送数据:")
+        console.log(e)
     },
 
     websocketclose(e) {
-    //关闭链接时触发
-      var code = e.code;//  状态码表 https://developer.mozilla.org/zh-CN/docs/Web/API/CloseEvent
-      var reason = e.reason;
-      var wasClean = e.wasClean;
-     console.log(code,reason,wasClean);
+        //关闭链接时触发
+        var code = e.code;//  状态码表 https://developer.mozilla.org/zh-CN/docs/Web/API/CloseEvent
+        var reason = e.reason;
+        var wasClean = e.wasClean;
+        console.log(code, reason, wasClean);
     },
 
     initWebSocket() {
-      //初始化weosocket,这些onopen是一个事件,当
-      vm.$socket.onopen = this.websocketonopen;
-      vm.$socket.onerror = this.websocketonerror;
-      vm.$socket.onmessage = this.websocketonmessage;
-      vm.$socket.onclose = this.websocketclose;
-  },
- 
+        //初始化weosocket,这些onopen是一个事件,当
+        vm.$socket.onopen = this.websocketonopen;
+        vm.$socket.onerror = this.websocketonerror;
+        vm.$socket.onmessage = this.websocketonmessage;
+        vm.$socket.onclose = this.websocketclose;
+    },
+
 }
-  
+
 //自定义消息处理函数
-var messageresolve = function (e){
-  let mac = JSON.parse(e.data);
-  if(mac.url == 'getInit'){
-     vm.$store.commit('app/setInit',mac.data.InitState);
-  }else  
-  if(mac.url == 'getGlobalMap'){
-     
-     map.data = mac.data
-     map.type = 'global'  
-     vm.$store.commit('app/setMap',null);
-     vm.$store.commit('app/setMap',map);
-  }else
-  if(mac.url == 'getCombineMap'){
-     
-    map.data = mac.data
-    map.type = 'combine'  
-    vm.$store.commit('app/setMap',null);
-    vm.$store.commit('app/setMap',map);
-  }else
-  if(mac.url == 'getRemoteMap'){
-      
-    map.data = mac.data
-    map.type = 'remote'  
-    vm.$store.commit('app/setMap',null);
-    vm.$store.commit('app/setMap',map);
-  }else
-  if(mac.url == 'getLocalMap'){
-      
-    map.data = mac.data
-    map.type = 'local'  
-    vm.$store.commit('app/setMap',null);
-    vm.$store.commit('app/setMap',map);
-  }else
-  if(mac.url == 'getPlatformTable'){
-    vm.$store.commit('app/setPlatforms',mac.data);
-  }else
-  if(mac.url == 'getInstanceTable'){
-    vm.$store.commit('app/setESMInstances',mac.data);
-  }else
-  if(mac.url == 'getESMParams'){
-    vm.$store.commit('app/setESMParams',mac.data);
-  }else
-  if(mac.url == 'getNavParams'){
-    vm.$store.commit('app/setProperties',mac.data);
-  }else
-  if(mac.url == 'getLeadPost'){
-    vm.$store.commit('app/setLeadPost',mac.data);
-  }
-  if(mac.url == 'getTaskPlan'){
-    vm.$store.commit('app/setAirLine',mac.data.Airline);
-    vm.$store.commit('app/setTaskPlan',mac.data.TaskPlan);
-  }
-}
+var messageresolve = function (e) {
+    let mac = JSON.parse(e.data);
+    // 初始化状态
+    if (mac.url == 'getInit') {
+        vm.$store.commit('app/setInit', mac.data.InitState);
+    }
+    // 态势显控
+    else if (mac.url == 'getGlobalMap' || mac.url == 'getCombineMap' || mac.url == 'getRemoteMap' || mac.url == 'getLocalMap') {
+        if (mac.url == 'getGlobalMap') {
+            map.type = 'global'
+        } else if (mac.url == 'getCombineMap') {
+            map.type = 'combine'
+        } else if (mac.url == 'getRemoteMap') {
+            map.type = 'remote'
+        } else if (mac.url == 'getLocalMap') {
+            map.type = 'local'
+        }
+        map.data = mac.data
+        vm.$store.commit('app/setMap', null);
+        vm.$store.commit('app/setMap', map);
+    }
+    // 平台表
+    else if (mac.url == 'getPlatformTable') {
+        vm.$store.commit('app/setPlatforms', mac.data);
+    }
+    // 雷侦 & 通侦
+    else if (mac.url == 'getESMInstances' || mac.url == 'getESMParams' || mac.url == 'setESMParams' || mac.url == 'getESMStatus' || mac.url == 'getESMData') {
+        if (mac.url == 'getESMInstances') {
+            vm.$store.commit('app/setESMInstances', mac.data);
+        }
+        else if (mac.url == 'getESMParams') {
+            vm.$store.commit('app/setESMParams', mac.data);
+        }
+        else if (mac.url == 'getESMStatus') {
+            vm.$store.commit('app/setESMStatus', mac.data);
+        }
+        else if (mac.url == 'getESMData') {
+            vm.$store.commit('app/setESMData', mac.data);
+        }
+    }
+    else if (mac.url == 'getNavParams') {
+        vm.$store.commit('app/setProperties', mac.data);
+    }
+    else if (mac.url == 'getLeadPost') {
+        vm.$store.commit('app/setLeadPost', mac.data);
+    }
+    if (mac.url == 'getTaskPlan') {
+        vm.$store.commit('app/setAirLine', mac.data.Airline);
+        vm.$store.commit('app/setTaskPlan', mac.data.TaskPlan);
+    }
+}

+ 113 - 64
src/views/functionalityManagement/index.vue

@@ -1,118 +1,147 @@
 <template>
-    <el-row :gutter="20" style="height:100%;">
-      <el-col :span="14" style="height:100%;">
-        <el-card class="box-card">
+  <el-row :gutter="20" class="fullheight">
+    <el-col :span="12" class="fullheight">
+        <el-card class="boxcard" style="height:33%">
           <div slot="header" class="clearfix">
             <span>系统健康状态:{{ platformID }}</span>
           </div>
-          <div style="display:flex;">
-            <div style="margin: 0 auto;">
-              <el-progress type="circle" :percentage="systemFunctionality" status="success"></el-progress>
+          <div style="display: flex; height: 100%">
+            <div style="margin: 0 auto">
+              <el-progress
+                type="circle"
+                :percentage="systemFunctionality"
+                status="success"
+              ></el-progress>
             </div>
           </div>
         </el-card>
-        <el-card class="box-card">
+        <el-card class="flexcard" style="height:33%">
           <div slot="header" class="clearfix">
             <span>软件线程健康状态</span>
           </div>
-          <div style="display:flex;">
+          <div style="display: flex">
             <template v-for="thread in threads">
               <el-card class="flexcard">
                 <div slot="header" class="clearfix">
                   <span>{{ thread.key }}</span>
                 </div>
-                <div style="display:flex;">
-                  <div style="margin: 0 auto;">
-                    <el-progress type="circle" :percentage="thread.value" status="success" :width="70"></el-progress>
+                <div style="display: flex; height: 100%">
+                  <div style="margin: 0 auto">
+                    <el-progress
+                      type="circle"
+                      :percentage="thread.value"
+                      status="success"
+                      :width="80"
+                    ></el-progress>
                   </div>
                 </div>
               </el-card>
             </template>
           </div>
         </el-card>
-        <el-card class="box-card">
+        <el-card class="flexcard" style="height:34%">
           <div slot="header" class="clearfix">
             <span>传感器健康状态</span>
           </div>
-          <div style="display:flex;">
+          <div style="display: flex">
             <template v-for="sensor in sensors">
               <el-card class="flexcard">
                 <div slot="header" class="clearfix">
                   <span>{{ sensor.key }}</span>
                 </div>
-                <div style="display:flex;">
-                  <div style="margin: 0 auto;">
-                    <el-progress type="circle" :percentage="sensor.value" status="success" :width="80"></el-progress>
+                <div style="display: flex; height: 100%">
+                  <div style="margin: 0 auto">
+                    <el-progress
+                      type="circle"
+                      :percentage="sensor.value"
+                      status="success"
+                      :width="80"
+                    ></el-progress>
                   </div>
                 </div>
               </el-card>
             </template>
           </div>
         </el-card>
-      </el-col>
-      <el-col :span="10" style="height:100%;">
-        <el-card class="box-card" style="height:33%;">
+    </el-col>
+    <el-col :span="12" class="fullheight">
+        <el-card class="box-card" style="height: 33%">
           <div slot="header" class="clearfix">
             <span>V/U通信设备健康状态</span>
           </div>
-          <div style="display:flex;">
+          <div style="display: flex">
             <template v-for="i in deviceVU">
               <el-card class="flexcard">
                 <div slot="header" class="clearfix">
                   <span>{{ i.key }}</span>
                 </div>
-                <div style="display:flex;">
-                  <div style="margin: 0 auto;">
-                    <el-progress type="circle" :percentage="i.value" status="success" :width="60"></el-progress>
+                <div style="display: flex">
+                  <div style="margin: 0 auto">
+                    <el-progress
+                      type="circle"
+                      :percentage="i.value"
+                      status="success"
+                      :width="60"
+                    ></el-progress>
                   </div>
                 </div>
               </el-card>
             </template>
           </div>
         </el-card>
-        <el-card class="box-card" style="height:33%;">
+        <el-card class="box-card" style="height: 33%">
           <div slot="header" class="clearfix">
             <span>J通信设备健康状态</span>
           </div>
-          <div style="display:flex;">
+          <div style="display: flex">
             <template v-for="i in deviceJ">
               <el-card class="flexcard">
                 <div slot="header" class="clearfix">
                   <span>{{ i.key }}</span>
                 </div>
-                <div style="display:flex;">
-                  <div style="margin: 0 auto;">
-                    <el-progress type="circle" :percentage="i.value" status="success" :width="60"></el-progress>
+                <div style="display: flex">
+                  <div style="margin: 0 auto">
+                    <el-progress
+                      type="circle"
+                      :percentage="i.value"
+                      status="success"
+                      :width="60"
+                    ></el-progress>
                   </div>
                 </div>
               </el-card>
             </template>
           </div>
         </el-card>
-        <el-card class="box-card" style="height:34%;">
+        <el-card class="box-card" style="height: 34%">
           <div slot="header" class="clearfix">
             <span>ZY通信设备健康状态</span>
           </div>
-          <div style="display:flex;">
+          <div style="display: flex">
             <template v-for="i in deviceZY">
               <el-card class="flexcard">
                 <div slot="header" class="clearfix">
                   <span>{{ i.key }}</span>
                 </div>
-                <div style="display:flex;">
-                  <div style="margin: 0 auto;">
-                    <el-progress type="circle" :percentage="i.value" status="success" :width="60"></el-progress>
+                <div style="display: flex">
+                  <div style="margin: 0 auto">
+                    <el-progress
+                      type="circle"
+                      :percentage="i.value"
+                      status="success"
+                      :width="60"
+                    ></el-progress>
                   </div>
                 </div>
               </el-card>
             </template>
           </div>
         </el-card>
-      </el-col>
-    </el-row>
+    </el-col>
+  </el-row>
 </template>
 <script>
-import { mapGetters } from 'vuex'
+import { mapGetters } from "vuex";
 export default {
   data() {
     return {
@@ -123,7 +152,7 @@ export default {
         { key: "图侦接口", value: 0 },
         { key: "情报接口", value: 100 },
         { key: "多站分选", value: 100 },
-        { key: "多站定位", value: 100 }
+        { key: "多站定位", value: 100 },
       ],
       sensorsTemplate: [
         { key: "导航模拟器", value: 100 },
@@ -147,50 +176,70 @@ export default {
         { key: "功放", value: 0 },
         { key: "接收机", value: 0 },
         { key: "数据处理", value: 0 },
-      ]
-    }
+      ],
+    };
   },
   computed: {
     ...mapGetters([
-      'platformID',
-      'systemFunctionality',
-      'threads',
-      'sensors',
-      'deviceVU',
-      'deviceJ',
-      'deviceZY'
+      "platformID",
+      "systemFunctionality",
+      "threads",
+      "sensors",
+      "deviceVU",
+      "deviceJ",
+      "deviceZY",
     ]),
   },
   watch: {
     platformID: {
       handler: function (val, oldVal) {
-        this.$store.commit('app/setSystemFunctionality', this.systemFunctionalityTemplate);
-        this.$store.commit('app/setThreads', this.threadsTemplate);
-        this.$store.commit('app/setSensors', this.sensorsTemplate);
-        this.$store.commit('app/setDeviceVU', this.deviceVUTemplate);
-        this.$store.commit('app/setDeviceJ', this.deviceJTemplate);
-        this.$store.commit('app/setDeviceZY', this.deviceZYTemplate);
-      }
-    }
+        this.$store.commit(
+          "app/setSystemFunctionality",
+          this.systemFunctionalityTemplate
+        );
+        this.$store.commit("app/setThreads", this.threadsTemplate);
+        this.$store.commit("app/setSensors", this.sensorsTemplate);
+        this.$store.commit("app/setDeviceVU", this.deviceVUTemplate);
+        this.$store.commit("app/setDeviceJ", this.deviceJTemplate);
+        this.$store.commit("app/setDeviceZY", this.deviceZYTemplate);
+      },
+    },
   },
   mounted() {
     if (this.platformID != null) {
-      this.$store.commit('app/setSystemFunctionality', this.systemFunctionalityTemplate);
-      this.$store.commit('app/setThreads', this.threadsTemplate);
-      this.$store.commit('app/setSensors', this.sensorsTemplate);
-      this.$store.commit('app/setDeviceVU', this.deviceVUTemplate);
-      this.$store.commit('app/setDeviceJ', this.deviceJTemplate);
-      this.$store.commit('app/setDeviceZY', this.deviceZYTemplate);
+      this.$store.commit(
+        "app/setSystemFunctionality",
+        this.systemFunctionalityTemplate
+      );
+      this.$store.commit("app/setThreads", this.threadsTemplate);
+      this.$store.commit("app/setSensors", this.sensorsTemplate);
+      this.$store.commit("app/setDeviceVU", this.deviceVUTemplate);
+      this.$store.commit("app/setDeviceJ", this.deviceJTemplate);
+      this.$store.commit("app/setDeviceZY", this.deviceZYTemplate);
     }
-  }
-}
-
+  },
+};
 </script>
 
 <style scoped>
 .flexcard {
   flex: 1;
   margin: 0 auto;
-
+}
+.boxcard {
+  height: 33%;
+}
+.fullheight {
+  height: 100%;
+  min-height: 100%;
+  max-height: 100%;
+}
+.clearfix:before,
+.clearfix:after {
+  display: table;
+  content: "";
+}
+.clearfix:after {
+  clear: both;
 }
 </style>

+ 3 - 3
src/views/intelESMProcess/index.vue

@@ -20,7 +20,7 @@
               <el-table-column prop="targetFreq" label="频率(MHz)"></el-table-column>
               <el-table-column prop="targetPRI" label="PRI(MHz)"></el-table-column>
             </el-table>
-            <el-button>发送选中情报</el-button>
+            <el-button type="primary">发送选中情报</el-button>
             <el-button>忽略选中目标</el-button>
             <el-button>目标识别</el-button>
           </div>
@@ -44,7 +44,7 @@
               <el-table-column prop="targetFreq" label="频率(MHz)"></el-table-column>
               <el-table-column prop="targetPRI" label="PRI(MHz)"></el-table-column>
             </el-table>
-            <el-button>发送选中情报</el-button>
+            <el-button type="primary">发送选中情报</el-button>
             <el-button>忽略选中目标</el-button>
             <el-button>目标识别</el-button>
           </div>
@@ -71,7 +71,7 @@
             <el-table-column prop="targetModel" label="型号"></el-table-column>
             <el-table-column prop="targetMode" label="模式"></el-table-column>
           </el-table>
-          <el-button>发送选中情报</el-button>
+          <el-button type="primary">发送选中情报</el-button>
           <el-button>忽略选中目标</el-button>
         </div>
       </el-card>

+ 434 - 268
src/views/networkManagement/index.vue

@@ -1,296 +1,466 @@
 <template>
-  <div style="height:100%;">
-      <el-row style="height:65%;" gutter="20">
-
-          <el-col :span="6" style="height:100%">
-              <el-row style="height: 28px;">
-                  <span class="select">
-                          <span style="width:40%;text-align: center;">当前链路:</span>
-                          <el-select style="width:60%;" v-model="currentSensor" placeholder="选择链路" @change="instanceChange" size="mini">
-                              <el-option v-for="item in instancetable" :key="item.instanceID" :label="item.instanceName"
-                                  :value="item.instanceID">
-                              </el-option>
-                          </el-select>
-                  </span>
-                  
-              </el-row>
-              <el-row style="height: calc(100% - 28px);">
-                  <el-card class="tableHeight">
-                      <div slot="header" class="clearfix">
-                          <span>工作参数</span>
-                      </div>
-                      <el-form  label-width="80px">
-                          <el-form-item label="链路开关">
-                              <el-switch v-model="Switch"></el-switch>
-                          </el-form-item>
-                          <el-form-item label="链路模式">
-                            <el-select style="width:60%;" v-model="currentSensor" placeholder="选择链路模式" @change="instanceChange" size="mini">
-                              <el-option v-for="item in instancetable" :key="item.instanceID" :label="item.instanceName"
-                                  :value="item.instanceID">
-                              </el-option>
-                            </el-select>
-                          </el-form-item>
-                          <el-form-item label="工作模式">
-                              <el-input v-model="model"></el-input>
-                          </el-form-item>
-                          <el-form-item>
-                              <el-button type="primary" @click="onSubmit">变更</el-button>
-                              <el-button>撤消</el-button>
-                          </el-form-item>
-                      </el-form>`
-                  </el-card>
-              </el-row>
-          </el-col>
-          <el-col :span="12" style="height:100%;">
-              <el-card class="radar">
-                  <div slot="header" class="clearfix">
-                      <span>通信状态显示</span>
-                  </div>
-                  <div class="echarts-box">
-                      <div id="radarEchart" ></div>
-                  </div>
-              </el-card>
-          </el-col>
-          <el-col :span="6" style="height:100%;">
-              <el-card class="tableHeight">
-                  <div slot="header" class="clearfix">
-                      <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>
-              </el-card>
-          </el-col>
-      </el-row>
-      <el-row style="height:35%;">
-          <el-card class="target">
-              <div slot="header" class="clearfix">
-                  <span>成员列表</span>
-                  <el-button style="float: right;" round size="mini">发送到协同平台</el-button>
-              </div>
-              <el-table :data="ESMresults" class="targetTable" height="100%;">
-                  <!-- <el-table-column prop="az" label="方位角" width="150">
-                  </el-table-column> -->
-                  <el-table-column prop="az" label="方位角(°)">
-                  </el-table-column>
-                  <el-table-column prop="range" label="距离(km)">
-                  </el-table-column>
-                  <el-table-column prop="type" label="类型">
-                  </el-table-column>
-                  <el-table-column prop="freq" label="频率">
-                  </el-table-column>
-                  <el-table-column prop="PRF" label="PRF">
-                  </el-table-column>
-                  <el-table-column prop="lon" label="经度">
-                  </el-table-column>
-                  <el-table-column prop="lat" label="纬度">
-                  </el-table-column>
-                  <el-table-column prop="height" label="高度">
-                  </el-table-column>
-              </el-table>
+  <div style="height: 100%">
+    <el-row style="height: 65%" :gutter="20">
+      <el-col :span="6" style="height: 100%">
+        <el-row style="height: 28px">
+          <span class="select">
+            <span style="width: 40%; text-align: center">当前链路:</span>
+            <el-select
+              style="width: 60%"
+              v-model="currentLink"
+              placeholder="选择链路"
+              size="mini"
+            >
+              <!-- @change="instanceChange" -->
+              <el-option
+                v-for="item in linktable"
+                :key="item.linkID"
+                :label="item.linkName"
+                :value="item.linkID"
+              >
+              </el-option>
+            </el-select>
+          </span>
+        </el-row>
+        <el-row style="height: calc(100% - 28px)">
+          <el-card class="tableHeight">
+            <div slot="header" class="clearfix">
+              <span>链路参数设置</span>
+            </div>
+            <el-form label-width="80px">
+              <el-form-item label="链路开关">
+                <el-switch v-model="currentLinkProp.linkSwitch"></el-switch>
+              </el-form-item>
+              <template v-if="currentLinkProp.linkSwitch === true">
+                <el-form-item label="链路静默">
+                  <el-switch v-model="currentLinkProp.linkSilent"></el-switch>
+                </el-form-item>
+                <el-form-item label="链路模式">
+                  <el-select
+                    style="width: 60%"
+                    v-model="currentLinkProp.linkMode"
+                    placeholder="选择链路模式"
+                    size="mini"
+                  >
+                    <el-option
+                      v-for="item in instancetable"
+                      :key="item.instanceID"
+                      :label="item.instanceName"
+                      :value="item.instanceID"
+                    >
+                    </el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="工作模式">
+                  <el-input v-model="model"></el-input>
+                </el-form-item>
+              </template>
+              <el-form-item>
+                <el-button type="primary" @click="onSubmit">变更</el-button>
+                <el-button>撤消</el-button>
+              </el-form-item>
+            </el-form>
           </el-card>
-      </el-row>
+        </el-row>
+      </el-col>
+      <el-col :span="12" style="height: 100%">
+        <el-card class="radar">
+          <div slot="header" class="clearfix">
+            <span>通信状态显示</span>
+          </div>
+          <div class="echarts-box">
+            <div id="radarEchart"></div>
+          </div>
+        </el-card>
+      </el-col>
+      <el-col :span="6" style="height: 100%">
+        <el-card class="tableHeight">
+          <div slot="header" class="clearfix">
+            <span>链路状态</span>
+          </div>
+          <el-table :data="linkState">
+            <el-table-column prop="key" label="属性"></el-table-column>
+            <el-table-column prop="value" label="值"></el-table-column>
+          </el-table>
+        </el-card>
+      </el-col>
+    </el-row>
+    <el-row style="height: 35%">
+      <el-card class="target">
+        <div slot="header" class="clearfix">
+          <span>成员列表</span>
+        </div>
+        <el-table :data="groupTable" height="100%;">
+          <el-table-column prop="platID" label="平台ID"> </el-table-column>
+          <el-table-column prop="platType" label="平台类型"> </el-table-column>
+          <el-table-column prop="platRole" label="平台身份"> </el-table-column>
+          <el-table-column prop="isCurrent" label="是否为本平台">
+          </el-table-column>
+          <el-table-column prop="isOnline" label="是否在网"> </el-table-column>
+          <el-table-column prop="isPrimary" label="是否为主站">
+          </el-table-column>
+        </el-table>
+      </el-card>
+    </el-row>
   </div>
 </template>
 
 <script>
-import { mapGetters } from 'vuex'
+import { mapGetters } from "vuex";
 export default {
   computed: {
-      ...mapGetters([
-          'map',
-          'init',
-          'platforms',
-          'esmInstances',
-          'esmParams',
-          'platformID'
-      ]),
+    ...mapGetters([
+      "map",
+      "init",
+      "platforms",
+      "platformID",
+      "linkVU",
+      "linkJ",
+      "linkZY",
+      "memberVU",
+      "memberJ",
+      "memberZY"
+    ]),
   },
   watch: {
-      init: {
-          handler: function (val, oldVal) {
-
-              this.setTimer();
-          }
+    init: {
+      handler: function (val, oldVal) {
+        this.setTimer();
       },
-      platformID: {
-          handler: function (val, oldVal) {
-              this.$wst.send({
-                  url: 'getInstanceTable',
-                  data: { PlatformID: val }
-              })
-          }
+    },
+    platformID: {
+      handler: function (val, oldVal) {
+        this.$wst.send({
+          url: "getInstanceTable",
+          data: { PlatformID: val },
+        });
       },
-      esmInstances: {
-          handler: function (val, oldVal) {
-
-              this.instancetable = val
+    },
+    currentLink: {
+      handler: function (val, oldVal) {
+        this.networkInit();
+        if (val === 1) {
+          this.currentLinkProp.linkSwitch = true;
+          this.currentLinkProp.linkSilent = true;
+          this.linkState = this.linkVU;
+          this.groupTable = this.memberVU;
+          for (let i = 0; i < 4; i++) {
+            if (this.groupTable.at(i).platID === 8015)
+              this.groupTable.at(i).isCurrent = "是";
+            else this.groupTable.at(i).isCurrent = "否";
           }
-      },
-      esmParams: {
-          handler: function (val, oldVal) {
-              this.propertyinittable = val.InitParams
-              this.propertycontroltable = val.CtrlParams
+        } else if (val === 2) {
+          this.currentLinkProp.linkSwitch = true;
+          this.currentLinkProp.linkSilent = false;
+          this.linkState = this.linkJ;
+          this.groupTable = this.memberJ;
+          for (let i = 0; i < 3; i++) {
+            if (this.groupTable.at(i).platID === 8015)
+              this.groupTable.at(i).isCurrent = "是";
+            else this.groupTable.at(i).isCurrent = "否";
           }
-      }
+        } else if (val === 3) {
+          this.currentLinkProp.linkSwitch = false;
+          this.currentLinkProp.linkSilent = true;
+          this.linkState = this.linkZY;
+          this.groupTable = this.memberZY;
+          for (let i = 0; i < 2; i++) {
+            if (this.groupTable.at(i).platID === 8015)
+              this.groupTable.at(i).isCurrent = "是";
+            else this.groupTable.at(i).isCurrent = "否";
+          }
+        }
+      },
+    },
   },
   data() {
-      return {
-          data: [],
-          ESMresults: [],
-          currentSensor: null,
-          frequencevalue: '',
-          workvalue: '',
-          frequenceAverageShow: false,
-          radarEchart: null,
-          instancetable: null,
-          instanceID: null,
-          propertyinittable: null,
-          propertycontroltable: null,
-          Switch: null,
-          options: [{
-              value: 1,
-              label: '0.5~2GHz'
-          }, {
-              value: 2,
-              label: '2~5GHz'
-          }, {
-              value: 3,
-              label: '5~18GHz'
-          }, {
-              value: 4,
-              label: '自定义'
-          }],
-          options1: [{
-              value: 1,
-              label: '干涉仪'
-          }, {
-              value: 2,
-              label: 'DBF'
-          }, {
-              value: 3,
-              label: 'ABF'
-          }, {
-              value: 4,
-              label: 'SEI'
-          }, {
-              value: 5,
-              label: '精分析'
-          }
-          ],
-
-          echartoption: {
-              polar: {},
-              tooltip: {
-                  trigger: 'axis',
-                  axisPointer: {
-                      type: 'cross'
-                  }
-              },
-              angleAxis: {
-                  max: 360,
-                  min: 0,
-                  type: 'value',
-                  startAngle: 90,
+    return {
+      currentLink: null,
+      currentLinkProp: {
+        linkSwitch: false,
+        linkSilent: true,
+      },
+      frequencevalue: "",
+      workvalue: "",
+      frequenceAverageShow: false,
+      radarEchart: null,
+      instancetable: null,
+      linktable: [
+        {
+          linkID: 1,
+          linkName: "V/U",
+        },
+        {
+          linkID: 2,
+          linkName: "J",
+        },
+        {
+          linkID: 3,
+          linkName: "ZY",
+        }
+      ],
+      linkVUtemplate: [
+        {
+          key: "链路号",
+          value: 1,
+        },
+        {
+          key: "链路开关",
+          value: 1,
+        },
+        {
+          key: "静默状态",
+          value: 1,
+        },
+        {
+          key: "通信速率",
+          value: 2,
+        },
+        {
+          key: "通信质量",
+          value: 5,
+        },
+        {
+          key: "频率集",
+          value: 144,
+        },
+      ],
+      linkJtemplate: [
+        {
+          key: "链路号",
+          value: 2,
+        },
+        {
+          key: "链路开关",
+          value: 1,
+        },
+        {
+          key: "静默状态",
+          value: 0,
+        },
+        {
+          key: "通信速率",
+          value: 2,
+        },
+        {
+          key: "通信质量",
+          value: 5,
+        },
+        {
+          key: "频率集",
+          value: 144,
+        },
+      ],
+      linkZYtemplate: [
+        {
+          key: "链路号",
+          value: 1,
+        },
+        {
+          key: "链路开关",
+          value: 0,
+        },
+        {
+          key: "静默状态",
+          value: 1,
+        },
+        {
+          key: "通信速率",
+          value: 2,
+        },
+        {
+          key: "通信质量",
+          value: 5,
+        },
+        {
+          key: "频率集",
+          value: 144,
+        },
+      ],
+      memberVUtemplate: [
+        {
+          platID: 8013,
+          platType: "干扰机",
+          platRole: "长机",
+          isCurrent: null,
+          isOnline: "在网",
+          isPrimary: "副站",
+        },
+        {
+          platID: 8014,
+          platType: "干扰机",
+          platRole: "僚机",
+          isCurrent: null,
+          isOnline: "退网",
+          isPrimary: "副站",
+        },
+        {
+          platID: 8015,
+          platType: "侦察机",
+          platRole: "僚机",
+          isCurrent: null,
+          isOnline: "在网",
+          isPrimary: "主站",
+        },
+        {
+          platID: 8016,
+          platType: "侦察机",
+          platRole: "僚机",
+          isCurrent: null,
+          isOnline: "在网",
+          isPrimary: "副站",
+        },
+      ],
+      memberJtemplate: [
+        {
+          platID: 8001,
+          platType: "预警机",
+          platRole: "长机",
+          isCurrent: null,
+          isOnline: "在网",
+          isPrimary: "主站",
+        },
+        {
+          platID: 8015,
+          platType: "侦察机",
+          platRole: "僚机",
+          isCurrent: null,
+          isOnline: "在网",
+          isPrimary: "副站",
+        },
+        {
+          platID: 8016,
+          platType: "侦察机",
+          platRole: "僚机",
+          isCurrent: null,
+          isOnline: "在网",
+          isPrimary: "副站",
+        },
+      ],
+      memberZYtemplate: [
+        {
+          platID: 8015,
+          platType: "侦察机",
+          platRole: "无报告",
+          isCurrent: null,
+          isOnline: "在网",
+          isPrimary: "副站",
+        },
+        {
+          platID: 6000,
+          platType: "QB中心",
+          platRole: "无报告",
+          isCurrent: null,
+          isOnline: "在网",
+          isPrimary: "主站",
+        },
+      ],
+      linkState: [],
+      instanceID: null,
 
+      groupTable: [],
 
-              },
-              radiusAxis: {
-                  max: 10,
-                  min: 0,
-                  splitArea: {
-                      show: true,
-                  },
-                  axisLine: {
-                      lineStyle: {
-                          color: '#f7f7f7' // 设置轴线的颜色为红色
-                      }
-                  },
-                  axisPointer: {
-                      show: false
-                  }
-              },
-              series: [
-                  {
-                      coordinateSystem: 'polar',
-                      name: 'line',
-                      type: 'scatter',
-                      data: null,
-                  }
-              ]
+      echartoption: {
+        polar: {},
+        tooltip: {
+          trigger: "axis",
+          axisPointer: {
+            type: "cross",
           },
-          // radarData: {
-          //     [12, 32,42]
-          // }
-      }
+        },
+        angleAxis: {
+          max: 360,
+          min: 0,
+          type: "value",
+          startAngle: 90,
+        },
+        radiusAxis: {
+          max: 10,
+          min: 0,
+          splitArea: {
+            show: true,
+          },
+          axisLine: {
+            lineStyle: {
+              color: "#f7f7f7", // 设置轴线的颜色为红色
+            },
+          },
+          axisPointer: {
+            show: false,
+          },
+        },
+        series: [
+          {
+            coordinateSystem: "polar",
+            name: "line",
+            type: "scatter",
+            data: null,
+          },
+        ],
+      },
+      // radarData: {
+      //     [12, 32,42]
+      // }
+    };
   },
   mounted() {
-      for (let i = 0; i <= 7; i++) {
-          let theta = (i / 100) * 180 + Math.random() * 90;
-          let r = 5 * (1 + Math.sin((theta / 180) * Math.PI));
-          this.data.push([r, theta]);
-
-          this.ESMresults.push(
-              {
-                  "az": theta,
-                  "range": r
-              }
-          );
-      }
+    for (let i = 0; i <= 7; i++) {
+      let theta = (i / 100) * 180 + Math.random() * 90;
+      let r = 5 * (1 + Math.sin((theta / 180) * Math.PI));
+      this.data.push([r, theta]);
 
-      this.echartoption.series[0].data = this.data
+      this.ESMresults.push({
+        az: theta,
+        range: r,
+      });
+    }
 
-      this.echartsInit();
-      // 页面加载设置高度自适应
-      window.onresize = () => {
+    this.echartoption.series[0].data = this.data;
 
-          this.resizeDom()
-      };
-      // 页面加载设置高度自适应
-      this.resizeDom()
+    this.echartsInit();
+    this.networkInit();
+    // 页面加载设置高度自适应
+    window.onresize = () => {
+      this.resizeDom();
+    };
+    // 页面加载设置高度自适应
+    this.resizeDom();
   },
   methods: {
-      frequenceChange() {
-          if (this.frequencevalue == 4) {
-              this.frequenceAverageShow = true;
-          } else {
-              this.frequenceAverageShow = false;
-          }
-      },
-      echartsInit() {
-          this.$echarts.init(document.getElementById('radarEchart')).setOption(this.echartoption);
-          if (this.localEchart == null) {
-              this.radarEchart = this.$echarts.init(document.getElementById('radarEchart'))
-          } else {
-              this.radarEchart.setOption(this.echartoption);
-          }
-      },
-      //通过窗体高宽计算容器高宽,渲染echart图表的div的宽高度以达到自适应目的
-      resizeDom() {
-          console.log("高度自适应")
-          const boxHeight = document.getElementsByClassName("echarts-box")[0].clientHeight
-          var Echart = document.getElementById('radarEchart')
-          Echart.style.height = (boxHeight-65)+'px';
-          this.$echarts.init(document.getElementById('radarEchart')).resize()
-      },
-      instanceChange(val) {
-
-          this.$wst.send({
-              url: 'getESMParams',
-              data: {
-                  InstanceID: val.instanceID,
-                  PlatformID: this.platformID
-              }
-          })
+    networkInit() {
+      this.$store.commit("app/setLinkVU",this.linkVUtemplate);
+      this.$store.commit("app/setLinkJ",this.linkJtemplate);
+      this.$store.commit("app/setLinkZY",this.linkZYtemplate);
+      this.$store.commit("app/setMemberVU",this.memberVUtemplate);
+      this.$store.commit("app/setMemberJ",this.memberJtemplate);
+      this.$store.commit("app/setMemberZY",this.memberZYtemplate);
+    },
+    echartsInit() {
+      this.$echarts
+        .init(document.getElementById("radarEchart"))
+        .setOption(this.echartoption);
+      if (this.localEchart == null) {
+        this.radarEchart = this.$echarts.init(
+          document.getElementById("radarEchart")
+        );
+      } else {
+        this.radarEchart.setOption(this.echartoption);
       }
+    },
+    //通过窗体高宽计算容器高宽,渲染echart图表的div的宽高度以达到自适应目的
+    resizeDom() {
+      console.log("高度自适应");
+      const boxHeight =
+        document.getElementsByClassName("echarts-box")[0].clientHeight;
+      var Echart = document.getElementById("radarEchart");
+      Echart.style.height = boxHeight - 65 + "px";
+      this.$echarts.init(document.getElementById("radarEchart")).resize();
+    },
   },
-}
+};
 </script>
 <style scoped>
 .tableHeight {
-  
 }
 
 .echarts-box {
@@ -298,15 +468,11 @@ export default {
   width: 100%;
 }
 
-
 .radar {
   height: 100%;
 }
 
-
-.select{
- display: flex;
+.select {
+  display: flex;
 }
-
-
 </style>

+ 400 - 268
src/views/radarInvestigation/index.vue

@@ -1,304 +1,436 @@
 <template>
-    <div style="height:100%;">
-        <el-row style="height:65%;" gutter="20">
+  <div style="height: 100%">
+    <el-row style="height: 67%" :gutter="20">
+      <el-col :span="6" style="height: 100%">
+        <el-row style="height: 28px">
+          <span class="select">
+            <span style="width: 40%; text-align: center">当前传感器:</span>
+            <el-select
+              style="width: 60%"
+              v-model="currentESM"
+              placeholder="选择传感器"
+              @change="instanceChange"
+              size="mini"
+            >
+              <el-option
+                v-for="item in esmInstances"
+                :key="item.instanceID"
+                :label="item.instanceName"
+                :value="item.instanceID"
+              >
+              </el-option>
+            </el-select>
+          </span>
+        </el-row>
+        <el-row style="height: calc(100% - 28px)">
+          <el-card class="tableHeight">
+            <div slot="header" class="clearfix">
+              <span>工作参数设置</span>
+            </div>
+            <el-table :data="esmParams.CtrlParams" style="width: 100%">
+              <!-- @current-change="instanceChange" -->
+              <el-table-column
+                width="130"
+                prop="key"
+                label="属性"
+              ></el-table-column>
+              <el-table-column
+                width="80"
+                prop="value"
+                label="值"
+              ></el-table-column>
+              <el-table-column label="操作">
+                <template slot-scope="scope">
+                  <el-switch
+                    v-if="scope.row.key == '工作状态'"
+                    active-text="打开"
+                    inactive-text="关闭"
+                    v-model="currentESMParam.uRrPowerOn"
+                  ></el-switch>
+                  <el-select
+                    v-if="scope.row.key == '工作模式'"
+                    v-model="currentESMParam.uRrWorkMode"
+                    size="mini"
+                  >
+                    <el-option
+                      v-for="item in esmModes"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    >
+                    </el-option>
+                  </el-select>
+
+                  <el-input-number
+                    v-if="scope.row.key == '侦察方位中心'"
+                    :precision="2"
+                    :step="0.1"
+                    :max="10"
+                    :min="-10"
+                    size="small"
+                    v-model="currentESMParam.dScanAzCentDeg"
+                  ></el-input-number>
+
+                  <el-input-number
+                    v-if="scope.row.key == '侦察俯仰中心'"
+                    :precision="2"
+                    :step="0.1"
+                    :max="10"
+                    :min="-10"
+                    v-model="currentESMParam.dScanElCentDeg"
+                    size="small"
+                  ></el-input-number>
+
+                  <el-input-number
+                    v-if="scope.row.key == '景幅行数'"
+                    :step="5"
+                    :max="100"
+                    :min="5"
+                    v-model="currentESMParam.uLineNumPerFrame"
+                    size="small"
+                  ></el-input-number>
 
-            <el-col :span="6" style="height:100%">
-                <el-row style="height: 28px;">
-                    <span class="select">
-                            <span style="width:40%;text-align: center;">当前传感器:</span>
-                            <el-select style="width:60%;" v-model="currentSensor" placeholder="选择传感器" @change="instanceChange" size="mini">
-                                <el-option v-for="item in instancetable" :key="item.instanceID" :label="item.instanceName"
-                                    :value="item.instanceID">
-                                </el-option>
-                            </el-select>
-                    </span>
-                    
-                </el-row>
-                <el-row style="height: calc(100% - 28px);">
-                    <el-card class="tableHeight">
-                        <div slot="header" class="clearfix">
-                            <span>工作参数</span>
-                        </div>
-                        <el-form  label-width="80px">
-                        `   <el-form-item label="工作模式">
-                                <el-input v-model="model"></el-input>
-                            </el-form-item>
-                            <el-form-item label="开关">
-                                <el-switch v-model="Switch"></el-switch>
-                            </el-form-item>
-                            <el-form-item>
-                                <el-button type="primary" @click="onSubmit">变更</el-button>
-                                <el-button>撤消</el-button>
-                            </el-form-item>
-                        </el-form>`
-                    </el-card>
-                </el-row>
-            </el-col>
-            <el-col :span="12" style="height:100%;">
-                <el-card class="radar">
-                    <div slot="header" class="clearfix">
-                        <span>雷侦状态显示</span>
-                    </div>
-                    <div class="echarts-box">
-                        <div id="radarEchart" ></div>
-                    </div>
-                </el-card>
-            </el-col>
-            <el-col :span="6" style="height:100%;">
-                <el-card class="tableHeight">
-                    <div slot="header" class="clearfix">
-                        <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>
-                </el-card>
-            </el-col>
+                  <el-select
+                    v-if="scope.row.key == '侦收起始频率'"
+                    v-model="currentESMParam.fFreqMode"
+                    size="mini"
+                    placeholder="请选择侦收频率范围"
+                  >
+                    <el-option
+                      v-for="item in esmFreqs"
+                      :key="item.value"
+                      :label="item.label"
+                      :value="item.value"
+                    >
+                    </el-option>
+                  </el-select>
+                  <el-row v-if="scope.row.key == '侦收终止频率'">
+                    <el-button size="mini" type="success" @click="handleEdit"
+                      >变更</el-button
+                    >
+                    <el-button size="mini" type="danger">撤销</el-button>
+                  </el-row>
+                </template>
+              </el-table-column>
+            </el-table>
+          </el-card>
         </el-row>
-        <el-row style="height:35%;">
-            <el-card class="target">
-                <div slot="header" class="clearfix">
-                    <span>雷侦目标列表</span>
-                    <el-button style="float: right;" round size="mini">发送到协同平台</el-button>
-                </div>
-                <el-table :data="ESMresults" class="targetTable" height="100%;">
-                    <!-- <el-table-column prop="az" label="方位角" width="150">
+      </el-col>
+      <el-col :span="12" style="height: 100%">
+        <el-card class="radar">
+          <div slot="header" class="clearfix">
+            <span>雷侦状态显示</span>
+          </div>
+          <div class="echarts-box">
+            <div id="radarEchart"></div>
+          </div>
+        </el-card>
+      </el-col>
+      <el-col :span="6" style="height: 100%">
+        <el-card class="tableHeight">
+          <div slot="header" class="clearfix">
+            <span>传感器工作状态</span>
+          </div>
+          <el-table :data="esmStatus">
+            <el-table-column prop="key" label="属性"></el-table-column>
+            <el-table-column prop="value" label="值"></el-table-column>
+          </el-table>
+        </el-card>
+      </el-col>
+    </el-row>
+    <el-row style="height: 33%">
+      <el-card class="target">
+        <div slot="header" class="clearfix">
+          <span>雷侦目标列表</span>
+        </div>
+        <el-table :data="ESMresults" class="targetTable" height="100%;">
+          <!-- <el-table-column prop="az" label="方位角" width="150">
                     </el-table-column> -->
-                    <el-table-column prop="az" label="方位角(°)">
-                    </el-table-column>
-                    <el-table-column prop="range" label="距离(km)">
-                    </el-table-column>
-                    <el-table-column prop="type" label="类型">
-                    </el-table-column>
-                    <el-table-column prop="freq" label="频率">
-                    </el-table-column>
-                    <el-table-column prop="PRF" label="PRF">
-                    </el-table-column>
-                    <el-table-column prop="lon" label="经度">
-                    </el-table-column>
-                    <el-table-column prop="lat" label="纬度">
-                    </el-table-column>
-                    <el-table-column prop="height" label="高度">
-                    </el-table-column>
-                </el-table>
-            </el-card>
-        </el-row>
-    </div>
+          <el-table-column prop="az" label="方位角(°)"> </el-table-column>
+          <el-table-column prop="range" label="距离(km)"> </el-table-column>
+          <el-table-column prop="type" label="类型"> </el-table-column>
+          <el-table-column prop="freq" label="频率"> </el-table-column>
+          <el-table-column prop="PRF" label="PRF"> </el-table-column>
+          <el-table-column prop="lon" label="经度"> </el-table-column>
+          <el-table-column prop="lat" label="纬度"> </el-table-column>
+          <el-table-column prop="height" label="高度"> </el-table-column>
+        </el-table>
+      </el-card>
+    </el-row>
+  </div>
 </template>
 
 <script>
-import { mapGetters } from 'vuex'
+import { mapGetters } from "vuex";
 export default {
-    computed: {
-        ...mapGetters([
-            'map',
-            'init',
-            'platforms',
-            'esmInstances',
-            'esmParams',
-            'platformID'
-        ]),
+  computed: {
+    ...mapGetters([
+      "map",
+      "init",
+      "platforms",
+      "esmInstances",
+      "esmParams",
+      "esmStatus",
+      "esmData",
+      "platformID",
+    ]),
+  },
+  watch: {
+    init: {
+      handler: function (val, oldVal) {
+        this.setTimer();
+      },
+    },
+    platformID: {
+      handler: function (val, oldVal) {
+        this.$wst.send({
+          url: "getESMInstances",
+          data: {
+            PlatformID: this.platformID,
+          },
+        });
+      },
     },
-    watch: {
-        init: {
-            handler: function (val, oldVal) {
+  },
+  data() {
+    return {
+      data: [],
+      ESMresults: [],
 
-                this.setTimer();
-            }
+      frequencevalue: "",
+      workvalue: "",
+      radarEchart: null,
+      currentESM: null,
+      currentESMParam: {
+        uRrPowerOn: true,
+        uRrWorkMode: 0,
+        dScanAzCentDeg: 0,
+        dScanAzWidthDeg: 0,
+        dScanElCentDeg: 0,
+        uLineNumPerFrame: 20,
+        fAntScanVel: 100,
+        fFreqMode: null,
+      },
+      esmFreqs: [
+        {
+          value: 1,
+          label: "0.5~2GHz",
         },
-        platformID: {
-            handler: function (val, oldVal) {
-                this.$wst.send({
-                    url: 'getInstanceTable',
-                    data: { PlatformID: val }
-                })
-            }
+        {
+          value: 2,
+          label: "2~5GHz",
         },
-        esmInstances: {
-            handler: function (val, oldVal) {
-
-                this.instancetable = val
-            }
+        {
+          value: 3,
+          label: "5~18GHz",
         },
-        esmParams: {
-            handler: function (val, oldVal) {
-                this.propertyinittable = val.InitParams
-                this.propertycontroltable = val.CtrlParams
-            }
-        }
-    },
-    data() {
-        return {
-            data: [],
-            ESMresults: [],
-            currentSensor: null,
-            frequencevalue: '',
-            workvalue: '',
-            frequenceAverageShow: false,
-            radarEchart: null,
-            instancetable: null,
-            instanceID: null,
-            propertyinittable: null,
-            propertycontroltable: null,
-            options: [{
-                value: 1,
-                label: '0.5~2GHz'
-            }, {
-                value: 2,
-                label: '2~5GHz'
-            }, {
-                value: 3,
-                label: '5~18GHz'
-            }, {
-                value: 4,
-                label: '自定义'
-            }],
-            options1: [{
-                value: 1,
-                label: '干涉仪'
-            }, {
-                value: 2,
-                label: 'DBF'
-            }, {
-                value: 3,
-                label: 'ABF'
-            }, {
-                value: 4,
-                label: 'SEI'
-            }, {
-                value: 5,
-                label: '精分析'
-            }
-            ],
-
-            echartoption: {
-                polar: {},
-                tooltip: {
-                    trigger: 'axis',
-                    axisPointer: {
-                        type: 'cross'
-                    }
-                },
-                angleAxis: {
-                    max: 360,
-                    min: 0,
-                    type: 'value',
-                    startAngle: 90,
-
+      ],
+      esmModes: [
+        {
+          value: 0,
+          label: "全面搜索模式",
+        },
+        {
+          value: 1,
+          label: "精测向模式",
+        },
+        {
+          value: 2,
+          label: "干涉仪",
+        },
+        {
+          value: 3,
+          label: "DBF",
+        },
+        {
+          value: 4,
+          label: "ABF",
+        },
+        {
+          value: 5,
+          label: "SEI",
+        },
+      ],
 
-                },
-                radiusAxis: {
-                    max: 10,
-                    min: 0,
-                    splitArea: {
-                        show: true,
-                    },
-                    axisLine: {
-                        lineStyle: {
-                            color: '#f7f7f7' // 设置轴线的颜色为红色
-                        }
-                    },
-                    axisPointer: {
-                        show: false
-                    }
-                },
-                series: [
-                    {
-                        coordinateSystem: 'polar',
-                        name: 'line',
-                        type: 'scatter',
-                        data: null,
-                    }
-                ]
+      echartoption: {
+        polar: {},
+        tooltip: {
+          trigger: "axis",
+          axisPointer: {
+            type: "cross",
+          },
+        },
+        angleAxis: {
+          max: 360,
+          min: 0,
+          type: "value",
+          startAngle: 90,
+        },
+        radiusAxis: {
+          max: 10,
+          min: 0,
+          splitArea: {
+            show: true,
+          },
+          axisLine: {
+            lineStyle: {
+              color: "#f7f7f7", // 设置轴线的颜色为红色
             },
-            // radarData: {
-            //     [12, 32,42]
-            // }
-        }
-    },
-    mounted() {
-        for (let i = 0; i <= 7; i++) {
-            let theta = (i / 100) * 180 + Math.random() * 90;
-            let r = 5 * (1 + Math.sin((theta / 180) * Math.PI));
-            this.data.push([r, theta]);
-
-            this.ESMresults.push(
-                {
-                    "az": theta,
-                    "range": r
-                }
-            );
-        }
+          },
+          axisPointer: {
+            show: false,
+          },
+        },
+        series: [
+          {
+            coordinateSystem: "polar",
+            name: "line",
+            type: "scatter",
+            data: null,
+          },
+        ],
+      },
+      // radarData: {
+      //     [12, 32,42]
+      // }
+    };
+  },
+  mounted() {
+    for (let i = 0; i <= 7; i++) {
+      let theta = (i / 100) * 180 + Math.random() * 90;
+      let r = 5 * (1 + Math.sin((theta / 180) * Math.PI));
+      this.data.push([r, theta]);
 
-        this.echartoption.series[0].data = this.data
+      this.ESMresults.push({
+        az: theta,
+        range: r,
+      });
+    }
 
-        this.echartsInit();
-        // 页面加载设置高度自适应
-        window.onresize = () => {
+    this.echartoption.series[0].data = this.data;
 
-            this.resizeDom()
-        };
-        // 页面加载设置高度自适应
-        this.resizeDom()
+    this.echartsInit();
+    // 页面加载设置高度自适应
+    window.onresize = () => {
+      this.resizeDom();
+    };
+    // 页面加载设置高度自适应
+    this.resizeDom();
+  },
+  methods: {
+    setTimer() {
+      if (this.timer == null) {
+        this.timer = setInterval(() => {
+          setTimeout(this.timerRefresh, 0);
+        }, 1000);
+      }
     },
-    methods: {
-        frequenceChange() {
-            if (this.frequencevalue == 4) {
-                this.frequenceAverageShow = true;
-            } else {
-                this.frequenceAverageShow = false;
-            }
+    timerRefresh() {
+      this.echartsInit();
+      this.$wst.send({
+        url: "getESMInstances",
+        data: {
+          PlatformID: this.platformID,
         },
-        echartsInit() {
-            this.$echarts.init(document.getElementById('radarEchart')).setOption(this.echartoption);
-            if (this.localEchart == null) {
-                this.radarEchart = this.$echarts.init(document.getElementById('radarEchart'))
-            } else {
-                this.radarEchart.setOption(this.echartoption);
-            }
+      });
+      if (this.currentESM != null) {
+        this.$wst.send({
+          url: "getESMParams",
+          data: {
+            InstanceID: this.currentESM,
+            PlatformID: this.platformID,
+          },
+        });
+        this.$wst.send({
+          url: "getESMStatus",
+          data: {
+            InstanceID: this.currentESM,
+            PlatformID: this.platformID,
+          },
+        });
+        this.$wst.send({
+          url: "getESMData",
+          data: {
+            InstanceID: this.currentESM,
+            PlatformID: this.platformID,
+          },
+        });
+      }
+    },
+    echartsInit() {
+      this.$echarts
+        .init(document.getElementById("radarEchart"))
+        .setOption(this.echartoption);
+      if (this.localEchart == null) {
+        this.radarEchart = this.$echarts.init(
+          document.getElementById("radarEchart")
+        );
+      } else {
+        this.radarEchart.setOption(this.echartoption);
+      }
+    },
+    //通过窗体高宽计算容器高宽,渲染echart图表的div的宽高度以达到自适应目的
+    resizeDom() {
+      console.log("高度自适应");
+      const boxHeight =
+        document.getElementsByClassName("echarts-box")[0].clientHeight;
+      var Echart = document.getElementById("radarEchart");
+      Echart.style.height = boxHeight - 65 + "px";
+      this.$echarts.init(document.getElementById("radarEchart")).resize();
+    },
+    instanceChange(val) {
+      this.$wst.send({
+        url: "getESMParams",
+        data: {
+          InstanceID: val.instanceID,
+          PlatformID: this.platformID,
         },
-        //通过窗体高宽计算容器高宽,渲染echart图表的div的宽高度以达到自适应目的
-        resizeDom() {
-            console.log("高度自适应")
-            const boxHeight = document.getElementsByClassName("echarts-box")[0].clientHeight
-            var Echart = document.getElementById('radarEchart')
-            Echart.style.height = (boxHeight-65)+'px';
-            this.$echarts.init(document.getElementById('radarEchart')).resize()
+      });
+    },
+    handleEdit() {
+      this.$wst.send({
+        url: "setESMParams",
+        data: {
+          InstanceID: this.currentESM,
+          PlatformID: this.platformID,
+          uRrPowerOn: this.currentESMParam.uRrPowerOn,
+          uRrWorkMode: this.currentESMParam.uRrWorkMode,
+          dScanAzCentDeg: this.currentESMParam.dScanAzCentDeg,
+          dScanAzWidthDeg: this.currentESMParam.dScanAzWidthDeg,
+          dScanElCentDeg: this.currentESMParam.dScanElCentDeg,
+          uLineNumPerFrame: this.currentESMParam.uLineNumPerFrame,
+          fAntScanVel: this.currentESMParam.fAntScanVel,
+          fFreqMode: this.currentESMParam.fFreqMode,
         },
-        instanceChange(val) {
-
-            this.$wst.send({
-                url: 'getESMParams',
-                data: {
-                    InstanceID: val.instanceID,
-                    PlatformID: this.platformID
-                }
-            })
-        }
+      });
+      //   currentESMParam: {
+      //     uRrPowerOn: false,
+      //     uRrWorkMode: 0,
+      //     dScanAzCentDeg: 0,
+      //     dScanAzWidthDeg: 0,
+      //     dScanElCentDeg: 0,
+      //     uLineNumPerFrame: 20,
+      //     fAntScanVel: 100,
+      //     fFreqMode: null,
+      //   },
     },
-}
+  },
+};
 </script>
 <style scoped>
 .tableHeight {
-    
 }
 
 .echarts-box {
-    height: 100%;
-    width: 100%;
+  height: 100%;
+  width: 100%;
 }
 
-
 .radar {
-    height: 100%;
+  height: 100%;
 }
 
-
-.select{
-   display: flex;
+.select {
+  display: flex;
 }
-
-
 </style>

+ 152 - 40
src/views/taskManagement/index.vue

@@ -1,10 +1,10 @@
 <template>
-  <el-row :gutter="6" style="height:100%;">
-    <el-col :span="12" style="height:100%;">
+  <el-row :gutter="6" style="height: 100%">
+    <el-col :span="12" style="height: 100%">
       <el-card class="box-card">
         <div slot="header" class="clearfix">
-            <span>指挥电文管理</span>
-          </div>
+          <span>指挥电文管理</span>
+        </div>
         <el-table :data="leadPost">
           <el-table-column prop="time" label="时间"></el-table-column>
           <el-table-column prop="GroupID" label="编队号"></el-table-column>
@@ -13,39 +13,68 @@
         </el-table>
       </el-card>
     </el-col>
-    <el-col :span="12" style="height:100%;">
-      <el-row style="height:50%;">
+    <el-col :span="12" style="height: 100%">
+      <el-row style="height: 50%">
         <el-card class="box-card">
           <div slot="header" class="clearfix">
             <span>任务规划管理</span>
           </div>
           <h4>航线:</h4>
-          <div style="display: flex">
+          <div>
             <div>
               任务执行区域:
-              <el-select :change="areaChange()" placeholder="请选择" v-model="airLine.TargetArea">
-                <el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value">
+              <el-select
+                :change="areaChange()"
+                placeholder="请选择"
+                v-model="airLine.TargetArea"
+              >
+                <el-option
+                  v-for="item in options1"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
                 </el-option>
               </el-select>
             </div>
-            <div v-if="this.axioShow" style="padding-top: 5px; display: flex">
-              <div style="flex: 1">
-                <span>经度:</span>
-                <el-input-number v-model="num9" :precision="2" :step="0.1" :max="10"></el-input-number>
+            <div v-if="this.axioShow" style="padding-top: 5px;">
+              <div style="position:relative; left:-9px; margin:5px 0 10px;">
+                <span style="padding-left: 10px">经度:</span>
+                <el-input-number
+                  v-model="num9"
+                  :precision="2"
+                  :step="0.1"
+                  :max="10"
+                ></el-input-number>
               </div>
-              <div style="flex: 1">
+              <div style="position:relative; left:-9px; margin:10px 0;">
                 <span style="padding-left: 10px"> 纬度:</span>
-                <el-input-number v-model="num9" :precision="2" :step="0.1" :max="10"></el-input-number>
+                <el-input-number
+                  v-model="num9"
+                  :precision="2"
+                  :step="0.1"
+                  :max="10"
+                ></el-input-number>
               </div>
-              <div style="flex: 1">
+              <div style="position:relative; left:-9px; margin:10px 0;">
                 <span style="padding-left: 10px"> 高度:</span>
-                <el-input-number v-model="num9" :precision="2" :step="0.1" :max="10"></el-input-number>
+                <el-input-number
+                  v-model="num9"
+                  :precision="2"
+                  :step="0.1"
+                  :max="10"
+                ></el-input-number>
               </div>
             </div>
-            <div style="margin-left: 5px">
+            <div style="position:relative; left:1px; margin:10px 0;">
               <el-row>
                 <span>半径:</span>
-                <el-input style="width: unset !important" placeholder="请输入内容" v-model="radius" clearable>
+                <el-input
+                  style="width: unset !important"
+                  placeholder="请输入内容"
+                  v-model="radius"
+                  clearable
+                >
                 </el-input>
               </el-row>
             </div>
@@ -54,8 +83,17 @@
           <div style="display: flex">
             <div style="padding-top: 5px">
               任务:
-              <el-select :change="areaChange()" v-model="areaValue" placeholder="请选择">
-                <el-option v-for="item in options2" :key="item.value" :label="item.label" :value="item.value">
+              <el-select
+                :change="areaChange()"
+                v-model="areaValue"
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="item in options2"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
                 </el-option>
               </el-select>
             </div>
@@ -81,35 +119,92 @@
           </div>
         </el-card>
       </el-row> -->
-      <el-row style="height:50%;">
+      <el-row style="height: 50%">
         <el-card class="box-card">
           <div slot="header" class="clearfix">
             <span>外部协同管理</span>
           </div>
-          <el-cascader :options="options" v-model="selectedOptions" @change="handleChange">
+          <el-cascader
+            :options="options"
+            v-model="selectedOptions"
+            @change="handleChange"
+            class="elselect"
+          >
           </el-cascader>
-          <el-select v-model="coopPlat" placeholder="请选择协同平台">
-            <template v-for="item in netMembertable">
-              <el-option v-if="item.netState === '在线' && item.platID != platformID" :key="item.platID"
-                :label="item.platName" :value="item.platID">
+
+          <el-select class="elselect" v-model="coopLink" placeholder="选择链路">
+            <template v-for="item in linkVU">
+              <el-option
+                v-if="item.key === '链路开关' && item.value === 1"
+                :key="1"
+                :label="'VU'"
+                :value="1"
+              >
               </el-option>
             </template>
-          </el-select>
-          <el-select v-model="coopLink" placeholder="选择链路">
-            <template v-for="item in linkVUtable">
-              <el-option v-if="item.key === '链路开关' && item.value === '开'" :key="1" :label="'VU'" :value="1">
+            <template v-for="item in linkJ">
+              <el-option
+                v-if="item.key === '链路开关' && item.value === 1"
+                :key="2"
+                :label="'J'"
+                :value="2"
+              >
               </el-option>
             </template>
-            <template v-for="item in linkJtable">
-              <el-option v-if="item.key === '链路开关' && item.value === '开'" :key="2" :label="'J'" :value="2">
+            <template v-for="item in linkZY">
+              <el-option
+                v-if="item.key === '链路开关' && item.value === 1"
+                :key="3"
+                :label="'ZY'"
+                :value="3"
+              >
               </el-option>
             </template>
-            <template v-for="item in linkZYtable">
-              <el-option v-if="item.key === '链路开关' && item.value === '开'" :key="3" :label="'ZY'" :value="3">
-              </el-option>
+          </el-select>
+
+          <el-select
+            class="elselect"
+            v-model="coopPlat"
+            placeholder="请选择协同平台"
+          >
+            <template v-if="coopLink === 1">
+              <template v-for="item in memberVU">
+                <el-option
+                  v-if="item.isOnline === '在网' && item.platID != platformID"
+                  :key="item.platID"
+                  :label="item.platName"
+                  :value="item.platID"
+                >
+                </el-option>
+              </template>
+            </template>
+            <template v-else-if="coopLink === 2">
+              <template v-for="item in memberJ">
+                <el-option
+                  v-if="item.isOnline === '在网' && item.platID != platformID"
+                  :key="item.platID"
+                  :label="item.platName"
+                  :value="item.platID"
+                >
+                </el-option>
+              </template>
+            </template>
+            <template v-else-if="coopLink === 3">
+              <template v-for="item in memberZY">
+                <el-option
+                  v-if="item.isOnline === '在网' && item.platID != platformID"
+                  :key="item.platID"
+                  :label="item.platName"
+                  :value="item.platID"
+                >
+                </el-option>
+              </template>
             </template>
           </el-select>
-          <el-button>发送任务分配情报</el-button>
+
+          <el-button type="primary" @click="onSubmit"
+            class="elselect">发送任务分配情报
+          </el-button>
         </el-card>
       </el-row>
     </el-col>
@@ -120,7 +215,20 @@
 import { mapGetters } from "vuex";
 export default {
   computed: {
-    ...mapGetters(["init", "leadPost", "platformID", "airLine", "taskPlan", "platforms", "netMembertable", "linkVUtable", "linkJtable", "linkZYtable"]),
+    ...mapGetters([
+      "init",
+      "leadPost",
+      "platformID",
+      "airLine",
+      "taskPlan",
+      "platforms",
+      "linkVU",
+      "linkJ",
+      "linkZY",
+      "memberVU",
+      "memberJ",
+      "memberZY",
+    ]),
   },
   watch: {
     init: {
@@ -225,9 +333,13 @@ export default {
         this.axioShow = false;
       }
     },
-    handleChange() { },
+    handleChange() {},
   },
 };
 </script>
 
-<style scoped></style>
+<style scoped>
+.elselect {
+  margin: 1px;
+}
+</style>