From 401634be3e547d76feaa5de847898f8e153d9686 Mon Sep 17 00:00:00 2001 From: jackhoo_98 Date: Mon, 27 Feb 2023 18:10:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=BF=90=E7=BB=B4=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E4=BB=AA=E8=A1=A8=E7=9B=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/link/dashboard.ts | 12 + src/views/link/DashBoard/components/Cpu.vue | 189 ++++++++++++ src/views/link/DashBoard/components/Jvm.vue | 196 ++++++++++++ .../link/DashBoard/components/Network.vue | 222 ++++++++++++++ .../link/DashBoard/components/TopCard.vue | 155 ++++++++++ .../components/TopEchartsItemNode.vue | 282 ++++++++++++++++++ src/views/link/DashBoard/components/tool.ts | 125 ++++++++ src/views/link/DashBoard/index.vue | 25 ++ 8 files changed, 1206 insertions(+) create mode 100644 src/api/link/dashboard.ts create mode 100644 src/views/link/DashBoard/components/Cpu.vue create mode 100644 src/views/link/DashBoard/components/Jvm.vue create mode 100644 src/views/link/DashBoard/components/Network.vue create mode 100644 src/views/link/DashBoard/components/TopCard.vue create mode 100644 src/views/link/DashBoard/components/TopEchartsItemNode.vue create mode 100644 src/views/link/DashBoard/components/tool.ts create mode 100644 src/views/link/DashBoard/index.vue diff --git a/src/api/link/dashboard.ts b/src/api/link/dashboard.ts new file mode 100644 index 00000000..5b39594f --- /dev/null +++ b/src/api/link/dashboard.ts @@ -0,0 +1,12 @@ +import server from '@/utils/request'; + +export const dashboard = (data: object) => + server.post(`/dashboard/_multi`, data); +export const productCount = (data: object) => + server.post(`/device-product/_count`, data); +export const getGeo = (data: object) => + server.post(`/geo/object/device/_search/geo.json`, data); +export const deviceCount = (data: object) => + server.get(`/device/instance/_count`, data); +export const serverNode = (data: object) => + server.get(`/dashboard/cluster/nodes`, data); diff --git a/src/views/link/DashBoard/components/Cpu.vue b/src/views/link/DashBoard/components/Cpu.vue new file mode 100644 index 00000000..0dd9da8f --- /dev/null +++ b/src/views/link/DashBoard/components/Cpu.vue @@ -0,0 +1,189 @@ + +m + + + diff --git a/src/views/link/DashBoard/components/Jvm.vue b/src/views/link/DashBoard/components/Jvm.vue new file mode 100644 index 00000000..c2425cf9 --- /dev/null +++ b/src/views/link/DashBoard/components/Jvm.vue @@ -0,0 +1,196 @@ + + + + + diff --git a/src/views/link/DashBoard/components/Network.vue b/src/views/link/DashBoard/components/Network.vue new file mode 100644 index 00000000..22639768 --- /dev/null +++ b/src/views/link/DashBoard/components/Network.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/src/views/link/DashBoard/components/TopCard.vue b/src/views/link/DashBoard/components/TopCard.vue new file mode 100644 index 00000000..27ecab3e --- /dev/null +++ b/src/views/link/DashBoard/components/TopCard.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/src/views/link/DashBoard/components/TopEchartsItemNode.vue b/src/views/link/DashBoard/components/TopEchartsItemNode.vue new file mode 100644 index 00000000..0a7af873 --- /dev/null +++ b/src/views/link/DashBoard/components/TopEchartsItemNode.vue @@ -0,0 +1,282 @@ + + + + + diff --git a/src/views/link/DashBoard/components/tool.ts b/src/views/link/DashBoard/components/tool.ts new file mode 100644 index 00000000..0a0d77fb --- /dev/null +++ b/src/views/link/DashBoard/components/tool.ts @@ -0,0 +1,125 @@ +import moment from 'moment'; +import * as echarts from 'echarts'; + +export const getInterval = (type) => { + switch (type) { + case 'year': + return '30d'; + case 'month': + case 'week': + return '1d'; + case 'hour': + return '1m'; + default: + return '1h'; + } +}; +export const getTimeFormat = (type) => { + switch (type) { + case 'year': + return 'YYYY-MM-DD'; + case 'month': + case 'week': + return 'MM-DD'; + case 'hour': + return 'HH:mm'; + default: + return 'HH'; + } +}; + +export const getTimeByType = (type) => { + switch (type) { + case 'hour': + return moment().subtract(1, 'hours'); + case 'week': + return moment().subtract(6, 'days'); + case 'month': + return moment().subtract(29, 'days'); + case 'year': + return moment().subtract(365, 'days'); + default: + return moment().startOf('day'); + } +}; + +export const arrayReverse = (data) => { + const newArray = []; + for (let i = data.length - 1; i >= 0; i--) { + newArray.push(data[i]); + } + return newArray; +}; + +export const networkParams = (val) => [ + { + dashboard: 'systemMonitor', + object: 'network', + measurement: 'traffic', + dimension: 'agg', + group: 'network', + params: { + type: val.type, + interval: getInterval(val.time.type), + from: moment(val.time.time[0]).valueOf(), + to: moment(val.time.time[1]).valueOf(), + }, + }, +]; +export const defulteParamsData = (group, val) => [ + { + dashboard: 'systemMonitor', + object: 'stats', + measurement: 'info', + dimension: 'history', + group, + params: { + from: moment(val.time[0]).valueOf(), + to: moment(val.time[1]).valueOf(), + }, + }, +]; + +export const areaStyle = { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 1, + color: 'rgba(151, 154, 255, 0)', + }, + { + offset: 0, + color: 'rgba(151, 154, 255, .24)', + }, + ]), +}; +export const areaStyleCpu = { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 1, + color: 'rgba(44, 182, 224, 0)', + }, + { + offset: 0, + color: 'rgba(44, 182, 224, .24)', + }, + ]), +}; +export const areaStyleJvm = { + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 1, + color: 'rgba(96, 223, 199, 0)', + }, + { + offset: 0, + color: 'rgba(96, 223, 199, .24)', + }, + ]), +}; + +export const typeDataLine = [ + { + data: [], + type: 'line', + }, +]; diff --git a/src/views/link/DashBoard/index.vue b/src/views/link/DashBoard/index.vue new file mode 100644 index 00000000..2b432a56 --- /dev/null +++ b/src/views/link/DashBoard/index.vue @@ -0,0 +1,25 @@ + + + + +