| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 |
- let cpuChart = null;
- let memChart = null;
- let diskChart = null;
- let sysStatusTimer = null;
- let resizeHandler = null;
- let page1Active = false;
- function getSystemInfo(){
- fetch("/api/system/info")
- .then(r=>{
- if(!r.ok) throw new Error("HTTP "+r.status);
- return r.json();
- })
- .then(d=>{
- cpuChart.setOption({
- graphic:[{
- type:"text",
- left:"center",
- top:"75%",
- style:{
- text:`${d.cpu_cores||"--"}核 ${d.cpu_freq||"--"}MHz 温度${d.cpu_temp||"--"}`,
- fill:"#aaa",
- fontSize:15
- }
- }],
- series:[{data:[{value:d.cpu_usage}]}]
- });
- memChart.setOption({
- graphic:[{
- type:"text",
- left:"center",
- top:"75%",
- style:{
- text:`${d.mem_used||"--"} / ${d.mem_total||"--"}`,
- fill:"#aaa",
- fontSize:15
- }
- }],
- series:[{data:[{value:d.mem_percent}]}]
- });
- diskChart.setOption({
- title:{
- text:`${d.disk_percent}%`,
- subtext:`${d.disk_used||"--"} / ${d.disk_total||"--"}`,
- left:"center",
- top:"38%",
- textStyle:{
- fontSize:38,
- fontWeight:"bold"
- },
- subtextStyle:{
- fontSize:15
- }
- },
- series:[{
- data:[
- {value:d.disk_percent,name:"已使用"},
- {value:100-d.disk_percent,name:"剩余"}
- ]
- }]
- });
- })
- .catch(e=>console.error("system info failed:",e));
- }
- function gaugeOption(){
- return {
- series:[{
- type:"gauge",
- radius:"95%",
- center:["50%","55%"],
- min:0,
- max:100,
- startAngle:210,
- endAngle:-30,
- axisLine:{
- lineStyle:{
- width:22
- }
- },
- progress:{
- show:true,
- width:22
- },
- pointer:{show:false},
- axisTick:{show:false},
- splitLine:{show:false},
- axisLabel:{show:false},
- detail:{
- fontSize:42,
- fontWeight:"bold",
- offsetCenter:[0,"0%"],
- formatter:"{value}%"
- },
- title:{show:false},
- data:[{value:0}]
- }]
- };
- }
- function getLoadInfo(){
- fetch("/api/system/loadAverage")
- .then(async r => {
- if (!r.ok) {
- throw new Error("HTTP " + r.status);
- }
- return r.json();
- })
- .then(data => {
- if(!page1Active){
- return;
- }
- document.getElementById("load1m").textContent = data.load1m || "--";
- document.getElementById("load5m").textContent = data.load5m || "--";
- document.getElementById("load15m").textContent = data.load15m || "--";
- document.getElementById("runQueue").textContent = data.runQueue || "--";
- document.getElementById("bootTime").textContent = data.bootTime || "--";
- document.getElementById("uptime").textContent = data.uptime || "--";
- })
- .catch(e => {
- if(!page1Active){
- return;
- }
- console.error("network status failed:", e);
- document.getElementById("load1m").textContent = "--";
- document.getElementById("load5m").textContent = "--";
- document.getElementById("load15m").textContent = "--";
- document.getElementById("runQueue").textContent = "--";
- document.getElementById("bootTime").textContent = "--";
- document.getElementById("uptime").textContent = "--";
- });
- }
- function getServiceInfo(){
- fetch("/api/system/serviceStatus")
- .then(r => {
- if (!r.ok) {
- throw new Error("HTTP " + r.status);
- }
- return r.json();
- })
- .then(data => {
- if(!page1Active){
- return;
- }
- document.getElementById("var1").textContent = data.var1 || "--";
- document.getElementById("var2").textContent = data.var2 || "--";
- document.getElementById("var3").textContent = data.var3 || "--";
- document.getElementById("var4").textContent = data.var4 || "--";
- document.getElementById("var5").textContent = data.var5 || "--";
- document.getElementById("var6").textContent = data.var6 || "--";
- document.getElementById("var7").textContent = data.var7 || "--";
- document.getElementById("var8").textContent = data.var8 || "--";
- document.getElementById("var11").textContent = data.var11 || "--";
- document.getElementById("var22").textContent = data.var22 || "--";
- document.getElementById("var33").textContent = data.var33 || "--";
- document.getElementById("var44").textContent = data.var44 || "--";
- document.getElementById("var55").textContent = data.var55 || "--";
- document.getElementById("var66").textContent = data.var66 || "--";
- document.getElementById("var77").textContent = data.var77 || "--";
- document.getElementById("var88").textContent = data.var88 || "--";
- })
- .catch(e => {
- if(!page1Active){
- return;
- }
- console.error("getAllServiceStatus() failed:", e);
- document.getElementById("var1").textContent = "--";
- document.getElementById("var2").textContent = "--";
- document.getElementById("var3").textContent = "--";
- document.getElementById("var4").textContent = "--";
- document.getElementById("var5").textContent = "--";
- document.getElementById("var6").textContent = "--";
- document.getElementById("var7").textContent = "--";
- document.getElementById("var8").textContent = "--";
- document.getElementById("var11").textContent = "--";
- document.getElementById("var22").textContent = "--";
- document.getElementById("var33").textContent = "--";
- document.getElementById("var44").textContent = "--";
- document.getElementById("var55").textContent = "--";
- document.getElementById("var66").textContent = "--";
- document.getElementById("var77").textContent = "--";
- document.getElementById("var88").textContent = "--";
- });
- }
- function startSysStatusRefresh(){
- if(sysStatusTimer) return;
- getSystemInfo();
- getLoadInfo();
- getServiceInfo();
- sysStatusTimer = setInterval(() => {
- getSystemInfo();
- getLoadInfo();
- getServiceInfo();
- }, 5000);
- }
- function stopSysStatusRefresh(){
- if(sysStatusTimer){
- clearInterval(sysStatusTimer);
- sysStatusTimer=null;
- }
- }
- function resizeSysCharts(){
- cpuChart?.resize();
- memChart?.resize();
- diskChart?.resize();
- }
- function initPage1(){
- page1Active = true;
- cpuChart=echarts.init(document.getElementById("cpu-chart"));
- memChart=echarts.init(document.getElementById("mem-chart"));
- diskChart=echarts.init(document.getElementById("disk-chart"));
- cpuChart.setOption(gaugeOption());
- memChart.setOption(gaugeOption());
- diskChart.setOption({
- title:{
- text:"0%",
- subtext:"-- / --",
- left:"center",
- top:"38%",
- textStyle:{
- fontSize:38,
- fontWeight:"bold"
- },
- subtextStyle:{
- fontSize:15
- }
- },
- series:[{
- type:"pie",
- radius:["65%","85%"],
- label:{show:false},
- data:[
- {value:0,name:"已使用"},
- {value:100,name:"剩余"}
- ]
- }]
- });
- startSysStatusRefresh();
- resizeHandler = resizeSysCharts;
- window.addEventListener(
- "resize",
- resizeHandler
- );
- setTimeout(()=>{
- resizeSysCharts();
- },100);
- }
- function exitPage1(){
- page1Active = false;
- stopSysStatusRefresh();
- if(resizeHandler){
- window.removeEventListener(
- "resize",
- resizeHandler
- );
- resizeHandler=null;
- }
- cpuChart?.dispose();
- memChart?.dispose();
- diskChart?.dispose();
- cpuChart=null;
- memChart=null;
- diskChart=null;
- }
|