|
@@ -447,7 +447,7 @@
|
|
|
type="danger"
|
|
type="danger"
|
|
|
size="small"
|
|
size="small"
|
|
|
@click="removePlatformWellDetail($index)"
|
|
@click="removePlatformWellDetail($index)"
|
|
|
- :disabled="currentTask.platformWellDetails[$index].taskId === currentTask.id"
|
|
|
|
|
|
|
+ :disabled="isMainPlatformWellDetail($index)"
|
|
|
>
|
|
>
|
|
|
删除
|
|
删除
|
|
|
</el-button>
|
|
</el-button>
|
|
@@ -1742,11 +1742,54 @@ const submitForm = async () => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// 判断是否为主要的平台井详情(不能删除)
|
|
|
|
|
+const isMainPlatformWellDetail = (index: number) => {
|
|
|
|
|
+ if (!currentTask.value.platformWellDetails || currentTask.value.platformWellDetails.length === 0) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const detail = currentTask.value.platformWellDetails[index];
|
|
|
|
|
+ // 主记录的条件:是第一条记录且有关联的任务ID,或者是自动从非平台井转换过来的主记录
|
|
|
|
|
+ return index === 0 && (detail.taskId === currentTask.value.id ||
|
|
|
|
|
+ (detail.wellName === currentTask.value.wellName && detail.workloadDesign === currentTask.value.workloadDesign));
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
// 处理平台井开关变化
|
|
// 处理平台井开关变化
|
|
|
const handlePlatformWellChange = (value) => {
|
|
const handlePlatformWellChange = (value) => {
|
|
|
if (value === '1') {
|
|
if (value === '1') {
|
|
|
|
|
+
|
|
|
|
|
+ // 检查是否是从非平台井切换过来,且当前任务有井号信息
|
|
|
|
|
+ const hasWellName = currentTask.value.wellName && currentTask.value.wellName.trim() !== '';
|
|
|
|
|
+ const hasWorkloadDesign = currentTask.value.workloadDesign;
|
|
|
|
|
+
|
|
|
|
|
+ if (hasWellName && hasWorkloadDesign) {
|
|
|
|
|
+ // 从非平台井切换到平台井,自动添加一条记录
|
|
|
|
|
+ const mainDetail = {
|
|
|
|
|
+ taskId: currentTask.value.id, // 关联当前任务ID
|
|
|
|
|
+ wellName: currentTask.value.wellName,
|
|
|
|
|
+ workloadDesign: currentTask.value.workloadDesign
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ // 清空现有详情,添加主记录
|
|
|
|
|
+ currentTask.value.platformWellDetails = [mainDetail];
|
|
|
|
|
+
|
|
|
|
|
+ // 清空主任务的井号和设计工作量(因为现在在平台井详情中管理)
|
|
|
|
|
+ // currentTask.value.wellName = '';
|
|
|
|
|
+ // currentTask.value.workloadDesign = '';
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 恢复之前保存的数据或初始化
|
|
|
|
|
+ if (platformWellDetailsBackup.value.length > 0) {
|
|
|
|
|
+ currentTask.value.platformWellDetails = [...platformWellDetailsBackup.value];
|
|
|
|
|
+ sortPlatformWellDetails();
|
|
|
|
|
+ } else {
|
|
|
|
|
+ addPlatformWellDetail();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 更新备份数据
|
|
|
|
|
+ platformWellDetailsBackup.value = [...currentTask.value.platformWellDetails];
|
|
|
|
|
+
|
|
|
// 切换到平台井模式,恢复之前保存的数据
|
|
// 切换到平台井模式,恢复之前保存的数据
|
|
|
- if (platformWellDetailsBackup.value.length > 0) {
|
|
|
|
|
|
|
+ /* if (platformWellDetailsBackup.value.length > 0) {
|
|
|
// 恢复数据时进行排序
|
|
// 恢复数据时进行排序
|
|
|
currentTask.value.platformWellDetails = [...platformWellDetailsBackup.value].sort((a, b) => {
|
|
currentTask.value.platformWellDetails = [...platformWellDetailsBackup.value].sort((a, b) => {
|
|
|
if (a.taskId === currentTask.value.id) return -1;
|
|
if (a.taskId === currentTask.value.id) return -1;
|
|
@@ -1756,10 +1799,16 @@ const handlePlatformWellChange = (value) => {
|
|
|
} else {
|
|
} else {
|
|
|
// 如果没有备份数据,初始化一行
|
|
// 如果没有备份数据,初始化一行
|
|
|
addPlatformWellDetail();
|
|
addPlatformWellDetail();
|
|
|
- }
|
|
|
|
|
|
|
+ } */
|
|
|
} else {
|
|
} else {
|
|
|
// 切换到非平台井模式,保存当前数据到备份
|
|
// 切换到非平台井模式,保存当前数据到备份
|
|
|
platformWellDetailsBackup.value = [...currentTask.value.platformWellDetails];
|
|
platformWellDetailsBackup.value = [...currentTask.value.platformWellDetails];
|
|
|
|
|
+ // 如果有平台井详情,将第一个详情的数据设置回主任务
|
|
|
|
|
+ if (currentTask.value.platformWellDetails.length > 0) {
|
|
|
|
|
+ const mainDetail = currentTask.value.platformWellDetails[0];
|
|
|
|
|
+ currentTask.value.wellName = mainDetail.wellName || '';
|
|
|
|
|
+ currentTask.value.workloadDesign = mainDetail.workloadDesign || '';
|
|
|
|
|
+ }
|
|
|
// 切换到非平台井模式,清空详情列表
|
|
// 切换到非平台井模式,清空详情列表
|
|
|
currentTask.value.platformWellDetails = [];
|
|
currentTask.value.platformWellDetails = [];
|
|
|
}
|
|
}
|
|
@@ -1783,7 +1832,7 @@ const addPlatformWellDetail = () => {
|
|
|
// 将新记录添加到数组末尾,而不是开头
|
|
// 将新记录添加到数组末尾,而不是开头
|
|
|
currentTask.value.platformWellDetails.push(newDetail);
|
|
currentTask.value.platformWellDetails.push(newDetail);
|
|
|
// 添加后重新排序,确保当前任务对应的记录始终在第一行
|
|
// 添加后重新排序,确保当前任务对应的记录始终在第一行
|
|
|
- sortPlatformWellDetails();
|
|
|
|
|
|
|
+ // sortPlatformWellDetails();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
// 删除平台井详情行
|
|
// 删除平台井详情行
|
|
@@ -1800,11 +1849,14 @@ const sortPlatformWellDetails = () => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
currentTask.value.platformWellDetails.sort((a, b) => {
|
|
currentTask.value.platformWellDetails.sort((a, b) => {
|
|
|
- // 当前任务对应的记录排在最前面
|
|
|
|
|
- if (a.taskId === currentTask.value.id) return -1;
|
|
|
|
|
- if (b.taskId === currentTask.value.id) return 1;
|
|
|
|
|
|
|
+ // 主记录(关联当前任务ID或从非平台井转换过来的记录)排在最前面
|
|
|
|
|
+ const aIsMain = a.taskId === currentTask.value.id;
|
|
|
|
|
+ const bIsMain = b.taskId === currentTask.value.id;
|
|
|
|
|
+
|
|
|
|
|
+ if (aIsMain && !bIsMain) return -1;
|
|
|
|
|
+ if (!aIsMain && bIsMain) return 1;
|
|
|
|
|
|
|
|
- // 其他记录保持原有顺序(新添加的在后)
|
|
|
|
|
|
|
+ // 其他记录保持原有顺序
|
|
|
return 0;
|
|
return 0;
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|