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

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


The following commit(s) were added to refs/heads/dev-2.1.5 by this push:
     new b57644e7f [Improve]: table actions style at Project display Page 
(#4084)
b57644e7f is described below

commit b57644e7f0644062fd73f132899198faa4f1a650
Author: Kriszu <[email protected]>
AuthorDate: Tue Sep 24 14:29:01 2024 +0800

    [Improve]: table actions style at Project display Page (#4084)
    
    * [Improve]: table actions style at Project display Page
    
    * fix: project field
---
 .../src/locales/lang/en/setting/flinkHome.ts       |   4 +
 .../src/locales/lang/zh-CN/setting/flinkHome.ts    |   4 +
 .../src/views/flink/project/Add.vue                |   7 --
 .../src/views/flink/project/Edit.vue               |   9 +-
 .../src/views/flink/project/View.vue               | 104 ++++++++---------
 .../views/flink/project/components/ListItem.vue    |   2 +-
 .../src/views/setting/FlinkCluster/index.vue       |  29 ++---
 .../views/setting/FlinkHome/components/Drawer.vue  |   9 +-
 .../views/setting/FlinkHome/components/Modal.vue   | 128 ++++++++++-----------
 .../src/views/setting/FlinkHome/index.vue          |   4 +-
 10 files changed, 139 insertions(+), 161 deletions(-)

diff --git 
a/streampark-console/streampark-console-webapp/src/locales/lang/en/setting/flinkHome.ts
 
b/streampark-console/streampark-console-webapp/src/locales/lang/en/setting/flinkHome.ts
index d05608796..80067a2ec 100644
--- 
a/streampark-console/streampark-console-webapp/src/locales/lang/en/setting/flinkHome.ts
+++ 
b/streampark-console/streampark-console-webapp/src/locales/lang/en/setting/flinkHome.ts
@@ -36,5 +36,9 @@ export default {
     flinkHomeIsRequired: 'The flink home is required',
     createFlinkHomeSuccessful: ' Create successful!',
     updateFlinkHomeSuccessful: ' Update successful!',
+    invalidPath: 'FLINK_HOME invalid path.',
+    flinkHomeError: 'Can no found flink-dist or found multiple flink-dist, 
FLINK_HOME error.',
+    deleteSuccess: 'The current flink home is removed.',
+    setDefaultSuccess: `{name} is set as the default flink home.`,
   },
 };
diff --git 
a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/setting/flinkHome.ts
 
b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/setting/flinkHome.ts
index 9d4713ea5..a9e12ecf6 100644
--- 
a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/setting/flinkHome.ts
+++ 
b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/setting/flinkHome.ts
@@ -36,5 +36,9 @@ export default {
     flinkHomeIsRequired: 'Flink安装路径必填',
     createFlinkHomeSuccessful: ' 创建成功!',
     updateFlinkHomeSuccessful: ' 更新成功!',
+    invalidPath: 'FLINK_HOME 路径无效.',
+    flinkHomeError: '未找到 flink-dist 或找到多个 flink-dist, FLINK_HOME 错误.',
+    deleteSuccess: '当前 Flink home 已删除.',
+    setDefaultSuccess: `{name} 已被设置为默认 Flink home.`,
   },
 };
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/project/Add.vue 
b/streampark-console/streampark-console-webapp/src/views/flink/project/Add.vue
index 3cd760fe1..6dbd6256a 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/project/Add.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/project/Add.vue
@@ -14,14 +14,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<script lang="ts">
-  export default defineComponent({
-    name: 'AddProject',
-  });
-</script>
-
 <script setup lang="ts" name="AddProject">
-  import { defineComponent } from 'vue';
   import { useRouter } from 'vue-router';
   import { useProject } from './useProject';
   import { createProject } from '/@/api/flink/project';
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/project/Edit.vue 
b/streampark-console/streampark-console-webapp/src/views/flink/project/Edit.vue
index a4f5beb7e..ddfcd5a6d 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/project/Edit.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/project/Edit.vue
@@ -14,13 +14,8 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<script lang="ts">
-  export default defineComponent({
-    name: 'EditProject',
-  });
-</script>
 <script setup lang="ts" name="EditProject">
-  import { defineComponent, onMounted, ref } from 'vue';
+  import { onMounted, ref } from 'vue';
   import { useRouter, useRoute } from 'vue-router';
   import { useProject } from './useProject';
   import { updateProject } from '/@/api/flink/project';
@@ -45,7 +40,7 @@
   function handleCheckRebuild(values: Recordable) {
     if (
       projectResource.url !== values.url ||
-      projectResource.branches !== values.branches ||
+      projectResource.refs !== values.refs ||
       projectResource.pom !== values.pom
     ) {
       buildState.value = BuildStateEnum.NEED_REBUILD;
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/project/View.vue 
b/streampark-console/streampark-console-webapp/src/views/flink/project/View.vue
index 498742e50..b9c1b024e 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/project/View.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/project/View.vue
@@ -56,7 +56,7 @@
       <template #bodyCell="{ column, record }">
         <template v-if="column.dataIndex === 'branches'">
           <a-tag
-            v-if="record.refs.startsWith('refs/tags/') > 0"
+            v-if="record.refs.startsWith('refs/tags/')"
             color="green"
             style="border-radius: 4px"
           >
@@ -106,7 +106,11 @@
                 icon: 'ant-design:thunderbolt-outlined',
                 auth: 'project:build',
                 ifShow: record.buildState !== BuildStateEnum.BUILDING,
-                onClick: handleBuild.bind(null, record),
+                popConfirm: {
+                  title: t('flink.project.operationTips.buildProjectMessage'),
+                  placement: 'left',
+                  confirm: handleBuild.bind(null, record),
+                },
               },
               {
                 icon: 'clarity:note-edit-line',
@@ -121,7 +125,11 @@
                 tooltip: t('common.delText'),
                 ifShow: record.buildState !== BuildStateEnum.BUILDING,
                 auth: 'project:delete',
-                onClick: handleDelete.bind(null, record),
+                popConfirm: {
+                  title: t('flink.project.operationTips.deleteProjectMessage'),
+                  placement: 'left',
+                  confirm: handleDelete.bind(null, record),
+                },
               },
             ]"
           />
@@ -174,7 +182,7 @@
       const userStore = useUserStoreWithOut();
       const { t } = useI18n();
       const router = useRouter();
-      const { Swal, createConfirm, createMessage } = useMessage();
+      const { Swal, createMessage } = useMessage();
       const [registerLogModal, { openModal: openLogModal }] = useModal();
       const buttonList = reactive(statusList);
       const loading = ref(false);
@@ -217,6 +225,7 @@
           { dataIndex: 'lastBuild', title: t('flink.project.form.lastBuild') },
           { dataIndex: 'buildState', title: t('flink.project.form.buildState') 
},
         ],
+        rowKey: 'id',
         useSearchForm: false,
         striped: false,
         canResize: false,
@@ -234,61 +243,48 @@
         });
       }
       async function handleBuild(record: ProjectRecord) {
-        createConfirm({
-          iconType: 'warning',
-          title: t('flink.project.operationTips.buildProject'),
-          centered: true,
-          content: t('flink.project.operationTips.buildProjectMessage'),
-          onOk: async () => {
-            try {
-              await buildProject({
-                id: record.id,
-                socketId: buildUUID(),
-              });
-              Swal.fire({
-                icon: 'success',
-                title: 
t('flink.project.operationTips.projectIsbuildingMessage'),
-                showConfirmButton: false,
-                timer: 2000,
-              });
-            } catch (e) {
-              
createMessage.error(t('flink.project.operationTips.projectIsbuildFailedMessage'));
-            }
-          },
-        });
+        try {
+          await buildProject({
+            id: record.id,
+            socketId: buildUUID(),
+          });
+          Swal.fire({
+            icon: 'success',
+            title: t('flink.project.operationTips.projectIsbuildingMessage'),
+            showConfirmButton: false,
+            timer: 2000,
+          });
+        } catch (e) {
+          console.error(e);
+        }
       }
       const handleEdit = function (record: ProjectRecord) {
         router.push({ path: '/flink/project/edit', query: { id: record.id } });
       };
       async function handleDelete(record: ProjectRecord) {
-        createConfirm({
-          iconType: 'warning',
-          title: t('flink.project.operationTips.deleteProject'),
-          content: t('flink.project.operationTips.deleteProjectMessage'),
-          centered: true,
-          onOk: async () => {
-            try {
-              const res = await deleteProject({ id: record.id });
-              if (res.data) {
-                Swal.fire({
-                  icon: 'success',
-                  title: 
t('flink.project.operationTips.deleteProjectSuccessMessage'),
-                  showConfirmButton: false,
-                  timer: 2000,
-                });
-                reload();
-              } else {
-                Swal.fire(
-                  'Failed',
-                  
t('flink.project.operationTips.deleteProjectFailedDetailMessage'),
-                  'error',
-                );
-              }
-            } catch (e) {
-              
createMessage.error(t('flink.project.operationTips.deleteProjectFailedMessage'));
-            }
-          },
-        });
+        const hide = createMessage.loading('Deleting', 0);
+        try {
+          const res = await deleteProject({ id: record.id });
+          if (res.data) {
+            Swal.fire({
+              icon: 'success',
+              title: 
t('flink.project.operationTips.deleteProjectSuccessMessage'),
+              showConfirmButton: false,
+              timer: 2000,
+            });
+            reload();
+          } else {
+            Swal.fire(
+              'Failed',
+              
t('flink.project.operationTips.deleteProjectFailedDetailMessage'),
+              'error',
+            );
+          }
+        } catch (e) {
+          
createMessage.error(t('flink.project.operationTips.deleteProjectFailedMessage'));
+        } finally {
+          hide();
+        }
       }
 
       const handleQuery = function (val: string | undefined) {
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/project/components/ListItem.vue
 
b/streampark-console/streampark-console-webapp/src/views/flink/project/components/ListItem.vue
index cc0957af3..991f1ca57 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/project/components/ListItem.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/project/components/ListItem.vue
@@ -51,7 +51,7 @@
         <span>{{ t('flink.project.form.branches') }}</span>
         <p v-if="item.refs != null">
           <a-tag
-            v-if="item.refs.startsWith('refs/tags/') > 0"
+            v-if="item.refs.startsWith('refs/tags/')"
             color="#108ee9"
             style="border-radius: 4px"
           >
diff --git 
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/index.vue
 
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/index.vue
index 291c60bab..7fc631668 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/index.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/index.vue
@@ -53,7 +53,7 @@
 
   const go = useGo();
   const { t } = useI18n();
-  const { Swal, createMessage, createConfirm } = useMessage();
+  const { Swal, createMessage } = useMessage();
   const [registerTable, { reload, getLoading }] = useTable({
     api: pageFlinkCluster,
     columns: [
@@ -123,17 +123,16 @@
   }
   /* delete */
   async function handleDelete(item: FlinkCluster) {
-    createConfirm({
-      iconType: 'warning',
-      title: t('common.delText'),
-      centered: true,
-      content: t('setting.flinkCluster.delete'),
-      onOk: async () => {
-        await fetchClusterRemove(item.id);
-        reload();
-        createMessage.success('The current cluster is remove');
-      },
-    });
+    const hide = createMessage.loading('Deleting', 0);
+    try {
+      await fetchClusterRemove(item.id);
+      reload();
+      createMessage.success('The current cluster is remove');
+    } catch (error) {
+      console.error(error);
+    } finally {
+      hide();
+    }
   }
   /* shutdown */
   async function handleShutdownCluster(item: FlinkCluster) {
@@ -240,7 +239,11 @@
                 icon: 'ant-design:delete-outlined',
                 color: 'error',
                 tooltip: t('common.delText'),
-                onClick: handleDelete.bind(null, record),
+                popConfirm: {
+                  title: t('setting.flinkCluster.delete'),
+                  placement: 'left',
+                  confirm: handleDelete.bind(null, record),
+                },
               },
             ]"
           />
diff --git 
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkHome/components/Drawer.vue
 
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkHome/components/Drawer.vue
index 325f500ed..52385c1b3 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkHome/components/Drawer.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkHome/components/Drawer.vue
@@ -14,13 +14,6 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<script lang="ts">
-  import { defineComponent } from 'vue';
-
-  export default defineComponent({
-    name: 'FlinkEnvDraw',
-  });
-</script>
 <script lang="ts" setup name="FlinkEnvDraw">
   import { ref, reactive } from 'vue';
   import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
@@ -57,7 +50,7 @@
       automaticLayout: true,
       cursorStyle: 'line',
       cursorWidth: 3,
-      renderFinalNewline: true,
+      renderFinalNewline: 'on',
       renderLineHighlight: 'all',
       quickSuggestionsDelay: 100, // Code prompt delay
       minimap: { enabled: true },
diff --git 
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkHome/components/Modal.vue
 
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkHome/components/Modal.vue
index b39c75a2e..45962d7f6 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkHome/components/Modal.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkHome/components/Modal.vue
@@ -82,80 +82,70 @@
 
   /* form submit */
   async function handleSubmit() {
-    let formValue;
     try {
-      formValue = await validate();
-    } catch (error) {
-      console.warn('validate error:', error);
-      return;
-    } finally {
-      changeOkLoading(false);
-    }
-    // Detection environment
-    const { data: resp } = await fetchCheckEnv({
-      id: versionId.value,
-      flinkName: formValue.flinkName,
-      flinkHome: formValue.flinkHome,
-    });
-    const checkResp = parseInt(resp.data);
-    if (checkResp != 0) {
-      // Environment detection is successful
-      if (checkResp == -1) {
-        Swal.fire('Failed', 'FLINK_HOME invalid path.', 'error');
-      } else if (checkResp == 1) {
-        Swal.fire('Failed', 
t('setting.flinkHome.operateMessage.flinkNameIsUnique'), 'error');
-      } else if (checkResp == 2) {
-        Swal.fire(
-          'Failed',
-          'can no found flink-dist or found multiple flink-dist, FLINK_HOME 
error.',
-          'error',
-        );
-      }
-      changeOkLoading(false);
-      return;
-    }
-
-    try {
-      let message: string;
-      let success = false;
-      // create
-      if (versionId.value == null) {
-        const { data } = await fetchFlinkCreate(formValue);
-        if (data.data) {
-          success = true;
-          message = formValue.flinkName.concat(
-            t('setting.flinkHome.operateMessage.createFlinkHomeSuccessful'),
-          );
-        } else {
-          message = data.message;
+      changeOkLoading(true);
+      const formValue = await validate();
+      // Detection environment
+      const { data: resp } = await fetchCheckEnv({
+        id: versionId.value,
+        flinkName: formValue.flinkName,
+        flinkHome: formValue.flinkHome,
+      });
+      const checkResp = parseInt(resp.data);
+      if (checkResp != 0) {
+        // Environment detection is successful
+        if (checkResp == -1) {
+          Swal.fire('Failed', 
t('setting.flinkHome.operateMessage.invalidPath'), 'error');
+        } else if (checkResp == 1) {
+          Swal.fire('Failed', 
t('setting.flinkHome.operateMessage.flinkNameIsUnique'), 'error');
+        } else if (checkResp == 2) {
+          Swal.fire('Failed', 
t('setting.flinkHome.operateMessage.flinkHomeError'), 'error');
         }
       } else {
-        // update
-        const { data } = await fetchFlinkUpdate({
-          id: versionId.value,
-          ...formValue,
-        });
-        if (data.data) {
-          message = formValue.flinkName.concat(
-            t('setting.flinkHome.operateMessage.updateFlinkHomeSuccessful'),
-          );
-          success = true;
+        let message: string;
+        let success = false;
+        // create
+        if (versionId.value == null) {
+          const { data } = await fetchFlinkCreate(formValue);
+          if (data.data) {
+            success = true;
+            message = formValue.flinkName.concat(
+              t('setting.flinkHome.operateMessage.createFlinkHomeSuccessful'),
+            );
+          } else {
+            message = data.message;
+          }
         } else {
-          message = data.message;
+          // update
+          const { data } = await fetchFlinkUpdate({
+            id: versionId.value,
+            ...formValue,
+          });
+          if (data.data) {
+            message = formValue.flinkName.concat(
+              t('setting.flinkHome.operateMessage.updateFlinkHomeSuccessful'),
+            );
+            success = true;
+          } else {
+            message = data.message;
+          }
+        }
+        if (success) {
+          Swal.fire({
+            icon: 'success',
+            title: message,
+            showConfirmButton: false,
+            timer: 2000,
+          });
+          closeModal();
+          emit('reload');
+        } else {
+          Swal.fire('Failed', message.replaceAll(/\[StreamPark]/g, ''), 
'error');
         }
       }
-      if (success) {
-        Swal.fire({
-          icon: 'success',
-          title: message,
-          showConfirmButton: false,
-          timer: 2000,
-        });
-        closeModal();
-        emit('reload');
-      } else {
-        Swal.fire('Failed', message.replaceAll(/\[StreamPark]/g, ''), 'error');
-      }
+    } catch (error) {
+      console.warn('validate error:', error);
+      return;
     } finally {
       changeOkLoading(false);
     }
@@ -165,7 +155,7 @@
   <BasicModal :width="600" @register="registerModalInner" v-bind="$attrs" 
@ok="handleSubmit">
     <template #title>
       <SvgIcon name="flink" />
-      {{ t('common.add') }}
+      {{ versionId ? t('common.add') : t('common.edit') }}
     </template>
     <div class="mt-3">
       <BasicForm @register="registerForm" />
diff --git 
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkHome/index.vue
 
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkHome/index.vue
index fb3ce50fe..c9bd2a5d7 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkHome/index.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkHome/index.vue
@@ -109,7 +109,7 @@
     const resp = await fetchFlinkEnvRemove(item.id);
     if (resp.data.code == 200) {
       reload();
-      createMessage.success('The current flink home is removed.');
+      
createMessage.success(t('setting.flinkHome.operateMessage.deleteSuccess'));
     }
   }
 
@@ -119,7 +119,7 @@
       await fetchDefaultSet(item.id);
       Swal.fire({
         icon: 'success',
-        title: item.flinkName.concat(' set default successful!'),
+        title: t('setting.flinkHome.operateMessage.setDefaultSuccess', { name: 
item.flinkName }),
         showConfirmButton: false,
         timer: 2000,
       });

Reply via email to