校验分发重复任务

This commit is contained in:
weibl
2026-01-23 16:12:23 +08:00
parent dd4a19a8cc
commit d3c5f2af5a
3 changed files with 61 additions and 4 deletions

View File

@@ -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);
}

View File

@@ -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: [
{

View File

@@ -177,7 +177,7 @@
</template>
<script setup lang="ts">
import { reactive, ref } from 'vue';
import { nextTick, reactive, ref } from 'vue';
import Dialog from '@/components/common/dialog/index.vue';
import { demandListApi, issuedTaskApi } from '@/api/project/demand';
import attachments from '@/views/task/simulationTask/components/attachments.vue';
@@ -331,14 +331,24 @@ const sendTaskConfirmFun = () => {
// }
loadingInterface.value = true;
const parentNodeInfo = taskTreeRef.value.getCurrentNode();
console.log('parentNodeInfo', parentNodeInfo);
const tagProperty: { [key: string]: any } = {};
tagSortList.forEach((item: any) => {
tagProperty[item] = parentNodeInfo[item] ? parentNodeInfo[item].split(',') : [];
});
let params = {};
const pMemberListStr = getMemberListIds(sendForm.pMemberList);
let hasRepeatTask = false;
if (insertTaskMode.value === 'lib') {
const addTaskList = sendForm.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 {
...item,
...tagProperty,
@@ -350,12 +360,28 @@ const sendTaskConfirmFun = () => {
discipline: sendForm.discipline,
};
});
if (hasRepeatTask) {
loadingInterface.value = false;
return;
}
params = {
addNodeList: addTaskList,
demandId: sendForm.uuid,
idMap: getIdMap(sendForm.projectId, sendForm.phaseId),
};
} else {
parentNodeInfo?.taskList.forEach((task: any) => {
if (task.nodeName === sendForm.taskName) {
ElMessage.warning(sendForm.taskName + '任务已存在,无法再创建!');
hasRepeatTask = true;
}
});
if (hasRepeatTask) {
loadingInterface.value = false;
return;
}
params = {
addNodeList: [
{
@@ -391,12 +417,17 @@ const indexTreeData = ref<any[]>([]);
const sendTaskFun = async (row: any) => {
sendVisible.value = true;
nextTick(() => {
sendFormRef.value.resetFields();
});
insertTaskMode.value = 'lib';
sendForm.currentLoadcaseLib = '';
sendForm.currentLoadcaseLibVersion = '';
sendForm.chooseTaskList = [];
sendForm.taskName = '';
sendForm.beginTime = '';
sendForm.planTime = null;
sendForm.endTime = '';
sendForm.eMemberList = '';
sendForm.aMemberList = row.aMemberList;