7
0

2 Revīzijas d3752a70d3 ... 118a40072b

Autors SHA1 Ziņojums Datums
  xuzhancheng 118a40072b Merge branch 'stable' of http://39.98.153.250:9080/yudao/yudao-admin-yiqun into stable 1 dienu atpakaļ
  xuzhancheng 024a6e3cfc 计算管道数量 1 dienu atpakaļ

+ 31 - 3
yudao-ui-admin-vue3/src/views/pressure2/orderConfirm/pipeDetail.vue

@@ -137,7 +137,7 @@
               <el-button @click="handleEquipQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
               <el-button @click="resetEquipQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
               <!-- 删除设备 -->
-              <el-button type="danger" :disabled="selectedDetailRows.length === 0" @click="handleRejectEquip">
+              <el-button type="danger" :disabled="selectedDetailRows.length === 0 && selectedRows.length === 0" @click="handleRejectEquip">
                 <Icon icon="ep:failed" class="mr-5px" /> 拒绝约检
               </el-button>
               <el-button type="primary" @click="handleAddEquip"><Icon icon="ep:plus" class="mr-5px" /> 添加设备</el-button>
@@ -608,7 +608,7 @@
         <!-- <div v-for="equip in selectedRows" :key="equip.id" class="mb-2">
           工程号:{{ equip.projectNo }}
         </div> -->
-        管道数量: {{ selectedDetailRows?.length || 0 }}
+        管道数量: {{ selectedPipeCount }}
       </div>
       
       <div class="mb-4">
@@ -898,6 +898,19 @@ const areaDisplay = computed(() => {
   return district
 })
 
+const selectedPipeCount = computed(() => {
+  let count = 0
+  for (const row of selectedRows.value) {
+    const selectedSubRows = selectedDetailRows.value.filter(item => item.equipPipeId === row.id)
+    if (selectedSubRows.length > 0) {
+      count += selectedSubRows.length
+    } else {
+      count += (row.detailSaveReqVOS || []).length
+    }
+  }
+  return count
+})
+
 // 获取约检详情
 const getDetail = async () => {
   const id = route.query?.id as string
@@ -1454,10 +1467,25 @@ watch(datePickerType, (newVal) => {
 
 /** 拒绝约检 */
 const handleRejectEquip = async () => {
-  if (selectedRows.value.length === 0 || selectedDetailRows.value.length === 0) {
+  if (selectedRows.value.length === 0 && selectedDetailRows.value.length === 0) {
     ElMessage.warning('请选择要拒绝约检的设备')
     return
   }
+  // 为未加载子表数据的主表行预加载子表,确保管道数量正确显示
+  const unloadedRows = selectedRows.value.filter(row => !row.detailSaveReqVOS || row.detailSaveReqVOS.length === 0)
+  if (unloadedRows.length > 0) {
+    const promises = unloadedRows.map(row =>
+      PipeAppointmentConfirmOrderApi.getPipeEquipmentDetailListByPipeEquipmentId(orderDetail.value.id, row.id)
+    )
+    const results = await Promise.all(promises)
+    results.forEach((res, index) => {
+      const row = unloadedRows[index]
+      const find = equipList.value.find(item => item.id === row.id)
+      if (find) {
+        find.detailSaveReqVOS = res.list || []
+      }
+    })
+  }
   rejectForm.value.reasonDict = ''
   rejectForm.value.reason = ''
   rejectDialogVisible.value = true