From a56e1d260dcf73724cc4b041cbaec239f3f55f74 Mon Sep 17 00:00:00 2001 From: Amy0104 <97265214+Amy0104@users.noreply.github.com> Date: Mon, 28 Mar 2022 22:59:20 +0800 Subject: [PATCH] [Fix][UI Next][V1.0.0-Alpha] Fix the timeout strategy display error. (#9245) --- .../node/fields/use-timeout-alarm.ts | 20 ++++++++++--------- .../task/components/node/format-data.ts | 18 +++++++++++++---- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-timeout-alarm.ts b/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-timeout-alarm.ts index a927152c7..53b51bc4d 100644 --- a/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-timeout-alarm.ts +++ b/dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-timeout-alarm.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { computed, watch } from 'vue' +import { computed } from 'vue' import { useI18n } from 'vue-i18n' import type { IJsonItem } from '../types' @@ -33,19 +33,21 @@ export function useTimeoutAlarm(model: { [field: string]: any }): IJsonItem[] { value: 'FAILED' } ] - watch( - () => model.timeoutFlag, - (timeoutFlag) => { - model.timeoutNotifyStrategy = timeoutFlag ? ['WARN'] : [] - model.timeout = timeoutFlag ? 30 : null - } - ) return [ { type: 'switch', field: 'timeoutFlag', - name: t('project.node.timeout_alarm') + name: t('project.node.timeout_alarm'), + props: { + 'on-update:value': (value: boolean) => { + if (value) { + if (!model.timeoutNotifyStrategy.length) + model.timeoutNotifyStrategy = ['WARN'] + if (!model.timeout) model.timeout = 30 + } + } + } }, { type: 'checkbox', diff --git a/dolphinscheduler-ui-next/src/views/projects/task/components/node/format-data.ts b/dolphinscheduler-ui-next/src/views/projects/task/components/node/format-data.ts index 4c2f77074..b84b5d782 100644 --- a/dolphinscheduler-ui-next/src/views/projects/task/components/node/format-data.ts +++ b/dolphinscheduler-ui-next/src/views/projects/task/components/node/format-data.ts @@ -303,7 +303,15 @@ export function formatParams(data: INodeData): { if (data.taskType === 'PIGEON') { taskParams.targetJobName = data.targetJobName } - + let timeoutNotifyStrategy = '' + if (data.timeoutNotifyStrategy) { + if (data.timeoutNotifyStrategy.length === 1) { + timeoutNotifyStrategy = data.timeoutNotifyStrategy[0] + } + if (data.timeoutNotifyStrategy.length === 2) { + timeoutNotifyStrategy = 'WARNFAILED' + } + } const params = { processDefinitionCode: data.processName ? String(data.processName) : '', upstreamCodes: data?.preTasks?.join(','), @@ -333,9 +341,9 @@ export function formatParams(data: INodeData): { }, taskPriority: data.taskPriority, taskType: data.taskType, - timeout: data.timeout, + timeout: data.timeoutFlag ? data.timeout : 0, timeoutFlag: data.timeoutFlag ? 'OPEN' : 'CLOSE', - timeoutNotifyStrategy: data.timeoutNotifyStrategy?.join(''), + timeoutNotifyStrategy: data.timeoutFlag ? timeoutNotifyStrategy : '', workerGroup: data.workerGroup } } as { @@ -362,7 +370,9 @@ export function formatModel(data: ITaskData) { ...omit(data.taskParams, ['resourceList', 'mainJar', 'localParams']), environmentCode: data.environmentCode === -1 ? null : data.environmentCode, timeoutFlag: data.timeoutFlag === 'OPEN', - timeoutNotifyStrategy: [data.timeoutNotifyStrategy] || [], + timeoutNotifyStrategy: data.timeoutNotifyStrategy + ? [data.timeoutNotifyStrategy] + : [], localParams: data.taskParams?.localParams || [] } as INodeData -- GitLab