This is an automated email from the ASF dual-hosted git repository.

benjobs pushed a commit to branch dev-2.1.3
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git


The following commit(s) were added to refs/heads/dev-2.1.3 by this push:
     new 5467ccdd1 [Improve] docker|email setting FE improvement (#3589)
5467ccdd1 is described below

commit 5467ccdd139afd36c48d93e3125577184cda5758
Author: benjobs <[email protected]>
AuthorDate: Wed Feb 28 18:08:27 2024 +0800

    [Improve] docker|email setting FE improvement (#3589)
    
    * [Improve] docker|email setting FE improvement
    
    * [Improve] FE alert improvement
    
    ---------
    
    Co-authored-by: benjobs <[email protected]>
---
 .../console/core/controller/SettingController.java |  2 +-
 .../src/api/flink/setting/index.ts                 | 30 ++++++++++--
 .../src/assets/icons/maven.svg                     |  2 +-
 .../src/layouts/default/header/index.vue           | 10 ++--
 .../src/locales/lang/en/setting/system.ts          | 18 +++----
 .../src/locales/lang/zh-CN/setting/system.ts       | 38 +++++++--------
 .../src/utils/http/axios/index.ts                  |  2 +-
 .../src/views/setting/System/SettingForm.vue       | 55 ++++++++++++++++++----
 .../src/views/setting/System/config.ts             |  4 +-
 9 files changed, 108 insertions(+), 53 deletions(-)

diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/SettingController.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/SettingController.java
index 6517e7e1e..12555964d 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/SettingController.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/SettingController.java
@@ -122,7 +122,7 @@ public class SettingController {
   }
 
   @Operation(summary = "Check hadoop status")
-  @PostMapping("checkHadoop")
+  @PostMapping("check/hadoop")
   public RestResponse checkHadoop() {
     try {
       HadoopUtils.hdfs().getStatus();
diff --git 
a/streampark-console/streampark-console-webapp/src/api/flink/setting/index.ts 
b/streampark-console/streampark-console-webapp/src/api/flink/setting/index.ts
index 4e0689872..c0d7045fc 100644
--- 
a/streampark-console/streampark-console-webapp/src/api/flink/setting/index.ts
+++ 
b/streampark-console/streampark-console-webapp/src/api/flink/setting/index.ts
@@ -19,10 +19,14 @@ import { defHttp } from '/@/utils/http/axios';
 
 enum SETTING_APi {
   GET = '/flink/setting/get',
+  GET_DOCKER = '/flink/setting/docker',
+  GET_EMAIL = '/flink/setting/email',
   ALL = '/flink/setting/all',
-  CHECK_HADOOP = '/flink/setting/checkHadoop',
   UPDATE = '/flink/setting/update',
+  CHECK_HADOOP = '/flink/setting/check/hadoop',
+  CHECK_DOCKER = '/flink/setting/check/docker',
   UPDATE_DOCKER = '/flink/setting/update/docker',
+  CHECK_EMAIL = '/flink/setting/check/email',
   UPDATE_ALERT = '/flink/setting/update/email',
 }
 /**
@@ -64,14 +68,34 @@ export function fetchCheckHadoop(): Promise<boolean> {
  * get docker setting info
  */
 export function fetchDockerConfig() {
-  return defHttp.post({ url: '/flink/setting/docker' });
+  return defHttp.post({ url: SETTING_APi.GET_DOCKER });
+}
+
+/**
+ * verify docker setting info
+ */
+export function fetchVerifyDocker(data: Recordable): Promise<boolean> {
+  return defHttp.post({
+    url: SETTING_APi.CHECK_DOCKER,
+    data,
+  });
+}
+
+/**
+ * verify docker setting info
+ */
+export function fetchVerifyEmail(data: Recordable): Promise<boolean> {
+  return defHttp.post({
+    url: SETTING_APi.CHECK_EMAIL,
+    data,
+  });
 }
 
 /**
  * get alert setting info
  */
 export function fetchEmailConfig() {
-  return defHttp.post({ url: '/flink/setting/email' });
+  return defHttp.post({ url: SETTING_APi.GET_EMAIL });
 }
 
 /**
diff --git 
a/streampark-console/streampark-console-webapp/src/assets/icons/maven.svg 
b/streampark-console/streampark-console-webapp/src/assets/icons/maven.svg
index 4698a8643..5f7bcdf25 100644
--- a/streampark-console/streampark-console-webapp/src/assets/icons/maven.svg
+++ b/streampark-console/streampark-console-webapp/src/assets/icons/maven.svg
@@ -1 +1 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 
1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd";><svg 
t="1615703567163" class="icon" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; p-id="5337" 
xmlns:xlink="http://www.w3.org/1999/xlink"; width="200" 
height="200"><defs><style type="text/css"></style></defs><path d="M105.344 
681.92l134.144-288.128 84.48-189.824c49.024 0.512 87.68 0.768 115.84 0.768 
23.232 0 58.88-0.256 107.136-0. [...]
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 
1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd";><svg 
t="1615703567163" class="icon" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; p-id="5337" 
xmlns:xlink="http://www.w3.org/1999/xlink"; width="200" 
height="200"><defs><style type="text/css"></style></defs><path d="M105.344 
681.92l134.144-288.128 84.48-189.824c49.024 0.512 87.68 0.768 115.84 0.768 
23.232 0 58.88-0.256 107.136-0. [...]
diff --git 
a/streampark-console/streampark-console-webapp/src/layouts/default/header/index.vue
 
b/streampark-console/streampark-console-webapp/src/layouts/default/header/index.vue
index 63f21c8e8..839a048a9 100755
--- 
a/streampark-console/streampark-console-webapp/src/layouts/default/header/index.vue
+++ 
b/streampark-console/streampark-console-webapp/src/layouts/default/header/index.vue
@@ -39,13 +39,9 @@
       </a-button>
       <Divider type="vertical" />
 
-      <Popover
-        placement="bottom"
-        trigger="hover"
-        arrow-point-at-center
-      >
+      <Popover placement="bottom" trigger="hover" arrow-point-at-center>
         <template #content>
-          <img src="/@/assets/images/join_wechat.png" alt="qrcode"  
class="h-150px w-150px"/>
+          <img src="/@/assets/images/join_wechat.png" alt="qrcode" 
class="h-150px w-150px" />
         </template>
         <Icon icon="ant-design:qrcode-outlined" 
:class="`${prefixCls}-action__item`" />
       </Popover>
@@ -130,7 +126,7 @@
       LockScreen,
       Divider,
       AppDarkModeToggle,
-      Popover
+      Popover,
     },
     props: {
       fixed: propTypes.bool,
diff --git 
a/streampark-console/streampark-console-webapp/src/locales/lang/en/setting/system.ts
 
b/streampark-console/streampark-console-webapp/src/locales/lang/en/setting/system.ts
index 106d439ba..8e856d67b 100644
--- 
a/streampark-console/streampark-console-webapp/src/locales/lang/en/setting/system.ts
+++ 
b/streampark-console/streampark-console-webapp/src/locales/lang/en/setting/system.ts
@@ -38,7 +38,7 @@ export default {
   },
   docker: {
     address: {
-      label: 'Docker Register Address',
+      label: 'Docker Address',
       desc: 'Docker container service address',
     },
     namespace: {
@@ -46,37 +46,37 @@ export default {
       desc: 'Namespace for docker image used in docker building env and target 
image register',
     },
     userName: {
-      label: 'Docker Register User',
+      label: 'Docker Username',
       desc: 'Docker container service authentication username',
     },
     password: {
-      label: 'Docker Register Password',
+      label: 'Docker Password',
       desc: 'Docker container service authentication password',
     },
   },
   email: {
     host: {
-      label: 'Alert Email Smtp Host',
+      label: 'Smtp Host',
       desc: 'Alert Mailbox Smtp Host',
     },
     port: {
-      label: 'Alert Email Smtp Port',
+      label: 'Smtp Port',
       desc: 'Smtp Port of the alarm mailbox',
     },
     from: {
-      label: 'Alert Email From',
+      label: 'Email Address',
       desc: 'Email to send alerts',
     },
     userName: {
-      label: 'Alert Email User',
+      label: 'Email Username',
       desc: 'Authentication username used to send alert emails',
     },
     password: {
-      label: 'Alert Email Password',
+      label: 'Email Password',
       desc: 'Authentication password used to send alarm email',
     },
     ssl: {
-      label: 'Alert Email SSL',
+      label: 'SSL enable',
       desc: 'Whether to enable SSL in the mailbox that sends the alert',
     },
   },
diff --git 
a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/setting/system.ts
 
b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/setting/system.ts
index 9b7c74fe2..fe84288d9 100644
--- 
a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/setting/system.ts
+++ 
b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/setting/system.ts
@@ -38,45 +38,45 @@ export default {
   },
   docker: {
     address: {
-      label: 'Docker注册地址',
-      desc: 'Docker容器服务地址',
+      label: 'Docker 地址',
+      desc: 'Docker 容器的服务地址',
     },
     namespace: {
-      label: 'Docker命名空间',
-      desc: 'Docker构建环境和目标镜像注册使用的命名空间',
+      label: 'Docker 命名空间',
+      desc: 'Docker 构建环境和目标镜像注册使用的命名空间',
     },
     userName: {
-      label: 'Docker注册用户',
-      desc: 'Docker容器服务认证用户名',
+      label: 'Docker 用户名',
+      desc: 'Docker 容器服务认证用户名',
     },
     password: {
-      label: 'Docker注册密码',
-      desc: 'Docker容器服务认证密码',
+      label: 'Docker 密码',
+      desc: 'Docker 容器服务认证密码',
     },
   },
   email: {
     host: {
-      label: '告警邮件Smtp主机',
-      desc: '告警邮箱Smtp主机',
+      label: '邮件Smtp主机',
+      desc: '告警邮箱 Smtp主机',
     },
     port: {
-      label: '告警邮件Smtp端口',
-      desc: '告警邮箱Smtp端口',
+      label: '邮箱Smtp端口',
+      desc: '告警邮箱 Smtp端口',
     },
     userName: {
-      label: '告警邮件用户名',
-      desc: '用于发送告警邮件的用户名认证',
+      label: '邮箱用户名',
+      desc: '用于发送告警邮件的认证用户名',
     },
     password: {
-      label: '告警邮件密码',
-      desc: '用于发送告警邮件的密码认证',
+      label: '邮箱密码',
+      desc: '用于发送告警邮件的认证密码',
     },
     from: {
-      label: '告警邮件发送者',
-      desc: '发送告警的邮箱',
+      label: '邮箱地址',
+      desc: '用于发送告警的邮箱',
     },
     ssl: {
-      label: '告警邮件SSL',
+      label: '开启 SSL',
       desc: '是否在发送告警邮箱中启用 SSL',
     },
   },
diff --git 
a/streampark-console/streampark-console-webapp/src/utils/http/axios/index.ts 
b/streampark-console/streampark-console-webapp/src/utils/http/axios/index.ts
index 7123a7ada..3b8f7e27e 100644
--- a/streampark-console/streampark-console-webapp/src/utils/http/axios/index.ts
+++ b/streampark-console/streampark-console-webapp/src/utils/http/axios/index.ts
@@ -95,7 +95,7 @@ const transform: AxiosTransform = {
     formatDate && data && !isString(data) && formatRequestDate(data);
     const teamId = getUserTeamId();
     const localStore = useLocaleStoreWithOut();
-    config.headers = Object.assign(config.headers || {}, { 'language': 
localStore.getLocale });
+    config.headers = Object.assign(config.headers || {}, { language: 
localStore.getLocale });
     if (config.method?.toUpperCase() === RequestEnum.GET) {
       if (!isString(params)) {
         // Add a timestamp parameter to the get request to avoid taking data 
from the cache.
diff --git 
a/streampark-console/streampark-console-webapp/src/views/setting/System/SettingForm.vue
 
b/streampark-console/streampark-console-webapp/src/views/setting/System/SettingForm.vue
index abb2059cb..0175f72b1 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/setting/System/SettingForm.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/setting/System/SettingForm.vue
@@ -16,7 +16,6 @@
 -->
 <script setup lang="ts">
   import { computed, ref } from 'vue';
-  import { SettingTwoTone } from '@ant-design/icons-vue';
   import { BasicForm, FormSchema, useForm } from '/@/components/Form';
   import { BasicModal, useModalInner } from '/@/components/Modal';
   import {
@@ -24,11 +23,15 @@
     fetchEmailUpdate,
     fetchDockerConfig,
     fetchDockerUpdate,
+    fetchVerifyDocker,
+    fetchVerifyEmail,
   } from '/@/api/flink/setting';
   import { useMessage } from '/@/hooks/web/useMessage';
   import { useI18n } from '/@/hooks/web/useI18n';
   import { isNullOrUnDef } from '/@/utils/is';
   import { settingFormSchema } from './config';
+  import { SvgIcon } from '/@/components/Icon';
+  import Swal from 'sweetalert2';
 
   const emit = defineEmits(['success', 'register']);
   const { createMessage } = useMessage();
@@ -68,11 +71,11 @@
   });
   const [registerForm, { validate, setFieldsValue, resetFields }] = useForm({
     colon: true,
-    labelWidth: 180,
+    labelWidth: 140,
     name: 'SettingForm',
     labelCol: { span: 8 },
-    wrapperCol: { span: 15 },
-    baseColProps: { span: 23 },
+    wrapperCol: { span: 14 },
+    baseColProps: { span: 24 },
     showActionButtonGroup: false,
   });
   const formSchemas = computed((): FormSchema[] => {
@@ -90,9 +93,40 @@
   async function handleOk() {
     try {
       const formData = await validate();
-      if (type.value === 'docker') await fetchDockerUpdate(formData);
-      if (type.value === 'email') await fetchEmailUpdate(formData);
-      createMessage.success(t('setting.system.update.success'));
+      if (type.value === 'docker') {
+        const resp = await fetchVerifyDocker(formData);
+        if (resp.status === 200) {
+          await fetchDockerUpdate(formData);
+        } else {
+          Swal.fire({
+            icon: 'error',
+            title: resp.msg,
+            showConfirmButton: true,
+            timer: 3500,
+          });
+          return;
+        }
+      }
+      if (type.value === 'email') {
+        const resp = await fetchVerifyEmail(formData);
+        if (resp.status === 200) {
+          await fetchEmailUpdate(formData);
+        } else {
+          Swal.fire({
+            icon: 'error',
+            title: resp.msg,
+            showConfirmButton: true,
+            timer: 3500,
+          });
+          return;
+        }
+      }
+      Swal.fire({
+        icon: 'success',
+        title: t('setting.system.update.success'),
+        showConfirmButton: false,
+        timer: 2000,
+      });
       closeModal();
       emit('success');
     } catch (error) {
@@ -107,15 +141,16 @@
 <template>
   <BasicModal
     @register="registerModal"
-    :width="750"
+    :width="650"
     @ok="handleOk"
     :after-close="afterClose"
     centered
   >
     <template #title>
-      <SettingTwoTone class="ml-10px" theme="twoTone" two-tone-color="#4a9ff5" 
/>
+      <SvgIcon v-if="type === 'docker'" name="docker" size="20" 
class="ml-10px" />
+      <SvgIcon v-if="type === 'email'" name="mail" size="18" class="ml-10px" />
       {{ title }}
     </template>
-    <BasicForm @register="registerForm" :schemas="formSchemas" />
+    <BasicForm @register="registerForm" :schemas="formSchemas" 
style="margin-top: 30px" />
   </BasicModal>
 </template>
diff --git 
a/streampark-console/streampark-console-webapp/src/views/setting/System/config.ts
 
b/streampark-console/streampark-console-webapp/src/views/setting/System/config.ts
index aeaeed515..f8aa94850 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/setting/System/config.ts
+++ 
b/streampark-console/streampark-console-webapp/src/views/setting/System/config.ts
@@ -42,7 +42,7 @@ export const settingFormSchema: SettingForm = {
       helpMessage: t('setting.system.docker.namespace.desc'),
       component: 'Input',
       componentProps: {
-        placeholder: t('setting.system.docker.address.label'),
+        placeholder: t('setting.system.docker.namespace.label'),
       },
       required: true,
     },
@@ -52,7 +52,7 @@ export const settingFormSchema: SettingForm = {
       helpMessage: t('setting.system.docker.userName.desc'),
       component: 'Input',
       componentProps: {
-        placeholder: t('setting.system.docker.address.label'),
+        placeholder: t('setting.system.docker.userName.label'),
       },
       required: true,
     },

Reply via email to