From 207acb3f3d8590f4ee2d0a9c47e8ca576408cf1e Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Fri, 10 May 2024 14:43:57 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BD=91=E5=85=83=E4=BF=A1=E6=81=AFIP?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=E8=BE=93=E5=85=A5=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/ne/neInfo/components/EditModal.vue | 66 +++++++++++++++++-- .../neQuickSetup/components/NeInfoConfig.vue | 34 +++++++++- .../ne/neQuickSetup/components/Start.vue | 28 +++++++- .../quick-start/components/NeInfoConfig.vue | 41 ++++++++++-- 4 files changed, 152 insertions(+), 17 deletions(-) diff --git a/src/views/ne/neInfo/components/EditModal.vue b/src/views/ne/neInfo/components/EditModal.vue index f838b3ad..65737bbb 100644 --- a/src/views/ne/neInfo/components/EditModal.vue +++ b/src/views/ne/neInfo/components/EditModal.vue @@ -4,8 +4,9 @@ import { message, Form, Modal } from 'ant-design-vue/lib'; import useI18n from '@/hooks/useI18n'; import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; import useNeInfoStore from '@/store/modules/neinfo'; -import { getNeInfo, addNeInfo, updateNeInfo } from '@/api/ne/neInfo'; import { NE_TYPE_LIST } from '@/constants/ne-constants'; +import { regExpIPv4, regExpIPv6 } from '@/utils/regular-utils'; +import { getNeInfo, addNeInfo, updateNeInfo } from '@/api/ne/neInfo'; import { neHostAuthorizedRSA, testNeHost } from '@/api/ne/neHost'; import useDictStore from '@/store/modules/dict'; const { getDict } = useDictStore(); @@ -114,7 +115,7 @@ let modalState: ModalStateType = reactive({ ip: '', port: 33030, pvFlag: 'PNF', - rmUid: '4400HX1AMF001', + rmUid: '4400HXAMF001', neAddress: '', dn: '', vendorName: '', @@ -177,7 +178,7 @@ const modalStateFrom = Form.useForm( ip: [ { required: true, - message: '请输入网元IP地址', + validator: modalStateFromEqualIPV4AndIPV6, }, ], neName: [ @@ -189,6 +190,28 @@ const modalStateFrom = Form.useForm( }) ); +/**表单验证IP地址是否有效 */ +function modalStateFromEqualIPV4AndIPV6( + rule: Record, + value: string, + callback: (error?: string) => void +) { + if (!value) { + return Promise.reject('请输入网元IP地址'); + } + + if (value.indexOf('.') === -1 && value.indexOf(':') === -1) { + return Promise.reject('请输入有效的IP地址'); + } + if (value.indexOf('.') !== -1 && !regExpIPv4.test(value)) { + return Promise.reject('不是有效IPv4地址'); + } + if (value.indexOf(':') !== -1 && !regExpIPv6.test(value)) { + return Promise.reject('不是有效IPv6地址'); + } + return Promise.resolve(); +} + /** * 对话框弹出显示为 新增或者修改 * @param editId 网元id, 不传为新增 @@ -471,6 +494,7 @@ onMounted(() => { style="width: 100%" :min="1" :max="65535" + :maxlength="5" placeholder="<=65535" > diff --git a/src/views/ne/neQuickSetup/components/NeInfoConfig.vue b/src/views/ne/neQuickSetup/components/NeInfoConfig.vue index accb338e..791c507c 100644 --- a/src/views/ne/neQuickSetup/components/NeInfoConfig.vue +++ b/src/views/ne/neQuickSetup/components/NeInfoConfig.vue @@ -5,6 +5,7 @@ import { addNeInfo, getNeInfoByTypeAndID, updateNeInfo } from '@/api/ne/neInfo'; import { neHostAuthorizedRSA, testNeHost } from '@/api/ne/neHost'; import { RESULT_CODE_SUCCESS } from '@/constants/result-constants'; import { NE_TYPE_LIST } from '@/constants/ne-constants'; +import { regExpIPv4, regExpIPv6 } from '@/utils/regular-utils'; import { fnRestStepState, fnToStepName, stepState } from '../hooks/useStep'; import useI18n from '@/hooks/useI18n'; import useDictStore from '@/store/modules/dict'; @@ -50,7 +51,7 @@ let modalState: ModalStateType = reactive({ ip: '', port: 33030, pvFlag: 'PNF', - rmUid: '0000XX1AMF001', + rmUid: '4400HXAMF001', neAddress: '', dn: '-', vendorName: '-', @@ -107,7 +108,7 @@ const modalStateFrom = Form.useForm( ip: [ { required: true, - message: '请输入网元IP地址', + validator: modalStateFromEqualIPV4AndIPV6, }, ], port: [ @@ -119,6 +120,28 @@ const modalStateFrom = Form.useForm( }) ); +/**表单验证IP地址是否有效 */ +function modalStateFromEqualIPV4AndIPV6( + rule: Record, + value: string, + callback: (error?: string) => void +) { + if (!value) { + return Promise.reject('请输入网元IP地址'); + } + + if(value.indexOf('.') === -1 && value.indexOf(':') === -1) { + return Promise.reject('请输入有效的IP地址'); + } + if (value.indexOf('.') !== -1 && !regExpIPv4.test(value)) { + return Promise.reject('不是有效IPv4地址'); + } + if (value.indexOf(':') !== -1 && !regExpIPv6.test(value)) { + return Promise.reject('不是有效IPv6地址'); + } + return Promise.resolve(); +} + /** * 测试主机连接 */ @@ -375,7 +398,9 @@ onMounted(() => { > { style="width: 100%" :min="1" :max="65535" + :maxlength="5" placeholder="<=65535" >