feat:neInfo修改新增和编辑
This commit is contained in:
@@ -21,6 +21,10 @@ const props = defineProps({
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
neListData: {
|
||||
type: Array,
|
||||
default: () => [],
|
||||
},
|
||||
});
|
||||
|
||||
/**字典数据 */
|
||||
@@ -37,6 +41,52 @@ let dict: {
|
||||
neHostAuthMode: [],
|
||||
});
|
||||
|
||||
/**
|
||||
* 自动分配下一个可用的 NE ID
|
||||
* @param neType 网元类型
|
||||
* @returns 下一个可用的 NE ID
|
||||
*/
|
||||
function generateNextNeId(neType: string): string {
|
||||
const neListData = props.neListData as any[];
|
||||
|
||||
// 找到对应网元类型的分组
|
||||
const targetGroup = neListData.find(group => group.neType === neType);
|
||||
|
||||
if (!targetGroup || !targetGroup.childrenData) {
|
||||
return '001'; // 如果没有找到该类型的网元,返回001
|
||||
}
|
||||
|
||||
// 获取该类型下所有网元的ID
|
||||
const existingIds = targetGroup.childrenData
|
||||
.map((item: any) => item.neId)
|
||||
.filter((id: string) => /^\d+$/.test(id)) // 只保留纯数字ID
|
||||
.map((id: string) => parseInt(id, 10))
|
||||
.sort((a: number, b: number) => a - b);
|
||||
|
||||
// 找到下一个可用ID
|
||||
let nextId = 1;
|
||||
for (const id of existingIds) {
|
||||
if (id === nextId) {
|
||||
nextId++;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 格式化为三位数字符串
|
||||
return nextId.toString().padStart(3, '0');
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成 Resource Unique ID
|
||||
* @param neType 网元类型
|
||||
* @param neId 网元ID
|
||||
* @returns Resource Unique ID
|
||||
*/
|
||||
function generateResourceUniqueId(neType: string, neId: string): string {
|
||||
return `4400HX${neType}${neId}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试主机连接
|
||||
*/
|
||||
@@ -158,18 +208,6 @@ const modalStateFrom = Form.useForm(
|
||||
message: t('views.ne.common.neTypePlease'),
|
||||
},
|
||||
],
|
||||
neId: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.ne.common.neIdPlease'),
|
||||
},
|
||||
],
|
||||
rmUid: [
|
||||
{
|
||||
required: true,
|
||||
message: t('views.ne.common.rmUidPlease'),
|
||||
},
|
||||
],
|
||||
ip: [
|
||||
{
|
||||
required: true,
|
||||
@@ -215,6 +253,13 @@ function fnModalVisibleByEdit(editId: string) {
|
||||
if (!editId) {
|
||||
modalStateFrom.resetFields();
|
||||
modalState.title = t('views.ne.neInfo.addTitle');
|
||||
|
||||
// 新增时自动分配 neId 和 rmUid
|
||||
const defaultNeType = modalState.from.neType;
|
||||
const newNeId = generateNextNeId(defaultNeType);
|
||||
modalState.from.neId = newNeId;
|
||||
modalState.from.rmUid = generateResourceUniqueId(defaultNeType, newNeId);
|
||||
|
||||
modalState.openByEdit = true;
|
||||
} else {
|
||||
if (modalState.confirmLoading) return;
|
||||
@@ -321,15 +366,14 @@ function fnNeTypeChange(v: any) {
|
||||
});
|
||||
}
|
||||
|
||||
modalState.from.rmUid = `4400HX${v}${modalState.from.neId}`; // 4400HX1AMF001
|
||||
// 如果是新增模式,自动分配 neId 和 rmUid
|
||||
if (!modalState.from.id) {
|
||||
const newNeId = generateNextNeId(v);
|
||||
modalState.from.neId = newNeId;
|
||||
modalState.from.rmUid = generateResourceUniqueId(v, newNeId);
|
||||
}
|
||||
}
|
||||
|
||||
/**表单修改网元neId */
|
||||
function fnNeIdChange(e: any) {
|
||||
const v = e.target.value;
|
||||
if (v.length < 1) return;
|
||||
modalState.from.rmUid = `4400HX${modalState.from.neType}${v}`; // 4400HX1AMF001
|
||||
}
|
||||
|
||||
/**表单修改网元IP */
|
||||
function fnNeIPChange(e: any) {
|
||||
@@ -439,48 +483,22 @@ onMounted(() => {
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-row>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.ne.common.neId')"
|
||||
name="neId"
|
||||
v-bind="modalStateFrom.validateInfos.neId"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.neId"
|
||||
allow-clear
|
||||
:placeholder="t('common.inputPlease')"
|
||||
:maxlength="32"
|
||||
@change="fnNeIdChange"
|
||||
:disabled="!!modalState.from.id"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
{{ t('views.ne.common.neIdTip') }}
|
||||
</template>
|
||||
<InfoCircleOutlined style="opacity: 0.45; color: inherit" />
|
||||
</a-tooltip>
|
||||
</template>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.ne.common.neName')"
|
||||
name="neName"
|
||||
v-bind="modalStateFrom.validateInfos.neName"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.neName"
|
||||
allow-clear
|
||||
:placeholder="t('common.inputPlease')"
|
||||
:maxlength="64"
|
||||
>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- NE Name 占满整行 -->
|
||||
<a-form-item
|
||||
:label="t('views.ne.common.neName')"
|
||||
name="neName"
|
||||
v-bind="modalStateFrom.validateInfos.neName"
|
||||
:label-col="{ span: 3 }"
|
||||
:labelWrap="true"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.neName"
|
||||
allow-clear
|
||||
:placeholder="t('common.inputPlease')"
|
||||
:maxlength="64"
|
||||
>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
|
||||
<a-row>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
@@ -536,31 +554,6 @@ onMounted(() => {
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-form-item
|
||||
:label="t('views.ne.common.rmUid')"
|
||||
name="rmUid"
|
||||
v-bind="modalStateFrom.validateInfos.rmUid"
|
||||
:label-col="{ span: 3 }"
|
||||
:labelWrap="true"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.from.rmUid"
|
||||
allow-clear
|
||||
:placeholder="t('common.inputPlease')"
|
||||
:maxlength="40"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
<div>
|
||||
{{ t('views.ne.common.rmUidTip') }}
|
||||
</div>
|
||||
</template>
|
||||
<InfoCircleOutlined style="opacity: 0.45; color: inherit" />
|
||||
</a-tooltip>
|
||||
</template>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
|
||||
<a-row>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
|
||||
@@ -908,6 +908,7 @@ onMounted(() => {
|
||||
<EditModal
|
||||
v-model:open="modalState.openByEdit"
|
||||
:edit-id="modalState.editId"
|
||||
:ne-list-data="tableState.data"
|
||||
@ok="fnModalEditOk"
|
||||
@cancel="fnModalEditCancel"
|
||||
></EditModal>
|
||||
|
||||
Reference in New Issue
Block a user