Răsfoiți Sursa

pms 瑞都 日报 平台井 排序

zhangcl 2 zile în urmă
părinte
comite
79c86dba59
1 a modificat fișierele cu 42 adăugiri și 3 ștergeri
  1. 42 3
      src/views/pms/iotprojecttask/IotProjectTaskForm.vue

+ 42 - 3
src/views/pms/iotprojecttask/IotProjectTaskForm.vue

@@ -1459,6 +1459,10 @@ const open = async () => {
             wellName: item.wellName,
             workloadDesign: item.workloadDesign
           }));
+
+          // 使用专门的排序方法
+          sortPlatformWellDetails();
+
           // 初始化备份数据
           platformWellDetailsBackup.value = [...currentTask.value.platformWellDetails];
         } else {
@@ -1743,7 +1747,12 @@ const handlePlatformWellChange = (value) => {
   if (value === '1') {
     // 切换到平台井模式,恢复之前保存的数据
     if (platformWellDetailsBackup.value.length > 0) {
-      currentTask.value.platformWellDetails = [...platformWellDetailsBackup.value];
+      // 恢复数据时进行排序
+      currentTask.value.platformWellDetails = [...platformWellDetailsBackup.value].sort((a, b) => {
+        if (a.taskId === currentTask.value.id) return -1;
+        if (b.taskId === currentTask.value.id) return 1;
+        return 0;
+      });
     } else {
       // 如果没有备份数据,初始化一行
       addPlatformWellDetail();
@@ -1758,16 +1767,46 @@ const handlePlatformWellChange = (value) => {
 
 // 添加平台井详情行
 const addPlatformWellDetail = () => {
-  currentTask.value.platformWellDetails.push({
+  const newDetail = {
     taskId: '',
     wellName: '',
     workloadDesign: ''
-  });
+  };
+
+  // 如果是当前任务对应的平台井详情,插入到第一位
+  /* if (currentTask.value.platformWell === '1') {
+    currentTask.value.platformWellDetails.unshift(newDetail);
+  } else {
+    currentTask.value.platformWellDetails.push(newDetail);
+  } */
+
+  // 将新记录添加到数组末尾,而不是开头
+  currentTask.value.platformWellDetails.push(newDetail);
+  // 添加后重新排序,确保当前任务对应的记录始终在第一行
+  sortPlatformWellDetails();
 };
 
 // 删除平台井详情行
 const removePlatformWellDetail = (index: number) => {
   currentTask.value.platformWellDetails.splice(index, 1);
+  // 删除后重新排序
+  sortPlatformWellDetails();
+};
+
+// 平台井详情排序方法
+const sortPlatformWellDetails = () => {
+  if (!currentTask.value.platformWellDetails || currentTask.value.platformWellDetails.length === 0) {
+    return;
+  }
+
+  currentTask.value.platformWellDetails.sort((a, b) => {
+    // 当前任务对应的记录排在最前面
+    if (a.taskId === currentTask.value.id) return -1;
+    if (b.taskId === currentTask.value.id) return 1;
+
+    // 其他记录保持原有顺序(新添加的在后)
+    return 0;
+  });
 };
 
 /** 重置表单 */