diff --git a/dolphinscheduler-ui-next/src/store/project/task-node.ts b/dolphinscheduler-ui-next/src/store/project/task-node.ts index d23204047..ec0df8745 100644 --- a/dolphinscheduler-ui-next/src/store/project/task-node.ts +++ b/dolphinscheduler-ui-next/src/store/project/task-node.ts @@ -32,7 +32,8 @@ export const useTaskNodeStore = defineStore({ postTaskOptions: [], preTasks: [], resources: [], - mainJars: {} + mainJars: {}, + name: '' }), persist: true, getters: { @@ -50,6 +51,9 @@ export const useTaskNodeStore = defineStore({ }, getMainJar(state) { return (type: ProgramType): IMainJar[] | undefined => state.mainJars[type] + }, + getName(): string { + return this.name } }, actions: { @@ -116,12 +120,16 @@ export const useTaskNodeStore = defineStore({ updateMainJar(type: ProgramType, mainJar: IMainJar[]) { this.mainJars[type] = mainJar }, + updateName(name: string) { + this.name = name + }, init() { this.preTaskOptions = [] this.postTaskOptions = [] this.preTasks = [] this.resources = [] this.mainJars = {} + this.name = '' } } }) diff --git a/dolphinscheduler-ui-next/src/store/project/types.ts b/dolphinscheduler-ui-next/src/store/project/types.ts index b9a5b1703..ce30fb1cc 100644 --- a/dolphinscheduler-ui-next/src/store/project/types.ts +++ b/dolphinscheduler-ui-next/src/store/project/types.ts @@ -36,6 +36,7 @@ interface TaskNodeState { preTasks: number[] resources: IResource[] mainJars: { [key in ProgramType]?: IMainJar[] } + name: string } export { TaskNodeState, diff --git a/dolphinscheduler-ui-next/src/views/projects/task/components/node/detail-modal.tsx b/dolphinscheduler-ui-next/src/views/projects/task/components/node/detail-modal.tsx index 5146e5845..db8a6097a 100644 --- a/dolphinscheduler-ui-next/src/views/projects/task/components/node/detail-modal.tsx +++ b/dolphinscheduler-ui-next/src/views/projects/task/components/node/detail-modal.tsx @@ -39,6 +39,8 @@ import { import { NIcon } from 'naive-ui' import { TASK_TYPES_MAP } from '../../constants/task-type' import { Router, useRouter } from 'vue-router' +import { querySubProcessInstanceByTaskCode } from '@/service/modules/process-instances' +import { useTaskNodeStore } from '@/store/project/task-node' import type { ITaskData, ITaskType, @@ -46,7 +48,6 @@ import type { IWorkflowTaskInstance, WorkflowInstance } from './types' -import { querySubProcessInstanceByTaskCode } from '@/service/modules/process-instances' const props = { show: { @@ -92,6 +93,8 @@ const NodeDetailModal = defineComponent({ setup(props, { emit }) { const { t, locale } = useI18n() const router: Router = useRouter() + const taskStore = useTaskNodeStore() + const renderIcon = (icon: any) => { return () => h(NIcon, null, { default: () => h(icon) }) } @@ -203,6 +206,7 @@ const NodeDetailModal = defineComponent({ async () => { if (!props.show) return initHeaderLinks(props.processInstance, props.data.taskType) + taskStore.init() await nextTick() detailRef.value.value.setValues(formatModel(props.data)) } diff --git a/dolphinscheduler-ui-next/src/views/projects/task/components/node/detail.tsx b/dolphinscheduler-ui-next/src/views/projects/task/components/node/detail.tsx index 8adc5e6e8..ab8282e88 100644 --- a/dolphinscheduler-ui-next/src/views/projects/task/components/node/detail.tsx +++ b/dolphinscheduler-ui-next/src/views/projects/task/components/node/detail.tsx @@ -35,7 +35,6 @@ const NodeDetail = defineComponent({ emits: ['taskTypeChange'], setup(props, { expose, emit }) { const taskStore = useTaskNodeStore() - taskStore.init() const formRef = ref() const detailData: IDetailPanel = inject('data') || { @@ -58,6 +57,7 @@ const NodeDetail = defineComponent({ watch( () => model.taskType, async (taskType) => { + taskStore.updateName(model.name || '') emit('taskTypeChange', taskType) } ) diff --git a/dolphinscheduler-ui-next/src/views/projects/task/components/node/use-task.ts b/dolphinscheduler-ui-next/src/views/projects/task/components/node/use-task.ts index b197bd136..4a23a2a6a 100644 --- a/dolphinscheduler-ui-next/src/views/projects/task/components/node/use-task.ts +++ b/dolphinscheduler-ui-next/src/views/projects/task/components/node/use-task.ts @@ -65,6 +65,7 @@ export function useTask({ const { model, json } = nodes[data.taskType || 'SHELL'](params) jsonRef.value = json model.preTasks = taskStore.getPreTasks + model.name = taskStore.getName const getElements = () => { const { rules, elements } = getElementByJson(jsonRef.value, model)