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 a927152c71b7ad80d0652ff321d4f5eed920180a..53b51bc4d7f376d7f91f4a328fd6607d99dc60ad 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 4c2f7707490700c76248a91ad4b11b0de00833f6..b84b5d7826636ac4b8941da257122cf4552faf39 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