feat: 优化服务器监控页面 加上loading

This commit is contained in:
valarchie 2023-07-19 18:17:27 +08:00
parent 5b35880850
commit cce74bab9c

View File

@ -1,5 +1,6 @@
<template> <template>
<div class="main"> <!-- v-loading指令 可以直接调用Loading动画 -->
<div class="main" v-loading="loading">
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="12" class="card-box"> <el-col :span="12" class="card-box">
<el-card> <el-card>
@ -93,20 +94,14 @@
<script setup lang="ts"> <script setup lang="ts">
import { getServerInfoApi, ServerInfo } from "@/api/system/monitor"; import { getServerInfoApi, ServerInfo } from "@/api/system/monitor";
import { onBeforeMount, reactive, ref } from "vue"; import { onBeforeMount, ref } from "vue";
/** 组件name最好和菜单表中的router_name一致 */ /** 组件name最好和菜单表中的router_name一致 */
defineOptions({ defineOptions({
name: "ServerInfo" name: "ServerInfo"
}); });
const server = reactive<ServerInfo>({ const loading = ref(true);
cpuInfo: undefined,
diskInfos: undefined,
jvmInfo: undefined,
memoryInfo: undefined,
systemInfo: undefined
});
const cpuInfoTable = ref([]); const cpuInfoTable = ref([]);
const memoryInfoTable = ref([]); const memoryInfoTable = ref([]);
@ -115,113 +110,114 @@ const jvmInfoTable = ref([]);
const diskInfoTable = ref([]); const diskInfoTable = ref([]);
async function getList() { async function getList() {
// pageLoading.value = true; loading.value = true;
const { data } = await getServerInfoApi(); const { data } = await getServerInfoApi().finally(() => {
console.log(data); loading.value = false;
Object.assign(server, data); });
const serverInfo = data as ServerInfo;
cpuInfoTable.value = [ cpuInfoTable.value = [
{ {
field: "核心数", field: "核心数",
value: server.cpuInfo.cpuNum value: serverInfo.cpuInfo.cpuNum
}, },
{ {
field: "用户使用率", field: "用户使用率",
value: server.cpuInfo.used + "%" value: serverInfo.cpuInfo.used + "%"
}, },
{ {
field: "系统使用率", field: "系统使用率",
value: server.cpuInfo.sys + "%" value: serverInfo.cpuInfo.sys + "%"
}, },
{ {
field: "当前空闲率", field: "当前空闲率",
value: server.cpuInfo.free + "%" value: serverInfo.cpuInfo.free + "%"
} }
]; ];
memoryInfoTable.value = [ memoryInfoTable.value = [
{ {
field: "总内存", field: "总内存",
machine: server.memoryInfo.total + "G", machine: serverInfo.memoryInfo.total + "G",
jvm: server.jvmInfo.total + "M" jvm: serverInfo.jvmInfo.total + "M"
}, },
{ {
field: "已用内存", field: "已用内存",
machine: server.memoryInfo.used + "G", machine: serverInfo.memoryInfo.used + "G",
jvm: server.jvmInfo.used + "M" jvm: serverInfo.jvmInfo.used + "M"
}, },
{ {
field: "剩余内存", field: "剩余内存",
machine: server.memoryInfo.free + "G", machine: serverInfo.memoryInfo.free + "G",
jvm: server.jvmInfo.free + "M" jvm: serverInfo.jvmInfo.free + "M"
}, },
{ {
field: "使用率", field: "使用率",
machine: server.memoryInfo.usage + "%", machine: serverInfo.memoryInfo.usage + "%",
jvm: server.jvmInfo.usage + "%", jvm: serverInfo.jvmInfo.usage + "%",
// warning // warning
warning: server.jvmInfo.usage > 30 warning: serverInfo.jvmInfo.usage > 30
} }
]; ];
serverInfoTable.value = [ serverInfoTable.value = [
{ {
field: "服务器名称", field: "服务器名称",
value: server.systemInfo.computerName value: serverInfo.systemInfo.computerName
}, },
{ {
field: "操作系统", field: "操作系统",
value: server.systemInfo.osName value: serverInfo.systemInfo.osName
}, },
{ {
field: "服务器IP", field: "服务器IP",
value: server.systemInfo.computerIp value: serverInfo.systemInfo.computerIp
}, },
{ {
field: "系统架构", field: "系统架构",
value: server.systemInfo.osArch value: serverInfo.systemInfo.osArch
} }
]; ];
jvmInfoTable.value = [ jvmInfoTable.value = [
{ {
field: "JDK名称", field: "JDK名称",
value: server.jvmInfo.name, value: serverInfo.jvmInfo.name,
span: 1 span: 1
}, },
{ {
field: "JDK版本", field: "JDK版本",
value: server.jvmInfo.version, value: serverInfo.jvmInfo.version,
span: 1 span: 1
}, },
{ {
field: "启动时间", field: "启动时间",
value: server.jvmInfo.startTime, value: serverInfo.jvmInfo.startTime,
span: 1 span: 1
}, },
{ {
field: "运行时长", field: "运行时长",
value: server.jvmInfo.runTime, value: serverInfo.jvmInfo.runTime,
span: 1 span: 1
}, },
{ {
field: "安装路径", field: "安装路径",
value: server.jvmInfo.home, value: serverInfo.jvmInfo.home,
span: 2 span: 2
}, },
{ {
field: "项目路径", field: "项目路径",
value: server.systemInfo.userDir, value: serverInfo.systemInfo.userDir,
span: 2 span: 2
}, },
{ {
field: "运行参数", field: "运行参数",
value: server.jvmInfo.inputArgs, value: serverInfo.jvmInfo.inputArgs,
span: 2 span: 2
} }
]; ];
diskInfoTable.value = server.diskInfos; diskInfoTable.value = serverInfo.diskInfos;
} }
function cellClassName({ row }) { function cellClassName({ row }) {
@ -229,6 +225,7 @@ function cellClassName({ row }) {
return "text-red-500"; return "text-red-500";
} }
} }
onBeforeMount(() => { onBeforeMount(() => {
getList(); getList();
}); });