This is an automated email from the ASF dual-hosted git repository. benjobs pushed a commit to branch option in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
commit 31cdf2708292f498bc9e5f91c389a2bcd251cf6b Author: benjobs <[email protected]> AuthorDate: Thu Nov 24 22:56:52 2022 +0800 [Bug] fixed issue 2052 --- .../src/api/flink/app/app.ts | 6 ++- .../src/locales/lang/en/flink/setting.ts | 2 +- .../src/locales/lang/zh-CN/flink/setting.ts | 2 +- .../src/views/base/login/LoginForm.vue | 2 +- .../src/views/flink/app/EditStreamPark.vue | 4 +- .../src/views/flink/app/components/CustomForm.tsx | 5 ++- .../src/views/flink/app/components/Dependency.vue | 8 ++-- .../src/views/flink/app/hooks/useApp.tsx | 13 +++++-- .../src/views/flink/app/hooks/useAppTableAction.ts | 2 + .../src/views/flink/app/hooks/useFlinkRender.tsx | 8 ++-- .../flink/setting/components/AlertDetailModal.vue | 42 ++++++++++++++++----- .../views/flink/setting/components/AlertModal.vue | 43 ++++++++++++++++------ .../views/flink/setting/components/alert.data.ts | 20 ++++++++-- 13 files changed, 111 insertions(+), 46 deletions(-) diff --git a/streampark-console/streampark-console-webapp/src/api/flink/app/app.ts b/streampark-console/streampark-console-webapp/src/api/flink/app/app.ts index dd40bd8b5..958c2eb7a 100644 --- a/streampark-console/streampark-console-webapp/src/api/flink/app/app.ts +++ b/streampark-console/streampark-console-webapp/src/api/flink/app/app.ts @@ -196,14 +196,16 @@ export function fetchStartLog(data): Promise<AxiosResponse<any>> { * @param {Object} data app Id * @returns {Promise<AxiosResponse<Result>>} */ -export function fetchCheckSavepointPath(data: { id?: string, savePoint?: string }): Promise<AxiosResponse<Result>> { +export function fetchCheckSavepointPath(data: { + id?: string; + savePoint?: string; +}): Promise<AxiosResponse<Result>> { return defHttp.post( { url: APP_API.CHECK_SAVEPOINT_PATH, data }, { isReturnNativeResponse: true }, ); } - /** * Cancel * @param {CancelParam} data diff --git a/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/setting.ts b/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/setting.ts index 1555f5980..d6a23b994 100644 --- a/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/setting.ts +++ b/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/setting.ts @@ -69,7 +69,7 @@ export default { alertDetail: 'Alert Detail', alertOperationMessage: { updateAlertConfigFailed: 'Update AlertConfig Failed!', - updateAlertConfigSuccessfull: 'Update AlertConfig successful!' + updateAlertConfigSuccessfull: 'Update AlertConfig successful!', }, delete: 'Are you sure delete this alert conf ?', }, diff --git a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/setting.ts b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/setting.ts index b81b29b52..be9d2e45a 100644 --- a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/setting.ts +++ b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/setting.ts @@ -68,7 +68,7 @@ export default { alertDetail: '告警(配置)详情', alertOperationMessage: { updateAlertConfigFailed: '告警配置更新失败!', - updateAlertConfigSuccessfull: '告警配置更新成功!' + updateAlertConfigSuccessfull: '告警配置更新成功!', }, delete: '是否确定删除此警报 ?', }, diff --git a/streampark-console/streampark-console-webapp/src/views/base/login/LoginForm.vue b/streampark-console/streampark-console-webapp/src/views/base/login/LoginForm.vue index cd924b71d..47e71fa4b 100644 --- a/streampark-console/streampark-console-webapp/src/views/base/login/LoginForm.vue +++ b/streampark-console/streampark-console-webapp/src/views/base/login/LoginForm.vue @@ -17,7 +17,7 @@ <template> <div class="enter-x mb-50px text-light-50"> <div class="text-center enter-x"> - <img class="logo w-160px mx-auto my-20px" src="/@/assets/images/logo.png" /> + <img class="logo w-160px mx-auto my-20px" src="/@/assets/images/logo.svg" /> </div> </div> <Form 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 5d4970830..21571fb7b 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 @@ -155,10 +155,10 @@ async function handleAppUpdate(values) { try { submitLoading.value = true; - if (app.jobType == 1) { + if (app.jobType == JobTypeEnum.JAR) { handleSubmitCustomJob(values); } else { - if (app.jobType == 2) { + if (app.jobType == JobTypeEnum.SQL) { if (values.flinkSql == null || values.flinkSql.trim() === '') { createMessage.warning(t('flink.app.editStreamPark.flinkSqlRequired')); } else { diff --git a/streampark-console/streampark-console-webapp/src/views/flink/app/components/CustomForm.tsx b/streampark-console/streampark-console-webapp/src/views/flink/app/components/CustomForm.tsx index 056f49547..9d41b1195 100644 --- a/streampark-console/streampark-console-webapp/src/views/flink/app/components/CustomForm.tsx +++ b/streampark-console/streampark-console-webapp/src/views/flink/app/components/CustomForm.tsx @@ -103,8 +103,9 @@ export default defineComponent({ <Tag color="#2db7f5" class="tag-note"> Note </Tag> - Operation after checkpoint failure, e.g: Within 5 minutes (checkpoint failure rate interval), if - the number of checkpoint failures reaches 10 (max failures per interval),action will be triggered(alert or restart job) + Operation after checkpoint failure, e.g: Within 5 minutes (checkpoint failure rate + interval), if the number of checkpoint failures reaches 10 (max failures per + interval),action will be triggered(alert or restart job) </span> </p> </div> diff --git a/streampark-console/streampark-console-webapp/src/views/flink/app/components/Dependency.vue b/streampark-console/streampark-console-webapp/src/views/flink/app/components/Dependency.vue index 9f91911fb..027b963a8 100644 --- a/streampark-console/streampark-console-webapp/src/views/flink/app/components/Dependency.vue +++ b/streampark-console/streampark-console-webapp/src/views/flink/app/components/Dependency.vue @@ -293,10 +293,10 @@ <div class="dependency-box" v-if="dependencyRecords.length > 0 || uploadJars.length > 0"> <Alert class="dependency-item" - v-for="(value, index) in dependencyRecords" + v-for="(dept, index) in dependencyRecords" :key="`dependency_${index}`" type="info" - @click="handleEditPom(value)" + @click="handleEditPom(dept)" > <template #message> <Space @click="handleEditPom(value)" class="tag-dependency-pom"> @@ -313,8 +313,8 @@ </Alert> <Alert class="dependency-item" - v-for="(value, index) in uploadJars" - :key="`upload_jars_${index}`" + v-for="jar in uploadJars" + :key="`upload_jars_${jar}`" type="info" > <template #message> diff --git a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useApp.tsx b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useApp.tsx index 53b199f8b..a4282feae 100644 --- a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useApp.tsx +++ b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useApp.tsx @@ -15,7 +15,7 @@ * limitations under the License. */ import { Alert, Form, Input, Tag } from 'ant-design-vue'; -import { h, onMounted, ref, reactive, VNode, unref } from 'vue'; +import { h, onMounted, reactive, ref, unref, VNode } from 'vue'; import { handleAppBuildStatueText } from '../utils'; import { fetchCopy, fetchForcedStop, fetchMapping } from '/@/api/flink/app/app'; import { fetchBuild, fetchBuildDetail } from '/@/api/flink/app/flinkBuild'; @@ -159,9 +159,14 @@ export const useFlinkApplication = (openStartModal: Fn) => { const state = app['optionState']; if (state === OptionStateEnum.NONE) { return ( - [AppStateEnum.STARTING, AppStateEnum.RESTARTING, AppStateEnum.CANCELLING].includes( - app.state, - ) || false + [ + AppStateEnum.INITIALIZING, + AppStateEnum.STARTING, + AppStateEnum.RESTARTING, + AppStateEnum.CANCELLING, + AppStateEnum.RECONCILING, + AppStateEnum.MAPPING, + ].includes(app.state) || false ); } return true; 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 9119d2c7b..49a2c10d5 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 @@ -198,6 +198,8 @@ export const useAppTableAction = ( AppStateEnum.LOST, AppStateEnum.TERMINATED, AppStateEnum.POS_TERMINATED, + AppStateEnum.SUCCEEDED, + AppStateEnum.KILLED, ].includes(record.state), auth: 'app:delete', icon: 'ant-design:delete-outlined', diff --git a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useFlinkRender.tsx b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useFlinkRender.tsx index 903eba8af..1a23e7a0a 100644 --- a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useFlinkRender.tsx +++ b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useFlinkRender.tsx @@ -174,10 +174,10 @@ export const renderTotalMemory = ({ model, field }: RenderCallbackParams) => { <Tag color="#2db7f5" class="tag-note"> Note </Tag> - Explicitly configuring both "total process memory" and "total Flink memory" is not recommended. It may lead to - deployment failures due to potential memory configuration conflicts. Configuring other - memory components also requires caution as it can produce further configuration conflicts, - The easiest way is to set "total process memory" + Explicitly configuring both "total process memory" and "total Flink memory" is not + recommended. It may lead to deployment failures due to potential memory configuration + conflicts. Configuring other memory components also requires caution as it can produce + further configuration conflicts, The easiest way is to set "total process memory" </span> </p> </div> diff --git a/streampark-console/streampark-console-webapp/src/views/flink/setting/components/AlertDetailModal.vue b/streampark-console/streampark-console-webapp/src/views/flink/setting/components/AlertDetailModal.vue index e4a470b2d..842afdfec 100644 --- a/streampark-console/streampark-console-webapp/src/views/flink/setting/components/AlertDetailModal.vue +++ b/streampark-console/streampark-console-webapp/src/views/flink/setting/components/AlertDetailModal.vue @@ -68,15 +68,35 @@ } }); const dingTalkColumn: DescItem[] = [ - { label: t('flink.setting.alert.dingTalkUrl'), field: 'alertDingURL', span: 2, labelMinWidth: 50 }, - { label: t('flink.setting.alert.dingtalkAccessToken'), field: 'token', span: 2, render: renderTypl }, - { label: t('flink.setting.alert.secretToken'), field: 'secretToken', span: 2, render: renderTypl }, + { + label: t('flink.setting.alert.dingTalkUrl'), + field: 'alertDingURL', + span: 2, + labelMinWidth: 50, + }, + { + label: t('flink.setting.alert.dingtalkAccessToken'), + field: 'token', + span: 2, + render: renderTypl, + }, + { + label: t('flink.setting.alert.secretToken'), + field: 'secretToken', + span: 2, + render: renderTypl, + }, { label: t('flink.setting.alert.dingTalkUser'), field: 'contacts' }, { label: t('flink.setting.alert.dingtalkIsAtAll'), field: 'isAtAll', render: renderTag }, ]; const larkColumn: DescItem[] = [ { label: t('flink.setting.alert.larkToken'), field: 'token', span: 2, render: renderTypl }, - { label: t('flink.setting.alert.larkSecretToken'), field: 'secretToken', span: 2, render: renderTypl }, + { + label: t('flink.setting.alert.larkSecretToken'), + field: 'secretToken', + span: 2, + render: renderTypl, + }, { label: t('flink.setting.alert.larkIsAtAll'), field: 'isAtAll', render: renderTag }, ]; function renderTag(value: boolean) { @@ -92,12 +112,12 @@ <BasicModal :show-ok-btn="false" @register="registerModal" class="alert-detail"> <template #title> <SvgIcon name="alarm" size="25" /> - {{t('flink.setting.alert.alertDetail')}} + {{ t('flink.setting.alert.alertDetail') }} </template> <template v-if="alertTypeTags.includes('1')"> <Divider> <SvgIcon name="mail" size="20" /> - {{t('flink.setting.alert.email')}} + {{ t('flink.setting.alert.email') }} </Divider> <Description class="alert-detail" @@ -109,23 +129,25 @@ <template v-if="alertTypeTags.includes('2')"> <Divider> <SvgIcon name="dingtalk" size="20" /> - {{t('flink.setting.alert.dingTalk')}} + {{ t('flink.setting.alert.dingTalk') }} </Divider> <Description class="alert-detail" :column="2" :data="dingTalk" :schema="dingTalkColumn" /> </template> <template v-if="alertTypeTags.includes('4')"> - <Divider><SvgIcon name="wecom" size="20" /> {{t('flink.setting.alert.weChat')}} </Divider> + <Divider><SvgIcon name="wecom" size="20" /> {{ t('flink.setting.alert.weChat') }} </Divider> <Description class="alert-detail" :column="1" :data="weChat" - :schema="[{ label: t('flink.setting.alert.weChattoken'), field: 'token', render: renderTypl }]" + :schema="[ + { label: t('flink.setting.alert.weChattoken'), field: 'token', render: renderTypl }, + ]" /> </template> <template v-if="alertTypeTags.includes('16')"> <Divider> <SvgIcon name="dingtalk" size="20" /> - {{t('flink.setting.alert.lark')}} + {{ t('flink.setting.alert.lark') }} </Divider> <Description :column="2" :data="lark" :schema="larkColumn" class="alert-detail" /> </template> diff --git a/streampark-console/streampark-console-webapp/src/views/flink/setting/components/AlertModal.vue b/streampark-console/streampark-console-webapp/src/views/flink/setting/components/AlertModal.vue index cb1f5dd1d..093447fcc 100644 --- a/streampark-console/streampark-console-webapp/src/views/flink/setting/components/AlertModal.vue +++ b/streampark-console/streampark-console-webapp/src/views/flink/setting/components/AlertModal.vue @@ -54,7 +54,10 @@ field: 'alertName', label: t('flink.setting.alert.alertName'), component: 'Input', - componentProps: { allowClear: true, placeholder: t('flink.setting.alert.alertNamePlaceHolder') }, + componentProps: { + allowClear: true, + placeholder: t('flink.setting.alert.alertNamePlaceHolder'), + }, afterItem: () => h('span', { class: 'conf-switch' }, t('flink.setting.alert.alertNameTips')), dynamicRules: () => { @@ -62,7 +65,9 @@ { validator: async (_, value) => { if (value === null || value === undefined || value === '') { - return Promise.reject(t('flink.setting.alert.alertNameErrorMessage.alertNameIsRequired')); + return Promise.reject( + t('flink.setting.alert.alertNameErrorMessage.alertNameIsRequired'), + ); } else { if (!alertId.value) { try { @@ -75,7 +80,9 @@ return Promise.resolve(); } } catch (error) { - return Promise.reject(t('flink.setting.alert.alertNameErrorMessage.alertConfigFailed') + error); + return Promise.reject( + t('flink.setting.alert.alertNameErrorMessage.alertConfigFailed') + error, + ); } } } @@ -195,7 +202,7 @@ > <template #title> <SvgIcon name="alarm" size="25" /> - {{t('flink.setting.alert.alertSetting')}} + {{ t('flink.setting.alert.alertSetting') }} </template> <BasicForm @register="registerForm" class="!mt-15px"> <template #type="{ model, field }"> @@ -222,13 +229,21 @@ <template v-if="(alertType || []).includes('1')"> <Divider> <SvgIcon name="mail" size="20" /> - {{t('flink.setting.alert.email')}} + {{ t('flink.setting.alert.email') }} </Divider> <FormItem :label="t('flink.setting.alert.alertEmail')" :rules="[ - { required: true, message: t('flink.setting.alert.alertEmailAddressIsRequired'), trigger: 'blur' }, - { type: 'email', message: t('flink.setting.alert.alertEmailFormatIsInvalid'), trigger: 'blur' }, + { + required: true, + message: t('flink.setting.alert.alertEmailAddressIsRequired'), + trigger: 'blur', + }, + { + type: 'email', + message: t('flink.setting.alert.alertEmailFormatIsInvalid'), + trigger: 'blur', + }, ]" name="alertEmail" > @@ -243,7 +258,7 @@ <template #alertDingURL="{ model, field }" v-if="(alertType || []).includes('2')"> <Divider> <SvgIcon name="dingtalk" size="20" /> - {{t('flink.setting.alert.dingTalk')}} + {{ t('flink.setting.alert.dingTalk') }} </Divider> <FormItem :label="t('flink.setting.alert.dingTalkUrl')" @@ -257,20 +272,24 @@ }, ]" > - <Input v-model:value="model[field]" :placeholder="t('flink.setting.alert.dingTalkPlaceholder')" allowClear /> + <Input + v-model:value="model[field]" + :placeholder="t('flink.setting.alert.dingTalkPlaceholder')" + allowClear + /> </FormItem> </template> <!-- WeChat --> <template #weToken="{ model, field, schema }" v-if="(alertType || []).includes('4')"> - <Divider><SvgIcon name="wecom" size="20" /> {{t('flink.setting.alert.weChat')}} </Divider> + <Divider><SvgIcon name="wecom" size="20" /> {{ t('flink.setting.alert.weChat') }} </Divider> <FormItem :label="schema.label" :name="field" :rules="schema.rules"> <InputTextArea v-model:value="model[field]" v-bind="schema.componentProps" /> </FormItem> </template> <template #alertSms="{ model, field, schema }" v-if="(alertType || []).includes('8')"> - <Divider><SvgIcon name="message" size="20" /> {{t('flink.setting.alert.sms')}} </Divider> + <Divider><SvgIcon name="message" size="20" /> {{ t('flink.setting.alert.sms') }} </Divider> <FormItem :label="schema.label" :name="field" :rules="schema.rules"> <Input v-model:value="model[field]" v-bind="schema.componentProps" /> </FormItem> @@ -278,7 +297,7 @@ <!-- lark --> <template #larkToken="{ model, field, schema }" v-if="(alertType || []).includes('16')"> - <Divider><SvgIcon name="lark" size="20" /> {{t('flink.setting.alert.lark')}} </Divider> + <Divider><SvgIcon name="lark" size="20" /> {{ t('flink.setting.alert.lark') }} </Divider> <FormItem :label="schema.label" :name="field" :rules="schema.rules"> <Input v-model:value="model[field]" diff --git a/streampark-console/streampark-console-webapp/src/views/flink/setting/components/alert.data.ts b/streampark-console/streampark-console-webapp/src/views/flink/setting/components/alert.data.ts index 338fa2611..9e2a77597 100644 --- a/streampark-console/streampark-console-webapp/src/views/flink/setting/components/alert.data.ts +++ b/streampark-console/streampark-console-webapp/src/views/flink/setting/components/alert.data.ts @@ -24,7 +24,9 @@ export const alertFormSchema: Array<FormSchema> = [ label: t('flink.setting.alert.faultAlertType'), component: 'Select', slot: 'type', - dynamicRules: () => [{ required: true, message: t('flink.setting.alert.faultAlertTypeIsRequired') }], + dynamicRules: () => [ + { required: true, message: t('flink.setting.alert.faultAlertTypeIsRequired') }, + ], }, { field: 'alertEmail', @@ -67,7 +69,13 @@ export const alertFormSchema: Array<FormSchema> = [ placeholder: t('flink.setting.alert.secretTokenPlaceholder'), }, ifShow: ({ model }) => (model.alertType || []).includes('2') && model.dingtalkSecretEnable, - rules: [{ required: true, message: t('flink.setting.alert.dingTalkSecretTokenIsRequired'), trigger: 'blur' }], + rules: [ + { + required: true, + message: t('flink.setting.alert.dingTalkSecretTokenIsRequired'), + trigger: 'blur', + }, + ], }, { field: 'alertDingUser', @@ -159,7 +167,13 @@ export const alertFormSchema: Array<FormSchema> = [ placeholder: t('flink.setting.alert.larkSecretTokenPlaceholder'), }, ifShow: ({ model }) => (model.alertType || []).includes('16') && model.larkSecretEnable, - rules: [{ required: true, message: t('flink.setting.alert.larkSecretTokenIsRequired'), trigger: 'blur' }], + rules: [ + { + required: true, + message: t('flink.setting.alert.larkSecretTokenIsRequired'), + trigger: 'blur', + }, + ], }, ];
