fix: 网元信息更新删除不刷新列表,进行单个更新并清除网元列表缓存
This commit is contained in:
@@ -3,7 +3,6 @@ import { reactive, onMounted, toRaw, watch } from 'vue';
|
|||||||
import { message, Form, Modal } from 'ant-design-vue/lib';
|
import { message, Form, Modal } from 'ant-design-vue/lib';
|
||||||
import useI18n from '@/hooks/useI18n';
|
import useI18n from '@/hooks/useI18n';
|
||||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||||
import useNeInfoStore from '@/store/modules/neinfo';
|
|
||||||
import { NE_TYPE_LIST } from '@/constants/ne-constants';
|
import { NE_TYPE_LIST } from '@/constants/ne-constants';
|
||||||
import { regExpIPv4, regExpIPv6 } from '@/utils/regular-utils';
|
import { regExpIPv4, regExpIPv6 } from '@/utils/regular-utils';
|
||||||
import { getNeInfo, addNeInfo, updateNeInfo } from '@/api/ne/neInfo';
|
import { getNeInfo, addNeInfo, updateNeInfo } from '@/api/ne/neInfo';
|
||||||
@@ -250,9 +249,8 @@ function fnModalOk() {
|
|||||||
.then(res => {
|
.then(res => {
|
||||||
if (res.code === RESULT_CODE_SUCCESS) {
|
if (res.code === RESULT_CODE_SUCCESS) {
|
||||||
message.success(t('common.operateOk'), 3);
|
message.success(t('common.operateOk'), 3);
|
||||||
// 刷新缓存的网元信息
|
// 返回无引用信息
|
||||||
useNeInfoStore().fnRefreshNelist();
|
emit('ok', JSON.parse(JSON.stringify(from)));
|
||||||
emit('ok');
|
|
||||||
fnModalCancel();
|
fnModalCancel();
|
||||||
} else {
|
} else {
|
||||||
message.error({
|
message.error({
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { ColumnsType } from 'ant-design-vue/lib/table';
|
|||||||
import useI18n from '@/hooks/useI18n';
|
import useI18n from '@/hooks/useI18n';
|
||||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||||
import useNeInfoStore from '@/store/modules/neinfo';
|
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 { NE_TYPE_LIST } from '@/constants/ne-constants';
|
||||||
import useDictStore from '@/store/modules/dict';
|
import useDictStore from '@/store/modules/dict';
|
||||||
import useNeOptions from './hooks/useNeOptions';
|
import useNeOptions from './hooks/useNeOptions';
|
||||||
@@ -70,7 +70,7 @@ type TabeStateType = {
|
|||||||
/**搜索栏 */
|
/**搜索栏 */
|
||||||
seached: boolean;
|
seached: boolean;
|
||||||
/**记录数据 */
|
/**记录数据 */
|
||||||
data: object[];
|
data: Record<string, any>[];
|
||||||
/**勾选记录 */
|
/**勾选记录 */
|
||||||
selectedRowKeys: (string | number)[];
|
selectedRowKeys: (string | number)[];
|
||||||
};
|
};
|
||||||
@@ -219,8 +219,20 @@ function fnModalVisibleByEdit(row?: Record<string, any>) {
|
|||||||
* 对话框弹出确认执行函数
|
* 对话框弹出确认执行函数
|
||||||
* 进行表达规则校验
|
* 进行表达规则校验
|
||||||
*/
|
*/
|
||||||
function fnModalEditOk() {
|
function fnModalEditOk(from: Record<string, any>) {
|
||||||
fnGetList(1);
|
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 => {
|
.then(res => {
|
||||||
if (res.code === RESULT_CODE_SUCCESS) {
|
if (res.code === RESULT_CODE_SUCCESS) {
|
||||||
message.success(t('common.operateOk'), 3);
|
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 {
|
} else {
|
||||||
message.error({
|
message.error({
|
||||||
content: `${res.msg}`,
|
content: `${res.msg}`,
|
||||||
@@ -331,56 +352,8 @@ function fnGetList(pageNum?: number) {
|
|||||||
// 遍历处理资源情况数值
|
// 遍历处理资源情况数值
|
||||||
tableState.data = res.rows.map(item => {
|
tableState.data = res.rows.map(item => {
|
||||||
const neState = item.serverState;
|
const neState = item.serverState;
|
||||||
let sysCpuUsage = 0;
|
const resouresUsage = parseResouresUsage(neState);
|
||||||
let nfCpuUsage = 0;
|
Reflect.set(item, 'resoures', resouresUsage);
|
||||||
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,
|
|
||||||
});
|
|
||||||
|
|
||||||
return item;
|
return item;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -388,6 +361,59 @@ function fnGetList(pageNum?: number) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**解析网元状态携带的资源利用率 */
|
||||||
|
function parseResouresUsage(neState: Record<string, any>) {
|
||||||
|
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(() => {
|
onMounted(() => {
|
||||||
// 初始字典数据
|
// 初始字典数据
|
||||||
Promise.allSettled([getDict('ne_info_status')]).then(resArr => {
|
Promise.allSettled([getDict('ne_info_status')]).then(resArr => {
|
||||||
|
|||||||
Reference in New Issue
Block a user