From c4bcc6e78ecaec6e9ea68802be7c1d3a7b063512 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 21 十一月 2024 13:08:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'supervisionVue/hc-dataproduct-v1112' into lsf-dataproduct-1024

---
 src/views/fysp/check/ProCheck.vue |  198 +++++++++++++++++++++++++------------------------
 1 files changed, 100 insertions(+), 98 deletions(-)

diff --git a/src/views/fysp/check/ProCheck.vue b/src/views/fysp/check/ProCheck.vue
index 1fc2217..0e1c719 100644
--- a/src/views/fysp/check/ProCheck.vue
+++ b/src/views/fysp/check/ProCheck.vue
@@ -8,7 +8,11 @@
       </SearchBar>
     </template>
     <template #aside>
-      <SideList :items="subtasks" :loading="sideLoading" @item-click="chooseSubtask"></SideList>
+      <SideList
+        :items="subtasks"
+        :loading="sideLoading"
+        @item-click="chooseSubtask"
+      ></SideList>
     </template>
     <template #main>
       <ToolBar
@@ -17,74 +21,58 @@
         :buttons="buttons"
         :loading="mainLoading"
       ></ToolBar>
-      <el-scrollbar v-if="curProList.length > 0" class="el-scrollbar" v-loading="mainLoading">
+      <el-scrollbar
+        v-if="curProList.length > 0"
+        class="el-scrollbar"
+        v-loading="mainLoading"
+      >
         <CompProblemCard
-          v-if="compProblemCardVisible"
           :key="i"
           v-for="(p, i) in curProList"
           :index="i + 1"
           :problem="p"
           :subtask="curSubtask.data"
           :topTask="topTask"
-          @updated="onProSubmited"
           @submit="updateSubtask"
+          @check="handleProblemCheck"
         ></CompProblemCard>
       </el-scrollbar>
       <el-empty v-else description="鏆傛棤璁板綍" v-loading="mainLoading" />
     </template>
   </BaseContentLayout>
-  <el-dialog
-    v-model="proAddOrUpdDialogVisible"
-    :before-close="proAddOrUpdDialogClose"
-    width="80%"
+  <CompProblemAddOrUpd
     title="鏂板闂"
-  >
-    <CompProblemAddOrUpd
-      v-if="proAddOrUpdDialogVisible"
-      :subtask="curSubtask.data"
-      :topTask="topTask"
-      ref="compProblemAddOrUpdRef"
-      @submited="newProSubmit"
-    />
-  </el-dialog>
-  <el-dialog
-    v-model="anyPhotoDialog"
-    :before-close="beforeAnyPhotoDialogclose"
-    width="80%"
-    title="浠绘剰鍥剧墖"
-  >
-    <ArbitraryPhoto
-      v-if="anyPhotoDialog"
-      :readonly="true"
-      :subtask="curSubtask.data"
-      ref="arbitraryPhotoRef"
-      @selectByAnyPhonoEvent="handleCloseCheckAnyPhono"
-    >
-    </ArbitraryPhoto>
-  </el-dialog>
-  <el-drawer
-    :direction="rtl"
-    v-model="deviceShowDialog"
-    :before-close="beforeDeviceShowDialogclose"
+    v-if="proAddOrUpdDialogVisible"
+    v-model:visible="proAddOrUpdDialogVisible"
+    :subtask="curSubtask.data"
+    :topTask="topTask"
+    ref="compProblemAddOrUpdRef"
+    @cancel="onAddProCanceled"
+    @submit="updateSubtask"
+  />
+  <ArbitraryPhoto
+    v-if="anyPhotoDialog"
+    v-model:dialog-visible="anyPhotoDialog"
+    :readonly="true"
+    :subtask="curSubtask.data"
+    ref="arbitraryPhotoRef"
+  ></ArbitraryPhoto>
+  <CompDeviceShowTest
     title="璁炬柦璁惧"
-    size="65%"
+    v-model:visible="deviceShowDialog"
+    v-if="deviceShowDialog"
+    ref="deviceShowRef"
   >
-    <CompDeviceShowTest v-if="deviceShowDialog" ref="deviceShowRef"> </CompDeviceShowTest>
-  </el-drawer>
+  </CompDeviceShowTest>
 </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 CompDeviceShow from './components/CompDeviceShow.vue';
-
 import CompProblemCard from './components/CompProblemCard.vue';
 import CompSubTaskStatistic from './components/CompSubTaskStatistic.vue';
-import CompProRecent from './components/CompProRecent.vue';
 import CompDeviceShowTest from './components/CompDeviceShowTest.vue';
 export default {
   components: {
@@ -92,12 +80,10 @@
     CompSubTaskStatistic,
     CompProblemAddOrUpd,
     ArbitraryPhoto,
-    CompDeviceShowTest,
-    CompProRecent
+    CompDeviceShowTest
   },
   data() {
     return {
-      compProblemCardVisible: true,
       // 璁惧鍥�
       deviceShowDialog: false,
       // 浠绘剰鍥�
@@ -126,7 +112,7 @@
           }
         },
         {
-          name: '浠绘剰鍥剧墖',
+          name: '鍦烘櫙鍥剧墖',
           color: 'warning',
           click: () => {
             this.anyPhotoDialog = true;
@@ -138,12 +124,12 @@
           click: () => {
             this.openDeviceShowDialog();
           }
-        },
-        {
-          name: '鎵归噺瀹℃牳',
-          color: 'primary',
-          click: () => {}
         }
+        // {
+        //   name: '鎵归噺瀹℃牳',
+        //   color: 'primary',
+        //   click: () => {}
+        // }
       ]
     };
   },
@@ -236,29 +222,18 @@
         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.obj;
+      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);
@@ -279,14 +254,33 @@
     //鑾峰彇浠诲姟闂鐨勫鏍告儏鍐�
     getSubtaskType(s) {
       let type = 0;
+      // 鏃犻棶棰�
       if (s.proNum == 0) {
-        type = 2;
-      } else if (s.proCheckedNum == 0) {
         type = 0;
-      } else if (s.proCheckedNum < s.proNum) {
+      } 
+      // 闂鏈鏍�
+      else if (s.proCheckedNum == 0) {
         type = 1;
-      } else {
+      }
+      // 闂閮ㄥ垎瀹℃牳
+      else if (s.proCheckedNum < s.proNum) {
         type = 2;
+      }
+      // 鏈暣鏀� 
+      else if (s.changeNum < s.proNum) {
+        type = 3;
+      }
+      // 鏁存敼鏈鏍�
+      else if (s.changeCheckedNum == 0) {
+        type = 4;
+      }
+      // 鏁存敼閮ㄥ垎瀹℃牳
+      else if (s.changeCheckedNum < s.changeNum) {
+        type = 5;
+      }
+      // 瀹屽叏瀹℃牳
+      else {
+        type = 6;
       }
       return type;
     },
@@ -306,46 +300,54 @@
           this.mainLoading = false;
         });
     },
+    onAddProCanceled() {
+    },
     // 闂鍗$墖缁勪欢涓诲姩鍙戣捣鍒锋柊鐖剁粍浠舵暟鎹�
-    updateSubtask(isOk) {
+    updateSubtask(refresh = false) {
       this.curSubtask.data.proCheckedNum++;
       this.curSubtask.type = this.getSubtaskType(this.curSubtask.data);
-      if (!isOk) {
-        return;
+      if (this.proAddOrUpdDialogVisible) {
+        this.proAddOrUpdDialogVisible = false;
       }
-      this.refreshCurrSubtask();
-    },
-    onProSubmited(isOk) {
-      this.proAddOrUpdDialogClose();
-      if (!isOk) {
-        return;
-      }
-      this.updateSubtask(isOk);
-    },
-    newProSubmit(isOk) {
-      this.proAddOrUpdDialogVisible = false;
-      if (!isOk) {
-        return;
-      }
-      this.refreshCurrSubtask();
+      this.refreshCurrSubtask(refresh);
     },
     // 鍒锋柊褰撳墠閫変腑瀛愪换鍔�
-    refreshCurrSubtask() {
-      this.compProblemCardVisible = false;
+    refreshCurrSubtask(refresh) {
       this.sideLoading = false;
-      this.mainLoading = true;
+      // this.mainLoading = true;
       setTimeout(() => {
         taskApi
           .getProBySubtask(this.curSubtask.data.stGuid)
           .then((res) => {
-            this.curProList = res;
+            if (refresh) {
+              this.curProList = res;
+              return;
+            }
+            const currProLen = this.curProList.length;
+            // 涓嶆敼鍙樻暟缁勫鍍忓紩鐢ㄧ殑鍓嶆彁涓嬮噸鏂拌祴鍊�
+            for (let index = 0; index < res.length; index++) {
+              const element = res[index];
+              if (currProLen < index + 1) {
+                this.curProList.push(element);
+              } else {
+                this.curProList[index] = element;
+              }
+            }
             // this.curSubtask = s;
           })
           .finally(() => {
-            this.mainLoading = false;
-            this.compProblemCardVisible = true;
+            // this.mainLoading = false;
           });
       }, 150);
+    },
+    // 闂瀹℃牳瀹屾垚鍚庯紝鏇存柊宸︿晶鍒楄〃瀵瑰簲瀛愪换鍔$姸鎬�
+    handleProblemCheck(){
+      const status = ProCheckProxy.calProStatus(this.curProList)
+      this.curSubtask.data.proNum = status.proNum
+      this.curSubtask.data.proCheckedNum = status.proCheckedNum
+      this.curSubtask.data.changeNum = status.changeNum
+      this.curSubtask.data.changeCheckedNum = status.changeCheckedNum
+      this.curSubtask.type = this.getSubtaskType(this.curSubtask.data)
     }
   },
   mounted() {}

--
Gitblit v1.9.3