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 a4d06175d fix: app create err & fix type error (#3123)
a4d06175d is described below

commit a4d06175dd85e8a1f5d241e509cfc635f4fa09a7
Author: Kriszu <[email protected]>
AuthorDate: Fri Sep 15 05:38:13 2023 -0500

    fix: app create err & fix type error (#3123)
    
    * fix: app create err & fix type error
    
    * build: engines
---
 .../streampark-console-webapp/package.json         |  2 +-
 .../src/api/flink/setting/types/flinkEnv.type.ts   |  1 +
 .../src/api/system/user.ts                         |  2 +-
 .../components/Form/src/components/FormItem.vue    |  8 ++---
 .../src/components/Form/src/helper.ts              |  4 +--
 .../src/components/Icon/src/IconPicker.vue         |  2 +-
 .../Modal/src/components/ModalWrapper.vue          |  2 +-
 .../src/components/Page/src/PageWrapper.vue        |  2 +-
 .../src/components/Scrollbar/src/Scrollbar.vue     | 11 ++++---
 .../src/components/SimpleMenu/src/SimpleMenu.vue   | 10 ++++--
 .../src/components/Table/src/BasicTable.vue        |  2 +-
 .../Table/src/components/TableAction.vue           |  2 +-
 .../Table/src/components/editable/EditableCell.vue |  2 +-
 .../components/Table/src/hooks/useDataSource.ts    |  2 +-
 .../header/components/notify/NoticeList.vue        | 38 ++++++++++++----------
 .../src/locales/useLocale.ts                       |  1 +
 .../src/store/modules/lock.ts                      |  2 +-
 .../streampark-console-webapp/src/utils/bem.ts     |  2 +-
 .../src/utils/http/axios/Axios.ts                  |  2 +-
 .../streampark-console-webapp/src/utils/props.ts   |  2 +-
 .../src/views/base/login/LoginSlogan.tsx           | 33 ++++++++++---------
 .../src/views/flink/app/Add.vue                    | 13 ++++----
 .../src/views/flink/app/View.vue                   |  4 ++-
 .../flink/app/hooks/useCreateAndEditSchema.ts      |  4 ++-
 .../src/views/flink/app/hooks/useSavepoint.tsx     |  2 +-
 .../flink/resource/components/ResourceDrawer.vue   | 10 +++---
 .../src/views/setting/FlinkCluster/index.vue       |  2 +-
 .../streampark-console-webapp/types/store.d.ts     |  2 +-
 28 files changed, 94 insertions(+), 75 deletions(-)

diff --git a/streampark-console/streampark-console-webapp/package.json 
b/streampark-console/streampark-console-webapp/package.json
index ba01452f7..b1ee23fef 100644
--- a/streampark-console/streampark-console-webapp/package.json
+++ b/streampark-console/streampark-console-webapp/package.json
@@ -121,7 +121,7 @@
     "vue-tsc": "^1.8.4"
   },
   "engines": {
-    "node": ">=16.15.1",
+    "node": ">=16.15.1 <= 18",
     "pnpm": ">=8.1.0"
   },
   "lint-staged": {
diff --git 
a/streampark-console/streampark-console-webapp/src/api/flink/setting/types/flinkEnv.type.ts
 
b/streampark-console/streampark-console-webapp/src/api/flink/setting/types/flinkEnv.type.ts
index 1002a7b30..6582bbf73 100644
--- 
a/streampark-console/streampark-console-webapp/src/api/flink/setting/types/flinkEnv.type.ts
+++ 
b/streampark-console/streampark-console-webapp/src/api/flink/setting/types/flinkEnv.type.ts
@@ -26,6 +26,7 @@ export interface FlinkEnv {
   isDefault: boolean;
   createTime: string;
   streamParkScalaVersion: string;
+  versionOfMiddle?: any;
 }
 
 export interface FlinkCreate {
diff --git 
a/streampark-console/streampark-console-webapp/src/api/system/user.ts 
b/streampark-console/streampark-console-webapp/src/api/system/user.ts
index 1d94bb8e7..4a41cdd79 100644
--- a/streampark-console/streampark-console-webapp/src/api/system/user.ts
+++ b/streampark-console/streampark-console-webapp/src/api/system/user.ts
@@ -51,7 +51,7 @@ export function getPermCode(): Promise<string[]> {
  * @param {BasicTableParams} data
  * @returns {Promise<UserListRecord>} user array
  */
-export function getUserList(data: BasicTableParams): Promise<UserListRecord[]> 
{
+export function getUserList(data: BasicTableParams): Promise<{ records: 
UserListRecord[] }> {
   return defHttp.post({ url: Api.UserList, data });
 }
 
diff --git 
a/streampark-console/streampark-console-webapp/src/components/Form/src/components/FormItem.vue
 
b/streampark-console/streampark-console-webapp/src/components/Form/src/components/FormItem.vue
index c20af86bd..0123c9502 100644
--- 
a/streampark-console/streampark-console-webapp/src/components/Form/src/components/FormItem.vue
+++ 
b/streampark-console/streampark-console-webapp/src/components/Form/src/components/FormItem.vue
@@ -18,7 +18,7 @@
   import type { PropType, Ref } from 'vue';
   import { computed, defineComponent, toRefs, unref } from 'vue';
   import type { FormActionType, FormProps, FormSchema } from '../types/form';
-  import type { ValidationRule } from 'ant-design-vue/lib/form/Form';
+  import type { RuleObject } from 'ant-design-vue/lib/form';
   import type { TableActionType } from '/@/components/Table';
   import { Col, Divider, Form } from 'ant-design-vue';
   import { componentMap } from '../componentMap';
@@ -143,7 +143,7 @@
         return { isShow, isIfShow };
       }
 
-      function handleRules(): ValidationRule[] {
+      function handleRules(): RuleObject[] {
         const {
           rules: defRules = [],
           component,
@@ -154,10 +154,10 @@
         } = props.schema;
 
         if (isFunction(dynamicRules)) {
-          return dynamicRules(unref(getValues)) as ValidationRule[];
+          return dynamicRules(unref(getValues)) as RuleObject[];
         }
 
-        let rules: ValidationRule[] = cloneDeep(defRules) as ValidationRule[];
+        let rules: RuleObject[] = cloneDeep(defRules) as RuleObject[];
         const { rulesMessageJoinLabel: globalRulesMessageJoinLabel } = 
props.formProps;
 
         const joinLabel = Reflect.has(props.schema, 'rulesMessageJoinLabel')
diff --git 
a/streampark-console/streampark-console-webapp/src/components/Form/src/helper.ts
 
b/streampark-console/streampark-console-webapp/src/components/Form/src/helper.ts
index 6aded5691..093993c76 100644
--- 
a/streampark-console/streampark-console-webapp/src/components/Form/src/helper.ts
+++ 
b/streampark-console/streampark-console-webapp/src/components/Form/src/helper.ts
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-import type { ValidationRule } from 'ant-design-vue/lib/form/Form';
+import type { RuleObject } from 'ant-design-vue/lib/form';
 import type { ComponentType } from './types/index';
 import { useI18n } from '/@/hooks/web/useI18n';
 import { dateUtil } from '/@/utils/dateUtil';
@@ -51,7 +51,7 @@ function genType() {
 }
 
 export function setComponentRuleType(
-  rule: ValidationRule,
+  rule: RuleObject,
   component: ComponentType,
   valueFormat: string,
 ) {
diff --git 
a/streampark-console/streampark-console-webapp/src/components/Icon/src/IconPicker.vue
 
b/streampark-console/streampark-console-webapp/src/components/Icon/src/IconPicker.vue
index 60ceaf6d7..93cf0b548 100644
--- 
a/streampark-console/streampark-console-webapp/src/components/Icon/src/IconPicker.vue
+++ 
b/streampark-console/streampark-console-webapp/src/components/Icon/src/IconPicker.vue
@@ -124,7 +124,7 @@
     width: propTypes.string.def('100%'),
     pageSize: propTypes.number.def(140),
     copy: propTypes.bool.def(false),
-    mode: propTypes.oneOf<('svg' | 'iconify')[]>(['svg', 
'iconify']).def('iconify'),
+    mode: propTypes.oneOf(['svg', 'iconify']).def('iconify'),
   });
 
   const emit = defineEmits(['change', 'update:value']);
diff --git 
a/streampark-console/streampark-console-webapp/src/components/Modal/src/components/ModalWrapper.vue
 
b/streampark-console/streampark-console-webapp/src/components/Modal/src/components/ModalWrapper.vue
index a2fc28b25..fe449a76a 100644
--- 
a/streampark-console/streampark-console-webapp/src/components/Modal/src/components/ModalWrapper.vue
+++ 
b/streampark-console/streampark-console-webapp/src/components/Modal/src/components/ModalWrapper.vue
@@ -67,7 +67,7 @@
 
       let stopElResizeFn: Fn = () => {};
 
-      useWindowSizeFn(setModalHeight.bind(null, false));
+      useWindowSizeFn(setModalHeight.bind(null));
 
       useMutationObserver(
         spinRef,
diff --git 
a/streampark-console/streampark-console-webapp/src/components/Page/src/PageWrapper.vue
 
b/streampark-console/streampark-console-webapp/src/components/Page/src/PageWrapper.vue
index d0043db42..802a6279d 100644
--- 
a/streampark-console/streampark-console-webapp/src/components/Page/src/PageWrapper.vue
+++ 
b/streampark-console/streampark-console-webapp/src/components/Page/src/PageWrapper.vue
@@ -92,7 +92,7 @@
       );
 
       const getIsContentFullHeight = computed(() => {
-        return props.contentFullHeight;
+        return !!props.contentFullHeight;
       });
 
       const getUpwardSpace = computed(() => props.upwardSpace);
diff --git 
a/streampark-console/streampark-console-webapp/src/components/Scrollbar/src/Scrollbar.vue
 
b/streampark-console/streampark-console-webapp/src/components/Scrollbar/src/Scrollbar.vue
index 3c1ae1d45..ec9ecadea 100644
--- 
a/streampark-console/streampark-console-webapp/src/components/Scrollbar/src/Scrollbar.vue
+++ 
b/streampark-console/streampark-console-webapp/src/components/Scrollbar/src/Scrollbar.vue
@@ -19,7 +19,7 @@
     <div
       ref="wrap"
       :class="[wrapClass, 'scrollbar__wrap', native ? '' : 
'scrollbar__wrap--hidden-default']"
-      :style="style"
+      :style="getStyle"
       @scroll="handleScroll"
     >
       <component :is="tag" ref="resize" :class="['scrollbar__view', 
viewClass]" :style="viewStyle">
@@ -48,6 +48,7 @@
     unref,
   } from 'vue';
   import Bar from './bar';
+  import { CSSProperties } from 'vue';
 
   export default defineComponent({
     name: 'Scrollbar',
@@ -90,11 +91,11 @@
 
       provide('scroll-bar-wrap', wrap);
 
-      const style = computed(() => {
+      const getStyle = computed(() => {
         if (Array.isArray(props.wrapStyle)) {
-          return toObject(props.wrapStyle);
+          return toObject(props.wrapStyle) as CSSProperties;
         }
-        return props.wrapStyle;
+        return props.wrapStyle as unknown as CSSProperties;
       });
 
       const handleScroll = () => {
@@ -138,7 +139,7 @@
         moveY,
         sizeWidth,
         sizeHeight,
-        style,
+        getStyle,
         wrap,
         resize,
         update,
diff --git 
a/streampark-console/streampark-console-webapp/src/components/SimpleMenu/src/SimpleMenu.vue
 
b/streampark-console/streampark-console-webapp/src/components/SimpleMenu/src/SimpleMenu.vue
index 1f73f8f48..f32659f16 100644
--- 
a/streampark-console/streampark-console-webapp/src/components/SimpleMenu/src/SimpleMenu.vue
+++ 
b/streampark-console/streampark-console-webapp/src/components/SimpleMenu/src/SimpleMenu.vue
@@ -61,8 +61,14 @@
         type: Array as PropType<MenuType[]>,
         default: () => [],
       },
-      collapse: propTypes.bool,
-      mixSider: propTypes.bool,
+      collapse: {
+        type: Boolean,
+        default: false,
+      },
+      mixSider: {
+        type: Boolean,
+        default: false,
+      },
       theme: propTypes.string,
       accordion: propTypes.bool.def(true),
       collapsedShowTitle: propTypes.bool,
diff --git 
a/streampark-console/streampark-console-webapp/src/components/Table/src/BasicTable.vue
 
b/streampark-console/streampark-console-webapp/src/components/Table/src/BasicTable.vue
index 7bcf6add8..30fbdd9ba 100644
--- 
a/streampark-console/streampark-console-webapp/src/components/Table/src/BasicTable.vue
+++ 
b/streampark-console/streampark-console-webapp/src/components/Table/src/BasicTable.vue
@@ -305,7 +305,7 @@
         getSelectRowKeys,
         deleteSelectRowByKey,
         setPagination,
-        setTableData,
+        setTableData: setTableData as any,
         updateTableDataRecord,
         deleteTableDataRecord,
         insertTableDataRecord,
diff --git 
a/streampark-console/streampark-console-webapp/src/components/Table/src/components/TableAction.vue
 
b/streampark-console/streampark-console-webapp/src/components/Table/src/components/TableAction.vue
index 09619d602..edb1d27ce 100644
--- 
a/streampark-console/streampark-console-webapp/src/components/Table/src/components/TableAction.vue
+++ 
b/streampark-console/streampark-console-webapp/src/components/Table/src/components/TableAction.vue
@@ -142,7 +142,7 @@
         return actionColumn?.align ?? 'left';
       });
 
-      function getTooltip(data: string | TooltipProps) {
+      function getTooltip(data: string | TooltipProps): TooltipProps {
         return {
           getPopupContainer: () => unref((table as any)?.wrapRef.value) ?? 
document.body,
           placement: 'bottom',
diff --git 
a/streampark-console/streampark-console-webapp/src/components/Table/src/components/editable/EditableCell.vue
 
b/streampark-console/streampark-console-webapp/src/components/Table/src/components/editable/EditableCell.vue
index d269f783b..8e83ec8e7 100644
--- 
a/streampark-console/streampark-console-webapp/src/components/Table/src/components/editable/EditableCell.vue
+++ 
b/streampark-console/streampark-console-webapp/src/components/Table/src/components/editable/EditableCell.vue
@@ -91,7 +91,7 @@
         const { record, column, index } = props;
 
         if (isFunction(compProps)) {
-          compProps = compProps({ text: val, record, column, index }) ?? {};
+          compProps = compProps({ text: val, record: record || {}, column, 
index }) ?? {};
         }
         const component = unref(getComponent);
         const apiSelectProps: Recordable = {};
diff --git 
a/streampark-console/streampark-console-webapp/src/components/Table/src/hooks/useDataSource.ts
 
b/streampark-console/streampark-console-webapp/src/components/Table/src/hooks/useDataSource.ts
index f71ce364c..fd1137d54 100644
--- 
a/streampark-console/streampark-console-webapp/src/components/Table/src/hooks/useDataSource.ts
+++ 
b/streampark-console/streampark-console-webapp/src/components/Table/src/hooks/useDataSource.ts
@@ -356,7 +356,7 @@ export function useDataSource(
     }
   }
 
-  function setTableData<T = Recordable>(values: T[]) {
+  function setTableData(values: Recordable[]) {
     dataSourceRef.value = values;
   }
 
diff --git 
a/streampark-console/streampark-console-webapp/src/layouts/default/header/components/notify/NoticeList.vue
 
b/streampark-console/streampark-console-webapp/src/layouts/default/header/components/notify/NoticeList.vue
index 6129e9dc1..3837c9755 100644
--- 
a/streampark-console/streampark-console-webapp/src/layouts/default/header/components/notify/NoticeList.vue
+++ 
b/streampark-console/streampark-console-webapp/src/layouts/default/header/components/notify/NoticeList.vue
@@ -28,14 +28,16 @@
         <a-list-item-meta>
           <template #title>
             <div class="title">
-              <a-typography-paragraph
-                style="width: 100%; margin-bottom: 0 !important"
-                :disabled="!!item.readed"
-                :delete="!!item.readed"
-                :ellipsis="true"
-                :ellipsisTooltip="item.title"
-                :content="item.title"
-              />
+              <div class="w-full !mb-0">
+                <a-typography-paragraph
+                  :disabled="!!item.readed"
+                  :delete="!!item.readed"
+                  :ellipsis="{
+                    tooltip: item.title,
+                  }"
+                  :content="item.title"
+                />
+              </div>
               <div class="extra" v-if="item.extra">
                 <a-tag class="tag" color="red">
                   {{ item.extra }}
@@ -55,14 +57,16 @@
           <template #description>
             <div>
               <div class="description" v-if="item.context">
-                <a-typography-paragraph
-                  style="width: 100%; color: #7f838b; margin-bottom: 0 
!important"
-                  :disabled="!!item.readed"
-                  :delete="!!item.readed"
-                  :ellipsis="true"
-                  :ellipsisTooltip="item.context"
-                  :content="item.context"
-                />
+                <div class="w-full !mb-0">
+                  <a-typography-paragraph
+                    :disabled="!!item.readed"
+                    :delete="!!item.readed"
+                    :ellipsis="{
+                      tooltip: item.context,
+                    }"
+                    :content="item.context"
+                  />
+                </div>
               </div>
               <div class="datetime">
                 <clock-circle-outlined />
@@ -144,7 +148,7 @@
       );
       const getPagination = computed(() => {
         const { list, pageSize } = props;
-        if (pageSize > 0 && list && list.length > pageSize) {
+        if (isNumber(pageSize) && pageSize > 0 && list && list.length > 
pageSize) {
           return {
             total: list.length,
             pageSize,
diff --git 
a/streampark-console/streampark-console-webapp/src/locales/useLocale.ts 
b/streampark-console/streampark-console-webapp/src/locales/useLocale.ts
index bd2317973..33c3c4847 100644
--- a/streampark-console/streampark-console-webapp/src/locales/useLocale.ts
+++ b/streampark-console/streampark-console-webapp/src/locales/useLocale.ts
@@ -48,6 +48,7 @@ export function useLocale() {
   const getShowLocalePicker = computed(() => localeStore.getShowPicker);
 
   const getAntdLocale = computed((): any => {
+    //@ts-expect-error
     return i18n.global.getLocaleMessage(unref(getLocale))?.antdLocale ?? {};
   });
 
diff --git 
a/streampark-console/streampark-console-webapp/src/store/modules/lock.ts 
b/streampark-console/streampark-console-webapp/src/store/modules/lock.ts
index 008f9dea2..2ca795891 100644
--- a/streampark-console/streampark-console-webapp/src/store/modules/lock.ts
+++ b/streampark-console/streampark-console-webapp/src/store/modules/lock.ts
@@ -61,7 +61,7 @@ export const useLockStore = defineStore({
             {
               username,
               password: password!,
-              loginType,
+              loginType: loginType!,
             },
             'none',
           );
diff --git a/streampark-console/streampark-console-webapp/src/utils/bem.ts 
b/streampark-console/streampark-console-webapp/src/utils/bem.ts
index e6c5d103b..0d93ae9cc 100644
--- a/streampark-console/streampark-console-webapp/src/utils/bem.ts
+++ b/streampark-console/streampark-console-webapp/src/utils/bem.ts
@@ -31,7 +31,7 @@ function genBem(name: string, mods?: Mods): string {
   }
 
   if (Array.isArray(mods)) {
-    return mods.reduce<string>((ret, item) => ret + genBem(name, item), '');
+    return mods.reduce((ret, item) => ret + genBem(name, item), '');
   }
 
   return Object.keys(mods).reduce((ret, key) => ret + (mods[key] ? 
genBem(name, key) : ''), '');
diff --git 
a/streampark-console/streampark-console-webapp/src/utils/http/axios/Axios.ts 
b/streampark-console/streampark-console-webapp/src/utils/http/axios/Axios.ts
index 607e67141..5cd8e9c4c 100644
--- a/streampark-console/streampark-console-webapp/src/utils/http/axios/Axios.ts
+++ b/streampark-console/streampark-console-webapp/src/utils/http/axios/Axios.ts
@@ -94,7 +94,7 @@ export class VAxios {
     const axiosCanceler = new AxiosCanceler();
 
     // Request interceptor configuration processing
-    this.axiosInstance.interceptors.request.use((config: AxiosRequestConfig) 
=> {
+    this.axiosInstance.interceptors.request.use((config: any) => {
       // If cancel repeat request is turned on, then cancel repeat request is 
prohibited
       // @ts-ignore
       const { ignoreCancelToken } = config.requestOptions;
diff --git a/streampark-console/streampark-console-webapp/src/utils/props.ts 
b/streampark-console/streampark-console-webapp/src/utils/props.ts
index 5828c8cf7..c9d06446b 100644
--- a/streampark-console/streampark-console-webapp/src/utils/props.ts
+++ b/streampark-console/streampark-console-webapp/src/utils/props.ts
@@ -146,7 +146,7 @@ export function buildProp<
   return {
     type:
       typeof type === 'object' && 
Object.getOwnPropertySymbols(type).includes(wrapperKey)
-        ? type[wrapperKey]
+        ? type?.[wrapperKey]
         : type,
     required: !!required,
     default: defaultValue,
diff --git 
a/streampark-console/streampark-console-webapp/src/views/base/login/LoginSlogan.tsx
 
b/streampark-console/streampark-console-webapp/src/views/base/login/LoginSlogan.tsx
index 4721d89a6..5ce6643a1 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/base/login/LoginSlogan.tsx
+++ 
b/streampark-console/streampark-console-webapp/src/views/base/login/LoginSlogan.tsx
@@ -19,51 +19,52 @@ import { defineComponent } from 'vue';
 import './LoginSlogan.less';
 import Icon from '/@/components/Icon';
 import { version } from '../../../../package.json';
+
 export default defineComponent({
   name: 'LoginSlogan',
   setup() {
     return () => {
       return (
-        <div className="!text-left w-550px m-auto">
-          <div className="mb-5 system_info pt-0">
-            <div className="project_title fw-bold text-white mb-3">
+        <div class="!text-left w-550px m-auto">
+          <div class="mb-5 system_info pt-0">
+            <div class="project_title fw-bold text-white mb-3">
               <div
-                className="animated-gradient-text_background 
animated-gradient-text_background-1"
+                class="animated-gradient-text_background 
animated-gradient-text_background-1"
                 style={{
                   '--content': '"Apache"',
                   '--start-color': '#00DFD8',
                   '--end-color': '#FFF',
                 }}
               >
-                <span className="animated-gradient-text_foreground 
animated-gradient-text_foreground-1">
+                <span class="animated-gradient-text_foreground 
animated-gradient-text_foreground-1">
                   Apache
                 </span>
               </div>
-              <div className="flex  items-start">
+              <div class="flex  items-start">
                 <div
-                  className="animated-gradient-text_background 
animated-gradient-text_background-2"
+                  class="animated-gradient-text_background 
animated-gradient-text_background-2"
                   style={{
                     '--content': '"StreamPark"',
                     '--start-color': '#FFF',
                     '--end-color': '#00DFD8',
                   }}
                 >
-                  <span className="animated-gradient-text_foreground 
animated-gradient-text_foreground-2">
+                  <span class="animated-gradient-text_foreground 
animated-gradient-text_foreground-2">
                     StreamPark
                   </span>
                 </div>
-                <span className="badge bg-secondary-home text-xl 
tag">Incubating</span>
+                <span class="badge bg-secondary-home text-xl 
tag">Incubating</span>
               </div>
             </div>
-            <p className=" text-light-200 leading-40px" style={{ fontSize: 
'18px' }}>
+            <p class=" text-light-200 leading-40px" style={{ fontSize: '18px' 
}}>
               <div>Make stream processing easier!</div>
               <div>easy-to-use streaming application development 
framework</div>
               <div>and operation platform</div>
             </p>
           </div>
-          <div className="flex items-center mt-10">
+          <div class="flex items-center mt-10">
             <a
-              className="btn streampark-btn btn !flex items-center"
+              class="btn streampark-btn btn !flex items-center"
               href="https://github.com/apache/incubator-streampark";
               target="_blank"
             >
@@ -71,7 +72,7 @@ export default defineComponent({
               <div>&nbsp; GitHub</div>
             </a>
             <a
-              className="btn streampark-btn btn-green !flex items-center 
ml-10px"
+              class="btn streampark-btn btn-green !flex items-center ml-10px"
               href="https://streampark.apache.org";
               target="_blank"
             >
@@ -80,15 +81,15 @@ export default defineComponent({
             </a>
           </div>
 
-          <div className="mt-20px shields z-3 flex items-center">
+          <div class="mt-20px shields z-3 flex items-center">
             <Tag color="#477de9">Version: v{version}</Tag>
             <img
               
src="https://img.shields.io/github/stars/apache/incubator-streampark.svg?sanitize=true";
-              className="wow fadeInUp"
+              class="wow fadeInUp"
             ></img>
             <img
               
src="https://img.shields.io/github/forks/apache/incubator-streampark.svg?sanitize=true";
-              className="wow fadeInUp"
+              class="wow fadeInUp"
             ></img>
           </div>
         </div>
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 6d4fc80c9..39421b216 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
@@ -332,7 +332,6 @@
         <SettingTwoTone
           v-if="model[field]"
           class="ml-10px"
-          theme="twoTone"
           two-tone-color="#4a9ff5"
           @click="handleSQLConf(true, model)"
         />
@@ -345,11 +344,13 @@
         />
       </template>
       <template #args="{ model }">
-        <ProgramArgs
-          v-model:value="model.args"
-          :suggestions="suggestions"
-          @preview="(value) => openReviewDrawer(true, { value, suggestions })"
-        />
+        <template v-if="model.args !== undefined">
+          <ProgramArgs
+            v-model:value="model.args"
+            :suggestions="suggestions"
+            @preview="(value) => openReviewDrawer(true, { value, suggestions 
})"
+          />
+        </template>
       </template>
       <template #useSysHadoopConf="{ model, field }">
         <UseSysHadoopConf v-model:hadoopConf="model[field]" />
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/app/View.vue 
b/streampark-console/streampark-console-webapp/src/views/flink/app/View.vue
index 05c8cc5b7..c75d24e9d 100644
--- a/streampark-console/streampark-console-webapp/src/views/flink/app/View.vue
+++ b/streampark-console/streampark-console-webapp/src/views/flink/app/View.vue
@@ -201,7 +201,9 @@
         <template v-if="column.dataIndex === 'jobName'">
           <span class="app_type app_jar" v-if="record['jobType'] == 
JobTypeEnum.JAR"> JAR </span>
           <span class="app_type app_sql" v-if="record['jobType'] == 
JobTypeEnum.SQL"> SQL </span>
-          <span class="app_type app_py" v-if="record['jobType'] == 
JobTypeEnum.PYFLINK"> PyFlink </span>
+          <span class="app_type app_py" v-if="record['jobType'] == 
JobTypeEnum.PYFLINK">
+            PyFlink
+          </span>
           <span
             class="link"
             :class="{
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 3b724fcc2..e367c630f 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
@@ -147,7 +147,7 @@ export const useCreateAndEditSchema = (
 
   async function handleFlinkVersion(id: number | string) {
     if (!dependencyRef) return;
-    scalaVersion = await fetchFlinkEnv(id)?.scalaVersion;
+    scalaVersion = (await fetchFlinkEnv(id as string))?.scalaVersion;
     checkPomScalaVersion();
   }
 
@@ -523,6 +523,7 @@ export const useCreateAndEditSchema = (
           } else if (model.jobType == JobTypeEnum.PYFLINK) {
             return getAlertSvgIcon('py', 'Py Flink');
           }
+          return '';
         },
       },
       {
@@ -539,6 +540,7 @@ export const useCreateAndEditSchema = (
           } else if (model.appType == AppTypeEnum.STREAMPARK_SPARK) {
             return getAlertSvgIcon('spark', 'StreamPark Spark');
           }
+          return '';
         },
       },
     ];
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useSavepoint.tsx
 
b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useSavepoint.tsx
index 63dce93f2..419cdba59 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useSavepoint.tsx
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useSavepoint.tsx
@@ -86,7 +86,7 @@ export const useSavepoint = (updateOption: Fn) => {
                 checkedValue={true}
                 unCheckedValue={false}
                 checked={nativeFormat.value}
-                onClick={(checked, e) => (nativeFormat.value = checked || 
false)}
+                onClick={(checked, _) => (nativeFormat.value = (checked as 
boolean) || false)}
               />
             </Form.Item>
           </Form>
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 6d2231528..01914c9f6 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
@@ -41,7 +41,7 @@
 
 <script lang="ts" setup>
   import { ref, computed, unref } from 'vue';
-  import { BasicForm, useForm } from '/@/components/Form';
+  import { BasicForm, FormSchema, useForm } from '/@/components/Form';
   import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
   import { Icon } from '/@/components/Icon';
   import { useI18n } from '/@/hooks/web/useI18n';
@@ -60,7 +60,7 @@
 
   const props = defineProps({
     teamResource: {
-      type: Object as Array<any>,
+      type: Object as PropType<any>,
       required: true,
     },
   });
@@ -72,7 +72,7 @@
   const resourceId = ref<Nullable<number>>(null);
   const resourceRef = ref();
 
-  const getResourceFormSchema = computed(() => {
+  const getResourceFormSchema = computed((): FormSchema[] => {
     return [
       {
         field: 'resourceType',
@@ -209,7 +209,7 @@
           return;
         }
 
-        if (resource.pom?.length > 0 && resource.jar?.length > 0) {
+        if (resource.pom && resource.pom.length > 0 && resource.jar && 
resource.jar.length > 0) {
           Swal.fire('Failed', t('flink.resource.multiPomTip'), 'error');
           return;
         }
@@ -225,7 +225,7 @@
         switch (state) {
           case 1:
             // download error
-            if (resource.pom?.length > 0) {
+            if (resource.pom && resource.pom.length > 0) {
               Swal.fire({
                 icon: 'error',
                 title: t('sys.api.errorTip'),
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 1442219ea..4b330ca73 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
@@ -48,7 +48,7 @@
   import { useI18n } from '/@/hooks/web/useI18n';
   import { PageWrapper } from '/@/components/Page';
   import { BasicTitle } from '/@/components/Basic';
-  import State from './State.tsx';
+  import State from './State';
 
   const ListItem = List.Item;
   const ListItemMeta = ListItem.Meta;
diff --git a/streampark-console/streampark-console-webapp/types/store.d.ts 
b/streampark-console/streampark-console-webapp/types/store.d.ts
index 8f792cc7f..b20f7a0f5 100644
--- a/streampark-console/streampark-console-webapp/types/store.d.ts
+++ b/streampark-console/streampark-console-webapp/types/store.d.ts
@@ -49,7 +49,7 @@ export interface ErrorLogInfo {
 export interface UserInfo {
   userId: string | number;
   username: string;
-  loginType: string;
+  loginType?: string;
   nickName: string;
   avatar: string;
   desc?: string;

Reply via email to