--新增首页

This commit is contained in:
lai
2023-09-14 15:43:49 +08:00
parent 03e1b4b8bd
commit 479e397e4f

View File

@@ -81,11 +81,52 @@ let tableState: TabeStateType = reactive({
/**表格状态 */ /**表格状态 */
let nfInfo: any = reactive({ let nfInfo: any = reactive({
obj: 'OMC', obj: "OMC",
version: '1.6.1', version: "1.6.1",
status: '正常', status: "正常",
number: '', number: "",
outTimeDate: '', outTimeDate: "",
});
/**表格状态类型 */
type nfStateType = {
/**主机名 */
hostName: string;
/**操作系统信息 */
osInfo: string;
/**数据库信息 */
dbInfo: string;
/**IP地址 */
ipAddress: string;
/**端口 */
port: number;
/**版本 */
version: string;
/**CPU利用率 */
cpuUse: string;
/**内存使用 */
memoryUse: string;
/**用户容量 */
capability: number;
/**序列号 */
serialNum: string;
/**许可证到期日期 */
/* selectedRowKeys: (string | number)[];*/
expiryDate:string
};
/**网元详细信息 */
let pronInfo: nfStateType = reactive({
hostName: '5gc',
osInfo: 'Linux 5gc 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 GNU/Linux',
dbInfo: 'adb v1.0.1',
ipAddress: '-',
port:3030,
version: '-',
cpuUse: '-',
memoryUse:'-',
capability:0 ,
serialNum: '-',
expiryDate:"-",
}); });
/**查询网元状态列表 */ /**查询网元状态列表 */
@@ -155,9 +196,7 @@ function fnGetList() {
/**點擊網元名 */ /**點擊網元名 */
function init(e: any) { function init(e: any) {
console.log(toRaw(e));
let realData = toRaw(e); let realData = toRaw(e);
var chartDom = document.getElementById('echarts-records'); var chartDom = document.getElementById('echarts-records');
var myChart = echarts.init(chartDom); var myChart = echarts.init(chartDom);
myChart.clear(); //怕遗留以前得元素 myChart.clear(); //怕遗留以前得元素
@@ -191,6 +230,7 @@ function init(e: any) {
show: true, show: true,
//指针长度 //指针长度
length: '60%', length: '60%',
}, },
title: { title: {
offsetCenter: [0, '90%'], offsetCenter: [0, '90%'],
@@ -275,8 +315,52 @@ function init(e: any) {
nfInfo.obj = realData.name; nfInfo.obj = realData.name;
nfInfo.number = realData.serialNum; nfInfo.number = realData.serialNum;
nfInfo.outTimeDate = realData.expiryDate; nfInfo.outTimeDate = realData.expiryDate;
} }
/**抽屉 网元详细信息 */
const visible = ref(false);
const closeDrawer = () => {
visible.value = false;
};
/**抽屉 网元详细信息 */
/**监听表格行事件*/
function rowClick(record, index) {
return {
onClick: (event) => {
console.log(toRaw(record), "666");
/* console.log( index, "666");
console.log( event, "666");*/
if (toRaw(record).status=='异常'){
message.error(`网元状态异常`, 2);
return false;
}else {
let pronData=toRaw(record);
//渲染详细信息
pronInfo={
hostName: pronData.hostName,
osInfo:pronData.osInfo,
dbInfo: pronData.dbInfo,
ipAddress:pronData.ipAddress,
port:pronData.port,
version:pronData.version,
cpuUse:pronData.name+":"+pronData.cpuUsage.nfCpuUsage/100+"%; "+"SYS:"+pronData.cpuUsage.sysCpuUsage / 100+"%",
memoryUse:"Total:"+pronData.memUsage.totalMem+"KB; "+pronData.name+":"+pronData.memUsage.nfUsedMem+"KB; SYS:"+pronData.memUsage.sysMemUsage+"KB",
capability:pronData.capability ,
serialNum:pronData.serialNum,
expiryDate:pronData.expiryDate,
}
}
visible.value = true;
},
};
}
onMounted(() => { onMounted(() => {
fnGetList(); fnGetList();
}); });
@@ -284,6 +368,36 @@ onMounted(() => {
<template> <template>
<PageContainer :breadcrumb="false"> <PageContainer :breadcrumb="false">
<div>
<a-drawer :visible="visible" @close="closeDrawer" :width="700">
<a-descriptions bordered :column="1" :label-style="{ width: '160px' }">
<a-descriptions-item :label="t('views.index.hostName')">{{ pronInfo.hostName }}</a-descriptions-item>
<a-descriptions-item :label="t('views.index.osInfo')">{{ pronInfo.osInfo }}</a-descriptions-item>
<a-descriptions-item :label="t('views.index.dbInfo')">{{ pronInfo.dbInfo }}</a-descriptions-item>
<a-descriptions-item :label="t('views.index.ipAddress')">{{ pronInfo.ipAddress }}</a-descriptions-item>
<a-descriptions-item :label="t('views.index.port')">{{ pronInfo.port }}</a-descriptions-item>
<a-descriptions-item :label="t('views.index.version')">{{ pronInfo.version }}</a-descriptions-item>
<a-descriptions-item :label="t('views.index.cpuUse')">{{ pronInfo.cpuUse }}</a-descriptions-item>
<a-descriptions-item :label="t('views.index.memoryUse')">{{ pronInfo.memoryUse }}</a-descriptions-item>
<a-descriptions-item :label="t('views.index.capability')">{{ pronInfo.capability }}</a-descriptions-item>
<a-descriptions-item :label="t('views.index.serialNum')">{{ pronInfo.serialNum }}</a-descriptions-item>
<a-descriptions-item :label="t('views.index.expiryDate')">{{ pronInfo.expiryDate }}</a-descriptions-item>
<template v-if="nfInfo.obj === 'OMC'">
<a-descriptions-item label="版本号">{{ nfInfo.version }}</a-descriptions-item>
<a-descriptions-item label="系统状态">{{ nfInfo.status }}</a-descriptions-item>
</template>
<template v-else>
<a-descriptions-item label="序列号">{{ nfInfo.number }}</a-descriptions-item>
<a-descriptions-item label="许可证到期日期">{{ nfInfo.outTimeDate }}</a-descriptions-item>
</template>
</a-descriptions>
</a-drawer>
</div>
<a-row :gutter="16"> <a-row :gutter="16">
<a-col :lg="14" :md="16" :xs="24"> <a-col :lg="14" :md="16" :xs="24">
<!-- 表格列表 --> <!-- 表格列表 -->
@@ -295,13 +409,12 @@ onMounted(() => {
:data-source="tableState.data" :data-source="tableState.data"
:pagination="false" :pagination="false"
:scroll="{ x: true }" :scroll="{ x: true }"
:customRow="rowClick"
> >
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'status'"> <template v-if="column.key === 'status'">
<div v-if="record.status == '正常'"> <div v-if="record.status == '正常'">
<a-tag color="blue" @click="init(record)">{{ <a-tag color="blue" @click="init(record)">{{ record.name }}</a-tag>
record.name
}}</a-tag>
</div> </div>
<div v-else> <div v-else>
<a-tag color="pink">{{ record.name }}</a-tag> <a-tag color="pink">{{ record.name }}</a-tag>
@@ -312,41 +425,27 @@ onMounted(() => {
</a-col> </a-col>
<a-col :lg="10" :md="8" :xs="24"> <a-col :lg="10" :md="8" :xs="24">
<a-card title="运行状态" style="margin-bottom: 16px"> <a-card title="运行状态" style="margin-bottom: 16px">
<div <div id="echarts-records" style="width: 100%;min-height:200px"></div>
id="echarts-records"
style="width: 100%; min-height: 200px"
></div>
</a-card> </a-card>
<a-card title="简略信息" style="margin-top: 16px"> <a-card title="简略信息" style="margin-top: 16px">
<a-descriptions <a-descriptions bordered :column="1" :label-style="{ width: '160px' }">
bordered <a-descriptions-item label="对象">{{ nfInfo.obj }}</a-descriptions-item>
:column="1"
:label-style="{ width: '160px' }"
>
<a-descriptions-item label="对象">{{
nfInfo.obj
}}</a-descriptions-item>
<template v-if="nfInfo.obj === 'OMC'"> <template v-if="nfInfo.obj === 'OMC'">
<a-descriptions-item label="版本号">{{ <a-descriptions-item label="版本号">{{ nfInfo.version }}</a-descriptions-item>
nfInfo.version <a-descriptions-item label="系统状态">{{ nfInfo.status }}</a-descriptions-item>
}}</a-descriptions-item>
<a-descriptions-item label="系统状态">{{
nfInfo.status
}}</a-descriptions-item>
</template> </template>
<template v-else> <template v-else>
<a-descriptions-item label="序列号">{{ <a-descriptions-item label="序列号">{{ nfInfo.number }}</a-descriptions-item>
nfInfo.number <a-descriptions-item label="许可证到期日期">{{ nfInfo.outTimeDate }}</a-descriptions-item>
}}</a-descriptions-item>
<a-descriptions-item label="许可证到期日期">{{
nfInfo.outTimeDate
}}</a-descriptions-item>
</template> </template>
</a-descriptions> </a-descriptions>
</a-card> </a-card>
</a-col> </a-col>
</a-row> </a-row>
</PageContainer> </PageContainer>
</template> </template>
<style lang="less" scoped></style> <style lang="less" scoped></style>