feat: 网元服务操作局部状态刷新,补充提示信息
This commit is contained in:
@@ -472,11 +472,11 @@ export default {
|
|||||||
normalcy: 'Normal',
|
normalcy: 'Normal',
|
||||||
exceptions: 'Abnormal',
|
exceptions: 'Abnormal',
|
||||||
restart: 'Restart',
|
restart: 'Restart',
|
||||||
restartTip: 'Are you sure you want to restart the network element service?',
|
restartTip: 'Are you sure you want to restart the [{ne}] NE Service?',
|
||||||
start: 'Start',
|
start: 'Start',
|
||||||
startTip: 'Are you sure you want to start the network element service?',
|
startTip: 'Are you sure you want to start the [{ne}] NE Service?',
|
||||||
stop: 'Stop',
|
stop: 'Stop',
|
||||||
stopTip: 'Are you sure you want to stop the network element service?',
|
stopTip: 'Are you sure you want to stop the [{ne}] NE Service?',
|
||||||
reload: 'Reload',
|
reload: 'Reload',
|
||||||
reloadTip: 'Confirm that you want to reload the network element configuration information?',
|
reloadTip: 'Confirm that you want to reload the network element configuration information?',
|
||||||
oam: 'OAM',
|
oam: 'OAM',
|
||||||
|
|||||||
@@ -472,11 +472,11 @@ export default {
|
|||||||
normalcy: '正常',
|
normalcy: '正常',
|
||||||
exceptions: '异常',
|
exceptions: '异常',
|
||||||
restart: '重启',
|
restart: '重启',
|
||||||
restartTip: '确认要重新启动网元服务吗?',
|
restartTip: '确认要重新启动【{ne}】网元服务吗?',
|
||||||
start: '启动',
|
start: '启动',
|
||||||
startTip: '确认要启动网元服务吗?',
|
startTip: '确认要启动【{ne}】网元服务吗?',
|
||||||
stop: '停止',
|
stop: '停止',
|
||||||
stopTip: '确认要停止网元服务吗?',
|
stopTip: '确认要停止【{ne}】网元服务吗?',
|
||||||
reload: '重载',
|
reload: '重载',
|
||||||
reloadTip: '确认要重载网元配置信息吗?',
|
reloadTip: '确认要重载网元配置信息吗?',
|
||||||
oam: 'OAM',
|
oam: 'OAM',
|
||||||
|
|||||||
@@ -14,11 +14,12 @@ export default function useNeOptions() {
|
|||||||
/**
|
/**
|
||||||
* 网元启动
|
* 网元启动
|
||||||
* @param row {neName,neType,neId}
|
* @param row {neName,neType,neId}
|
||||||
|
* @param callback 回调函数,用于刷新表格数据
|
||||||
*/
|
*/
|
||||||
function fnNeStart(row: Record<string, any>) {
|
function fnNeStart(row: Record<string, any>, callback?: () => void) {
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
title: t('common.tipTitle'),
|
title: t('common.tipTitle'),
|
||||||
content: t('views.ne.common.startTip'),
|
content: t('views.ne.common.startTip', { ne: row.neName }),
|
||||||
onOk() {
|
onOk() {
|
||||||
const hide = message.loading(t('common.loading'), 0);
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
serviceNeAction({
|
serviceNeAction({
|
||||||
@@ -28,10 +29,16 @@ export default function useNeOptions() {
|
|||||||
})
|
})
|
||||||
.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('views.ne.common.start')} ${row.neName} ${t(
|
||||||
|
'common.operateOk'
|
||||||
|
)}`,
|
||||||
|
3
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
message.error(`${res.msg}`, 3);
|
message.error(`${res.msg}`, 3);
|
||||||
}
|
}
|
||||||
|
callback && callback();
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
hide();
|
hide();
|
||||||
@@ -43,11 +50,12 @@ export default function useNeOptions() {
|
|||||||
/**
|
/**
|
||||||
* 网元重启
|
* 网元重启
|
||||||
* @param row {neName,neType,neId}
|
* @param row {neName,neType,neId}
|
||||||
|
* @param callback 回调函数,用于刷新表格数据
|
||||||
*/
|
*/
|
||||||
function fnNeRestart(row: Record<string, any>) {
|
function fnNeRestart(row: Record<string, any>, callback?: () => void) {
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
title: t('common.tipTitle'),
|
title: t('common.tipTitle'),
|
||||||
content: t('views.ne.common.restartTip'),
|
content: t('views.ne.common.restartTip', { ne: row.neName }),
|
||||||
onOk() {
|
onOk() {
|
||||||
const hide = message.loading(t('common.loading'), 0);
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
serviceNeAction({
|
serviceNeAction({
|
||||||
@@ -69,10 +77,16 @@ export default function useNeOptions() {
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
message.success(t('common.operateOk'), 3);
|
message.success(
|
||||||
|
`${t('views.ne.common.restart')} ${row.neName} ${t(
|
||||||
|
'common.operateOk'
|
||||||
|
)}`,
|
||||||
|
3
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
message.error(`${res.msg}`, 3);
|
message.error(`${res.msg}`, 3);
|
||||||
}
|
}
|
||||||
|
callback && callback();
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
hide();
|
hide();
|
||||||
@@ -84,11 +98,12 @@ export default function useNeOptions() {
|
|||||||
/**
|
/**
|
||||||
* 网元停止
|
* 网元停止
|
||||||
* @param row {neName,neType,neId}
|
* @param row {neName,neType,neId}
|
||||||
|
* @param callback 回调函数,用于刷新表格数据
|
||||||
*/
|
*/
|
||||||
function fnNeStop(row: Record<string, any>) {
|
function fnNeStop(row: Record<string, any>, callback?: () => void) {
|
||||||
Modal.confirm({
|
Modal.confirm({
|
||||||
title: t('common.tipTitle'),
|
title: t('common.tipTitle'),
|
||||||
content: t('views.ne.common.stopTip'),
|
content: t('views.ne.common.stopTip', { ne: row.neName }),
|
||||||
onOk() {
|
onOk() {
|
||||||
const hide = message.loading(t('common.loading'), 0);
|
const hide = message.loading(t('common.loading'), 0);
|
||||||
serviceNeAction({
|
serviceNeAction({
|
||||||
@@ -98,10 +113,16 @@ export default function useNeOptions() {
|
|||||||
})
|
})
|
||||||
.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('views.ne.common.stop')} ${row.neName} ${t(
|
||||||
|
'common.operateOk'
|
||||||
|
)}`,
|
||||||
|
3
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
message.error(`${res.msg}`, 3);
|
message.error(`${res.msg}`, 3);
|
||||||
}
|
}
|
||||||
|
callback && callback();
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
hide();
|
hide();
|
||||||
@@ -149,5 +170,62 @@ export default function useNeOptions() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return { fnNeStart, fnNeRestart, fnNeStop, fnNeReload, fnNeLogFile };
|
/**
|
||||||
|
* 解析网元状态携带的资源利用率
|
||||||
|
* @param neState {cpu,mem,disk}
|
||||||
|
*/
|
||||||
|
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,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
fnNeStart,
|
||||||
|
fnNeRestart,
|
||||||
|
fnNeStop,
|
||||||
|
fnNeReload,
|
||||||
|
fnNeLogFile,
|
||||||
|
parseResouresUsage,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,8 +14,14 @@ import useDictStore from '@/store/modules/dict';
|
|||||||
import useNeOptions from './hooks/useNeOptions';
|
import useNeOptions from './hooks/useNeOptions';
|
||||||
const { getDict } = useDictStore();
|
const { getDict } = useDictStore();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
const { fnNeStart, fnNeRestart, fnNeStop, fnNeReload, fnNeLogFile } =
|
const {
|
||||||
useNeOptions();
|
fnNeStart,
|
||||||
|
fnNeRestart,
|
||||||
|
fnNeStop,
|
||||||
|
fnNeReload,
|
||||||
|
fnNeLogFile,
|
||||||
|
parseResouresUsage,
|
||||||
|
} = useNeOptions();
|
||||||
// 异步加载组件
|
// 异步加载组件
|
||||||
const EditModal = defineAsyncComponent(
|
const EditModal = defineAsyncComponent(
|
||||||
() => import('./components/EditModal.vue')
|
() => import('./components/EditModal.vue')
|
||||||
@@ -226,17 +232,22 @@ function fnModalEditOk(from: Record<string, any>) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 编辑时局部更新信息
|
// 编辑时局部更新信息
|
||||||
stateNeInfo(from.neType, from.neId)
|
reloadRowInfo(from);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**局部更新信息 */
|
||||||
|
function reloadRowInfo(row: Record<string, any>) {
|
||||||
|
stateNeInfo(row.neType, row.neId)
|
||||||
.then(res => {
|
.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) {
|
if (item && res.code === RESULT_CODE_SUCCESS) {
|
||||||
item.neType = from.neType;
|
item.neType = row.neType;
|
||||||
item.neId = from.neId;
|
item.neId = row.neId;
|
||||||
item.rmUid = from.rmUid;
|
item.rmUid = row.rmUid;
|
||||||
item.neName = from.neName;
|
item.neName = row.neName;
|
||||||
item.ip = from.ip;
|
item.ip = row.ip;
|
||||||
item.port = from.port;
|
item.port = row.port;
|
||||||
if (res.data.online) {
|
if (res.data.online) {
|
||||||
item.status = '1';
|
item.status = '1';
|
||||||
if (res.data.standby) {
|
if (res.data.standby) {
|
||||||
@@ -290,7 +301,7 @@ function fnRecordDelete(id: string) {
|
|||||||
message.success(t('common.operateOk'), 3);
|
message.success(t('common.operateOk'), 3);
|
||||||
// 过滤掉删除的id
|
// 过滤掉删除的id
|
||||||
tableState.data = tableState.data.filter(item => {
|
tableState.data = tableState.data.filter(item => {
|
||||||
if (id.indexOf(',') > -1) {
|
if (tableState.selectedRowKeys.length > 0) {
|
||||||
return !tableState.selectedRowKeys.includes(item.id);
|
return !tableState.selectedRowKeys.includes(item.id);
|
||||||
} else {
|
} else {
|
||||||
return item.id !== id;
|
return item.id !== id;
|
||||||
@@ -322,13 +333,13 @@ function fnRecordMore(type: string | number, row: Record<string, any>) {
|
|||||||
fnRecordDelete(row.id);
|
fnRecordDelete(row.id);
|
||||||
break;
|
break;
|
||||||
case 'start':
|
case 'start':
|
||||||
fnNeStart(row);
|
fnNeStart(row, () => reloadRowInfo(row));
|
||||||
break;
|
break;
|
||||||
case 'restart':
|
case 'restart':
|
||||||
fnNeRestart(row);
|
fnNeRestart(row, () => reloadRowInfo(row));
|
||||||
break;
|
break;
|
||||||
case 'stop':
|
case 'stop':
|
||||||
fnNeStop(row);
|
fnNeStop(row, () => reloadRowInfo(row));
|
||||||
break;
|
break;
|
||||||
case 'reload':
|
case 'reload':
|
||||||
fnNeReload(row);
|
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(() => {
|
onMounted(() => {
|
||||||
// 初始字典数据
|
// 初始字典数据
|
||||||
Promise.allSettled([getDict('ne_info_status')]).then(resArr => {
|
Promise.allSettled([getDict('ne_info_status')]).then(resArr => {
|
||||||
|
|||||||
Reference in New Issue
Block a user