[] = [];
+ eventTotal.value += data.total;
for (const item of data.rows) {
const v = cdrEventParse(item);
if (v) {
- evDataArr.push(v);
+ eventData.value.push(v);
}
}
- cdrEventData.value = evDataArr;
- if (evDataArr.length > 0) {
- cdrEventId.value = evDataArr[0].id;
- }
+ eventId.value = eventData.value[0].eId;
}
break;
//UPF-总流量数
@@ -112,8 +98,12 @@ export default function useWS() {
if (data.data) {
const v = ueEventParse(data.data);
if (v) {
- ueEventData.value.unshift(v);
- ueEventId.value = v.id;
+ eventData.value.unshift(v);
+ eventTotal.value += 1;
+ eventId.value = v.eId;
+ if (eventData.value.length > 50) {
+ eventData.value.pop();
+ }
}
}
break;
@@ -122,8 +112,12 @@ export default function useWS() {
if (data.data) {
const v = cdrEventParse(data.data);
if (v) {
- cdrEventData.value.unshift(v);
- cdrEventId.value = v.id;
+ eventData.value.unshift(v);
+ eventTotal.value += 1;
+ eventId.value = v.eId;
+ if (eventData.value.length > 50) {
+ eventData.value.pop();
+ }
}
}
break;
@@ -154,7 +148,7 @@ export default function useWS() {
sortField: 'timestamp',
sortOrder: 'desc',
pageNum: 1,
- pageSize: 50,
+ pageSize: 25,
},
});
}
@@ -170,7 +164,7 @@ export default function useWS() {
sortField: 'timestamp',
sortOrder: 'desc',
pageNum: 1,
- pageSize: 50,
+ pageSize: 25,
},
});
}
diff --git a/src/views/dashboard/overview/index.vue b/src/views/dashboard/overview/index.vue
index 910f68a2..e3bbb1fe 100644
--- a/src/views/dashboard/overview/index.vue
+++ b/src/views/dashboard/overview/index.vue
@@ -3,8 +3,7 @@ import { onBeforeUnmount, onMounted, reactive, ref } from 'vue';
import useI18n from '@/hooks/useI18n';
import Topology from './components/Topology/index.vue';
import NeResources from './components/NeResources/index.vue';
-import UEEvent from './components/UEEvent/index.vue';
-import CDREvent from './components/CDREvent/index.vue';
+import UserActivity from './components/UserActivity/index.vue';
import AlarnDayLine from './components/AlarnDayLine/index.vue';
import AlarnTypeBar from './components/AlarnTypeBar/index.vue';
import UPFFlow from './components/UPFFlow/index.vue';
@@ -75,6 +74,7 @@ async function fnGetState() {
stateTimeout.value = setTimeout(() => fnGetState(), 5_000);
}
+/**初始数据函数 */
function InitData() {
cdrEventSend();
ueEventSend();
@@ -188,32 +188,22 @@ onBeforeUnmount(() => {
{{ onlineInfo.nbNum }}
-
+
{{ t('views.dashboard.overview.skim.base') }}
-
-
-
-
{{ t('views.dashboard.overview.alarmType.title') }}
-
-
-
-
-
-
+
+
- {{ t('views.dashboard.overview.cdrEvent.title') }}
+ {{ t('views.dashboard.overview.userActivity.title') }}
-
+
@@ -305,15 +295,21 @@ onBeforeUnmount(() => {
-
-
+
+
-
-
- {{ t('views.dashboard.overview.ueEvent.title') }}
-
+
{{ t('views.dashboard.overview.alarmType.title') }}
+
+
+
+
+
+
{{ t('views.dashboard.overview.alarmType.title') }}
+
From 4d1b3d6a909f5f1390e1b8627d186fe7a00e84b4 Mon Sep 17 00:00:00 2001
From: TsMask <340112800@qq.com>
Date: Tue, 30 Jan 2024 15:58:53 +0800
Subject: [PATCH 02/11] =?UTF-8?q?fix:=20=E6=8B=93=E6=89=91=E5=9B=BE?=
=?UTF-8?q?=E8=8A=82=E7=82=B9=E6=8E=92=E9=99=A4LAN?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../dashboard/overview/hooks/useTopology.ts | 15 +++++++++------
src/views/monitor/topologyArchitecture/index.vue | 15 +++++++++------
.../monitor/topologyBuild/hooks/registerEdge.ts | 16 +++++++---------
3 files changed, 25 insertions(+), 21 deletions(-)
diff --git a/src/views/dashboard/overview/hooks/useTopology.ts b/src/views/dashboard/overview/hooks/useTopology.ts
index 4e57723a..7610f561 100644
--- a/src/views/dashboard/overview/hooks/useTopology.ts
+++ b/src/views/dashboard/overview/hooks/useTopology.ts
@@ -15,6 +15,8 @@ export const notNeNodes = [
'lan5',
'lan6',
'lan7',
+ 'LAN',
+ 'NR',
];
/**图状态 */
@@ -114,9 +116,10 @@ export function neStateParse(neType: string, data: Record
) {
const neS = nodes.find((n: any) => n.id === edgeSource);
const neT = nodes.find((n: any) => n.id === edgeTarget);
// console.log(neS, edgeSource, neT, edgeTarget);
- // 通过 ID 查询节点实例
- const item = graphG6.value.findById(edge.id);
- if (neS && neT && item) {
+
+ if (neS && neT) {
+ // 通过 ID 查询节点实例
+ // const item = graphG6.value.findById(edge.id);
// console.log(
// `${edgeSource} - ${edgeTarget}`,
// neS.neState.online && neT.neState.online
@@ -136,16 +139,16 @@ export function neStateParse(neType: string, data: Record) {
// });
// 设置状态
graphG6.value.setItemState(
- item,
+ edge.id,
'line-dash',
neS.neState.online && neT.neState.online
);
}
if (neS && notNeNodes.includes(edgeTarget)) {
- graphG6.value.setItemState(item, 'line-dash', neT.neState.online);
+ graphG6.value.setItemState(edge.id, 'line-path', neS.neState.online);
}
if (neT && notNeNodes.includes(edgeSource)) {
- graphG6.value.setItemState(item, 'line-dash', neT.neState.online);
+ graphG6.value.setItemState(edge.id, 'line-path', neT.neState.online);
}
}
}
diff --git a/src/views/monitor/topologyArchitecture/index.vue b/src/views/monitor/topologyArchitecture/index.vue
index d5e6f2cc..3ff3a6dc 100644
--- a/src/views/monitor/topologyArchitecture/index.vue
+++ b/src/views/monitor/topologyArchitecture/index.vue
@@ -57,6 +57,8 @@ const notNeNodes = [
'lan5',
'lan6',
'lan7',
+ 'LAN',
+ 'NR',
];
/**图实例对象 */
@@ -419,9 +421,10 @@ function wsMessage(res: Record) {
const neS = nodes.find((n: any) => n.id === edgeSource);
const neT = nodes.find((n: any) => n.id === edgeTarget);
// console.log(neS, edgeSource, neT, edgeTarget);
- // 通过 ID 查询节点实例
- const item = graphG6.value.findById(edge.id);
- if (neS && neT && item) {
+
+ if (neS && neT) {
+ // 通过 ID 查询节点实例
+ // const item = graphG6.value.findById(edge.id);
// console.log(
// `${edgeSource} - ${edgeTarget}`,
// neS.neState.online && neT.neState.online
@@ -441,16 +444,16 @@ function wsMessage(res: Record) {
// });
// 设置状态
graphG6.value.setItemState(
- item,
+ edge.id,
'line-dash',
neS.neState.online && neT.neState.online
);
}
if (neS && notNeNodes.includes(edgeTarget)) {
- graphG6.value.setItemState(item, 'line-dash', neT.neState.online);
+ graphG6.value.setItemState(edge.id, 'line-path', neS.neState.online);
}
if (neT && notNeNodes.includes(edgeSource)) {
- graphG6.value.setItemState(item, 'line-dash', neT.neState.online);
+ graphG6.value.setItemState(edge.id, 'line-path', neT.neState.online);
}
}
}
diff --git a/src/views/monitor/topologyBuild/hooks/registerEdge.ts b/src/views/monitor/topologyBuild/hooks/registerEdge.ts
index babe5a7f..8b9d1eb2 100644
--- a/src/views/monitor/topologyBuild/hooks/registerEdge.ts
+++ b/src/views/monitor/topologyBuild/hooks/registerEdge.ts
@@ -208,11 +208,15 @@ export function edgeLineAnimateState() {
}
return;
}
-
+
// line-dash 虚线运动
if (name === 'line-dash') {
if (value) {
- if (keyShape.cfg.animating) return;
+ keyShape.stopAnimate();
+ keyShape.attr({
+ lineDash: null,
+ lineDashOffset: null,
+ });
let index = 0;
keyShape.animate(
() => {
@@ -221,7 +225,7 @@ export function edgeLineAnimateState() {
index = 0;
}
return {
- lineDash: [4, 2, 2, 2],
+ lineDash: [4, 2, 1, 2],
lineDashOffset: -index,
};
},
@@ -230,12 +234,6 @@ export function edgeLineAnimateState() {
duration: 3000, // 执行一次的持续时间
}
);
- } else {
- keyShape.stopAnimate();
- keyShape.attr({
- lineDash: null,
- lineDashOffset: null,
- });
}
return;
}
From 17bb4f173814da53b1adbd3fe2dcaa9bad5a1a5e Mon Sep 17 00:00:00 2001
From: TsMask <340112800@qq.com>
Date: Tue, 30 Jan 2024 16:31:32 +0800
Subject: [PATCH 03/11] =?UTF-8?q?fix:=20=E8=B5=84=E6=BA=90=E5=9B=BE?=
=?UTF-8?q?=E8=87=AA=E9=80=82=E5=BA=94=E5=92=8C=E8=AD=A6=E5=91=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/ChartLine/index.vue | 59 ++++++++++++++---------------
src/views/monitor/monitor/index.vue | 2 +-
2 files changed, 30 insertions(+), 31 deletions(-)
diff --git a/src/components/ChartLine/index.vue b/src/components/ChartLine/index.vue
index 91c0a14a..1539da20 100644
--- a/src/components/ChartLine/index.vue
+++ b/src/components/ChartLine/index.vue
@@ -1,8 +1,5 @@
-
-
-
+
+
+
+
diff --git a/src/views/monitor/monitor/index.vue b/src/views/monitor/monitor/index.vue
index 2ecd8d9f..7383db93 100644
--- a/src/views/monitor/monitor/index.vue
+++ b/src/views/monitor/monitor/index.vue
@@ -164,7 +164,7 @@ function fnLoadChart(data: Record[]) {
type: 'value',
name: `${t('views.monitor.monitor.resourceUsage')} ( % )`,
position: 'right',
- alignTicks: true,
+ alignTicks: false
},
],
grid: { left: '5%', right: '5%', bottom: '20%' },
From 35e8a727ee6443c6127ae5370a40962e368e39a6 Mon Sep 17 00:00:00 2001
From: TsMask <340112800@qq.com>
Date: Tue, 30 Jan 2024 16:31:48 +0800
Subject: [PATCH 04/11] =?UTF-8?q?del:=20=E5=88=A0=E9=99=A4=E5=85=B3?=
=?UTF-8?q?=E7=B3=BB=E5=9B=BE=E7=BB=84=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/ChartGraphG6/index.vue | 392 --------------------------
1 file changed, 392 deletions(-)
delete mode 100644 src/components/ChartGraphG6/index.vue
diff --git a/src/components/ChartGraphG6/index.vue b/src/components/ChartGraphG6/index.vue
deleted file mode 100644
index 983d8181..00000000
--- a/src/components/ChartGraphG6/index.vue
+++ /dev/null
@@ -1,392 +0,0 @@
-
-
-
-
-
-
-
From cc211f2dd9bb01eccc79e635c2ca5c5030ab7444 Mon Sep 17 00:00:00 2001
From: TsMask <340112800@qq.com>
Date: Tue, 30 Jan 2024 16:32:04 +0800
Subject: [PATCH 05/11] =?UTF-8?q?style:=20=E7=9C=8B=E6=9D=BF=E5=A4=9A?=
=?UTF-8?q?=E8=AF=AD=E8=A8=80=E8=A1=A5=E5=85=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/i18n/locales/en-US.ts | 2 +-
src/views/dashboard/overview/index.vue | 16 ++++++++--------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/i18n/locales/en-US.ts b/src/i18n/locales/en-US.ts
index 6d983481..da1ccab7 100644
--- a/src/i18n/locales/en-US.ts
+++ b/src/i18n/locales/en-US.ts
@@ -510,7 +510,7 @@ export default {
title: "Alarm Statistics",
},
resources: {
- title: "Resource Situation",
+ title: "Resource Summary",
sysMem: "Memory",
sysCpu: "CPU",
neCpu: "NE CPU",
diff --git a/src/views/dashboard/overview/index.vue b/src/views/dashboard/overview/index.vue
index e3bbb1fe..8661b281 100644
--- a/src/views/dashboard/overview/index.vue
+++ b/src/views/dashboard/overview/index.vue
@@ -171,11 +171,18 @@ onBeforeUnmount(() => {
{{ t('views.dashboard.overview.skim.users') }}
+
+
{{ onlineInfo.nbNum }}
+
+
+ {{ t('views.dashboard.overview.skim.base') }}
+
+
{{ onlineInfo.ueNum }}
- {{ t('views.dashboard.overview.skim.session') }}
+ Data {{ t('views.dashboard.overview.skim.session') }}
@@ -185,13 +192,6 @@ onBeforeUnmount(() => {
IMS {{ t('views.dashboard.overview.skim.session') }}
-
-
{{ onlineInfo.nbNum }}
-
-
- {{ t('views.dashboard.overview.skim.base') }}
-
-
From a654680192a5685e0db7fefa02329190807a4367 Mon Sep 17 00:00:00 2001
From: TsMask <340112800@qq.com>
Date: Tue, 30 Jan 2024 17:02:07 +0800
Subject: [PATCH 06/11] =?UTF-8?q?style:=20=E7=9C=8B=E6=9D=BF=E5=A4=9A?=
=?UTF-8?q?=E8=AF=AD=E8=A8=80=E8=A1=A5=E5=85=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/i18n/locales/en-US.ts | 2 ++
src/i18n/locales/zh-CN.ts | 2 ++
src/views/dashboard/overview/index.vue | 6 +++---
3 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/i18n/locales/en-US.ts b/src/i18n/locales/en-US.ts
index da1ccab7..109bd5ab 100644
--- a/src/i18n/locales/en-US.ts
+++ b/src/i18n/locales/en-US.ts
@@ -517,6 +517,8 @@ export default {
},
topology: {
title: "Network Topology",
+ normal: "Normal",
+ abnormal: "AbNormal",
},
userActivity: {
title: "User Activity",
diff --git a/src/i18n/locales/zh-CN.ts b/src/i18n/locales/zh-CN.ts
index 9ecb864b..692ed469 100644
--- a/src/i18n/locales/zh-CN.ts
+++ b/src/i18n/locales/zh-CN.ts
@@ -517,6 +517,8 @@ export default {
},
topology: {
title: "网络拓扑",
+ normal: "正常",
+ abnormal: "异常",
},
userActivity: {
title: "用户活动",
diff --git a/src/views/dashboard/overview/index.vue b/src/views/dashboard/overview/index.vue
index 8661b281..9f274680 100644
--- a/src/views/dashboard/overview/index.vue
+++ b/src/views/dashboard/overview/index.vue
@@ -186,7 +186,7 @@ onBeforeUnmount(() => {
-
1000
+ 0
IMS {{ t('views.dashboard.overview.skim.session') }}
@@ -227,9 +227,9 @@ onBeforeUnmount(() => {
{{ t('views.dashboard.overview.topology.title') }}
- normal:
+ {{ t('views.dashboard.overview.topology.normal') }}:
{{ graphNodeStateNum[0] }}
- abnormal:
+ {{ t('views.dashboard.overview.topology.abnormal') }}:
{{ graphNodeStateNum[1] }}
From 41335ae99cc39a51c1056589f1353afe95d5a3b2 Mon Sep 17 00:00:00 2001
From: TsMask <340112800@qq.com>
Date: Tue, 30 Jan 2024 17:18:20 +0800
Subject: [PATCH 07/11] =?UTF-8?q?feat:=20=E7=9C=8B=E6=9D=BF=E9=80=9A?=
=?UTF-8?q?=E8=AF=9D=E6=97=B6=E9=95=BF=E6=A0=BC=E5=BC=8F=E5=8C=96hms?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/utils/date-utils.ts | 23 +++++++++++++++++++
.../components/UserActivity/index.vue | 3 ++-
2 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/src/utils/date-utils.ts b/src/utils/date-utils.ts
index f739569a..c82d78d4 100644
--- a/src/utils/date-utils.ts
+++ b/src/utils/date-utils.ts
@@ -73,6 +73,29 @@ export function diffValue(
return value;
}
+/**
+ * 格式化秒值为 ?h?m?s
+ * @param seconds 2558 秒
+ * @returns 1h42m38s
+ */
+export function parseDuration(seconds: number | string) {
+ seconds = Number(seconds) || 0;
+ const duration = dayjs().startOf('day').subtract(seconds, 'seconds');
+ const secondsLeft = duration.format('s');
+ const minutes = duration.format('m');
+ const hours = duration.format('H');
+ if (+hours > 0) {
+ return `${hours}h${minutes}m${secondsLeft}s`;
+ }
+ if (+minutes > 0) {
+ return `${minutes}m${secondsLeft}s`;
+ }
+ if (+secondsLeft > 0) {
+ return `${secondsLeft}s`;
+ }
+ return `${seconds}s`;
+}
+
/**
* 格式时间不带年份
*
diff --git a/src/views/dashboard/overview/components/UserActivity/index.vue b/src/views/dashboard/overview/components/UserActivity/index.vue
index a1b610c7..6e67b3cb 100644
--- a/src/views/dashboard/overview/components/UserActivity/index.vue
+++ b/src/views/dashboard/overview/components/UserActivity/index.vue
@@ -1,4 +1,5 @@