<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> 
 |