From c9eb0240d85308128a0b827b294f6f87efe2d62e Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Wed, 12 Jun 2024 10:16:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BD=91=E5=85=83=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=88=A0=E9=99=A4=E4=B8=8D=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E5=88=97=E8=A1=A8=EF=BC=8C=E8=BF=9B=E8=A1=8C=E5=8D=95=E4=B8=AA?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=B9=B6=E6=B8=85=E9=99=A4=E7=BD=91=E5=85=83?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ne/neInfo/components/EditModal.vue | 6 +- src/views/ne/neInfo/index.vue | 136 +++++++++++-------- 2 files changed, 83 insertions(+), 59 deletions(-) diff --git a/src/views/ne/neInfo/components/EditModal.vue b/src/views/ne/neInfo/components/EditModal.vue index d2baf84a..0365d348 100644 --- a/src/views/ne/neInfo/components/EditModal.vue +++ b/src/views/ne/neInfo/components/EditModal.vue @@ -3,7 +3,6 @@ import { reactive, onMounted, toRaw, watch } from 'vue'; import { message, Form, Modal } from 'ant-design-vue/lib'; import useI18n from '@/hooks/useI18n'; import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; -import useNeInfoStore from '@/store/modules/neinfo'; import { NE_TYPE_LIST } from '@/constants/ne-constants'; import { regExpIPv4, regExpIPv6 } from '@/utils/regular-utils'; import { getNeInfo, addNeInfo, updateNeInfo } from '@/api/ne/neInfo'; @@ -250,9 +249,8 @@ function fnModalOk() { .then(res => { if (res.code === RESULT_CODE_SUCCESS) { message.success(t('common.operateOk'), 3); - // 刷新缓存的网元信息 - useNeInfoStore().fnRefreshNelist(); - emit('ok'); + // 返回无引用信息 + emit('ok', JSON.parse(JSON.stringify(from))); fnModalCancel(); } else { message.error({ diff --git a/src/views/ne/neInfo/index.vue b/src/views/ne/neInfo/index.vue index e183f82d..370b20d2 100644 --- a/src/views/ne/neInfo/index.vue +++ b/src/views/ne/neInfo/index.vue @@ -8,7 +8,7 @@ import { ColumnsType } from 'ant-design-vue/lib/table'; import useI18n from '@/hooks/useI18n'; import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; import useNeInfoStore from '@/store/modules/neinfo'; -import { listNeInfo, delNeInfo } from '@/api/ne/neInfo'; +import { listNeInfo, delNeInfo, stateNeInfo } from '@/api/ne/neInfo'; import { NE_TYPE_LIST } from '@/constants/ne-constants'; import useDictStore from '@/store/modules/dict'; import useNeOptions from './hooks/useNeOptions'; @@ -70,7 +70,7 @@ type TabeStateType = { /**搜索栏 */ seached: boolean; /**记录数据 */ - data: object[]; + data: Record[]; /**勾选记录 */ selectedRowKeys: (string | number)[]; }; @@ -219,8 +219,20 @@ function fnModalVisibleByEdit(row?: Record) { * 对话框弹出确认执行函数 * 进行表达规则校验 */ -function fnModalEditOk() { - fnGetList(1); +function fnModalEditOk(from: Record) { + stateNeInfo(from.neType, from.neId) + .then(res => { + // 找到编辑更新的网元 + const item = tableState.data.find(s => s.id === from.id); + if (item && res.code === RESULT_CODE_SUCCESS) { + Object.assign(item.serverState, res.data); + const resouresUsage = parseResouresUsage(item.serverState); + Reflect.set(item, 'resoures', resouresUsage); + } + }) + .finally(() => { + useNeInfoStore().fnRefreshNelist(); + }); } /** @@ -256,7 +268,16 @@ function fnRecordDelete(id: string) { .then(res => { if (res.code === RESULT_CODE_SUCCESS) { message.success(t('common.operateOk'), 3); - fnGetList(1); + // 过滤掉删除的id + tableState.data = tableState.data.filter(item => { + if (id.indexOf(',')) { + return !tableState.selectedRowKeys.includes(item.id); + } else { + return item.id != id; + } + }); + // 刷新缓存 + useNeInfoStore().fnRefreshNelist(); } else { message.error({ content: `${res.msg}`, @@ -331,56 +352,8 @@ function fnGetList(pageNum?: number) { // 遍历处理资源情况数值 tableState.data = res.rows.map(item => { const neState = item.serverState; - let sysCpuUsage = 0; - let nfCpuUsage = 0; - if (neState.cpu) { - nfCpuUsage = neState.cpu.nfCpuUsage; - if (nfCpuUsage > 100) { - const nfCpu = +(neState.cpu.nfCpuUsage / 100); - if (nfCpu > 100) { - nfCpuUsage = 100; - } else { - nfCpuUsage = +nfCpu.toFixed(2); - } - } - - sysCpuUsage = neState.cpu.sysCpuUsage; - if (sysCpuUsage > 100) { - const sysCpu = +(neState.cpu.sysCpuUsage / 100); - if (sysCpu > 100) { - sysCpuUsage = 100; - } else { - sysCpuUsage = +sysCpu.toFixed(2); - } - } - } - - let sysMemUsage = 0; - if (neState.mem) { - let men = neState.mem.sysMemUsage; - if (men > 100) { - men = +(men / 100).toFixed(2); - } - sysMemUsage = men; - } - - let sysDiskUsage = 0; - if (neState.disk && Array.isArray(neState.disk.partitionInfo)) { - let disks: any[] = neState.disk.partitionInfo; - disks = disks.sort((a, b) => +b.used - +a.used); - if (disks.length > 0) { - const { total, used } = disks[0]; - sysDiskUsage = +((used / total) * 100).toFixed(2); - } - } - - Reflect.set(item, 'resoures', { - sysDiskUsage, - sysMemUsage, - sysCpuUsage, - nfCpuUsage, - }); - + const resouresUsage = parseResouresUsage(neState); + Reflect.set(item, 'resoures', resouresUsage); return item; }); } @@ -388,6 +361,59 @@ function fnGetList(pageNum?: number) { }); } +/**解析网元状态携带的资源利用率 */ +function parseResouresUsage(neState: Record) { + let sysCpuUsage = 0; + let nfCpuUsage = 0; + if (neState.cpu) { + nfCpuUsage = neState.cpu.nfCpuUsage; + if (nfCpuUsage > 100) { + const nfCpu = +(neState.cpu.nfCpuUsage / 100); + if (nfCpu > 100) { + nfCpuUsage = 100; + } else { + nfCpuUsage = +nfCpu.toFixed(2); + } + } + + sysCpuUsage = neState.cpu.sysCpuUsage; + if (sysCpuUsage > 100) { + const sysCpu = +(neState.cpu.sysCpuUsage / 100); + if (sysCpu > 100) { + sysCpuUsage = 100; + } else { + sysCpuUsage = +sysCpu.toFixed(2); + } + } + } + + let sysMemUsage = 0; + if (neState.mem) { + let men = neState.mem.sysMemUsage; + if (men > 100) { + men = +(men / 100).toFixed(2); + } + sysMemUsage = men; + } + + let sysDiskUsage = 0; + if (neState.disk && Array.isArray(neState.disk.partitionInfo)) { + let disks: any[] = neState.disk.partitionInfo; + disks = disks.sort((a, b) => +b.used - +a.used); + if (disks.length > 0) { + const { total, used } = disks[0]; + sysDiskUsage = +((used / total) * 100).toFixed(2); + } + } + + return { + sysDiskUsage, + sysMemUsage, + sysCpuUsage, + nfCpuUsage, + }; +} + onMounted(() => { // 初始字典数据 Promise.allSettled([getDict('ne_info_status')]).then(resArr => {