From c1d2051abc8ca88cd07f0d7c56c0dbf8165d5c33 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 18 九月 2025 17:02:22 +0800
Subject: [PATCH] 2025.9.18 数据产品(待完成)

---
 src/views/fysp/data-product/ProdSceneReport.vue |   52 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 34 insertions(+), 18 deletions(-)

diff --git a/src/views/fysp/data-product/ProdSceneReport.vue b/src/views/fysp/data-product/ProdSceneReport.vue
index 0c55424..d9d626d 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"
@@ -80,7 +82,15 @@
     @submit="handleSelectAnyPhoto"
     :defaultFile="[sceneImg]"
   ></ArbitraryPhoto>
-  <el-dialog
+  <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"
@@ -88,15 +98,16 @@
   >
     <CompDevicePhono
       @selectPhonoEvent="handleSelectDevicePhoto"
-      :imgPathsDataSource="showDeviceImgList"
+      :imgPathsDataSource="showDeviceImgMap"
     >
     </CompDevicePhono>
-  </el-dialog>
+  </el-dialog> -->
 </template>
 <script setup>
 import { ref, computed } from 'vue';
 
 import { $fysp } from '@/api/index';
+import problemApi from '@/api/fysp/problemApi';
 import taskApi from '@/api/fysp/taskApi';
 import sceneApi from '@/api/fysp/sceneApi';
 import deviceApi from '@/api/fysp/deviceApi';
@@ -105,10 +116,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';
@@ -146,8 +157,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],
@@ -210,36 +222,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;
   }
 }
 
@@ -305,7 +318,7 @@
 
 function fetchProblems(s) {
   curProList.value = [];
-  taskApi.getProBySubtask(s.data.stGuid).then((res) => {
+  problemApi.getProBySubtask(s.data.stGuid).then((res) => {
     curProList.value = res;
 
     // 鐢熸垚宸℃煡鎻忚堪鏂囨湰
@@ -351,11 +364,15 @@
     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,
-      _deviceTypeName_2: d2 ? d2._deviceTypeName : '',
+      _showStatusPic_2: d2
+        ? d2._showStatusPic
+          ? d2._showStatusPic
+          : right_triangle
+        : right_triangle,
+      _deviceTypeName_2: d2 ? d2._deviceTypeName : ''
     });
   }
   const param = {
@@ -398,7 +415,6 @@
     }
   }
   const date = dayjs(curSubtask.value.data.stPlanTime).format('MM鏈圖D鏃�');
-  console.log(param);
 
   docLoading.value = true;
   exportDocx(

--
Gitblit v1.9.3