Browse Source

pms 瑞都日报 任务井单工作量保存

zhangcl 2 weeks ago
parent
commit
433394b68c
1 changed files with 35 additions and 8 deletions
  1. 35 8
      src/views/pms/iotprojecttask/IotProjectTaskForm.vue

+ 35 - 8
src/views/pms/iotprojecttask/IotProjectTaskForm.vue

@@ -2009,19 +2009,32 @@ const getWorkloadDropdownListForTask = (task: any) => {
   // 从workloadMap中获取当前任务井号的工作量数据
   const workloadItems = workloadMap.value.get(task.wellName) || [];
 
-  // 将工作量数据转换为dropdownList格式
-  workloadItems.forEach(item => {
-    if (item.workloadUnit && item.workloadDesign) {
-      // 获取工作量单位的标签
+  if (workloadItems.length > 0) {
+    // 如果workloadMap中有数据,使用workloadMap的数据
+    workloadItems.forEach(item => {
+      if (item.workloadUnit && item.workloadDesign) {
+        // 获取工作量单位的标签
+        const unitOptions = getStrDictOptions(DICT_TYPE.PMS_PROJECT_WORKLOAD_UNIT);
+        const unitLabel = unitOptions.find(opt => opt.value === item.workloadUnit)?.label || item.workloadUnit;
+
+        dropdownList.push({
+          name: unitLabel, // 工作量单位名称
+          value: item.workloadDesign // 工作量值
+        });
+      }
+    });
+  } else {
+    // 【新增】如果workloadMap中没有数据,使用任务本身的工作量数据(直接从表格行中填写的数据)
+    if (task.workloadUnit && task.workloadDesign) {
       const unitOptions = getStrDictOptions(DICT_TYPE.PMS_PROJECT_WORKLOAD_UNIT);
-      const unitLabel = unitOptions.find(opt => opt.value === item.workloadUnit)?.label || item.workloadUnit;
+      const unitLabel = unitOptions.find(opt => opt.value === task.workloadUnit)?.label || task.workloadUnit;
 
       dropdownList.push({
-        name: unitLabel, // 工作量单位名称
-        value: item.workloadDesign // 工作量值
+        name: unitLabel,
+        value: task.workloadDesign
       });
     }
-  });
+  }
 
   return dropdownList;
 };
@@ -2144,6 +2157,20 @@ const submitForm = async () => {
     return;
   }
 
+  // 在同步任务前,确保平台井关联井的工作量数据正确设置
+  if (currentTask.value.platformWell === '1') {
+    currentTask.value.platformWellDetails.forEach(detail => {
+      // 如果该关联井在workloadMap中没有数据,但表格行中有工作量数据,则设置到workloadMap中
+      if (detail.wellName && !workloadMap.value.has(detail.wellName) &&
+        detail.workloadUnit && detail.workloadDesign) {
+        workloadMap.value.set(detail.wellName, [{
+          workloadUnit: detail.workloadUnit,
+          workloadDesign: detail.workloadDesign
+        }]);
+      }
+    });
+  }
+
   // 先同步当前任务表单数据到表格
   if (!syncCurrentTaskToTable()) {
     return;