diff --git a/src/api/ne/neHost.ts b/src/api/ne/neHost.ts index 51f22bc5..f5b46b6b 100644 --- a/src/api/ne/neHost.ts +++ b/src/api/ne/neHost.ts @@ -74,4 +74,17 @@ export function testNeHost(data: Record) { method: 'post', data: data, }); -} \ No newline at end of file +} + +/** + * 网元主机SSH方式检查服务器环境 + * @param data 网元主机对象 + * @returns object + */ +export function neHostCheckInfo(data: Record) { + return request({ + url: '/ne/host/checkBySSH', + method: 'post', + data: data, + }); +} diff --git a/src/i18n/locales/en-US.ts b/src/i18n/locales/en-US.ts index 7a2b786f..83f19b88 100644 --- a/src/i18n/locales/en-US.ts +++ b/src/i18n/locales/en-US.ts @@ -601,10 +601,12 @@ export default { addr: "IP Addr", addrPlease: "Please fill in the host IP address correctly", port: "Port", + portPlease: "Please fill in the host port number correctly", user: "Login User", userPlease: "Please fill in the host login user correctly", authMode: "Auth Mode", password: "Password", + passwordPlease: "Please fill in the host login password correctly", privateKey: "Private Key", privateKeyPlease: "Please fill in the private key characters correctly ~/.ssh/id_rsa", passPhrase: "Private Key Cipher", diff --git a/src/i18n/locales/zh-CN.ts b/src/i18n/locales/zh-CN.ts index 8e35524b..91ced0ee 100644 --- a/src/i18n/locales/zh-CN.ts +++ b/src/i18n/locales/zh-CN.ts @@ -601,10 +601,12 @@ export default { addr: "IP地址", addrPlease: "请正确填写主机IP地址", port: "端口", + portPlease: "请正确填写主机端口号", user: "用户名", userPlease: "请正确填写主机登录用户", authMode: "认证模式", password: "密码", + passwordPlease: "请正确填写主机登录密码", privateKey: "私钥", privateKeyPlease: "请正确填写私钥字符内容 ~/.ssh/id_rsa", passPhrase: "私钥密码", diff --git a/src/views/ne/neHost/index.vue b/src/views/ne/neHost/index.vue index a4e9c66d..d327e70e 100644 --- a/src/views/ne/neHost/index.vue +++ b/src/views/ne/neHost/index.vue @@ -257,10 +257,16 @@ const modalStateFrom = Form.useForm( { required: true, min: 1, - max: 50, + max: 128, message: t('views.ne.neHost.addrPlease'), }, ], + port: [ + { + required: true, + message: t('views.ne.neHost.portPlease'), + }, + ], user: [ { required: true, @@ -269,6 +275,22 @@ const modalStateFrom = Form.useForm( message: t('views.ne.neHost.userPlease'), }, ], + password: [ + { + required: true, + min: 1, + max: 128, + message: t('views.ne.neHost.passwordPlease'), + }, + ], + privateKey: [ + { + required: true, + min: 1, + max: 128, + message: t('views.ne.neHost.privateKeyPlease'), + }, + ], }) ); @@ -305,12 +327,19 @@ function fnModalVisibleByEdit(roleId?: string | number) { * 进行表达规则校验 */ function fnModalOk() { + if (modalState.confirmLoading) return; + const form = toRaw(modalState.from); + const validateArr = ['title', 'addr', 'port', 'user']; + if (form.authMode === '0') { + validateArr.push('password'); + } else { + validateArr.push('privateKey'); + } modalStateFrom - .validate() + .validate(validateArr) .then(() => { modalState.confirmLoading = true; - const from = toRaw(modalState.from); - const neHost = from.hostId ? updateNeHost(from) : addNeHost(from); + const neHost = form.hostId ? updateNeHost(form) : addNeHost(form); const hide = message.loading(t('common.loading'), 0); neHost .then(res => { @@ -380,13 +409,20 @@ function fnRecordDelete(hostId: string) { * 对话框弹出测试连接 */ function fnModalTest() { + if (modalState.confirmLoading) return; + const form = toRaw(modalState.from); + const validateArr = ['title', 'addr', 'port', 'user']; + if (form.authMode === '0') { + validateArr.push('password'); + } else { + validateArr.push('privateKey'); + } modalStateFrom - .validate() + .validate(validateArr) .then(() => { modalState.confirmLoading = true; - const from = toRaw(modalState.from); const hide = message.loading(t('common.loading'), 0); - testNeHost(from) + testNeHost(form) .then(res => { if (res.code === RESULT_CODE_SUCCESS) { message.success({ @@ -664,7 +700,11 @@ onMounted(() => { - + { v-if="modalState.from.authMode === '0'" :label="t('views.ne.neHost.password')" name="password" + v-bind="modalStateFrom.validateInfos.password" :label-col="{ span: 3 }" :label-wrap="true" > @@ -726,6 +767,7 @@ onMounted(() => { diff --git a/src/views/tool/neQuickSetup/components/StepCheck.vue b/src/views/tool/neQuickSetup/components/StepCheck.vue new file mode 100644 index 00000000..a336d9cf --- /dev/null +++ b/src/views/tool/neQuickSetup/components/StepCheck.vue @@ -0,0 +1,358 @@ + + + + +