Files
EdgeAdmin/web/views/@default/dashboard/boards/user.js
2021-07-11 18:05:49 +08:00

154 lines
3.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Tea.context(function () {
this.$delay(function () {
this.reloadDailyStats()
this.reloadCPUChart()
this.reloadTopTrafficChart()
})
this.reloadDailyStats = function () {
let axis = teaweb.countAxis(this.dailyStats, function (v) {
return v.count
})
let max = axis.max
if (max < 10) {
max = 10
} else if (max < 100) {
max = 100
}
teaweb.renderLineChart({
id: "daily-stat-chart",
name: "用户",
values: this.dailyStats,
x: function (v) {
return v.day.substring(4, 6) + "-" + v.day.substring(6)
},
tooltip: function (args, stats) {
let index = args.dataIndex
return stats[index].day.substring(4, 6) + "-" + stats[index].day.substring(6) + "" + stats[index].count
},
value: function (v) {
return v.count;
},
axis: axis,
max: max
})
}
/**
* 系统信息
*/
this.nodeStatusTab = "cpu"
this.selectNodeStatusTab = function (tab) {
this.nodeStatusTab = tab
this.$delay(function () {
switch (tab) {
case "cpu":
this.reloadCPUChart()
break
case "memory":
this.reloadMemoryChart()
break
case "load":
this.reloadLoadChart()
break
}
})
}
this.reloadCPUChart = function () {
let axis = {unit: "%", divider: 1}
teaweb.renderLineChart({
id: "cpu-chart",
name: "CPU",
values: this.cpuValues,
x: function (v) {
return v.time
},
tooltip: function (args, stats) {
return stats[args.dataIndex].time + "" + (Math.ceil(stats[args.dataIndex].value * 100 * 100) / 100) + "%"
},
value: function (v) {
return v.value * 100;
},
axis: axis,
max: 100
})
}
this.reloadMemoryChart = function () {
let axis = {unit: "%", divider: 1}
teaweb.renderLineChart({
id: "memory-chart",
name: "内存",
values: this.memoryValues,
x: function (v) {
return v.time
},
tooltip: function (args, stats) {
return stats[args.dataIndex].time + "" + (Math.ceil(stats[args.dataIndex].value * 100 * 100) / 100) + "%"
},
value: function (v) {
return v.value * 100;
},
axis: axis,
max: 100
})
}
this.reloadLoadChart = function () {
let axis = {unit: "", divider: 1}
let max = this.loadValues.$map(function (k, v) {
return v.value
}).$max()
if (max < 10) {
max = 10
} else if (max < 20) {
max = 20
} else if (max < 100) {
max = 100
} else {
max = null
}
teaweb.renderLineChart({
id: "load-chart",
name: "负载",
values: this.loadValues,
x: function (v) {
return v.time
},
tooltip: function (args, stats) {
return stats[args.dataIndex].time + "" + (Math.ceil(stats[args.dataIndex].value * 100) / 100)
},
value: function (v) {
return v.value;
},
axis: axis,
max: max
})
}
// 流量排行
this.reloadTopTrafficChart = function () {
let that = this
let axis = teaweb.bytesAxis(this.topTrafficStats, function (v) {
return v.bytes
})
teaweb.renderBarChart({
id: "top-traffic-chart",
name: "流量",
values: this.topTrafficStats,
x: function (v) {
return v.userName
},
tooltip: function (args, stats) {
let index = args.dataIndex
return stats[index].userName + "<br/>请求数:" + " " + teaweb.formatNumber(stats[index].countRequests) + "<br/>流量:" + teaweb.formatBytes(stats[index].bytes)
},
value: function (v) {
return v.bytes / axis.divider;
},
axis: axis
})
}
})