From dc16b68e74c18b617c8f79d82fd3c3306badbcbe Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 21 十一月 2024 17:22:23 +0800
Subject: [PATCH] 修复场景报告中设备图片选择弹框错误问题

---
 src/views/fysp/data-product/ProdSceneReport.vue |   76 +++++++++++++++++++++----------------
 1 files changed, 43 insertions(+), 33 deletions(-)

diff --git a/src/views/fysp/data-product/ProdSceneReport.vue b/src/views/fysp/data-product/ProdSceneReport.vue
index 1274d47..2f2a140 100644
--- a/src/views/fysp/data-product/ProdSceneReport.vue
+++ b/src/views/fysp/data-product/ProdSceneReport.vue
@@ -5,6 +5,7 @@
     </template>
     <template #aside>
       <SideList
+        legend
         :items="subtasks"
         :loading="sideLoading"
         @item-click="chooseSubtask"
@@ -12,6 +13,7 @@
     </template>
     <template #main>
       <el-scrollbar class="el-scrollbar" v-loading="mainLoading">
+        <div></div>
         <CompSceneConstructionInfo
           title="A銆佸熀鏈俊鎭�"
           :scene="formScene"
@@ -71,22 +73,24 @@
       </el-scrollbar>
     </template>
   </BaseContentLayout>
-  <el-dialog
-    v-model="anyPhotoDialog"
-    width="66%"
-    title="浠绘剰鍥剧墖"
-    destroy-on-close
-  >
-    <ArbitraryPhoto
-      :max-select="1"
-      :readonly="false"
-      :subtask="curSubtask.data"
-      @selectByAnyPhonoEvent="handleSelectAnyPhoto"
-      :defaultFile="[sceneImg]"
-    >
-    </ArbitraryPhoto>
-  </el-dialog>
-  <el-dialog
+  <ArbitraryPhoto
+    v-if="anyPhotoDialog"
+    v-model:dialog-visible="anyPhotoDialog"
+    :max-select="1"
+    :readonly="false"
+    :subtask="curSubtask.data"
+    @submit="handleSelectAnyPhoto"
+    :defaultFile="[sceneImg]"
+  ></ArbitraryPhoto>
+  <FYImageSelectDialog
+    v-model:dialog-visible="deiveceImgDialog"
+    title="璁惧鍥剧墖"
+    :max-select="1"
+    :typeList="showDeviceTypeList"
+    :typeImgMap="showDeviceImgMap"
+    @submit="handleSelectDevicePhoto"
+  ></FYImageSelectDialog>
+  <!-- <el-dialog
     title="璁惧鍥剧墖"
     width="66%"
     v-model="deiveceImgDialog"
@@ -94,10 +98,10 @@
   >
     <CompDevicePhono
       @selectPhonoEvent="handleSelectDevicePhoto"
-      :imgPathsDataSource="showDeviceImgList"
+      :imgPathsDataSource="showDeviceImgMap"
     >
     </CompDevicePhono>
-  </el-dialog>
+  </el-dialog> -->
 </template>
 <script setup>
 import { ref, computed } from 'vue';
@@ -111,10 +115,10 @@
 import { enumDevice, toLabel } from '@/enum/device/device';
 import { exportDocx } from '@/utils/doc';
 import right_triangle from '@/assets/image/right_triangle.png';
+import ProCheckProxy from '@/views/fysp/check/ProCheckProxy';
 
 import CompSceneConstructionInfo from '@/views/fysp/scene/CompSceneConstructionInfo.vue';
 import ArbitraryPhoto from '@/views/fysp/check/components/ArbitraryPhoto.vue';
-import CompDevicePhono from '@/views/fysp/check/components/CompDevicePhono.vue';
 import CompImgInfo from '@/views/fysp/data-product/components/CompImgInfo.vue';
 import CompProblemTable from './components/CompProblemTable.vue';
 import dayjs from 'dayjs';
@@ -152,8 +156,9 @@
   taskApi.getSubtaskSummary(param).then((res) => {
     const list = [];
     res.forEach((s) => {
-      const t = getSubtaskType(s);
+      const t = ProCheckProxy.getSubtaskType(s);
       list.push({
+        status: s.subtask.status,
         type: t,
         title: s.stName,
         categoly: s.stPlanTime.split('T')[0],
@@ -216,36 +221,37 @@
 // 璁惧鍥剧墖閫夋嫨瀵硅瘽妗�
 const deiveceImgDialog = ref(false);
 const showDeviceIndex = ref(0);
-const showDeviceImgList = ref([]);
+const showDeviceTypeList = ref([]);
+const showDeviceImgMap = ref(new Map());
 // 璁惧鍥剧墖鍒楄〃
 const deviceList = ref([]);
 
 function showDevicePhotoDialog(device, index) {
   showDeviceIndex.value = index;
   deiveceImgDialog.value = true;
-  showDeviceImgList.value = [];
+  showDeviceTypeList.value = [
+    { typeId: device.topTypeId, typeName: device._deviceTypeName }
+  ];
+  showDeviceImgMap.value.clear();
   let imgList = [];
   device._status
     .map((s) => s._picUrls)
     .forEach((pics) => {
       imgList = imgList.concat(
         pics.map((p) => {
-          return {
-            topTypeId: device.topTypeId,
-            _picUrl: p
-          };
+          return { url: p };
         })
       );
     });
   // console.log(imgList);
 
-  showDeviceImgList.value = imgList;
+  showDeviceImgMap.value.set(device.topTypeId, imgList);
 }
 
 function handleSelectDevicePhoto(data) {
   deiveceImgDialog.value = false;
   if (data.length > 0) {
-    deviceList.value[showDeviceIndex.value]._showStatusPic = data[0]._picUrl;
+    deviceList.value[showDeviceIndex.value]._showStatusPic = data[0].url;
   }
 }
 
@@ -357,10 +363,14 @@
     const d2 =
       i + 1 < deviceList.value.length ? deviceList.value[i + 1] : undefined;
     _deviceList.push({
-      _showStatusPic_1: d1._showStatusPic,
+      _showStatusPic_1: d1._showStatusPic ? d1._showStatusPic : right_triangle,
       _deviceTypeName_1: d1._deviceTypeName,
       // hasPic2: d2 ? true : false,
-      _showStatusPic_2: d2 ? d2._showStatusPic : right_triangle,
+      _showStatusPic_2: d2
+        ? d2._showStatusPic
+          ? d2._showStatusPic
+          : right_triangle
+        : right_triangle,
       _deviceTypeName_2: d2 ? d2._deviceTypeName : ''
     });
   }
@@ -404,16 +414,16 @@
     }
   }
   const date = dayjs(curSubtask.value.data.stPlanTime).format('MM鏈圖D鏃�');
-  console.log(param);
 
   docLoading.value = true;
   exportDocx(
-    '/鍗曚綋妯$増.docx',
+    '/鍗曚綋妯$増-v1.0.docx',
     param,
     `${param.sceneName}鍗曚綋锛�${date}锛�.docx`,
     {
       horizontalHeight: 368,
-      verticalWidth: 266
+      verticalWidth: 266,
+      scale: 1.367
     }
   ).finally(() => (docLoading.value = false));
 }

--
Gitblit v1.9.3