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

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

commit 99b4554dab8fa90b4587476f07c272af4f08db57
Author: benjobs <[email protected]>
AuthorDate: Mon Jan 20 23:59:27 2025 +0800

    [Improve] flink cdc yaml FE improvements
---
 .../src/assets/icons/cdc.svg                       | 33 +++++++++++
 .../src/assets/icons/fjar.svg                      |  2 +-
 .../src/assets/icons/fql.svg                       |  2 +-
 .../src/assets/icons/py.svg                        |  2 +-
 .../src/views/flink/app/Add.vue                    | 12 +++-
 .../src/views/flink/app/EditStreamPark.vue         | 13 +++-
 .../src/views/flink/app/components/FlinkSql.vue    | 69 ++++++++++++----------
 .../src/views/flink/app/data/detail.data.ts        |  4 +-
 .../src/views/flink/app/hooks/useAppTableAction.ts |  2 +-
 .../flink/app/hooks/useCreateAndEditSchema.ts      | 27 ++++++---
 .../src/views/flink/app/hooks/useCreateSchema.ts   | 33 +++++------
 .../src/views/flink/app/hooks/useEditStreamPark.ts |  6 +-
 12 files changed, 133 insertions(+), 72 deletions(-)

diff --git 
a/streampark-console/streampark-console-webapp/src/assets/icons/cdc.svg 
b/streampark-console/streampark-console-webapp/src/assets/icons/cdc.svg
new file mode 100644
index 000000000..22b3cf0b6
--- /dev/null
+++ b/streampark-console/streampark-console-webapp/src/assets/icons/cdc.svg
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 27.6.1, SVG Export Plug-In . SVG Version: 
6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; x="0px" y="0px"
+        viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" 
xml:space="preserve">
+<style type="text/css">
+       .st0{fill:#1677FF;}
+</style>
+<g>
+       <path class="st0" 
d="M165.6,12.5H34.4c-12.1,0-21.9,9.8-21.9,21.9v131.2c0,12.1,9.8,21.9,21.9,21.9h131.2
+               
c12.1,0,21.9-9.8,21.9-21.9V34.4C187.5,22.3,177.7,12.5,165.6,12.5z 
M168.8,165.6c0,1.7-1.4,3.1-3.1,3.1H34.4
+               
c-1.7,0-3.1-1.4-3.1-3.1V34.4c0-1.7,1.4-3.1,3.1-3.1h131.2c1.7,0,3.1,1.4,3.1,3.1V165.6z"/>
+       <g>
+               <path class="st0" 
d="M61.9,128.5c0,0.1,0,0.2-0.2,0.5c-0.2,0.1-0.9,0.2-2.3,0.2h-6c-1.9,0-2.4-0.1-2.4-0.1
+                       
c-0.2-0.1-0.3-0.1-0.4-0.2c0,0-0.2-0.2-0.4-0.8c-0.1-0.2-0.3-0.8-0.3-2.9v-51c0-1.5,0.2-2.2,0.3-2.4c0.2-0.4,0.3-0.6,0.3-0.6
+                       
c0,0,0.2-0.1,0.8-0.3c0.4-0.1,1.1-0.2,2.3-0.2h6c0.8,0,1.2,0.1,1.3,0.2c0.2,0.3,0.3,0.6,0.4,0.9c0.1,0.6,0.2,1.2,0.2,1.9l0.2,1.8
+                       
h14l-0.4-7.1c-0.1-2.5-0.6-4.3-1.5-5.5c-0.8-1.2-1.8-2.1-3-2.7c-0.9-0.5-2-0.9-3-1.2c-1.1-0.3-2.3-0.5-3.5-0.5H48.2
+                       
c-1.3,0-2.7,0.2-4,0.6c-1.4,0.4-2.7,1.2-3.8,2.1c-1.1,0.9-1.9,1.8-2.4,2.7c-0.6,0.9-1,2-1.2,3.1c-0.2,1-0.2,1.9-0.2,2.7v60.2
+                       
c0,0.9,0.1,1.9,0.3,3c0.2,1.2,0.6,2.3,1.1,3.3c0.5,1,1.4,1.9,2.5,2.9c1.2,1,2.7,1.7,4.5,2.1c1.6,0.3,3,0.5,4.1,0.5h15
+                       
c1.3,0,2.7-0.2,4.2-0.6c1.5-0.4,2.7-1,3.7-1.6c1.1-0.7,2-1.6,2.6-2.6c0.6-1.1,1-2.3,1-3.7l0.3-9.3H62.2L61.9,128.5z"/>
+               <path class="st0" 
d="M117.6,62.7L117.6,62.7c-0.9-1.2-2.1-2.2-3.8-3c-1.6-0.8-3.4-1.1-5.3-1.1h-29v82.9h29.2c2.7,0,4.6-0.4,6-1.2
+                       
c1.3-0.7,2.3-1.7,3.1-2.8c0.8-1.1,1.4-2.7,1.9-4.7c0.5-1.9,0.7-4.1,0.7-6.5V72.1c0-1.4-0.3-3-0.8-4.9
+                       C119.1,65.3,118.4,63.8,117.6,62.7z 
M106.6,98.3v26.3c0,2.5-0.2,3.1-0.2,3.1c0,0.1-0.2,0.4-0.8,1.1c-0.2,0.2-0.4,0.4-1.2,0.4H92.6
+                       
V70.9h11.8c1,0,1.2,0.3,1.3,0.5c0.4,0.6,0.6,1.2,0.7,1.8C106.5,74.1,106.6,95.3,106.6,98.3z"/>
+               <path class="st0" 
d="M149.9,123.7l-0.2,4.8c0,0.1,0,0.2-0.2,0.5c-0.2,0.1-0.9,0.2-2.3,0.2h-6c-1.9,0-2.4-0.1-2.4-0.1
+                       
c-0.2-0.1-0.3-0.1-0.4-0.2c0,0-0.2-0.2-0.5-0.8c-0.1-0.2-0.3-0.8-0.3-2.9v-51c0-1.5,0.2-2.2,0.3-2.4c0.2-0.4,0.3-0.6,0.3-0.6
+                       
c0,0,0.2-0.1,0.8-0.3c0.4-0.1,1.1-0.2,2.3-0.2h6c0.8,0,1.2,0.1,1.3,0.2c0.2,0.3,0.3,0.6,0.4,0.9c0.1,0.6,0.2,1.2,0.2,1.9l0.2,1.8
+                       
h14l-0.4-7.1c-0.1-2.5-0.6-4.3-1.5-5.5c-0.8-1.2-1.8-2.1-3-2.7c-0.9-0.5-2-0.9-3-1.2c-1.1-0.3-2.3-0.5-3.5-0.5h-15.9
+                       
c-1.3,0-2.7,0.2-4,0.6c-1.4,0.4-2.7,1.2-3.8,2.1c-1.1,0.9-1.9,1.8-2.4,2.7c-0.6,0.9-1,2-1.2,3.1c-0.2,1-0.2,1.9-0.2,2.7v60.2
+                       
c0,0.9,0.1,1.9,0.3,3c0.2,1.2,0.6,2.3,1.1,3.3c0.5,1,1.4,1.9,2.5,2.9c1.2,1,2.7,1.7,4.5,2.1c1.6,0.3,3,0.5,4.1,0.5h15
+                       
c1.3,0,2.7-0.2,4.2-0.6c1.5-0.4,2.7-1,3.7-1.6c1.1-0.7,2-1.6,2.6-2.6c0.7-1.2,1-7.6,1-9.6l0.1-3.5L149.9,123.7z"/>
+       </g>
+</g>
+</svg>
diff --git 
a/streampark-console/streampark-console-webapp/src/assets/icons/fjar.svg 
b/streampark-console/streampark-console-webapp/src/assets/icons/fjar.svg
index fc152c4be..293456bc1 100644
--- a/streampark-console/streampark-console-webapp/src/assets/icons/fjar.svg
+++ b/streampark-console/streampark-console-webapp/src/assets/icons/fjar.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="1737299962791" class="icon" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; p-id="27402" 
xmlns:xlink="http://www.w3.org/1999/xlink"; width="200" height="200"><path 
d="M960 32H64a31.36 31.36 0 0 0-32 32v896a31.36 31.36 0 0 0 32 32h896a31.36 
31.36 0 0 0 32-32V64a31.36 31.36 0 0 0-32-32zM928 896a31.36 31.36 0 0 1-30.72 
30.72H1 [...]
+<?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="1737381843737" class="icon" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; p-id="2307" 
xmlns:xlink="http://www.w3.org/1999/xlink"; width="200" height="200"><path 
d="M176 64A112 112 0 0 0 64 176v672c0 61.824 50.176 112 112 112h672A112 112 0 0 
0 960 848V176A112 112 0 0 0 848 64H176zM160 176a16 16 0 0 1 16-16h672a16 16 0 0 
1  [...]
diff --git 
a/streampark-console/streampark-console-webapp/src/assets/icons/fql.svg 
b/streampark-console/streampark-console-webapp/src/assets/icons/fql.svg
index 961e9e176..bbb03d29a 100644
--- a/streampark-console/streampark-console-webapp/src/assets/icons/fql.svg
+++ b/streampark-console/streampark-console-webapp/src/assets/icons/fql.svg
@@ -1 +1 @@
-<svg t="1694614881698" class="icon" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; p-id="39038" width="200" height="200"><path 
d="M176 64A112 112 0 0 0 64 176v672c0 61.824 50.176 112 112 112h672A112 112 0 0 
0 960 848V176A112 112 0 0 0 848 64H176zM160 176a16 16 0 0 1 16-16h672a16 16 0 0 
1 16 16v672a16 16 0 0 1-16 16H176a16 16 0 0 1-16-16V176z m60.8 
150.528h243.52v81.024h-159.36v55.68h147.072v80.256H304.96v129.792H220.8V326.528z
 m426.048 353.28c-48.448 0-88.896-15 [...]
+<?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="1737381907274" class="icon" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; p-id="2543" 
xmlns:xlink="http://www.w3.org/1999/xlink"; width="200" height="200"><path 
d="M176 64A112 112 0 0 0 64 176v672c0 61.824 50.176 112 112 112h672A112 112 0 0 
0 960 848V176A112 112 0 0 0 848 64H176zM160 176a16 16 0 0 1 16-16h672a16 16 0 0 
1  [...]
diff --git 
a/streampark-console/streampark-console-webapp/src/assets/icons/py.svg 
b/streampark-console/streampark-console-webapp/src/assets/icons/py.svg
index fd26fd959..a597efd26 100644
--- a/streampark-console/streampark-console-webapp/src/assets/icons/py.svg
+++ b/streampark-console/streampark-console-webapp/src/assets/icons/py.svg
@@ -1 +1 @@
-<svg t="1694615129517" class="icon" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; p-id="51736" width="200" height="200"><path 
d="M170.666667 
170.666667v682.666666h682.666666V170.666667H170.666667zM85.333333 
170.666667A85.333333 85.333333 0 0 1 170.666667 85.333333h682.666666A85.333333 
85.333333 0 0 1 938.666667 170.666667v682.666666a85.333333 85.333333 0 0 
1-85.333334 85.333334H170.666667A85.333333 85.333333 0 0 1 85.333333 
853.333333V170.666667z m356.010667 10 [...]
+<svg t="1694615129517" class="icon" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; p-id="51736" width="200" height="200"><path 
d="M170.666667 
170.666667v682.666666h682.666666V170.666667H170.666667zM85.333333 
170.666667A85.333333 85.333333 0 0 1 170.666667 85.333333h682.666666A85.333333 
85.333333 0 0 1 938.666667 170.666667v682.666666a85.333333 85.333333 0 0 
1-85.333334 85.333334H170.666667A85.333333 85.333333 0 0 1 85.333333 
853.333333V170.666667z m356.010667 10 [...]
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/app/Add.vue 
b/streampark-console/streampark-console-webapp/src/views/flink/app/Add.vue
index da1910f09..74e334961 100644
--- a/streampark-console/streampark-console-webapp/src/views/flink/app/Add.vue
+++ b/streampark-console/streampark-console-webapp/src/views/flink/app/Add.vue
@@ -245,7 +245,7 @@
 
     handleCluster(values);
     const params = {
-      jobType: JobTypeEnum.SQL,
+      jobType: values.jobType,
       flinkSql: values.flinkSql,
       appType: AppTypeEnum.STREAMPARK_FLINK,
       config,
@@ -265,12 +265,18 @@
       submitLoading.value = true;
       if (formValue.jobType == JobTypeEnum.SQL || formValue.jobType == 
JobTypeEnum.CDC) {
         if (formValue.flinkSql == null || formValue.flinkSql.trim() === '') {
-          const errorMsg = formValue.jobType == JobTypeEnum.SQL ? 
t('flink.app.editStreamPark.flinkSqlRequired') : 
t('flink.app.editStreamPark.yamlRequired')
+          const errorMsg =
+            formValue.jobType == JobTypeEnum.SQL
+              ? t('flink.app.editStreamPark.flinkSqlRequired')
+              : t('flink.app.editStreamPark.yamlRequired');
           createMessage.warning(errorMsg);
         } else {
           const access = await flinkSql?.value?.handleVerifySql();
           if (!access) {
-            const errorMsg = formValue.jobType == JobTypeEnum.SQL ? 
t('flink.app.editStreamPark.sqlCheck') : t('flink.app.editStreamPark.yamlCheck')
+            const errorMsg =
+              formValue.jobType == JobTypeEnum.SQL
+                ? t('flink.app.editStreamPark.sqlCheck')
+                : t('flink.app.editStreamPark.yamlCheck');
             createMessage.warning(errorMsg);
             throw new Error(access);
           }
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/app/EditStreamPark.vue
 
b/streampark-console/streampark-console-webapp/src/views/flink/app/EditStreamPark.vue
index 1180730bf..8eb133a80 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/app/EditStreamPark.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/app/EditStreamPark.vue
@@ -166,12 +166,18 @@
       submitLoading.value = true;
       if (app.jobType == JobTypeEnum.SQL || app.jobType == JobTypeEnum.CDC) {
         if (values.flinkSql == null || values.flinkSql.trim() === '') {
-          const errorMsg = app.jobType == JobTypeEnum.SQL ? 
t('flink.app.editStreamPark.flinkSqlRequired') : 
t('flink.app.editStreamPark.yamlRequired')
+          const errorMsg =
+            app.jobType == JobTypeEnum.SQL
+              ? t('flink.app.editStreamPark.flinkSqlRequired')
+              : t('flink.app.editStreamPark.yamlRequired');
           createMessage.warning(errorMsg);
         } else {
           const access = await flinkSql?.value?.handleVerifySql();
           if (!access) {
-            const errorMsg = app.jobType == JobTypeEnum.SQL ? 
t('flink.app.editStreamPark.sqlCheck') : t('flink.app.editStreamPark.yamlCheck')
+            const errorMsg =
+              app.jobType == JobTypeEnum.SQL
+                ? t('flink.app.editStreamPark.sqlCheck')
+                : t('flink.app.editStreamPark.yamlCheck');
             createMessage.warning(errorMsg);
             throw new Error(access);
           }
@@ -370,7 +376,7 @@
       <template #args="{ model }">
         <ProgramArgs
           ref="programArgRef"
-          v-if="model.args != null && model.args != undefined"
+          v-if="model.args != null"
           v-model:value="model.args"
           :suggestions="suggestions"
           @preview="(value) => openReviewDrawer(true, { value, suggestions })"
@@ -385,6 +391,7 @@
           v-model:value="model[field]"
           :versionId="model['versionId']"
           :suggestions="suggestions"
+          :jobType="Number(model['jobType'])"
           @preview="(value) => openReviewDrawer(true, { value, suggestions })"
         />
       </template>
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/app/components/FlinkSql.vue
 
b/streampark-console/streampark-console-webapp/src/views/flink/app/components/FlinkSql.vue
index 05d94cc00..d8fa3486c 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/app/components/FlinkSql.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/app/components/FlinkSql.vue
@@ -68,8 +68,8 @@
       default: () => [],
     },
     jobType: {
-      type: Number
-    }
+      type: Number,
+    },
   });
   const defaultValue = '';
 
@@ -84,7 +84,6 @@
       createMessage.error(t('flink.app.dependencyError'));
       return false;
     } else {
-      console.log(props.jobType)
       if (props.jobType === JobTypeEnum.CDC) {
         try {
           YAML.load(props.value);
@@ -101,37 +100,37 @@
         }
       } else {
         try {
-        const { data } = await fetchFlinkSqlVerify({
-          sql: props.value,
-          versionId: props.versionId,
-        });
-        const success = data.data === true || data.data === 'true';
-        if (success) {
-          verifyRes.verified = true;
-          verifyRes.errorMsg = '';
-          syntaxError();
-          return true;
-        } else {
-          verifyRes.errorStart = parseInt(data.start);
-          verifyRes.errorEnd = parseInt(data.end);
-          switch (data.type) {
-            case 4:
-              verifyRes.errorMsg = 'Unsupported sql';
-              break;
-            case 5:
-              verifyRes.errorMsg = "SQL is not endWith ';'";
-              break;
-            default:
-              verifyRes.errorMsg = data.message;
-              break;
+          const { data } = await fetchFlinkSqlVerify({
+            sql: props.value,
+            versionId: props.versionId,
+          });
+          const success = data.data === true || data.data === 'true';
+          if (success) {
+            verifyRes.verified = true;
+            verifyRes.errorMsg = '';
+            syntaxError();
+            return true;
+          } else {
+            verifyRes.errorStart = parseInt(data.start);
+            verifyRes.errorEnd = parseInt(data.end);
+            switch (data.type) {
+              case 4:
+                verifyRes.errorMsg = 'Unsupported sql';
+                break;
+              case 5:
+                verifyRes.errorMsg = "SQL is not endWith ';'";
+                break;
+              default:
+                verifyRes.errorMsg = data.message;
+                break;
+            }
+            syntaxError();
+            return false;
           }
-          syntaxError();
+        } catch (error) {
+          console.error(error);
           return false;
         }
-      } catch (error) {
-        console.error(error);
-        return false;
-      }
       }
     }
   }
@@ -243,7 +242,13 @@
         <Icon icon="ant-design:eye-outlined" />
         {{ t('flink.app.flinkSql.preview') }}
       </a-button>
-      <a-button class="flinksql-tool-item" size="small" type="default" 
@click="handleFormatSql">
+      <a-button
+        v-if="props.jobType === JobTypeEnum.SQL"
+        class="flinksql-tool-item"
+        size="small"
+        type="default"
+        @click="handleFormatSql"
+      >
         <Icon icon="ant-design:thunderbolt-outlined" />
         {{ t('flink.app.flinkSql.format') }}
       </a-button>
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/app/data/detail.data.ts
 
b/streampark-console/streampark-console-webapp/src/views/flink/app/data/detail.data.ts
index 3da83a68e..8b2a5fcea 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/app/data/detail.data.ts
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/app/data/detail.data.ts
@@ -49,12 +49,12 @@ export const getDescSchema = (): DescItem[] => {
     {
       field: 'module',
       label: t('flink.app.module'),
-      show: (data) => data.jobType != JobTypeEnum.SQL,
+      show: (data) => data.jobType == JobTypeEnum.JAR,
     },
     {
       field: 'projectName',
       label: t('flink.app.project'),
-      show: (data) => data.jobType != JobTypeEnum.SQL,
+      show: (data) => data.jobType == JobTypeEnum.JAR,
     },
     {
       field: 'appType',
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useAppTableAction.ts
 
b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useAppTableAction.ts
index 7fc1130bc..e634d5311 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useAppTableAction.ts
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useAppTableAction.ts
@@ -232,7 +232,7 @@ export const useAppTableAction = (
     sessionStorage.setItem('appPageNo', String(currentPageNo || 1));
     flinkAppStore.setApplicationId(app.id);
     if (app.appType == AppTypeEnum.STREAMPARK_FLINK) {
-      // jobType( 1 custom code 2: flinkSQL)
+      // jobType( 1 flinkJAR 2: flinkSQL)
       router.push({ path: '/flink/app/edit_streampark', query: { appId: app.id 
} });
     } else if (app.appType == AppTypeEnum.APACHE_FLINK) {
       //Apache Flink
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useCreateAndEditSchema.ts
 
b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useCreateAndEditSchema.ts
index 25e0f1995..2356d0667 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useCreateAndEditSchema.ts
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useCreateAndEditSchema.ts
@@ -109,7 +109,15 @@ export const useCreateAndEditSchema = (
         label: 'Flink SQL',
         component: 'Input',
         slot: 'flinkSql',
-        ifShow: ({ values }) => values?.jobType == JobTypeEnum.SQL || 
values?.jobType == JobTypeEnum.CDC,
+        ifShow: ({ values }) => values?.jobType == JobTypeEnum.SQL,
+        rules: [{ required: true, message: 
t('flink.app.addAppTips.flinkSqlIsRequiredMessage') }],
+      },
+      {
+        field: 'flinkSql',
+        label: 'CDC YAML',
+        component: 'Input',
+        slot: 'flinkSql',
+        ifShow: ({ values }) => values?.jobType == JobTypeEnum.CDC,
         rules: [{ required: true, message: 
t('flink.app.addAppTips.flinkSqlIsRequiredMessage') }],
       },
       {
@@ -117,7 +125,8 @@ export const useCreateAndEditSchema = (
         label: t('flink.app.resource'),
         component: 'Select',
         render: ({ model }) => renderStreamParkResource({ model, resources: 
unref(teamResource) }),
-        ifShow: ({ values }) => values.jobType == JobTypeEnum.SQL || 
values.jobType == JobTypeEnum.CDC,
+        ifShow: ({ values }) =>
+          values.jobType == JobTypeEnum.SQL || values.jobType == 
JobTypeEnum.CDC,
       },
       {
         field: 'dependency',
@@ -132,7 +141,8 @@ export const useCreateAndEditSchema = (
         label: t('flink.app.appConf'),
         component: 'Switch',
         ifShow: ({ values }) =>
-          (values?.jobType == JobTypeEnum.SQL || values?.jobType == 
JobTypeEnum.CDC) && !isK8sDeployMode(values.deployMode),
+          (values?.jobType == JobTypeEnum.SQL || values?.jobType == 
JobTypeEnum.CDC) &&
+          !isK8sDeployMode(values.deployMode),
         render({ model, field }) {
           return renderIsSetConfig(model, field, registerConfDrawer, 
openConfDrawer);
         },
@@ -477,7 +487,10 @@ export const useCreateAndEditSchema = (
         component: 'InputTextArea',
         defaultValue: '',
         slot: 'args',
-        ifShow: ({ values }) => (edit?.mode ? true : (values.jobType != 
JobTypeEnum.SQL && values.jobType != JobTypeEnum.CDC)),
+        ifShow: ({ values }) =>
+          edit?.mode
+            ? true
+            : values.jobType == JobTypeEnum.JAR && values.jobType == 
JobTypeEnum.PYFLINK,
       },
       {
         field: 'hadoopUser',
@@ -510,12 +523,12 @@ export const useCreateAndEditSchema = (
                     icon: 'ant-design:code-outlined',
                     style: { color: '#108ee9' },
                   }),
-                  h('span', { class: 'pl-8px' }, 'Custom Code'),
+                  h('span', { class: 'pl-8px' }, 'Flink JAR'),
                 ],
               },
             );
-          } else if(model.jobType == JobTypeEnum.CDC) {
-            return getAlertSvgIcon('fql', 'Flink CDC');
+          } else if (model.jobType == JobTypeEnum.CDC) {
+            return getAlertSvgIcon('cdc', 'Flink CDC');
           } else {
             return getAlertSvgIcon('fql', 'Flink SQL');
           }
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useCreateSchema.ts
 
b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useCreateSchema.ts
index 348ad5d38..f6cca358e 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useCreateSchema.ts
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useCreateSchema.ts
@@ -39,28 +39,28 @@ const getJobTypeOptions = () => {
   return [
     {
       label: h('div', {}, [
-        h(SvgIcon, { name: 'code', color: '#108ee9' }, ''),
-        h('span', { class: 'pl-10px' }, 'Custom Code'),
+        h(SvgIcon, { name: 'fjar', color: '#108ee9', size: 16 }, ''),
+        h('span', { class: 'pl-10px' }, 'Flink JAR'),
       ]),
       value: String(JobTypeEnum.JAR),
     },
     {
       label: h('div', {}, [
-        h(SvgIcon, { name: 'fql', color: '#108ee9' }, ''),
+        h(SvgIcon, { name: 'fql', color: '#108ee9', size: 16 }, ''),
         h('span', { class: 'pl-10px' }, 'Flink SQL'),
       ]),
       value: String(JobTypeEnum.SQL),
     },
     {
       label: h('div', {}, [
-        h(SvgIcon, { name: 'py', color: '#108ee9' }, ''),
+        h(SvgIcon, { name: 'py', color: '#108ee9', size: 16 }, ''),
         h('span', { class: 'pl-10px' }, 'Python Flink'),
       ]),
       value: String(JobTypeEnum.PYFLINK),
     },
     {
       label: h('div', {}, [
-        h(SvgIcon, { name: 'fql', color: '#108ee9' }, ''),
+        h(SvgIcon, { name: 'cdc', color: '#108ee9', size: 16 }, ''),
         h('span', { class: 'pl-10px' }, 'Flink CDC'),
       ]),
       value: String(JobTypeEnum.CDC),
@@ -133,7 +133,7 @@ export const useCreateSchema = (dependencyRef: Ref) => {
         component: 'Select',
         render: ({ model }) => renderResourceFrom(model),
         rules: [{ required: true, message: 
t('flink.app.addAppTips.resourceFromMessage') }],
-        show: ({ values }) => values?.jobType != JobTypeEnum.SQL && 
values?.jobType != JobTypeEnum.CDC,
+        show: ({ values }) => values?.jobType == JobTypeEnum.JAR,
       },
       {
         field: 'uploadJobJar',
@@ -141,7 +141,7 @@ export const useCreateSchema = (dependencyRef: Ref) => {
         component: 'Select',
         render: ({ model }) => renderStreamParkJarApp({ model, resources: 
unref(teamResource) }),
         ifShow: ({ values }) =>
-          values?.jobType != JobTypeEnum.SQL && values?.jobType != 
JobTypeEnum.CDC && values?.resourceFrom == ResourceFromEnum.UPLOAD,
+          values?.jobType == JobTypeEnum.JAR && values?.resourceFrom == 
ResourceFromEnum.UPLOAD,
       },
       {
         field: 'mainClass',
@@ -149,7 +149,7 @@ export const useCreateSchema = (dependencyRef: Ref) => {
         component: 'Input',
         componentProps: { placeholder: 
t('flink.app.addAppTips.mainClassPlaceholder') },
         ifShow: ({ values }) =>
-          values?.jobType != JobTypeEnum.SQL && values?.jobType != 
JobTypeEnum.CDC && values?.resourceFrom == ResourceFromEnum.UPLOAD,
+          values?.jobType == JobTypeEnum.JAR && values?.resourceFrom == 
ResourceFromEnum.UPLOAD,
         rules: [{ required: true, message: 
t('flink.app.addAppTips.mainClassIsRequiredMessage') }],
       },
       {
@@ -177,7 +177,7 @@ export const useCreateSchema = (dependencyRef: Ref) => {
           },
         },
         ifShow: ({ values }) =>
-          values?.jobType != JobTypeEnum.SQL && values?.jobType != 
JobTypeEnum.CDC && values.resourceFrom != ResourceFromEnum.UPLOAD,
+          values?.jobType == JobTypeEnum.JAR && values.resourceFrom != 
ResourceFromEnum.UPLOAD,
         rules: [{ required: true, message: 
t('flink.app.addAppTips.projectIsRequiredMessage') }],
       },
       {
@@ -200,8 +200,8 @@ export const useCreateSchema = (dependencyRef: Ref) => {
             },
           };
         },
-        ifShow: ({ values }) => 
-          values?.jobType != JobTypeEnum.SQL && values?.jobType != 
JobTypeEnum.CDC && values?.resourceFrom != ResourceFromEnum.UPLOAD,
+        ifShow: ({ values }) =>
+          values?.jobType == JobTypeEnum.JAR && values?.resourceFrom != 
ResourceFromEnum.UPLOAD,
         rules: [{ required: true, message: 
t('flink.app.addAppTips.projectIsRequiredMessage') }],
       },
       {
@@ -232,7 +232,7 @@ export const useCreateSchema = (dependencyRef: Ref) => {
           };
         },
         ifShow: ({ values }) =>
-          values?.jobType != JobTypeEnum.SQL && values?.jobType != 
JobTypeEnum.CDC && values?.resourceFrom != ResourceFromEnum.UPLOAD,
+          values?.jobType == JobTypeEnum.JAR && values?.resourceFrom != 
ResourceFromEnum.UPLOAD,
         dynamicRules: () => [
           { required: true, message: 
t('flink.app.addAppTips.appTypeIsRequiredMessage') },
         ],
@@ -257,8 +257,7 @@ export const useCreateSchema = (dependencyRef: Ref) => {
           };
         },
         ifShow: ({ values }) =>
-          values?.jobType != JobTypeEnum.SQL &&
-          values?.jobType != JobTypeEnum.CDC &&
+          values?.jobType == JobTypeEnum.JAR &&
           values?.resourceFrom != ResourceFromEnum.UPLOAD &&
           values.appType == String(AppTypeEnum.APACHE_FLINK),
         rules: [{ required: true, message: 
t('flink.app.addAppTips.programJarIsRequiredMessage') }],
@@ -269,8 +268,7 @@ export const useCreateSchema = (dependencyRef: Ref) => {
         component: 'Input',
         componentProps: { placeholder: 
t('flink.app.addAppTips.mainClassPlaceholder') },
         ifShow: ({ values }) =>
-          values?.jobType != JobTypeEnum.SQL &&
-          values?.jobType != JobTypeEnum.CDC &&
+          (values?.jobType == JobTypeEnum.JAR || values?.jobType == 
JobTypeEnum.PYFLINK) &&
           values?.resourceFrom != ResourceFromEnum.UPLOAD &&
           values.appType == String(AppTypeEnum.APACHE_FLINK),
         rules: [{ required: true, message: 
t('flink.app.addAppTips.mainClassIsRequiredMessage') }],
@@ -297,8 +295,7 @@ export const useCreateSchema = (dependencyRef: Ref) => {
           };
         },
         ifShow: ({ values }) =>
-          values?.jobType != JobTypeEnum.SQL &&
-          values?.jobType != JobTypeEnum.CDC &&
+          values?.jobType == JobTypeEnum.JAR &&
           values?.resourceFrom != ResourceFromEnum.UPLOAD &&
           values.appType == String(AppTypeEnum.STREAMPARK_FLINK),
         dynamicRules: () => [{ required: true, validator: handleCheckConfig }],
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useEditStreamPark.ts
 
b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useEditStreamPark.ts
index 61b713090..40a7a1f4d 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useEditStreamPark.ts
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useEditStreamPark.ts
@@ -139,7 +139,7 @@ export const useEditStreamParkSchema = (
         label: 'Project',
         component: 'Input',
         render: ({ model }) => h(Alert, { message: model.projectName, type: 
'info' }),
-        ifShow: ({ model, values }) => values.jobType != JobTypeEnum.SQL && 
model.projectName,
+        ifShow: ({ model, values }) => values.jobType == JobTypeEnum.JAR && 
model.projectName,
       },
       { field: 'project', label: 'ProjectId', component: 'Input', show: false 
},
 
@@ -148,7 +148,7 @@ export const useEditStreamParkSchema = (
         label: 'Application',
         component: 'Input',
         render: ({ model }) => h(Alert, { message: model.module, type: 'info' 
}),
-        ifShow: ({ model, values }) => values.jobType != JobTypeEnum.SQL && 
model.module,
+        ifShow: ({ model, values }) => values.jobType == JobTypeEnum.JAR && 
model.module,
       },
       { field: 'configId', label: 'configId', component: 'Input', show: false 
},
       { field: 'config', label: '', component: 'Input', show: false },
@@ -158,7 +158,7 @@ export const useEditStreamParkSchema = (
         label: 'Application conf',
         component: 'Input',
         slot: 'appConf',
-        ifShow: ({ values }) => values.jobType != JobTypeEnum.SQL,
+        ifShow: ({ values }) => values.jobType == JobTypeEnum.JAR,
       },
       {
         field: 'compareConf',

Reply via email to