Compare commits
2 Commits
lx
...
9407ad5446
| Author | SHA1 | Date | |
|---|---|---|---|
| 9407ad5446 | |||
| 3606ab7cf8 |
@ -440,7 +440,7 @@ import router from '@/router';
|
|||||||
import { syrenwulist, syrenwuDetail, addsyrenwu, updatesyrenwu } from '@/api/zhinengxunjian/shiyan/renwu';
|
import { syrenwulist, syrenwuDetail, addsyrenwu, updatesyrenwu } from '@/api/zhinengxunjian/shiyan/renwu';
|
||||||
import { shiyanlist } from '@/api/zhinengxunjian/shiyan';
|
import { shiyanlist } from '@/api/zhinengxunjian/shiyan';
|
||||||
import { xunjianUserlist } from '@/api/zhinengxunjian/xunjian/index';
|
import { xunjianUserlist } from '@/api/zhinengxunjian/xunjian/index';
|
||||||
import { addjiedian } from '@/api/zhinengxunjian/jiedian/index';
|
import { addjiedian, updatejiedian } from '@/api/zhinengxunjian/jiedian/index';
|
||||||
// 引入Element Plus组件(提示/空状态/骨架屏/弹窗)
|
// 引入Element Plus组件(提示/空状态/骨架屏/弹窗)
|
||||||
import { ElMessage, ElEmpty, ElSkeleton, ElForm, ElMessageBox, ElDialog } from 'element-plus';
|
import { ElMessage, ElEmpty, ElSkeleton, ElForm, ElMessageBox, ElDialog } from 'element-plus';
|
||||||
|
|
||||||
@ -831,16 +831,45 @@ const mapApiToView = (apiData) => {
|
|||||||
// 生成试验阶段信息
|
// 生成试验阶段信息
|
||||||
const getTestStage = () => {
|
const getTestStage = () => {
|
||||||
try {
|
try {
|
||||||
// 优先查找nodes数组中status为2的第一条数据
|
// 优先查找nodes数组中处于执行中或失败的节点来确定当前试验阶段
|
||||||
if (apiData && apiData.nodes && Array.isArray(apiData.nodes)) {
|
if (apiData && apiData.nodes && Array.isArray(apiData.nodes)) {
|
||||||
const firstStatusTwoNode = apiData.nodes.find((node) => {
|
// 查找执行中状态的节点
|
||||||
// 确保node存在且有status属性
|
const executingNode = apiData.nodes.find((node) => {
|
||||||
if (!node || node.status === undefined) return false;
|
if (!node || node.status === undefined) return false;
|
||||||
// 处理status可能是字符串或数字的情况
|
|
||||||
return node.status === '2' || node.status === 2;
|
return node.status === '2' || node.status === 2;
|
||||||
});
|
});
|
||||||
if (firstStatusTwoNode && firstStatusTwoNode.name) {
|
|
||||||
return firstStatusTwoNode.name;
|
// 如果有执行中的节点,根据code判断阶段
|
||||||
|
if (executingNode && executingNode.code !== undefined) {
|
||||||
|
const stepName = executingNode.name || '未命名步骤';
|
||||||
|
return `第${executingNode.code}步(${stepName})`;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找失败状态的节点
|
||||||
|
const failedNode = apiData.nodes.find((node) => {
|
||||||
|
if (!node || node.status === undefined) return false;
|
||||||
|
return node.status === '3' || node.status === 3;
|
||||||
|
});
|
||||||
|
|
||||||
|
// 如果有失败的节点,根据code判断阶段
|
||||||
|
if (failedNode && failedNode.code !== undefined) {
|
||||||
|
const stepName = failedNode.name || '未命名步骤';
|
||||||
|
return `第${failedNode.code}步(${stepName})`;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查找已完成的节点,确定最后完成的阶段
|
||||||
|
const completedNodes = apiData.nodes.filter((node) => {
|
||||||
|
if (!node || node.status === undefined) return false;
|
||||||
|
return node.status === '4' || node.status === 4;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (completedNodes.length > 0) {
|
||||||
|
// 按code排序,取最大的code
|
||||||
|
completedNodes.sort((a, b) => Number(b.code) - Number(a.code));
|
||||||
|
if (completedNodes[0].code !== undefined) {
|
||||||
|
const stepName = completedNodes[0].name || '未命名步骤';
|
||||||
|
return `第${completedNodes[0].code}步(${stepName})`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 如果没有找到符合条件的nodes数据,检查是否有明确的试验阶段信息
|
// 如果没有找到符合条件的nodes数据,检查是否有明确的试验阶段信息
|
||||||
@ -1014,9 +1043,34 @@ const handleAction = async (task) => {
|
|||||||
return node.status === '2' || node.status === 2;
|
return node.status === '2' || node.status === 2;
|
||||||
});
|
});
|
||||||
if (firstUnfinishedNode) {
|
if (firstUnfinishedNode) {
|
||||||
|
// 使用updatejiedian接口更新节点状态,构造完整的节点信息数组
|
||||||
|
const nodeUpdateParams = [
|
||||||
|
{
|
||||||
|
...firstUnfinishedNode,
|
||||||
|
status: '3',
|
||||||
|
updateTime: new Date().toISOString(),
|
||||||
|
// 确保包含所有必需字段
|
||||||
|
createDept: firstUnfinishedNode.createDept || 0,
|
||||||
|
createBy: firstUnfinishedNode.createBy || 0,
|
||||||
|
createTime: firstUnfinishedNode.createTime || new Date().toISOString(),
|
||||||
|
updateBy: firstUnfinishedNode.updateBy || 0,
|
||||||
|
params: firstUnfinishedNode.params || {
|
||||||
|
property1: 'string',
|
||||||
|
property2: 'string'
|
||||||
|
},
|
||||||
|
module: firstUnfinishedNode.module || 'string',
|
||||||
|
orderId: firstUnfinishedNode.orderId || 0,
|
||||||
|
code: firstUnfinishedNode.code || 0,
|
||||||
|
name: firstUnfinishedNode.name || 'string',
|
||||||
|
intendedPurpose: firstUnfinishedNode.intendedPurpose || 'string',
|
||||||
|
intendedTime: firstUnfinishedNode.intendedTime || new Date().toISOString(),
|
||||||
|
finishTime: firstUnfinishedNode.finishTime || '',
|
||||||
|
remark: firstUnfinishedNode.remark || ''
|
||||||
|
}
|
||||||
|
];
|
||||||
|
await updatejiedian(nodeUpdateParams);
|
||||||
|
// 更新本地数据以反映最新状态
|
||||||
firstUnfinishedNode.status = '3';
|
firstUnfinishedNode.status = '3';
|
||||||
// 确保更新到updateParams中
|
|
||||||
updateParams.nodes = taskDetails.nodes;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (innerError) {
|
} catch (innerError) {
|
||||||
@ -1050,13 +1104,39 @@ const handleAction = async (task) => {
|
|||||||
|
|
||||||
// 将失败的步骤状态改回2(未完成)
|
// 将失败的步骤状态改回2(未完成)
|
||||||
if (taskDetails.nodes && Array.isArray(taskDetails.nodes)) {
|
if (taskDetails.nodes && Array.isArray(taskDetails.nodes)) {
|
||||||
taskDetails.nodes.forEach((node) => {
|
const failedNodes = taskDetails.nodes.filter((node) => {
|
||||||
if (node.status === '3' || node.status === 3) {
|
return node.status === '3' || node.status === 3;
|
||||||
node.status = '2';
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
// 确保更新到updateParams中
|
|
||||||
updateParams.nodes = taskDetails.nodes;
|
// 构造包含所有失败节点的完整信息数组
|
||||||
|
const nodeUpdateParams = failedNodes.map((failedNode) => ({
|
||||||
|
...failedNode,
|
||||||
|
status: '2',
|
||||||
|
updateTime: new Date().toISOString(),
|
||||||
|
// 确保包含所有必需字段
|
||||||
|
createDept: failedNode.createDept || 0,
|
||||||
|
createBy: failedNode.createBy || 0,
|
||||||
|
createTime: failedNode.createTime || new Date().toISOString(),
|
||||||
|
updateBy: failedNode.updateBy || 0,
|
||||||
|
params: failedNode.params || {
|
||||||
|
property1: 'string',
|
||||||
|
property2: 'string'
|
||||||
|
},
|
||||||
|
module: failedNode.module || 'string',
|
||||||
|
orderId: failedNode.orderId || 0,
|
||||||
|
code: failedNode.code || 0,
|
||||||
|
name: failedNode.name || 'string',
|
||||||
|
intendedPurpose: failedNode.intendedPurpose || 'string',
|
||||||
|
intendedTime: failedNode.intendedTime || new Date().toISOString(),
|
||||||
|
finishTime: failedNode.finishTime || '',
|
||||||
|
remark: failedNode.remark || ''
|
||||||
|
}));
|
||||||
|
// 一次性调用updatejiedian接口更新所有节点
|
||||||
|
await updatejiedian(nodeUpdateParams);
|
||||||
|
// 更新本地数据以反映最新状态
|
||||||
|
for (const failedNode of failedNodes) {
|
||||||
|
failedNode.status = '2';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user