| <template> | 
|   <div id="app" style="width: 100%"> | 
|     <div class="page-header"> | 
|       <div class="page-title">控制台</div> | 
|       <div class="page-header-btn"> | 
|         <el-button icon="el-icon-info" size="mini" style="margin-right: 1rem;" type="primary" @click="showInfo">平台信息 | 
|         </el-button> | 
|       </div> | 
|     </div> | 
|     <el-row style="width: 100%"> | 
|       <el-col :xl="{ span: 8 }" :lg="{ span: 8 }" :md="{ span: 12 }" :sm="{ span: 12 }" :xs="{ span: 24 }" > | 
|         <div class="control-cell" id="ThreadsLoad" > | 
|           <div style="width:100%; height:100%; "> | 
|             <consoleCPU ref="consoleCPU"></consoleCPU> | 
|           </div> | 
|         </div> | 
|       </el-col> | 
|       <el-col :xl="{ span: 8 }" :lg="{ span: 8 }" :md="{ span: 12 }" :sm="{ span: 12 }" :xs="{ span: 24 }" > | 
|         <div class="control-cell" id="WorkThreadsLoad" > | 
|           <div style="width:100%; height:100%; "> | 
|             <consoleResource ref="consoleResource"></consoleResource> | 
|           </div> | 
|         </div> | 
|       </el-col> | 
|       <el-col :xl="{ span: 8 }" :lg="{ span: 8 }" :md="{ span: 12 }" :sm="{ span: 12 }" :xs="{ span: 24 }" > | 
|         <div class="control-cell" id="WorkThreadsLoad" > | 
|           <div style="width:100%; height:100%; "> | 
|             <consoleNet ref="consoleNet"></consoleNet> | 
|           </div> | 
|         </div> | 
|       </el-col> | 
|       <el-col :xl="{ span: 8 }" :lg="{ span: 8 }" :md="{ span: 12 }" :sm="{ span: 12 }" :xs="{ span: 24 }" > | 
|         <div class="control-cell" id="WorkThreadsLoad" > | 
|           <div style="width:100%; height:100%; "> | 
|   | 
|             <consoleMem ref="consoleMem"></consoleMem> | 
|           </div> | 
|         </div> | 
|       </el-col> | 
|       <el-col :xl="{ span: 8 }" :lg="{ span: 8 }" :md="{ span: 12 }" :sm="{ span: 12 }" :xs="{ span: 24 }" > | 
|         <div class="control-cell" id="WorkThreadsLoad" > | 
|           <div style="width:100%; height:100%; "> | 
|             <consoleNodeLoad ref="consoleNodeLoad"></consoleNodeLoad> | 
|           </div> | 
|         </div> | 
|       </el-col> | 
|       <el-col :xl="{ span: 8 }" :lg="{ span: 8 }" :md="{ span: 12 }" :sm="{ span: 12 }" :xs="{ span: 24 }" > | 
|         <div class="control-cell" id="WorkThreadsLoad" > | 
|           <div style="width:100%; height:100%; "> | 
|             <consoleDisk ref="consoleDisk"></consoleDisk> | 
|           </div> | 
|         </div> | 
|       </el-col> | 
|     </el-row> | 
|     <configInfo ref="configInfo"></configInfo> | 
|   </div> | 
| </template> | 
|   | 
| <script> | 
| import uiHeader from '../layout/UiHeader.vue' | 
| import consoleCPU from './console/ConsoleCPU.vue' | 
| import consoleMem from './console/ConsoleMEM.vue' | 
| import consoleNet from './console/ConsoleNet.vue' | 
| import consoleNodeLoad from './console/ConsoleNodeLoad.vue' | 
| import consoleDisk from './console/ConsoleDisk.vue' | 
| import consoleResource from './console/ConsoleResource.vue' | 
| import configInfo from './dialog/configInfo.vue' | 
|   | 
| import echarts from 'echarts'; | 
|   | 
| export default { | 
|   name: 'app', | 
|   components: { | 
|     echarts, | 
|     uiHeader, | 
|     consoleCPU, | 
|     consoleMem, | 
|     consoleNet, | 
|     consoleNodeLoad, | 
|     consoleDisk, | 
|     consoleResource, | 
|     configInfo, | 
|   }, | 
|   data() { | 
|     return { | 
|       timer: null, | 
|     }; | 
|   }, | 
|   created() { | 
|     this.getSystemInfo(); | 
|     this.getLoad(); | 
|     this.getResourceInfo(); | 
|     this.loopForSystemInfo(); | 
|   | 
|   }, | 
|   destroyed() { | 
|   }, | 
|   methods: { | 
|     loopForSystemInfo: function (){ | 
|       if (this.timer != null) { | 
|         window.clearTimeout(this.timer); | 
|       } | 
|       this.timer = setTimeout(()=>{ | 
|         if (this.$route.path === "/console") { | 
|           this.getSystemInfo(); | 
|           this.getLoad(); | 
|           this.timer = null; | 
|           this.loopForSystemInfo() | 
|           this.getResourceInfo() | 
|         } | 
|   | 
|       }, 2000) | 
|     }, | 
|     getSystemInfo: function (){ | 
|       this.$axios({ | 
|         method: 'get', | 
|         url: `/api/server/system/info`, | 
|       }).then( (res)=> { | 
|         if (res.data.code === 0) { | 
|           this.$refs.consoleCPU.setData(res.data.data.cpu) | 
|           this.$refs.consoleMem.setData(res.data.data.mem) | 
|           this.$refs.consoleNet.setData(res.data.data.net, res.data.data.netTotal) | 
|           this.$refs.consoleDisk.setData(res.data.data.disk) | 
|         } | 
|       }).catch( (error)=> { | 
|       }); | 
|     }, | 
|     getLoad: function (){ | 
|       this.$axios({ | 
|         method: 'get', | 
|         url: `/api/server/media_server/load`, | 
|       }).then( (res)=> { | 
|         if (res.data.code === 0) { | 
|           this.$refs.consoleNodeLoad.setData(res.data.data) | 
|         } | 
|       }).catch( (error)=> { | 
|       }); | 
|     }, | 
|     getResourceInfo: function (){ | 
|       this.$axios({ | 
|         method: 'get', | 
|         url: `/api/server/resource/info`, | 
|       }).then( (res)=> { | 
|         if (res.data.code === 0) { | 
|           this.$refs.consoleResource.setData(res.data.data) | 
|         } | 
|       }).catch( (error)=> { | 
|       }); | 
|     }, | 
|     showInfo: function (){ | 
|   | 
|       this.$axios({ | 
|         method: 'get', | 
|         url: `/api/server/system/configInfo`, | 
|       }).then( (res)=> { | 
|         console.log(res) | 
|         if (res.data.code === 0) { | 
|           console.log(2222) | 
|           console.log(this.$refs.configInfo) | 
|           this.$refs.configInfo.openDialog(res.data.data) | 
|         } | 
|       }).catch( (error)=> { | 
|       }); | 
|     } | 
|   | 
|   } | 
| }; | 
| </script> | 
|   | 
| <style> | 
| #app { | 
|   height: 100%; | 
| } | 
| .control-cell { | 
|   padding-top: 10px; | 
|   padding-left: 5px; | 
|   padding-right: 10px; | 
|   height: 360px; | 
| } | 
| </style> |