Merge branch 'main-v2' into lite-ba
This commit is contained in:
@@ -1,5 +1,12 @@
|
||||
# 版本发布日志
|
||||
|
||||
## 2.2510.3-20251018
|
||||
|
||||
- 新增 备份网元日志文件数据查看
|
||||
- 修复 更新根网管节点处理逻辑,支持无OMC情况
|
||||
- 新增 网元配置选择传入neId查询相应版本配置数据
|
||||
- 修复 网元配置备份修改表单校验规则,添加备注字段必填项
|
||||
|
||||
## 2.2510.2-20251011
|
||||
|
||||
- 新增 UDM-auth数据导出按钮权限定义
|
||||
|
||||
@@ -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,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user