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
-
37web/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