|
|
@@ -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
|