Merge branch 'main-v2' into lite-ba

This commit is contained in:
TsMask
2025-10-20 18:12:14 +08:00
6 changed files with 73 additions and 17 deletions

View File

@@ -1,5 +1,12 @@
# 版本发布日志
## 2.2510.3-20251018
- 新增 备份网元日志文件数据查看
- 修复 更新根网管节点处理逻辑支持无OMC情况
- 新增 网元配置选择传入neId查询相应版本配置数据
- 修复 网元配置备份修改表单校验规则,添加备注字段必填项
## 2.2510.2-20251011
- 新增 UDM-auth数据导出按钮权限定义

View File

@@ -6,10 +6,11 @@ import { request } from '@/plugins/http-fetch';
* @param query 查询参数
* @returns object
*/
export function getAllNeConfig(neType: string) {
export function getAllNeConfig(neType: string, neId: string) {
return request({
url: `/ne/config/list/${neType}`,
method: 'GET',
params: { neId },
timeout: 60_000,
});
}

View File

@@ -64,10 +64,50 @@ function fnGetList(refresh: boolean = false) {
Array.isArray(res.data) &&
res.data.length > 0
) {
// 根网管
let rootNodeInfo = { neName: 'OMC_001' };
const nodes = [];
const edges = [];
// 根网管
let rootNodeInfo = {
neName: 'ROOT',
serverState: {
online: true,
},
};
// 处理没有OMC的情况
const omcFilter = res.data.filter(v => v.neType === 'OMC');
if (omcFilter.length === 1) {
rootNodeInfo.neName = omcFilter[0].neName;
} else {
nodes.unshift({
id: rootNodeInfo.neName,
label: rootNodeInfo.neName,
info: rootNodeInfo,
labelCfg: {
position: 'bottom',
offset: 8,
style: {
fill: '#fff',
fontSize: 14,
},
},
size: 60,
icon: {
x: -30,
y: -30,
// 可更换为其他图片地址
img: parseBasePath('/svg/service_db.svg'),
width: 60,
height: 60,
},
});
edges.push({
source: rootNodeInfo.neName,
target: rootNodeInfo.neName,
label: `${rootNodeInfo.neName}-${rootNodeInfo.neName}`,
});
}
for (const item of res.data) {
item.serverState = {};
// 节点
@@ -96,7 +136,6 @@ function fnGetList(refresh: boolean = false) {
height: 60,
},
});
!rootNodeInfo.neName && (rootNodeInfo = item);
} else {
nodes.push({
id: item.neName,

View File

@@ -209,7 +209,7 @@ function fnActiveConfigNode(key: string | number) {
/**查询配置可选属性值列表 */
function fnGetNeConfig() {
const neType = neTypeSelect.value[0];
const [neType, neId] = neTypeSelect.value ;
if (!neType) {
message.warning({
content: t('views.ne.neConfig.neTypePleace'),
@@ -220,7 +220,7 @@ function fnGetNeConfig() {
treeState.loading = true;
// 获取数据
getAllNeConfig(neType).then(res => {
getAllNeConfig(neType, neId).then(res => {
if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.data)) {
const arr = [];
for (const item of res.data) {

View File

@@ -303,12 +303,8 @@ function fnModalVisibleByEdit(row: Record<string, any>) {
const modalStateFrom = Form.useForm(
modalState.from,
reactive({
name: [
{
required: true,
message: '请输入名称',
},
],
name: [{ required: true, message: t('common.inputPlease') }],
remark: [{ required: true, message: t('common.inputPlease') }],
})
);
@@ -462,7 +458,11 @@ function fnSyncFileToFTP(row: Record<string, any>) {
<template #title>
{{ t('views.ne.neConfigBackup.backupModal.title') }}
</template>
<a-button type="text" @click.prevent="fnFTPModalOpen()" v-perms:has="['ne:neConfigBackup:ftp']">
<a-button
type="text"
@click.prevent="fnFTPModalOpen()"
v-perms:has="['ne:neConfigBackup:ftp']"
>
<template #icon><DeliveredProcedureOutlined /></template>
</a-button>
</a-tooltip>
@@ -524,13 +524,21 @@ function fnSyncFileToFTP(row: Record<string, any>) {
<template #title>
{{ t('views.ne.neConfigBackup.backupModal.pushFileOper') }}
</template>
<a-button type="link" @click.prevent="fnSyncFileToFTP(record)" v-perms:has="['ne:neConfigBackup:ftpSync']">
<a-button
type="link"
@click.prevent="fnSyncFileToFTP(record)"
v-perms:has="['ne:neConfigBackup:ftpSync']"
>
<template #icon><CloudServerOutlined /></template>
</a-button>
</a-tooltip>
<a-tooltip>
<template #title>{{ t('common.downloadText') }}</template>
<a-button type="link" @click.prevent="fnDownloadFile(record)" v-perms:has="['ne:neConfigBackup:download']">
<a-button
type="link"
@click.prevent="fnDownloadFile(record)"
v-perms:has="['ne:neConfigBackup:download']"
>
<template #icon><DownloadOutlined /></template>
</a-button>
</a-tooltip>

View File

@@ -30,7 +30,7 @@ let neIdSelect = ref<string[]>([]);
let neTypeSelectStatus = ref(true);
/**网元类型neType选择 */
async function fnSelectNeType(_: any, info: any) {
if (!info) return;
if (!info) return;
await fnGetNeConfig(info.value);
if (treeState.data.length === 0) {
message.warning({
@@ -226,7 +226,8 @@ async function fnGetNeConfig(neType: string) {
treeState.loading = true;
// 获取数据
const res = await getAllNeConfig(neType);
let neId = neTypeSelect.value[1];
const res = await getAllNeConfig(neType, neId);
if (res.code === RESULT_CODE_SUCCESS) {
const arr = [];
for (const v of res.data) {