com-system.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <template id="com-system">
  2. <el-card class="box-card" style="margin-bottom: 20px;">
  3. <div slot="header" class="clearfix">
  4. <span>状态</span>
  5. <el-button style="float: right; padding: 3px 0" type="text">操作按钮</el-button>
  6. </div>
  7. <div class="com-system-list">
  8. <div class="system-list">
  9. <div class="system-item site_system_item">
  10. <div class="site_item">
  11. <span style="margin-bottom: 10px">总站点数</span>
  12. <span>{{ site_num }}</span>
  13. </div>
  14. </div>
  15. <div class="system-item">
  16. <div class="system-title">CPU使用率</div>
  17. <el-progress type="circle" :percentage="cpu" :color="colors"></el-progress>
  18. </div>
  19. <div class="system-item">
  20. <div class="system-title">内存使用率</div>
  21. <el-progress type="circle" :percentage="memory.percent" :color="colors"></el-progress>
  22. <div class="system-title">{{ memory.use_total }} / {{ memory.total }}(MB)</div>
  23. </div>
  24. <div class="system-item">
  25. <div class="system-title">磁盘使用率</div>
  26. <el-progress type="circle" :percentage="disk.percent" :color="colors"></el-progress>
  27. <div class="system-title">{{ disk.use_total }} GB / {{ disk.total }} GB</div>
  28. </div>
  29. <div class="system-item">
  30. <div class="system-title">redis使用率</div>
  31. <el-progress type="circle" :percentage="redis.percent" :color="colors"></el-progress>
  32. <div class="system-title">{{ redis.use_total }} / {{ redis.total }}</div>
  33. </div>
  34. </div>
  35. </div>
  36. </el-card>
  37. </template>
  38. <style>
  39. .system-list {
  40. display: flex;
  41. }
  42. .system-item {
  43. display: flex;
  44. flex-direction: column;
  45. align-items: center;
  46. margin: 0 40px;
  47. }
  48. .system-title {
  49. color: #909399;
  50. font-size: 14px;
  51. line-height: 28px;
  52. }
  53. .site_system_item {
  54. display: flex;
  55. justify-content: center;
  56. align-items: center;
  57. }
  58. .site_item{
  59. display: flex;
  60. justify-content: center;
  61. align-items: center;
  62. flex-direction: column;
  63. font-size: 20px;
  64. color: #909399;
  65. height: 150px;
  66. padding: 0 40px;
  67. text-align: center;
  68. box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)
  69. }
  70. </style>
  71. <script>
  72. Vue.component('com-system', {
  73. template: '#com-system',
  74. data() {
  75. return {
  76. cpu: 0,// cpu使用率
  77. memory: {
  78. use_total: 0,
  79. total: 0,
  80. percent: 0
  81. },// 内存使用率
  82. disk: {
  83. use_total: 0,
  84. total: 0,
  85. percent: 0
  86. },// 磁盘使用率
  87. redis: {
  88. use_total: 0,
  89. total: 0,
  90. percent: 0
  91. },// redis使用率
  92. colors: [
  93. {color: '#5cb87a', percentage: 50},
  94. {color: '#e6a23c', percentage: 79},
  95. {color: '#f56c6c', percentage: 80},
  96. ],
  97. site_num: 0,// 总站点数
  98. };
  99. },
  100. created() {
  101. this.systeminfo();
  102. },
  103. methods: {
  104. systeminfo() {
  105. request({
  106. params: {
  107. r: 'admin/system/get-system-info',
  108. },
  109. method: 'post'
  110. }).then(e => {
  111. if (e.data.code == 0) {
  112. this.cpu = e.data.data.cpu;
  113. this.memory = e.data.data.memory;
  114. this.disk = e.data.data.disk;
  115. this.redis = e.data.data.redis;
  116. this.site_num = e.data.data.site_num;
  117. } else {
  118. this.$message.error(e.data.msg);
  119. }
  120. }).catch(e => {
  121. });
  122. }
  123. },
  124. });
  125. </script>