Granty1
4 years ago
4 changed files with 197 additions and 14 deletions
-
2server/gva/init_data/init_data.go
-
3server/router/sys_system.go
-
29web/src/api/system.js
-
169web/src/view/system/state.vue
@ -0,0 +1,169 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<el-row :gutter="15" class="system_state"> |
||||
|
<el-col :span="12"> |
||||
|
<el-card v-if="state.os" class="card_item"> |
||||
|
<div slot="header">Runtime</div> |
||||
|
<div> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12">os:</el-col> |
||||
|
<el-col :span="12" v-text="state.os.goos"></el-col> |
||||
|
</el-row> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12">cpu nums:</el-col> |
||||
|
<el-col :span="12" v-text="state.os.numCpu"></el-col> |
||||
|
</el-row> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12">compiler:</el-col> |
||||
|
<el-col :span="12" v-text="state.os.compiler"></el-col> |
||||
|
</el-row> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12">go version:</el-col> |
||||
|
<el-col :span="12" v-text="state.os.goVersion"></el-col> |
||||
|
</el-row> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12">goroutine nums:</el-col> |
||||
|
<el-col :span="12" v-text="state.os.numGoroutine"></el-col> |
||||
|
</el-row> |
||||
|
</div> |
||||
|
</el-card> |
||||
|
</el-col> |
||||
|
<el-col :span="12"> |
||||
|
<el-card v-if="state.disk" class="card_item"> |
||||
|
<div slot="header">Disk</div> |
||||
|
<div> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12"> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12">total (MB)</el-col> |
||||
|
<el-col :span="12" v-text="state.disk.totalMb"></el-col> |
||||
|
</el-row> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12">used (MB)</el-col> |
||||
|
<el-col :span="12" v-text="state.disk.usedMb"></el-col> |
||||
|
</el-row> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12">total (GB)</el-col> |
||||
|
<el-col :span="12" v-text="state.disk.totalGb"></el-col> |
||||
|
</el-row> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12">used (GB)</el-col> |
||||
|
<el-col :span="12" v-text="state.disk.usedGb"></el-col> |
||||
|
</el-row> |
||||
|
</el-col> |
||||
|
<el-col :span="12"> |
||||
|
<el-progress |
||||
|
type="dashboard" |
||||
|
:percentage="state.disk.usedPercent" |
||||
|
:color="colors" |
||||
|
></el-progress> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</div> |
||||
|
</el-card> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
<el-row :gutter="15" class="system_state"> |
||||
|
<el-col :span="12"> |
||||
|
<el-card |
||||
|
class="card_item" |
||||
|
v-if="state.cpu" |
||||
|
:body-style="{ height: '180px', 'overflow-y': 'scroll' }" |
||||
|
> |
||||
|
<div slot="header">CPU</div> |
||||
|
<div> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12">physical number of cores:</el-col> |
||||
|
<el-col :span="12" v-text="state.cpu.cores"> </el-col> |
||||
|
</el-row> |
||||
|
<template v-for="(item, index) in state.cpu.cpus"> |
||||
|
<el-row :key="index" :gutter="10"> |
||||
|
<el-col :span="12">core {{ index }}:</el-col> |
||||
|
<el-col :span="12" |
||||
|
><el-progress |
||||
|
type="line" |
||||
|
:percentage="+item.toFixed(0)" |
||||
|
:color="colors" |
||||
|
></el-progress |
||||
|
></el-col> |
||||
|
</el-row> |
||||
|
</template> |
||||
|
</div> |
||||
|
</el-card> |
||||
|
</el-col> |
||||
|
<el-col :span="12"> |
||||
|
<el-card class="card_item" v-if="state.ram"> |
||||
|
<div slot="header">Ram</div> |
||||
|
<div> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12"> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12">total (MB)</el-col> |
||||
|
<el-col :span="12" v-text="state.ram.totalMb"></el-col> |
||||
|
</el-row> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12">used (MB)</el-col> |
||||
|
<el-col :span="12" v-text="state.ram.usedMb"></el-col> |
||||
|
</el-row> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12">total (GB)</el-col> |
||||
|
<el-col :span="12" v-text="state.ram.totalMb / 1024"></el-col> |
||||
|
</el-row> |
||||
|
<el-row :gutter="10"> |
||||
|
<el-col :span="12">used (GB)</el-col> |
||||
|
<el-col |
||||
|
:span="12" |
||||
|
v-text="(state.ram.usedMb / 1024).toFixed(2)" |
||||
|
></el-col> |
||||
|
</el-row> |
||||
|
</el-col> |
||||
|
<el-col :span="12"> |
||||
|
<el-progress |
||||
|
type="dashboard" |
||||
|
:percentage="state.ram.usedPercent" |
||||
|
:color="colors" |
||||
|
></el-progress> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</div> |
||||
|
</el-card> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { getSystemState } from "@/api/system.js"; |
||||
|
export default { |
||||
|
name: "State", |
||||
|
data() { |
||||
|
return { |
||||
|
state: {}, |
||||
|
colors: [ |
||||
|
{ color: "#5cb87a", percentage: 20 }, |
||||
|
{ color: "#e6a23c", percentage: 40 }, |
||||
|
{ color: "#f56c6c", percentage: 80 }, |
||||
|
], |
||||
|
}; |
||||
|
}, |
||||
|
created() { |
||||
|
this.reload(); |
||||
|
}, |
||||
|
methods: { |
||||
|
async reload() { |
||||
|
const { data } = await getSystemState(); |
||||
|
this.state = data.server; |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style> |
||||
|
.system_state { |
||||
|
padding: 10px; |
||||
|
} |
||||
|
|
||||
|
.card_item { |
||||
|
height: 280px; |
||||
|
} |
||||
|
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue