diff --git a/src/views/task/projectDetail/components/project.ts b/src/views/task/projectDetail/components/project.ts index 9c395c2e..cf0136d1 100644 --- a/src/views/task/projectDetail/components/project.ts +++ b/src/views/task/projectDetail/components/project.ts @@ -113,9 +113,12 @@ export const filterTask = (taskTree: any[]): any[] => { const list = []; for (let index = 0; index < taskTree.length; index++) { if (taskTree[index].nodeType !== NODE_TYPE.TASK) { - const obj = { ...taskTree[index], children: [] }; + const obj = { ...taskTree[index], children: [], taskList: [] }; if (taskTree[index].children) { obj.children = filterTask(taskTree[index].children); + obj.taskList = taskTree[index].children.filter( + (item: { nodeType: string }) => item.nodeType === NODE_TYPE.TASK + ); } list.push(obj); } diff --git a/src/views/task/simulationTask/confirmTask/components/batchSendTask.vue b/src/views/task/simulationTask/confirmTask/components/batchSendTask.vue index 6e3cca38..7247fa3d 100644 --- a/src/views/task/simulationTask/confirmTask/components/batchSendTask.vue +++ b/src/views/task/simulationTask/confirmTask/components/batchSendTask.vue @@ -305,6 +305,7 @@ const confirmFun = async () => { } loadingInterface.value = true; const params = []; + let hasRepeatTask = false; for (let index = 0; index < tableRef.value.tableData.length; index++) { const demandItem = tableRef.value.tableData[index]; const parentNodeInfo = taskTreeRefs.value[demandItem.uuid].getCurrentNode(); @@ -321,9 +322,17 @@ const confirmFun = async () => { ? tableRef.value.tableData[index].planTime[1] : ''; if (demandItem.insertMode === 'lib') { - const addTaskList = demandItem.chooseTaskList.map((task: any) => { + const addTaskList = demandItem.chooseTaskList.map((item: any) => { + if (parentNodeInfo?.taskList?.length > 0) { + parentNodeInfo?.taskList.forEach((task: any) => { + if (task.nodeName === item.nodeName) { + ElMessage.warning(item.nodeName + '任务已存在,无法再创建!'); + hasRepeatTask = true; + } + }); + } return { - ...task, + ...item, ...tagProperty, // beginTime: demandItem.beginTime, // endTime: demandItem.endTime, @@ -335,12 +344,26 @@ const confirmFun = async () => { discipline: tableRef.value.tableData[index].discipline, }; }); + if (hasRepeatTask) { + loadingInterface.value = false; + return; + } params.push({ addNodeList: addTaskList, demandId: demandItem.uuid, idMap: idMap, }); } else { + parentNodeInfo?.taskList.forEach((task: any) => { + if (task.nodeName === demandItem.taskName) { + ElMessage.warning(demandItem.taskName + '任务已存在,无法再创建!'); + hasRepeatTask = true; + } + }); + if (hasRepeatTask) { + loadingInterface.value = false; + return; + } params.push({ addNodeList: [ { diff --git a/src/views/task/simulationTask/confirmTask/index.vue b/src/views/task/simulationTask/confirmTask/index.vue index 662fb31a..1038c0ff 100644 --- a/src/views/task/simulationTask/confirmTask/index.vue +++ b/src/views/task/simulationTask/confirmTask/index.vue @@ -177,7 +177,7 @@