修复分发数据回显问题

This commit is contained in:
weibl
2025-12-02 11:06:14 +08:00
parent 6ab7059be1
commit db7b8f965b

View File

@@ -2,12 +2,12 @@
<!-- 我确认的 --> <!-- 我确认的 -->
<div class="gl-page-content"> <div class="gl-page-content">
<demandTable <demandTable
:row-config="{keyField:'uuid'}" :row-config="{ keyField: 'uuid' }"
showCheckbox showCheckbox
showIndex showIndex
ref="tableRef" ref="tableRef"
tableName="SIMULATION_TASK_DEMAND_CONFIRM" tableName="SIMULATION_TASK_DEMAND_CONFIRM"
:params="{type:1}" :params="{ type: 1 }"
:api="demandListApi" :api="demandListApi"
exportFileName="我确认的需求" exportFileName="我确认的需求"
> >
@@ -23,51 +23,11 @@
</div> </div>
</template> </template>
</demandTable> </demandTable>
<!-- <BaseTable <batchSendTask
showCheckbox v-if="bachSendVisible"
showIndex :checkedList="checkedList"
tableName="SIMULATION_TASK_DEMAND_CONFIRM" v-model:diaVisible="bachSendVisible"
:params="{type:1}" ></batchSendTask>
:api="demandListApi"
:searchLimitNum="3"
>
<template #leftOptions>
<el-button type="primary" @click="bachSendVisible = true">批量分发</el-button>
</template>
<template #demandStatus="{row}">
{{ DEMAND_STATUS_MAP[row.demandStatus as keyof typeof DEMAND_STATUS_MAP] }}
</template>
<template #achieveStatus="{row}">
{{ TASK_CALCULATE_STATUS_OBJ[row.achieveStatus as keyof typeof DEMAND_STATUS_MAP] || '未分析' }}
</template>
<template #progress="{ row }">
{{ row.progress }}%
</template>
<template #approvalStatus="{ row }">
{{ row.approvalStatus || '未审批' }}
</template>
<template #attachment="{ row }">
<el-link type="primary" @click="seeAttachments(row.id)">附件</el-link>
</template>
<template #projectId="{ row }">
{{ row.projectName }}
</template>
<template #phaseId="{ row }">
{{ row.phaseName }}
</template>
<template #demandType="{row}">
{{ DEMAND_TYPE.O[row.demandType] }}
</template>
<template #simType="{row}">
{{ disposeSimType(row.demandType,row.simType) }}
</template>
<template #tableActions="{ row }">
<div class="gl-table-actions">
<el-link type="primary" @click="sendTaskFun(row)">分发</el-link>
</div>
</template>
</BaseTable> -->
<batchSendTask v-if="bachSendVisible" :checkedList="checkedList" v-model:diaVisible="bachSendVisible"></batchSendTask>
<Dialog <Dialog
v-model="sendVisible" v-model="sendVisible"
:loading="loadingInterface" :loading="loadingInterface"
@@ -86,7 +46,7 @@
v-model="sendForm.insertIndex" v-model="sendForm.insertIndex"
:data="indexTreeData" :data="indexTreeData"
node-key="uuid" node-key="uuid"
:props="{label:'nodeName',value:'uuid'}" :props="{ label: 'nodeName', value: 'uuid' }"
default-expand-all default-expand-all
:render-after-expand="false" :render-after-expand="false"
> >
@@ -105,26 +65,40 @@
<el-select <el-select
class="loadcase-lib" class="loadcase-lib"
:teleported="false" :teleported="false"
v-model='sendForm.currentLoadcaseLib' v-model="sendForm.currentLoadcaseLib"
:props="{label:'poolName', value:'value'}" :props="{ label: 'poolName', value: 'value' }"
value-key="poolName" value-key="poolName"
:fit-input-width="true" :fit-input-width="true"
@change="changeLoadcaseLibFun" @change="changeLoadcaseLibFun"
> >
<el-option v-for="item in loadcaseLibList" :key="item.value" :label="item.poolName" :value="item" /> <el-option
v-for="item in loadcaseLibList"
:key="item.value"
:label="item.poolName"
:value="item"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="版本:" prop="currentLoadcaseLibVersion" v-if="insertTaskMode === 'lib'"> <el-form-item
label="版本:"
prop="currentLoadcaseLibVersion"
v-if="insertTaskMode === 'lib'"
>
<el-select <el-select
class="version" class="version"
:teleported="false" :teleported="false"
v-model='sendForm.currentLoadcaseLibVersion' v-model="sendForm.currentLoadcaseLibVersion"
:props="{label:'poolVersion', value:'value'}" :props="{ label: 'poolVersion', value: 'value' }"
value-key="poolVersion" value-key="poolVersion"
:fit-input-width="true" :fit-input-width="true"
@change="changeLoadcaseVersionFun" @change="changeLoadcaseVersionFun"
> >
<el-option v-for="item in loadcaseLibVersionList" :key="item.value" :label="item.poolVersion" :value="item" /> <el-option
v-for="item in loadcaseLibVersionList"
:key="item.value"
:label="item.poolVersion"
:value="item"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- {{ insertTaskMode }} <!-- {{ insertTaskMode }}
@@ -142,7 +116,7 @@
> >
<template #default="{ item }"> <template #default="{ item }">
<div class="flex items-center"> <div class="flex items-center">
<img class="loadcase-img" src="@/assets/imgs/projectTree/loadcase.png" alt=""> <img class="loadcase-img" src="@/assets/imgs/projectTree/loadcase.png" alt="" />
<span>{{ item.label }}</span> <span>{{ item.label }}</span>
</div> </div>
</template> </template>
@@ -170,10 +144,7 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="仿真执行人:" prop="eMemberList"> <el-form-item label="仿真执行人:" prop="eMemberList">
<UserSelect <UserSelect v-model="sendForm.eMemberList" :multiple="true" />
v-model="sendForm.eMemberList"
:multiple="true"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- <TableForm ref="tableFormRef" tableName="SIMULATION_TASK_DEMAND_CONFIRM" > <!-- <TableForm ref="tableFormRef" tableName="SIMULATION_TASK_DEMAND_CONFIRM" >
@@ -185,7 +156,7 @@
</div> </div>
</template> </template>
</Dialog> </Dialog>
<attachments :demandId="demandInfo.id" v-model:visible="attachmentsVisible" ></attachments> <attachments :demandId="demandInfo.id" v-model:visible="attachmentsVisible"></attachments>
</div> </div>
</template> </template>
@@ -196,7 +167,11 @@ import { demandListApi, issuedTaskApi } from '@/api/project/demand';
import attachments from '@/views/task/simulationTask/components/attachments.vue'; import attachments from '@/views/task/simulationTask/components/attachments.vue';
// import { CommonStore } from '@/stores/common'; // import { CommonStore } from '@/stores/common';
import UserSelect from '@/components/common/userSelect/index.vue'; import UserSelect from '@/components/common/userSelect/index.vue';
import { getAllTaskPoolApi, getTaskPoolLoadcasesApi, getTaskPoolVersionsApi } from '@/api/task/taskpool'; import {
getAllTaskPoolApi,
getTaskPoolLoadcasesApi,
getTaskPoolVersionsApi,
} from '@/api/task/taskpool';
import { ElMessage } from 'element-plus'; import { ElMessage } from 'element-plus';
import demandTable from '../components/demandTable.vue'; import demandTable from '../components/demandTable.vue';
import { getTaskTreeFun } from '../../projectDetail/components/projectApi'; import { getTaskTreeFun } from '../../projectDetail/components/projectApi';
@@ -242,7 +217,7 @@ const insertTaskMode = ref('lib');
const loadcaseLibList = ref<any[]>([]); const loadcaseLibList = ref<any[]>([]);
const loadcaseLibVersionList = ref(); const loadcaseLibVersionList = ref();
const changeLoadcaseLibFun = (lib:any) => { const changeLoadcaseLibFun = (lib: any) => {
sendForm.currentLoadcaseLib = lib; sendForm.currentLoadcaseLib = lib;
queryLoadcaseLibVersionsFun(); queryLoadcaseLibVersionsFun();
}; };
@@ -268,7 +243,7 @@ const queryLoadcaseLibVersionsFun = async () => {
const req = { const req = {
poolName: sendForm.currentLoadcaseLib.poolName, poolName: sendForm.currentLoadcaseLib.poolName,
}; };
const res:any = await getTaskPoolVersionsApi(req); const res: any = await getTaskPoolVersionsApi(req);
if (res.code === 200 && res.data && Array.isArray(res.data) && res.data.length > 0) { if (res.code === 200 && res.data && Array.isArray(res.data) && res.data.length > 0) {
loadcaseLibVersionList.value = res.data; loadcaseLibVersionList.value = res.data;
if (loadcaseLibVersionList.value.length > 0) { if (loadcaseLibVersionList.value.length > 0) {
@@ -289,45 +264,31 @@ const getLoadcaseList = async () => {
version: sendForm.currentLoadcaseLibVersion.poolVersion, version: sendForm.currentLoadcaseLibVersion.poolVersion,
}); });
if (res.code === 200) { if (res.code === 200) {
libTaskList.value = res.data.map((item:any) => { libTaskList.value = res.data.map((item: any) => {
return { return {
label: item.nodeName, label: item.nodeName,
value: item, value: item,
}; };
}) });
;
} }
}; };
const sendFormRef = ref(); const sendFormRef = ref();
const sendFormRules = reactive<any>({ const sendFormRules = reactive<any>({
insertIndex: [ insertIndex: [{ required: true, message: '请选择上层节点', trigger: 'change' }],
{ required: true, message: '请选择上层节点', trigger: 'change' }, currentLoadcaseLib: [{ required: true, message: '请选择工况库', trigger: 'change' }],
], currentLoadcaseLibVersion: [{ required: true, message: '请选择工况库版本', trigger: 'change' }],
currentLoadcaseLib: [ chooseTaskList: [{ required: true, message: '请选择分发的任务', trigger: 'change' }],
{ required: true, message: '请选择工况库', trigger: 'change' }, eMemberList: [{ required: true, message: '请选择仿真执行人', trigger: 'change' }],
], taskName: [{ required: true, message: '请填写任务名称', trigger: 'blur' }],
currentLoadcaseLibVersion: [
{ required: true, message: '请选择工况库版本', trigger: 'change' },
],
chooseTaskList: [
{ required: true, message: '请选择分发的任务', trigger: 'change' },
],
eMemberList: [
{ required: true, message: '请选择仿真执行人', trigger: 'change' },
],
taskName: [
{ required: true, message: '请填写任务名称', trigger: 'blur' },
],
}); });
const taskTreeRef = ref(); const taskTreeRef = ref();
const sendTaskConfirmFun = () => { const sendTaskConfirmFun = () => {
console.log('1234', 1234); console.log('1234', 1234);
sendFormRef.value.validate(async(valid: boolean) => { sendFormRef.value.validate(async (valid: boolean) => {
if (valid) { if (valid) {
// if (insertTaskMode.value === 'lib') { // if (insertTaskMode.value === 'lib') {
// if (sendForm.chooseTaskList.value.length === 0) { // if (sendForm.chooseTaskList.value.length === 0) {
@@ -339,14 +300,14 @@ const sendTaskConfirmFun = () => {
console.log('taskTreeRef', taskTreeRef.value.getCurrentNode()); console.log('taskTreeRef', taskTreeRef.value.getCurrentNode());
console.log('sendForm', sendForm); console.log('sendForm', sendForm);
const parentNodeInfo = taskTreeRef.value.getCurrentNode(); const parentNodeInfo = taskTreeRef.value.getCurrentNode();
const tagProperty:{[key: string]: any;} = {}; const tagProperty: { [key: string]: any } = {};
tagSortList.forEach((item:any) => { tagSortList.forEach((item: any) => {
tagProperty[item] = parentNodeInfo[item] ? parentNodeInfo[item].split(',') : []; tagProperty[item] = parentNodeInfo[item] ? parentNodeInfo[item].split(',') : [];
}); });
let params = {}; let params = {};
const pMemberListStr = getMemberListIds(sendForm.pMemberList); const pMemberListStr = getMemberListIds(sendForm.pMemberList);
if (insertTaskMode.value === 'lib') { if (insertTaskMode.value === 'lib') {
const addTaskList = sendForm.chooseTaskList.map((item:any) => { const addTaskList = sendForm.chooseTaskList.map((item: any) => {
return { return {
...item, ...item,
...tagProperty, ...tagProperty,
@@ -363,20 +324,22 @@ const sendTaskConfirmFun = () => {
}; };
} else { } else {
params = { params = {
addNodeList: [{ addNodeList: [
nodeName: sendForm.taskName, {
nodeId: parentNodeInfo.uuid, nodeName: sendForm.taskName,
...tagProperty, nodeId: parentNodeInfo.uuid,
beginTime: sendForm.beginTime, ...tagProperty,
endTime: sendForm.endTime, beginTime: sendForm.beginTime,
pMemberList: pMemberListStr, endTime: sendForm.endTime,
eMemberList: sendForm.eMemberList, pMemberList: pMemberListStr,
}], eMemberList: sendForm.eMemberList,
},
],
demandId: sendForm.uuid, demandId: sendForm.uuid,
idMap: getIdMap(sendForm.projectId, sendForm.phaseId), idMap: getIdMap(sendForm.projectId, sendForm.phaseId),
}; };
} }
const res:any = await issuedTaskApi({ reqList: [params] }); const res: any = await issuedTaskApi({ reqList: [params] });
if (res.code === 200) { if (res.code === 200) {
ElMessage.success('任务分发成功!'); ElMessage.success('任务分发成功!');
closeSendFun(); closeSendFun();
@@ -390,19 +353,35 @@ const sendTaskConfirmFun = () => {
const indexTreeData = ref<any[]>([]); const indexTreeData = ref<any[]>([]);
const sendTaskFun = async(row:any) => { const sendTaskFun = async (row: any) => {
console.log('row', row); console.log('row', row);
sendVisible.value = true; sendVisible.value = true;
insertTaskMode.value = 'lib';
sendForm.insertIndex = '';
sendForm.currentLoadcaseLib = '';
sendForm.currentLoadcaseLibVersion = '';
sendForm.chooseTaskList = [];
sendForm.taskName = '';
sendForm.beginTime = '';
sendForm.endTime = '';
sendForm.eMemberList = '';
const taskTree = await getTaskTreeFun(row.projectId, row.phaseId); const taskTree = await getTaskTreeFun(row.projectId, row.phaseId);
indexTreeData.value = filterTask(taskTree); indexTreeData.value = filterTask(taskTree);
console.log('indexTreeData', indexTreeData.value); console.log('indexTreeData', indexTreeData.value);
await queryPoolListFun(); await queryPoolListFun();
// for (const key in sendForm) {
// sendForm[key] = '';
// }
for (const key in row) { for (const key in row) {
if (key !== 'eMemberList') { if (key !== 'eMemberList') {
sendForm[key] = row[key]; sendForm[key] = row[key];
} }
} }
sendForm.taskName = row.demandName; sendForm.taskName = row.demandName;
sendForm.eMemberList = getMemberListIds(row.eMemberList); sendForm.eMemberList = getMemberListIds(row.eMemberList);
console.log('sendForm', sendForm, row); console.log('sendForm', sendForm, row);
@@ -416,15 +395,17 @@ const batchSendFun = () => {
return ElMessage.warning('请勾选需要分发的需求!'); return ElMessage.warning('请勾选需要分发的需求!');
} }
bachSendVisible.value = true; bachSendVisible.value = true;
console.log('tableRef.value.tableRef.getCheckboxRecords()', tableRef.value.tableRef.tableRef.getCheckboxRecords()); console.log(
'tableRef.value.tableRef.getCheckboxRecords()',
tableRef.value.tableRef.tableRef.getCheckboxRecords()
);
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.loadcase-img { .loadcase-img {
width: 18px; width: 18px;
vertical-align: text-bottom; vertical-align: text-bottom;
margin-right: 5px; margin-right: 5px;
} }
</style> </style>