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

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


The following commit(s) were added to refs/heads/dev by this push:
     new 3bea62086 [Improve] put icon before resource type option (#2724)
3bea62086 is described below

commit 3bea6208648260640bde4d8fb3feb13ec32c3549
Author: zhoulii <[email protected]>
AuthorDate: Fri May 5 14:02:54 2023 +0800

    [Improve] put icon before resource type option (#2724)
    
    * [Improve] put icon before resource type option
    
    * [Improve] make label more readable
    
    ---------
    
    Co-authored-by: zhoulii <[email protected]>
---
 .../src/assets/icons/connector.svg                 |  1 +
 .../src/assets/icons/fx.svg                        |  1 +
 .../src/assets/icons/jar.svg                       |  1 +
 .../src/locales/lang/en/flink/resource.ts          |  1 +
 .../src/locales/lang/zh-CN/flink/resource.ts       |  1 +
 .../flink/resource/components/ResourceDrawer.vue   | 11 +---
 .../src/views/flink/resource/useResourceRender.tsx | 72 ++++++++++++++++++++++
 7 files changed, 80 insertions(+), 8 deletions(-)

diff --git 
a/streampark-console/streampark-console-webapp/src/assets/icons/connector.svg 
b/streampark-console/streampark-console-webapp/src/assets/icons/connector.svg
new file mode 100644
index 000000000..eb7de2a0f
--- /dev/null
+++ 
b/streampark-console/streampark-console-webapp/src/assets/icons/connector.svg
@@ -0,0 +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="1683216927308" class="icon" viewBox="0 0 1025 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; p-id="35715" 
xmlns:xlink="http://www.w3.org/1999/xlink"; width="200.1953125" 
height="200"><path d="M391.518603 331.339211l301.143903 301.101315 
150.635835-150.550657a212.942938 212.942938 0 0 
0-301.186492-301.186492L391.518603 331.339211zM692.705095 [...]
\ No newline at end of file
diff --git 
a/streampark-console/streampark-console-webapp/src/assets/icons/fx.svg 
b/streampark-console/streampark-console-webapp/src/assets/icons/fx.svg
new file mode 100644
index 000000000..b0cf1d03d
--- /dev/null
+++ b/streampark-console/streampark-console-webapp/src/assets/icons/fx.svg
@@ -0,0 +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="1683216867173" class="icon" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; p-id="31664" 
xmlns:xlink="http://www.w3.org/1999/xlink"; width="200" height="200"><path 
d="M649.984 133.461333a54.101333 54.101333 0 0 1-11.776 35.157334 36.949333 
36.949333 0 0 1-29.610667 14.933333c-12.202667 
0-21.077333-4.266667-26.624-12.8a171.3 [...]
\ No newline at end of file
diff --git 
a/streampark-console/streampark-console-webapp/src/assets/icons/jar.svg 
b/streampark-console/streampark-console-webapp/src/assets/icons/jar.svg
new file mode 100644
index 000000000..a6347b507
--- /dev/null
+++ b/streampark-console/streampark-console-webapp/src/assets/icons/jar.svg
@@ -0,0 +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="1683216755143" class="icon" viewBox="0 0 1024 1024" version="1.1" 
xmlns="http://www.w3.org/2000/svg"; p-id="23492" 
xmlns:xlink="http://www.w3.org/1999/xlink"; width="200" height="200"><path 
d="M558.08 472.064c48.128 53.248-13.312 103.424-13.312 103.424s119.808-61.44 
65.536-139.264c-51.2-71.68-91.136-107.52 122.88-232.448 0 1.024-335.872 
86.016-175.1 [...]
\ No newline at end of file
diff --git 
a/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/resource.ts
 
b/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/resource.ts
index fc8262254..03f1e5086 100644
--- 
a/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/resource.ts
+++ 
b/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/resource.ts
@@ -41,6 +41,7 @@ export default {
     descriptionMessage: 'exceeds maximum length limit of 100 characters',
     engineTypeIsRequiredMessage: 'compute engine type is required',
     resourceTypeIsRequiredMessage: 'resource type is required',
+    resourceTypePlaceholder: 'Please select resource type',
     exists: 'Sorry, the Resource already exists',
     empty: 'Resource cannot be empty',
   },
diff --git 
a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/resource.ts
 
b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/resource.ts
index 827d4e369..3eca6dacc 100644
--- 
a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/resource.ts
+++ 
b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/resource.ts
@@ -41,6 +41,7 @@ export default {
     descriptionMessage: '超过 100 个字符的最大长度限制',
     engineTypeIsRequiredMessage: '计算引擎类型必选',
     resourceTypeIsRequiredMessage: '资源类型必选',
+    resourceTypePlaceholder: '请选择资源类型',
     exists: '资源已存在',
     empty: '资源不能为空',
   },
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/resource/components/ResourceDrawer.vue
 
b/streampark-console/streampark-console-webapp/src/views/flink/resource/components/ResourceDrawer.vue
index af1b39610..930b1a926 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/resource/components/ResourceDrawer.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/resource/components/ResourceDrawer.vue
@@ -60,6 +60,7 @@
   import { fetchUpload } from "/@/api/flink/app/app";
   import { fetchAddResource, fetchUpdateResource } from 
"/@/api/flink/resource";
   import { EngineTypeEnum, ResourceTypeEnum } from 
"/@/views/flink/resource/resource.data";
+  import {renderResourceType} from "/@/views/flink/resource/useResourceRender";
 
   const emit = defineEmits(['success', 'register']);
 
@@ -76,14 +77,8 @@
         field: 'resourceType',
         label: t('flink.resource.resourceType'),
         component: 'Select',
-        componentProps: {
-          options: [
-            { label: 'FLINK_APP', value: ResourceTypeEnum.FLINK_APP },
-            { label: 'CONNECTOR', value: ResourceTypeEnum.CONNECTOR },
-            { label: 'UDXF', value: ResourceTypeEnum.UDXF },
-            { label: 'NORMAL_JAR', value: ResourceTypeEnum.NORMAL_JAR },
-          ],
-        },
+        render: ({ model }) =>
+          renderResourceType( { model, }, ),
         rules: [{ required: true, message: 
t('flink.resource.form.resourceTypeIsRequiredMessage') }],
       },
       {
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/resource/useResourceRender.tsx
 
b/streampark-console/streampark-console-webapp/src/views/flink/resource/useResourceRender.tsx
new file mode 100644
index 000000000..14c0205b5
--- /dev/null
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/resource/useResourceRender.tsx
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Select } from 'ant-design-vue';
+import { useI18n } from '/@/hooks/web/useI18n';
+import { ResourceTypeEnum } from "/@/views/flink/resource/resource.data";
+import flinkAppSvg from '/@/assets/icons/flink2.svg';
+import connectorSvg from '/@/assets/icons/connector.svg';
+import udxfSvg from '/@/assets/icons/fx.svg';
+import normalJarSvg from '/@/assets/icons/jar.svg';
+
+const { t } = useI18n();
+
+/* render resource type label */
+export const renderResourceType = ({ model },) => {
+
+  const renderOptions = () => {
+    const options = [
+      { label: 'Flink App', value: ResourceTypeEnum.FLINK_APP, src: 
flinkAppSvg },
+      { label: 'Connector', value: ResourceTypeEnum.CONNECTOR, src: 
connectorSvg },
+      { label: 'UDXF', value: ResourceTypeEnum.UDXF, src: udxfSvg },
+      { label: 'Normal Jar', value: ResourceTypeEnum.NORMAL_JAR, src: 
normalJarSvg },
+    ];
+    return options
+      .map(( {label,value, src} ) => {
+        return (
+          <Select.Option
+            key={ value }
+            label={ label }
+            >
+            <div>
+              <img
+                src={ src }
+                style="display: inline-block; width: 20px; height: 20px"
+              ></img>
+              <span
+                style="vertical-align: middle; margin-left: 5px;"
+              >
+                { label }
+              </span>
+            </div>
+          </Select.Option>
+        );
+      });
+  };
+
+  return (
+    <div>
+      <Select
+        allow-clear
+        placeholder={t('flink.resource.form.resourceTypePlaceholder')}
+        style="width: calc(100% - 60px)"
+        onChange={(value) => (model.resourceType = value)}
+      >
+        {renderOptions()}
+      </Select>
+    </div>
+  );
+};

Reply via email to