分发任务,默认选好插入位置和学科

This commit is contained in:
weibl
2026-01-21 16:55:53 +08:00
parent 6a9d9cace9
commit 6c5575f510
4 changed files with 63 additions and 18 deletions

View File

@@ -1,5 +1,5 @@
<template>
<Dialog v-model="dialogVisible" diaTitle="流程预览" width="80%" height="700" @close="closeFun">
<Dialog v-model="dialogVisible" :showFooter="false" diaTitle="流程预览" width="80%" height="700" @close="closeFun">
<div class="flow-box">
<FlowView type="review" :flowUuid="flowUuid"></FlowView>
</div>

View File

@@ -47,7 +47,8 @@
{{ TASK_PROGRESS_STATUS.O[row.actualProgress] }}
</template>
<template #discipline="{ row }">
{{ DISCIPLINE_TYPE.O[row.discipline] }}
<span v-if="DISCIPLINE_TYPE.O[row.discipline]">{{ DISCIPLINE_TYPE.O[row.discipline] }}</span>
<span v-else>{{ row.discipline }}</span>
</template>
<template #taskName="{ row }">
<span class="task-name" @click="nameClickFun(row)">

View File

@@ -42,7 +42,7 @@
</div>
</template>
<template #discipline="{ row }">
<el-select class="loadcase-lib" v-show="row.insertMode !== 'lib'" v-model="row.discipline">
<el-select class="loadcase-lib" v-model="row.discipline">
<el-option
v-for="item in DISCIPLINE_TYPE.A"
:key="item.value"
@@ -155,7 +155,7 @@
</Dialog>
</template>
<script lang="ts" setup>
import { computed, onMounted, ref } from 'vue';
import { computed, nextTick, onMounted, ref } from 'vue';
import Dialog from '@/components/common/dialog/index.vue';
import BaseTable from '@/components/common/table/baseTable.vue';
import {
@@ -167,7 +167,7 @@ import UserSelect from '@/components/common/userSelect/index.vue';
import { ElMessage } from 'element-plus';
import { getTaskTreeFun } from '@/views/task/projectDetail/components/projectApi';
import { filterTask, getIdMap } from '@/views/task/projectDetail/components/project';
import { tagSortList } from '@/utils/enum/node';
import { NODE_TYPE, tagSortList } from '@/utils/enum/node';
import { getMemberListIds } from '@/utils/task';
import { issuedTaskApi } from '@/api/project/demand';
import { useDict } from '@/utils/useDict';
@@ -314,16 +314,25 @@ const confirmFun = async () => {
});
const idMap = getIdMap(demandItem.projectId, demandItem.phaseId);
const pMemberListStr = getMemberListIds(demandItem.pMemberList);
const beginTime = tableRef.value.tableData[index].planTime
? tableRef.value.tableData[index].planTime[0]
: '';
const endTime = tableRef.value.tableData[index].planTime
? tableRef.value.tableData[index].planTime[1]
: '';
if (demandItem.insertMode === 'lib') {
const addTaskList = demandItem.chooseTaskList.map((task: any) => {
return {
...task,
...tagProperty,
beginTime: demandItem.beginTime,
endTime: demandItem.endTime,
// beginTime: demandItem.beginTime,
// endTime: demandItem.endTime,
beginTime,
endTime,
eMemberList: demandItem.eMemberList,
pMemberList: pMemberListStr,
aMemberList: getMemberListIds(demandItem.aMemberList),
discipline: tableRef.value.tableData[index].discipline,
};
});
params.push({
@@ -337,13 +346,13 @@ const confirmFun = async () => {
{
nodeName: demandItem.taskName,
...tagProperty,
beginTime: demandItem.beginTime,
endTime: demandItem.endTime,
beginTime,
endTime,
eMemberList: demandItem.eMemberList,
pMemberList: pMemberListStr,
nodeId: parentNodeInfo.uuid,
discipline: demandItem.discipline,
aMemberList: getMemberListIds(demandItem.aMemberList),
discipline: tableRef.value.tableData[index].discipline,
},
],
demandId: demandItem.uuid,
@@ -367,9 +376,9 @@ const closeFun = () => {
const loadcaseLibList = ref<any[]>([]);
const changeLoadcaseLibFun = (lib: any, row: any) => {
const changeLoadcaseLibFun = async (lib: any, row: any) => {
row.currentLoadcaseLib = lib;
queryLoadcaseLibVersionsFun(row);
row.libTaskList = await queryLoadcaseLibVersionsFun(row);
};
const changeLoadcaseVersionFun = (row: {
@@ -388,13 +397,13 @@ const queryPoolListFun = async () => {
}
if (loadcaseLibList.value.length > 0) {
const poolInfo = { currentLoadcaseLib: loadcaseLibList.value[0] };
queryLoadcaseLibVersionsFun(poolInfo);
const libTaskList = await queryLoadcaseLibVersionsFun(poolInfo);
for (let index = 0; index < checkedDemandList.value.length; index++) {
(checkedDemandList.value[index] as any).indexTreeData = await getIndexTreeData(
checkedDemandList.value[index]
);
// (props.checkedList[index] as any).currentLoadcaseLib = loadcaseLibList.value[0];
const newCheckedInfo: any = { ...checkedDemandList.value[index], ...poolInfo };
const newCheckedInfo: any = { ...checkedDemandList.value[index], ...poolInfo, libTaskList };
checkedDemandList.value[index] = newCheckedInfo;
}
}
@@ -418,7 +427,7 @@ const queryLoadcaseLibVersionsFun = async (row: any) => {
row.loadcaseLibVersionList = [];
}
// await queryTaskPoolFun();
getLoadcaseList(row);
return await getLoadcaseList(row);
};
const getLoadcaseList = async (row: any) => {
@@ -427,13 +436,14 @@ const getLoadcaseList = async (row: any) => {
version: row.currentLoadcaseLibVersion.poolVersion,
});
if (res.code === 200) {
row.libTaskList = res.data.map((item: any) => {
return res.data.map((item: any) => {
return {
label: item.nodeName,
value: item,
};
});
}
return [];
};
const checkedDemandList = ref<any[]>([]);
onMounted(async () => {
@@ -445,10 +455,28 @@ onMounted(async () => {
chooseTaskList: [],
eMemberList: getMemberListIds(item.eMemberList),
planTime: [item.beginTime, item.endTime],
discipline: item.simType,
};
});
loadingInterface.value = true;
await queryPoolListFun();
nextTick(() => {
checkedDemandList.value = checkedDemandList.value.map((item: any) => {
if (item?.extras.length) {
const workspace = item.extras.find(
(extra: { propertyName: NODE_TYPE }) => extra.propertyName === NODE_TYPE.WORKSPACE
);
if (workspace) {
item.insertIndex = workspace.propertyValue;
console.log('workspace', workspace);
setTimeout(() => {
taskTreeRefs.value[item.uuid].setCurrentKey(workspace.propertyValue, true);
}, 1000);
}
}
return item;
});
});
loadingInterface.value = false;
setTimeout(() => {

View File

@@ -191,7 +191,7 @@ import {
import { ElMessage } from 'element-plus';
import demandTable from '../components/demandTable.vue';
import { getTaskTreeFun } from '../../projectDetail/components/projectApi';
import { tagSortList } from '@/utils/enum/node';
import { NODE_TYPE, tagSortList } from '@/utils/enum/node';
import { filterTask, getIdMap } from '../../projectDetail/components/project';
import batchSendTask from './components/batchSendTask.vue';
import { getMemberListIds } from '@/utils/task';
@@ -239,6 +239,7 @@ const sendVisible = ref(false);
const closeSendFun = () => {
sendVisible.value = false;
loadingInterface.value = false;
};
/**
@@ -346,6 +347,7 @@ const sendTaskConfirmFun = () => {
pMemberList: pMemberListStr,
eMemberList: sendForm.eMemberList,
aMemberList: getMemberListIds(sendForm.aMemberList),
discipline: sendForm.discipline,
};
});
params = {
@@ -365,6 +367,7 @@ const sendTaskConfirmFun = () => {
pMemberList: pMemberListStr,
eMemberList: sendForm.eMemberList,
aMemberList: getMemberListIds(sendForm.aMemberList),
discipline: sendForm.discipline,
},
],
demandId: sendForm.uuid,
@@ -386,10 +389,10 @@ const sendTaskConfirmFun = () => {
const indexTreeData = ref<any[]>([]);
const sendTaskFun = async (row: any) => {
console.log('row', row);
sendVisible.value = true;
insertTaskMode.value = 'lib';
sendForm.insertIndex = '';
sendForm.currentLoadcaseLib = '';
sendForm.currentLoadcaseLibVersion = '';
sendForm.chooseTaskList = [];
@@ -398,9 +401,22 @@ const sendTaskFun = async (row: any) => {
sendForm.endTime = '';
sendForm.eMemberList = '';
sendForm.aMemberList = row.aMemberList;
if (row.simType) {
sendForm.discipline = row.simType;
}
const taskTree = await getTaskTreeFun(row.projectId, row.phaseId);
indexTreeData.value = filterTask(taskTree);
sendForm.insertIndex = '';
if (row?.extras.length) {
const workspace = row.extras.find(
(item: { propertyName: NODE_TYPE }) => item.propertyName === NODE_TYPE.WORKSPACE
);
if (workspace) {
sendForm.insertIndex = workspace.propertyValue;
taskTreeRef.value.setCurrentKey(workspace.propertyValue, true);
}
}
await queryPoolListFun();
// for (const key in sendForm) {