feat: 网元服务操作局部状态刷新,补充提示信息

This commit is contained in:
TsMask
2025-04-29 10:56:12 +08:00
parent 1b7d5fc85c
commit a86e9aa219
4 changed files with 119 additions and 77 deletions

View File

@@ -14,8 +14,14 @@ import useDictStore from '@/store/modules/dict';
import useNeOptions from './hooks/useNeOptions';
const { getDict } = useDictStore();
const { t } = useI18n();
const { fnNeStart, fnNeRestart, fnNeStop, fnNeReload, fnNeLogFile } =
useNeOptions();
const {
fnNeStart,
fnNeRestart,
fnNeStop,
fnNeReload,
fnNeLogFile,
parseResouresUsage,
} = useNeOptions();
// 异步加载组件
const EditModal = defineAsyncComponent(
() => import('./components/EditModal.vue')
@@ -226,17 +232,22 @@ function fnModalEditOk(from: Record<string, any>) {
return;
}
// 编辑时局部更新信息
stateNeInfo(from.neType, from.neId)
reloadRowInfo(from);
}
/**局部更新信息 */
function reloadRowInfo(row: Record<string, any>) {
stateNeInfo(row.neType, row.neId)
.then(res => {
// 找到编辑更新的网元
const item = tableState.data.find(s => s.id === from.id);
const item = tableState.data.find(s => s.id === row.id);
if (item && res.code === RESULT_CODE_SUCCESS) {
item.neType = from.neType;
item.neId = from.neId;
item.rmUid = from.rmUid;
item.neName = from.neName;
item.ip = from.ip;
item.port = from.port;
item.neType = row.neType;
item.neId = row.neId;
item.rmUid = row.rmUid;
item.neName = row.neName;
item.ip = row.ip;
item.port = row.port;
if (res.data.online) {
item.status = '1';
if (res.data.standby) {
@@ -290,7 +301,7 @@ function fnRecordDelete(id: string) {
message.success(t('common.operateOk'), 3);
// 过滤掉删除的id
tableState.data = tableState.data.filter(item => {
if (id.indexOf(',') > -1) {
if (tableState.selectedRowKeys.length > 0) {
return !tableState.selectedRowKeys.includes(item.id);
} else {
return item.id !== id;
@@ -322,13 +333,13 @@ function fnRecordMore(type: string | number, row: Record<string, any>) {
fnRecordDelete(row.id);
break;
case 'start':
fnNeStart(row);
fnNeStart(row, () => reloadRowInfo(row));
break;
case 'restart':
fnNeRestart(row);
fnNeRestart(row, () => reloadRowInfo(row));
break;
case 'stop':
fnNeStop(row);
fnNeStop(row, () => reloadRowInfo(row));
break;
case 'reload':
fnNeReload(row);
@@ -397,53 +408,6 @@ function fnGetList(pageNum?: number) {
});
}
/**解析网元状态携带的资源利用率 */
function parseResouresUsage(neState: Record<string, any>) {
let sysCpuUsage = 0;
let nfCpuUsage = 0;
if (neState.cpu) {
nfCpuUsage = neState.cpu.nfCpuUsage;
const nfCpu = +(nfCpuUsage / 100);
nfCpuUsage = +nfCpu.toFixed(2);
if (nfCpuUsage > 100) {
nfCpuUsage = 100;
}
sysCpuUsage = neState.cpu.sysCpuUsage;
const sysCpu = +(sysCpuUsage / 100);
sysCpuUsage = +sysCpu.toFixed(2);
if (sysCpuUsage > 100) {
sysCpuUsage = 100;
}
}
let sysMemUsage = 0;
if (neState.mem) {
const men = neState.mem.sysMemUsage;
sysMemUsage = +(men / 100).toFixed(2);
if (sysMemUsage > 100) {
sysMemUsage = 100;
}
}
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 => {