From ae234efb788bca2fa77f700442427996fa7f4aca Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 14 十一月 2024 11:58:00 +0800
Subject: [PATCH] Merge branch 'hc-dataproduct-v1112' into lsf-dataproduct-1024

---
 src/views/fysp/check/ProCheck.vue |  176 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 151 insertions(+), 25 deletions(-)

diff --git a/src/views/fysp/check/ProCheck.vue b/src/views/fysp/check/ProCheck.vue
index f0c4e53..8ca7913 100644
--- a/src/views/fysp/check/ProCheck.vue
+++ b/src/views/fysp/check/ProCheck.vue
@@ -3,7 +3,7 @@
     <template #header>
       <SearchBar @on-submit="search">
         <template #summary>
-          <CompSubTaskStatistic :subtasks="subtasks"/>
+          <CompSubTaskStatistic :subtasks="subtasks" />
         </template>
       </SearchBar>
     </template>
@@ -27,35 +27,85 @@
         v-loading="mainLoading"
       >
         <CompProblemCard
-          v-for="(p, i) in curProList"
+          v-if="compProblemCardVisible"
           :key="i"
-          :index="i+1"
+          v-for="(p, i) in curProList"
+          :index="i + 1"
           :problem="p"
+          :subtask="curSubtask.data"
+          :topTask="topTask"
+          @updated="onProSubmited"
           @submit="updateSubtask"
         ></CompProblemCard>
       </el-scrollbar>
       <el-empty v-else description="鏆傛棤璁板綍" v-loading="mainLoading" />
     </template>
   </BaseContentLayout>
+  <el-dialog
+    v-model="proAddOrUpdDialogVisible"
+    :before-close="proAddOrUpdDialogClose"
+    width="80%"
+    title="鏂板闂"
+  >
+    <CompProblemAddOrUpd
+      v-if="proAddOrUpdDialogVisible"
+      :subtask="curSubtask.data"
+      :topTask="topTask"
+      ref="compProblemAddOrUpdRef"
+      @submited="newProSubmit"
+    />
+  </el-dialog>
+  <ArbitraryPhoto
+    v-if="anyPhotoDialog"
+    v-model:dialog-visible="anyPhotoDialog"
+    title="鍦烘櫙鍥剧墖"
+    :readonly="true"
+    :subtask="curSubtask.data"
+    ref="arbitraryPhotoRef"
+  ></ArbitraryPhoto>
+  <el-drawer
+    direction="ltr"
+    v-model="deviceShowDialog"
+    :before-close="beforeDeviceShowDialogclose"
+    title="璁炬柦璁惧"
+    size="45%"
+  >
+    <CompDeviceShowTest v-if="deviceShowDialog" ref="deviceShowRef">
+    </CompDeviceShowTest>
+  </el-drawer>
 </template>
 
 <script>
+import ArbitraryPhoto from './components/ArbitraryPhoto.vue';
 import taskApi from '@/api/fysp/taskApi';
 import ProCheckProxy from './ProCheckProxy';
-
-import { ElMessageBox, ElNotification, ElMessage } from 'element-plus';
-
+import CompProblemAddOrUpd from './components/CompProblemAddOrUpd.vue';
 import CompProblemCard from './components/CompProblemCard.vue';
 import CompSubTaskStatistic from './components/CompSubTaskStatistic.vue';
-
+import CompDeviceShowTest from './components/CompDeviceShowTest.vue';
 export default {
-  components: { CompProblemCard, CompSubTaskStatistic },
+  components: {
+    CompProblemCard,
+    CompSubTaskStatistic,
+    CompProblemAddOrUpd,
+    ArbitraryPhoto,
+    CompDeviceShowTest
+  },
   data() {
     return {
+      compProblemCardVisible: true,
+      // 璁惧鍥�
+      deviceShowDialog: false,
+      // 浠绘剰鍥�
+      anyPhotoDialog: false,
+      // 鏂板闂
+      proAddOrUpdDialogVisible: false,
       //宸︿晶鑿滃崟鏍忓姞杞界姸鎬�
       sideLoading: false,
       //鍙充晶鍐呭鏍忓姞杞界姸鎬�
       mainLoading: false,
+      // 鎬讳换鍔�
+      topTask: {},
       //瀛愪换鍔″垪琛�
       subtasks: [],
       //褰撳墠閫変腑鐨勪换鍔�
@@ -67,16 +117,30 @@
         {
           name: '鏂板闂',
           color: 'success',
+          click: () => {
+            this.proAddOrUpdDialogVisible = true;
+          }
         },
         {
-          name: '浠绘剰鍥剧墖',
+          name: '鍦烘櫙鍥剧墖',
           color: 'warning',
+          click: () => {
+            this.anyPhotoDialog = true;
+          }
         },
         {
-          name: '鎵归噺瀹℃牳',
-          color: 'primary',
+          name: '璁炬柦璁惧',
+          color: 'info',
+          click: () => {
+            this.openDeviceShowDialog();
+          }
         },
-      ],
+        // {
+        //   name: '鎵归噺瀹℃牳',
+        //   color: 'primary',
+        //   click: () => {}
+        // }
+      ]
     };
   },
   computed: {
@@ -90,50 +154,50 @@
         {
           name: '浠诲姟鎬昏',
           value: 0,
-          type: 'info',
+          type: 'info'
         },
         {
           name: '闂鏈鏍�',
           value: 0,
           type: 'success',
-          icon: 'SuccessFilled',
+          icon: 'SuccessFilled'
         },
         {
           name: '闂閮ㄥ垎瀹℃牳',
           value: 0,
           type: 'success',
-          icon: 'SuccessFilled',
+          icon: 'SuccessFilled'
         },
         {
           name: '闂鍏ㄩ儴瀹℃牳',
           value: 0,
           type: 'success',
-          icon: 'SuccessFilled',
+          icon: 'SuccessFilled'
         },
         {
           name: '鏈暣鏀�',
           value: 0,
           type: 'info',
-          icon: 'WarningFilled',
+          icon: 'WarningFilled'
         },
         {
           name: '鏁存敼鏈鏍�',
           value: 0,
           type: 'info',
-          icon: 'WarningFilled',
+          icon: 'WarningFilled'
         },
         {
           name: '鏁存敼閮ㄥ垎瀹℃牳',
           value: 0,
           type: 'warning',
-          icon: 'WarningFilled',
+          icon: 'WarningFilled'
         },
         {
           name: '鏁存敼鍏ㄩ儴瀹℃牳',
           value: 0,
           type: 'warning',
-          icon: 'WarningFilled',
-        },    
+          icon: 'WarningFilled'
+        }
       ];
 
       this.subtasks.forEach((s) => {
@@ -158,16 +222,43 @@
       });
 
       return _summary;
-    },
+    }
   },
   methods: {
+    // 鎵撳紑璁惧鍥�
+    openDeviceShowDialog() {
+      this.deviceShowDialog = true;
+      this.$nextTick(() => {
+        this.$refs.deviceShowRef.init(this.curSubtask.data.scene);
+      });
+    },
+    // 鍏抽棴璁惧鍥惧脊绐�
+    beforeDeviceShowDialogclose(done) {
+      // this.deviceShowDialog = false;
+      done();
+    },
+    // 鍏抽棴浠绘剰鍥剧墖寮圭獥
+    beforeAnyPhotoDialogclose() {
+      this.anyPhotoDialog = false;
+    },
+    handleCloseCheckAnyPhono() {
+      this.beforeAnyPhotoDialogclose();
+    },
+    proAddOrUpdDialogClose() {
+      this.proAddOrUpdDialogVisible = false;
+    },
     //鏌ヨ瀛愪换鍔$粺璁′俊鎭�
     search(formSearch) {
+      this.topTask = formSearch.topTask;
       this.sideLoading = true;
       this.mainLoading = true;
       this.curProList = [];
       this.curSubtask = {};
-      taskApi.getSubtaskSummary(formSearch).then((res) => {
+      const param = {
+        topTaskId: formSearch.topTask.tguid,
+        sceneTypeId: formSearch.sceneTypeId
+      };
+      taskApi.getSubtaskSummary(param).then((res) => {
         const list = [];
         res.forEach((s) => {
           const t = this.getSubtaskType(s);
@@ -175,7 +266,7 @@
             type: t,
             title: s.stName,
             categoly: s.stPlanTime.split('T')[0],
-            data: s,
+            data: s
           });
         });
         this.subtasks = list;
@@ -201,6 +292,7 @@
     },
     //鐐瑰嚮宸︿晶鑿滃崟浠诲姟浜嬩欢
     chooseSubtask(s) {
+      // this.currInsGuid = s.data.insGuid
       this.sideLoading = false;
       this.mainLoading = true;
       // const controller = new AbortController();
@@ -214,12 +306,46 @@
           this.mainLoading = false;
         });
     },
+    // 闂鍗$墖缁勪欢涓诲姩鍙戣捣鍒锋柊鐖剁粍浠舵暟鎹�
     updateSubtask() {
       this.curSubtask.data.proCheckedNum++;
       this.curSubtask.type = this.getSubtaskType(this.curSubtask.data);
+      this.refreshCurrSubtask();
+    },
+    onProSubmited(isOk) {
+      this.proAddOrUpdDialogClose();
+      if (!isOk) {
+        return;
+      }
+      this.updateSubtask();
+    },
+    newProSubmit(isOk) {
+      this.proAddOrUpdDialogVisible = false;
+      if (!isOk) {
+        return;
+      }
+      this.refreshCurrSubtask();
+    },
+    // 鍒锋柊褰撳墠閫変腑瀛愪换鍔�
+    refreshCurrSubtask() {
+      this.compProblemCardVisible = false;
+      this.sideLoading = false;
+      this.mainLoading = true;
+      setTimeout(() => {
+        taskApi
+          .getProBySubtask(this.curSubtask.data.stGuid)
+          .then((res) => {
+            this.curProList = res;
+            // this.curSubtask = s;
+          })
+          .finally(() => {
+            this.mainLoading = false;
+            this.compProblemCardVisible = true;
+          });
+      }, 150);
     }
   },
-  mounted() {},
+  mounted() {}
 };
 </script>
 

--
Gitblit v1.9.3