From 34257f504330191b1a698eb48b52217095db47fe Mon Sep 17 00:00:00 2001
From: zmc <zmc_li@foxmail.com>
Date: 星期一, 04 九月 2023 18:10:46 +0800
Subject: [PATCH] 扬尘vue

---
 src/views/exception/SiteAuditAssistance.vue | 1269 ++++++++++++++++++++++++++++-----------------------------
 1 files changed, 628 insertions(+), 641 deletions(-)

diff --git a/src/views/exception/SiteAuditAssistance.vue b/src/views/exception/SiteAuditAssistance.vue
index 303f548..49f083e 100644
--- a/src/views/exception/SiteAuditAssistance.vue
+++ b/src/views/exception/SiteAuditAssistance.vue
@@ -1,25 +1,25 @@
 <script>
-import InputSearch from '../../sfc/InputSearch.vue';
-import ExceptionType from '../../sfc/ExceptionType.vue';
-import TimeSelectWithShortCuts from '../../sfc/TimeSelectWithShortCuts.vue';
-import { useFetch } from '../../utils/fetch.js';
+import InputSearch from '@/sfc/InputSearch.vue';
+import ExceptionType from '@/sfc/ExceptionType.vue';
+import TimeSelectWithShortCuts from '@/sfc/TimeSelectWithShortCuts.vue';
 import { useCommonFunction } from '../../utils/common.js';
-import AreaAndmonitorType from '../../sfc/AreaAndmonitorType.vue'
-
+import AreaAndmonitorType from '@/sfc/AreaAndmonitorType.vue';
 //  寮傚父鍥惧舰寮傛缁勪欢
 const DustLineChart = defineAsyncComponent(() =>
-  import('../../sfc/DustLineChart.vue')
+  import('./components/DustLineChart.vue')
 );
-
+import submitApi from '@/api/audit/submitApi.js';
 import dayjs from 'dayjs';
+import ButtonClick from '@/sfc/ButtonClick.vue';
+import index from '@/utils/exception_common_function/index.js';
 export default {
   components: {
     ExceptionType,
     InputSearch,
     TimeSelectWithShortCuts,
-  
     DustLineChart,
-    AreaAndmonitorType
+    AreaAndmonitorType,
+    ButtonClick
   },
   data() {
     return {
@@ -28,8 +28,7 @@
         // 绔欑偣鍚嶇О
         name: '',
         // 閫夋嫨鐨勫紓甯哥被鍨�
-        exceptionName: [],
-       
+        exceptionName: []
       },
       beginTime: '',
       endTime: '',
@@ -37,6 +36,8 @@
       tableData: [],
       // 琛ㄦ牸灞曠ず鐨勬暟鎹�
       displayData: [],
+      // 琛ㄦ牸鍒楀閫�
+      multipleSelection: [],
       // 琛ㄦ牸楂樺害
       tableHeight: 400,
       // 琛ㄦ牸鏁版嵁
@@ -45,64 +46,30 @@
       // 姣忛〉鏉℃暟
       pageSize: 20,
       total: 0,
-  
+
       // 琛ㄦ牸鏌ヨ鏃犳暟鎹椂
       isNoData: false,
       // 瀵硅瘽妗嗘樉绀�
       dialogTableVisible: false,
       // 淇濆瓨寮傚父瀵瑰簲鐨勫簵閾哄悕绉板拰璁惧缂栧彿
-      exception: {
-        // 鏂數鎴栨柇缃�
-        exception0: [],
-        // 鏁版嵁瓒呬綆
-        exception1: [],
-        // 瓒呮爣
-        exception2: [],
-        // 鏁版嵁闀挎椂娈垫棤娉㈠姩
-        exception3: [],
-        // 閲忕骇绐佸彉寮傚父
-        exception4: [],
-        // 涓磋繎瓒呮爣寮傚父
-        exception5: [],
-        // 鍗曟棩瓒呮爣娆℃暟涓寸晫寮傚父
-        exception6: [],
-        // 婊戝姩骞冲潎鍊煎紓甯�
-        exception7: [],
-        
-
-        // 璇ユ椂娈电殑寮傚父鏁伴噺
-        exception0Num: 0,
-        exception1Num: 0,
-        exception2Num: 0,
-        exception3Num: 0,
-        exception4Num: 0,
-        exception5Num: 0,
-        exception6Num: 0,
-        exception7Num: 0,
-      },
-      // 绔欑偣鎬绘暟閲�
-      siteTotal: 0,
-
-      // 寮傚父鐨勭珯鐐规�绘暟閲�
-      // exceptionSiteNum:0,
 
       // 閫変腑琛ㄦ牸褰撳墠琛岀殑鏁版嵁
       tableCurrentRowData: null,
       // 閫変腑琛ㄦ牸褰撳墠琛岀殑绱㈠紩
-      selectedRowIndex:-2,
+      selectedRowIndex: -2,
       // 椤甸潰涓婄殑鎸夐挳鍔犺浇鐘舵��
       loading: {
+        submitAudit: false,
         // 鏌ヨ鎸夐挳
-        queryButton:false,
-            // 琛ㄦ牸鍔犺浇涓�
-       tableLoading: false,
+        queryButton: false,
+        // 琛ㄦ牸鍔犺浇涓�
+        tableLoading: false,
         // 涓婁竴鏉℃寜閽�
         preButton: false,
         // 涓嬩竴鏉℃寜閽�
         afterButton: false,
         // 鎶樼嚎鍥�
-        lineChart: false,
-        
+        lineChart: false
       },
 
       dialog: {
@@ -121,23 +88,27 @@
       },
 
       // 鏍囪浣�
-      flag:{
+      flag: {
         // 鍔犺浇鏃� 涓婁笅鏉℃寜閽笉鑳藉啀鐐瑰嚮
-        banTouch:0,
+        banTouch: 0,
         // 0浠h〃鍒嗛〉锛�1浠h〃涓嶅垎椤�
-        originClick:0
-      }
-
+        originClick: 0
+      },
+      auditDialog: {
+        visible: false,
+        // 瀹℃牳浜�
+        checker: 'admin',
+        checkDate: '',
+        checkerNotes: '',
+        enterpriseNotes: ''
+      },
+      auditTableData: [],
+      auditNumByTime: 0
     };
   },
   setup() {
-    // provide('search',readonly(form))
-    const { backData, error, request } = useFetch();
     const { isExceedOneMonth } = useCommonFunction();
     return {
-      backData,
-      error,
-      request,
       isExceedOneMonth
     };
   },
@@ -167,79 +138,295 @@
       }
     },
 
-    // 褰撻�夋嫨鐨勬椂闂村彂鐢熷彉鍖栨椂锛屽紓甯稿垎鏋愰儴鍒嗙殑寮傚父搴楅摵鏁伴噺鍚屾鍙樺寲
-
-        beginTime() {
-          this.getShopNames();
-      },
-      endTime() {
-        this.getShopNames();
-      },
     dialogTableVisible() {
       window.addEventListener('resize', this.updateChart);
     }
   },
+  computed: {
+    unCheckedNUm() {
+      return this.total - this.auditNumByTime;
+    },
+    // 瀹℃牳姣斾緥
+    checkedRate() {
+      return (this.auditNumByTime / this.total) * 100;
+    }
+  },
   mounted() {
-
-
     this.backExceptionDataAWeekAgo();
     this.calTableHeight();
-    // 鏌ヨ鏃堕棿娈电殑鍚勫紓甯哥殑绔欑偣锛屾煡璇㈣鏃堕棿鍖洪棿鐨勫悇寮傚父鏁伴噺
-    this.getShopNames();
-
   },
 
   methods: {
+    /**
+     * 鏌ョ湅璇ユ鏃堕棿鍐呭凡瀹℃牳鐨勬暟閲�
+     * @param锛�
+     * @returns锛�
+     */
+    gethasCheckedNumByTime() {
+      submitApi.getAuditNumByTime(this.beginTime, this.endTime).then((res) => {
+        this.auditNumByTime = res.data.data.length;
+      });
+    },
+    /**
+     * 澶氶�夊垪锛堝凡瀹℃牳鐨勮涓嶄細鍔犲叆鍏朵腑锛�
+     * @param
+     * @returns
+     */
+    handleSelectionChange(val) {
+      console.log('閫変腑鐨勮涓猴細', val);
+      this.multipleSelection = val.filter((row) => row.auditStatus != 3);
+    },
+    /**
+     * 瑙﹀彂鎵归噺瀹℃牳
+     * @param锛�
+     * @returns锛�
+     */
+    quickReview() {
+      if (this.multipleSelection.length != 0) {
+        ElMessageBox.confirm('纭畾瑕佹壒閲忓鏍稿悧?', {
+          confirmButtonText: '纭',
+          cancelButtonText: '鍙栨秷',
+          type: 'warning',
+          center: true
+        }).then(() => {
+          this.noNoteCheck(this.multipleSelection);
+          setTimeout(() => {
+            this.gethasCheckedNumByTime();
+            ElMessage.success('鎵归噺瀹℃牳瀹屾垚');
+          }, 1500);
+        });
+      } else {
+        ElMessage('鏈�変腑琛ㄦ牸鐨勮');
+      }
+    },
+    /**
+     * 娓呴櫎宸查�変腑鐨勮〃鏍艰锛�
+     * @param锛�
+     * @returns锛�
+     */
+    clearSelected() {
+      this.$refs.table.clearSelection();
+    },
+    toggleSelection() {
+      this.$refs.table.clearSelection();
+    },
+    /**
+     *鎻愪氦鎵归噺瀹℃牳銆傞粯璁ゅ鏍镐汉锛岀┖澶囨敞
+     * @param锛� 闇�瑕佸揩閫熷鏍哥殑琛�
+     * @returns锛�
+     */
+    noNoteCheck(rows) {
+      rows.forEach((item) => {
+        submitApi.submitAudit('admin', '鏃�', '鏃�', item.id, 3);
+        item.auditStatus = 3;
+      });
+    },
+    close() {
+      // if (this.auditDialog.checkerNotes || this.auditDialog.enterpriseNotes) {
+      //   ElMessageBox.confirm('杩欏皢浼氾紝纭畾瑕佸叧闂悧', '鎻愮ず',
+      //     {
+      //       confirmButtonText: '纭畾',
+      //       cancelButtonText: '鍙栨秷',
+      //       type: 'warning',
+      //       center :'true',
+      //       icon: markRaw(Delete),
+      //       draggable: true,
+      //     }).then(() => {
+      //       ElMessage({
+      //         type: 'success',
+      //         message: '宸插叧闂�',
+      //       })
+      //       this.auditDialog.visible = false
+      //     })
+      // }else{
+      //   this.auditDialog.visible = false
+      // }
+      this.auditDialog.visible = false;
+    },
+    // 琛ㄦ牸琛岀殑棰滆壊
+    tableRowClassName({ row }) {
+      if (row.auditStatus == 0) {
+        return 'black-row';
+      } else if (row.auditStatus == 1 || row.auditStatus == 2) {
+        return 'deep-gray-row';
+      } else {
+        return 'complete--gray-row';
+      }
+    },
+    /**
+     * 鍙戣姹�
+     * @param锛氬鏍镐汉锛屽鏍镐汉澶囨敞锛屼紒涓氬娉紝寮傚父璁板綍缂栧彿 璇ユ潯寮傚父鐨勫鏍哥姸鎬�
+     * @returns锛�
+     */
+    sendAudit(user, checker, enterprise, exceptionId, status) {
+      submitApi
+        .submitAudit(
+          user,
+          this.auditDialog.checkerNotes,
+          this.auditDialog.enterpriseNotes,
+          exceptionId,
+          status
+        )
+        .then((res) => {
+          if (res.data.code == 1) {
+            ElMessage.success('鎻愪氦鎴愬姛');
+            this.tableCurrentRowData.auditStatus = status;
+            this.tableCurrentRowData.checker = user;
+            if (checker) {
+              this.tableCurrentRowData.checkerContent = checker;
+            }
+            if (enterprise) {
+              this.tableCurrentRowData.enterpriseContent = enterprise;
+            }
+          } else {
+            ElMessage.warning('鎻愪氦澶辫触');
+          }
+          this.loading.submitAudit = false;
+          this.auditDialog.visible = false;
+        });
+    },
+    // 鏇存柊瀹℃牳鍐呭
+    updateAud(exceptionId, checkerContent, enterpriseContent, auditStatus) {
+      submitApi
+        .updateAudit(
+          exceptionId,
+          checkerContent,
+          enterpriseContent,
+          auditStatus
+        )
+        .then((res) => {
+          if (res.data.code == 1) {
+            ElMessage.success('鎻愪氦鎴愬姛');
+            this.tableCurrentRowData.auditStatus = auditStatus;
+
+            if (checkerContent) {
+              this.tableCurrentRowData.checkerContent = checkerContent;
+            }
+            if (enterpriseContent) {
+              this.tableCurrentRowData.enterpriseContent = enterpriseContent;
+            }
+          } else {
+            ElMessage.warning('鎻愪氦澶辫触');
+          }
+          this.loading.submitAudit = false;
+          this.auditDialog.visible = false;
+        });
+    },
+    /**
+     * 鎻愪氦瀹℃牳
+     * @param锛�
+     * @returns锛�
+     */
+    submitAudit() {
+      // 鍚屾椂濉啓浜嗗鏍镐汉鍛樺拰浼佷笟鐨勫娉�
+      this.loading.submitAudit = true;
+      if (this.auditDialog.checkerNotes && this.auditDialog.enterpriseNotes) {
+        this.sendAudit(
+          this.auditDialog.checker,
+          this.auditDialog.checkerNotes,
+          this.auditDialog.enterpriseNotes,
+          this.tableCurrentRowData.id,
+          3
+        );
+      }
+      // 鍙~浜嗗鏍镐汉鍛樺娉�
+      else if (
+        this.auditDialog.checkerNotes &&
+        !this.auditDialog.enterpriseNotes
+      ) {
+        // 绗竴娆″垱寤�
+        if (this.tableCurrentRowData.auditStatus == 0) {
+          this.sendAudit(
+            this.auditDialog.checker,
+            this.auditDialog.checkerNotes,
+            this.auditDialog.enterpriseNotes,
+            this.tableCurrentRowData.id,
+            1
+          );
+        }
+        // 鍙洿鏂�
+        else {
+          this.updateAud(
+            this.tableCurrentRowData.id,
+            this.auditDialog.checkerNotes,
+            this.auditDialog.enterpriseNotes,
+            3
+          );
+        }
+      }
+      // 鍙~浜嗕紒涓氬娉ㄥ娉�
+      else if (
+        this.auditDialog.enterpriseNotes &&
+        !this.auditDialog.checkerNotes
+      ) {
+        // 绗竴娆″垱寤�
+        if (this.tableCurrentRowData.auditStatus == 0) {
+          this.sendAudit(
+            this.auditDialog.checker,
+            this.auditDialog.checkerNotes,
+            this.auditDialog.enterpriseNotes,
+            this.tableCurrentRowData.id,
+            2
+          );
+        } else {
+          // 鍙洿鏂�
+          this.updateAud(
+            this.tableCurrentRowData.id,
+            this.auditDialog.checkerNotes,
+            this.auditDialog.enterpriseNotes,
+            3
+          );
+        }
+      } else {
+        ElMessage.warning('璇峰~鍐欏畬鏁存墠鑳芥彁浜�');
+      }
+
+      this.loading.submitAudit = false;
+      // 娓呴櫎
+      this.auditDialog.checkerNotes = '';
+      this.auditDialog.enterpriseNotes = '';
+    },
+
+    /**
+     * 寮瑰嚭瀵硅瘽妗嗗苟涓斾繚瀛樺綋鍓嶈鏁版嵁
+     * @param锛�
+     * @createTime:2023-08-17
+     * @returns锛�
+     */
+    openAuditDiag(row) {
+      this.auditDialog.visible = true;
+      this.tableCurrentRowData = row;
+      console.log(row);
+    },
 
     /**
      * description锛氱偣鍑诲紓甯哥珯鐐瑰悕瀛楁椂 杩斿洖鐨勬暟鎹�
-     * @param锛� 
+     * @param锛�
      * @createTime:2023-08-17
      * @returns锛�
      */
     getAbnormalDataByClick(val) {
-      this.flag.originClick = 1
+      this.flag.originClick = 1;
 
-      this.tableData = val
-      this.total = this.tableData.length
+      this.tableData = val;
+      this.total = this.tableData.length;
       // 榛樿鏄剧ず绗竴椤�
       this.handleCurrentChange(1);
     },
-     // 鐐瑰嚮琛ㄦ牸鐨勮鏃�
-     selectTableRow() {
+    // 鐐瑰嚮琛ㄦ牸鐨勮鏃�
+    selectTableRow() {
       // 鑾峰彇褰撳墠琛岀殑绱㈠紩
-      this.selectedRowIndex = this.displayData.indexOf(this.tableCurrentRowData);
-
+      this.selectedRowIndex = this.displayData.indexOf(
+        this.tableCurrentRowData
+      );
     },
 
-    /**
-     * description锛氳繑鍥炴椂闂存暟缁勶紝浠庡紑濮嬫椂闂寸殑鍚�15鍒嗛挓鍒扮粨鏉熸椂闂翠负姝€��
-     * @param锛� 寮傚父鐨勫紑濮�,寮傚父缁撴潫鏃堕棿
-     * @createTime:2023-08-17
-     * @returns锛氭瘮濡�12:00:00-13:00:00 鎵�浠ヨ繑鍥炵殑鏁扮粍鍏冪礌鏄� 12:00:00 ,12:15:00,12:30:00,12:45:00锛�13:00:00
-     */
-    descTenTime(begin, end) {
-      let time = [];
-      if (begin == end) {
-        time.push(begin);
-        return time;
-      }
-      time.push(begin);
-      let temp = dayjs(begin).add(15, 'minute').format('YYYY-MM-DD HH:mm:ss');
-      while (temp != end) {
-        time.push(temp);
-        temp = dayjs(temp).add(15, 'minute').format('YYYY-MM-DD HH:mm:ss');
-      }
-      // 鍔犱笂寮傚父鐨勭粨鏉熸椂闂�
-      time.push(temp);
-      return time;
-    },
     /**
      * description锛氭柇鐢垫垨鏂綉鏃惰缃殑琛ㄦ牸鏁版嵁
      */
-    setOfflineTbleData(){
+    setOfflineTbleData() {
       // 鏃犳暟鎹椂鐨勬椂闂存暟缁� 鏃堕棿鐩稿樊15鍒嗛挓
-      const abnormalTimeTenMinute = this.descTenTime(
+      const abnormalTimeTenMinute = index.descFiftyTime(
         this.tableCurrentRowData.beginTime,
         this.tableCurrentRowData.endTime
       );
@@ -250,7 +437,7 @@
         this.dialog.historyData.push({
           name: this.tableCurrentRowData.name,
           mnCode: this.tableCurrentRowData.mnCode,
-          dutyCompany:this.tableCurrentRowData.dutyCompany,
+          dutyCompany: this.tableCurrentRowData.dutyCompany,
           lst: abnormalTimeTenMinute[i],
           dustValue: ''
         });
@@ -260,63 +447,6 @@
       this.exceptionTotal = abnormalTimeTenMinute.length;
     },
 
-    /**
-     * description锛氳繑鍥炲紑濮嬫椂闂寸殑鍓�45鍒嗛挓鐨勬椂闂寸偣锛岀粨鏉熸椂闂村悗45鍒嗛挓鐨勬椂闂寸偣
-     * @param锛� 寮傚父鐨勫紑濮嬫椂闂达紝寮傚父鐨勭粨鏉熸椂闂淬��
-     * @returns锛氭暟缁勩�倀ime[0],time[1],time[2],time[3]鍒嗗埆浠h〃寮傚父鍖洪棿鍓�45鍒嗛挓鐨勬椂闂寸偣锛屽墠15鍒嗛挓鐨勬椂闂寸偣,鍚�15鍒嗛挓鐨勬椂闂寸偣锛屽悗45鍒嗛挓鐨勬椂闂寸偣
-     */
-    before45AndAfter45(begin, end) {
-      let time = [];
-      // 鍓嶄竴娈电殑寮�濮嬫椂闂�
-      const before45MinBegin = dayjs(begin)
-        .subtract(45, 'minute')
-        .format('YYYY-MM-DD HH:mm:ss');
-      // 鍓嶄竴娈电殑缁撴潫鏃堕棿
-      const before15MinBegin = dayjs(begin)
-        .subtract(15, 'minute')
-        .format('YYYY-MM-DD HH:mm:ss');
-
-      // 鍚庝竴娈电殑寮�濮嬫椂闂�
-      const after15MinBegin = dayjs(end)
-        .add(15, 'minute')
-        .format('YYYY-MM-DD HH:mm:ss');
-      // 寰�鍚�40鍒嗛挓
-      const after45MinEnd = dayjs(end)
-        .add(45, 'minute')
-        .format('YYYY-MM-DD HH:mm:ss');
-      time.push(before45MinBegin);
-      time.push(before15MinBegin);
-      time.push(after15MinBegin);
-      time.push(after45MinEnd);
-      return time;
-    },
-    /**
-     * description锛氳繑鍥炴煇绔欑偣鍦ㄨ鏃舵鍘嗗彶鏁版嵁鐨刧et璇锋眰鍙傛暟
-     * @param锛� 绔欑偣鍚嶇О锛� 寮�濮嬫椂闂达紝 缁撴潫鏃堕棿
-     * @returns锛氬璞�
-     */
-    requestGetParms(name, begin, end) {
-      return {
-        siteName: name,
-        beginTime: begin,
-        endTime: end
-      };
-    },
-    /**
-     * description锛氱浉宸灏戜釜15鍒嗛挓  璁$畻涓寘鎷紑濮嬫椂闂达紝缁撴潫鏃堕棿銆�
-     * @param锛� 寮傚父寮�濮嬫椂闂达紝寮傚父缁撴潫鏃堕棿
-     * @returns锛氭暣鏁�
-     */
-    diffFiftyMinutesNum(beginNormal, endNormal) {
-      // 灏嗗紑濮嬫椂闂村拰缁撴潫鏃堕棿杞崲涓篸ayjs瀵硅薄
-      const start = dayjs(beginNormal).subtract(15, 'minute');
-      const end = dayjs(endNormal);
-
-      // 璁$畻缁撴潫鏃堕棿鍑忓幓寮�濮嬫椂闂翠腑闂寸浉宸灏戜釜鍗佸垎閽�
-      const diffInMinutes = end.diff(start, 'minute');
-      const diffInTenMinutes = Math.floor(diffInMinutes / 15);
-      return diffInTenMinutes;
-    },
     // 娈电數鎴栨柇缃戝尯闂存棤鏁版嵁锛岄渶瑕佽ˉ鍏呫�傚叾浠栫殑閮芥湁鏁版嵁锛岀洿鎺ヤ竴娆¤姹傚叏閮ㄦ椂娈靛氨濂�
 
     // 鏍规嵁寮傚父鍖洪棿鏋勯�犲墠鍚庣棣栧熬 鍓嶅尯闂� 涓棿鍖洪棿 鍚庡尯闂�
@@ -328,99 +458,48 @@
      * description锛氫竴娆¤姹傚洖鍓嶄腑鍚庡尯闂寸殑鏁版嵁,瀵规暟鎹繘琛屽垎鏋�
      * @param锛� 鍓嶄腑鍚庡尯闂寸殑璇锋眰鍙傛暟锛屽墠涓悗鐨勬�诲尯闂存椂闂达紝寮傚父寮�濮嬫椂闂达紝涓�鍦虹粨鏉熸椂闂�
      */
-     otherExceptionRequest(allTimeArgs,allTime,exceptionBT,exceptionET) {
-       // 鎶樼嚎鍥惧姞杞戒腑鏁堟灉
-      this.loading.lineChart = true
+    otherExceptionRequest(allTimeArgs, allTime, exceptionBT, exceptionET) {
+      // 鎶樼嚎鍥惧姞杞戒腑鏁堟灉
+      this.loading.lineChart = true;
       this.$http
         .get('/dust/history', { params: allTimeArgs })
         .then((result) => {
           this.dialog.allExceptionTimeData = result.data.data;
-        //  鏂數鎴栨柇缃戞椂閲嶆柊璁剧疆琛ㄦ牸
-        if(this.tableCurrentRowData.exceptionType == '0'){
-            this.setOfflineTbleData()
-        }
+          //  鏂數鎴栨柇缃戞椂閲嶆柊璁剧疆琛ㄦ牸
+          if (this.tableCurrentRowData.exceptionType == '0') {
+            this.setOfflineTbleData();
+          }
 
-            // x杞存棩鏈熸椂闂�
-        let dateList = [];
-        // y杞� 瓒呮爣娌圭儫娴撳害
-        let dustValue = [];
-        let timeAndValue = {};
+          // x杞存棩鏈熸椂闂�
+          let dateList = [];
+          // y杞� 瓒呮爣娌圭儫娴撳害
+          let dustValue = [];
+          let timeAndValue = {};
 
-        // 浠庢坊鍔犱簡棣栦綅鍖洪棿鐨勫紑濮嬪拰缁撴潫鏃堕棿杩涜閬嶅巻 淇濊瘉鏃堕棿浠�10鍒嗛挓涓洪棿闅�
-        timeAndValue = this.keepContinuousByEachFiftyMinutes(
+          // 浠庢坊鍔犱簡棣栦綅鍖洪棿鐨勫紑濮嬪拰缁撴潫鏃堕棿杩涜閬嶅巻 淇濊瘉鏃堕棿浠�10鍒嗛挓涓洪棿闅�
+          timeAndValue = index.keepContinuousByEachFiftyMinutes(
             allTime[0],
             allTime[3],
             this.dialog.allExceptionTimeData
-        );
-        dateList = timeAndValue['xAxis'];
-        dustValue = timeAndValue['yAxis'];
-        
-        // 鎻愬彇寮傚父璧峰鏃堕棿鐐瑰湪鏁翠釜鍖洪棿鍐呯殑鏁版嵁绱㈠紩
-        let startIndex = dateList.findIndex(
-            (item) => item === exceptionBT
-        );
-        let endIndex = dateList.findIndex((item) => item === exceptionET);
+          );
+          dateList = timeAndValue['xAxis'];
+          dustValue = timeAndValue['yAxis'];
 
-        // 璁剧疆鎶樼嚎鍥鹃厤缃」
-        this.reSetChart(dateList,dustValue,exceptionBT, exceptionET,
-                    startIndex,
-                    endIndex)
-         this.loading.lineChart = false
-            });
-       
-    },
-    /**
-     * description锛氬垽鏂璬ata涓槸鍚︽湁璇ユ棩鏈熸椂闂达紝瀛樺湪杩斿洖璇ユ椂闂村搴旂殑娴撳害鍊硷紝鍚﹀垯杩斿洖-1
-     * @param锛� 鍔犱笂鍓嶅悗鍖洪棿鐨勫紓甯告暟鎹紝鏃堕棿瀛楃涓�
-     * @returns锛�
-     */
-    findTimeInExceptionData(data, time) {
-      for (let i = 0; i < data.length; i++) {
-        if (data[i] == null) {
-          continue;
-        }
-        if (data[i]['lst'] == time) {
-          return data[i]['dustValue'];
-        }
-      }
-      return -1;
-    },
-    /**
-     * description锛氭牴鎹紑濮嬪拰缁撴潫鏃堕棿,杩斿洖浠�15鍒嗛挓涓洪棿闅旂殑鏃堕棿鍜屽搴旂殑鍊�
-     * @param锛� 鍓嶅尯闂寸殑寮�濮嬫椂闂达紝 鍚庡尯闂寸殑缁撴潫鏃堕棿, 鍔犱笂鍓嶅悗鍖洪棿鐨勬�绘椂闂存鐨勫紓甯告暟鎹殑瀵硅薄鏁扮粍
-     * @returns锛氬璞°�傚寘鍚簡鎶樼嚎鍥剧殑x杞达紝y杞寸殑閰嶇疆鏁版嵁
-     */
-    keepContinuousByEachFiftyMinutes(
-      intervalStarTime,
-      intervalEndTime,
-      headAndTailExceptionData
-    ) {
-      let xAxis = [];
-      let yAxis = [];
-      let obj = {};
-      let current = intervalStarTime;
-      let tail = dayjs(intervalEndTime)
-        .add(15, 'minute')
-        .format('YYYY-MM-DD HH:mm:ss');
-      while (current != tail) {
-        let value = this.findTimeInExceptionData(
-          headAndTailExceptionData,
-          current
-        );
-        if (value != -1) {
-          xAxis.push(current);
-          yAxis.push(value);
-        } else {
-          xAxis.push(current);
-          yAxis.push(null);
-        }
-        current = dayjs(current)
-          .add(15, 'minute')
-          .format('YYYY-MM-DD HH:mm:ss');
-      }
-      obj['xAxis'] = xAxis;
-      obj['yAxis'] = yAxis;
-      return obj;
+          // 鎻愬彇寮傚父璧峰鏃堕棿鐐瑰湪鏁翠釜鍖洪棿鍐呯殑鏁版嵁绱㈠紩
+          let startIndex = dateList.findIndex((item) => item === exceptionBT);
+          let endIndex = dateList.findIndex((item) => item === exceptionET);
+
+          // 璁剧疆鎶樼嚎鍥鹃厤缃」
+          this.reSetChart(
+            dateList,
+            dustValue,
+            exceptionBT,
+            exceptionET,
+            startIndex,
+            endIndex
+          );
+          this.loading.lineChart = false;
+        });
     },
 
     /**
@@ -491,7 +570,7 @@
             ]
           };
           break;
-        // 瓒呮爣  
+        // 瓒呮爣
         case '2':
           this.dialog.option = {
             tooltip: {},
@@ -605,7 +684,7 @@
           break;
         // 鏁版嵁瓒呬綆 鍙湁鏃堕棿鐐�
         case '1':
-        this.dialog.option = {
+          this.dialog.option = {
             tooltip: {},
             toolbox: {
               // 宸ュ叿鏍�
@@ -646,7 +725,7 @@
                   }
                   return item;
                 }),
-               
+
                 markLine: {
                   symbol: 'none',
                   itemStyle: {
@@ -699,7 +778,7 @@
             }
           };
           break;
-        case '3' :
+        case '3':
           this.dialog.option = {
             tooltip: {},
             toolbox: {
@@ -784,7 +863,7 @@
           };
           break;
         case '4':
-        this.dialog.option = {
+          this.dialog.option = {
             tooltip: {},
             toolbox: {
               // 宸ュ叿鏍�
@@ -831,8 +910,7 @@
                       }
                     ]
                   ]
-                },
-           
+                }
               }
             ],
             // 鎸囧畾鏃堕棿鍖洪棿鐨勭嚎娈靛彉棰滆壊
@@ -859,15 +937,14 @@
           };
           break;
         default:
-          console.log('娌℃湁璁剧疆璇ュ紓甯哥被鍨嬶紒');;
+          console.log('娌℃湁璁剧疆璇ュ紓甯哥被鍨嬶紒');
       }
-      this.flag.banTouch = 0
+      this.flag.banTouch = 0;
     },
     /**
      * description锛氬垝鍒嗗嚭寮傚父璧峰鏃堕棿锛屾瀯閫犺姹傚墠涓悗鐨勫弬鏁�
      */
     timeAndDataProcessed() {
-
       //寮傚父鐨勫紑濮嬫椂闂� 缁撴潫鏃堕棿
       let exceptionBeginTime = this.tableCurrentRowData.beginTime;
       let exceptionEndTime = this.tableCurrentRowData.endTime;
@@ -876,30 +953,35 @@
       // beforeAndAfterTime[1]:鍓�15鍒嗛挓鐨勬椂闂寸偣
       // beforeAndAfterTime[2]:鍚�15鍒嗛挓鐨勬椂闂寸偣
       // beforeAndAfterTime[3]:鍚�45鍒嗛挓鐨勬椂闂寸偣
-      let beforeAndAfterTime = this.before45AndAfter45(
+      let beforeAndAfterTime = index.before45AndAfter45(
         exceptionBeginTime,
         exceptionEndTime
       );
 
       // 鏋勯�犲紓甯告椂闂村墠鍚庡尯闂存暟鎹姹傚弬鏁�(闄や簡鏂綉涓兘鐢ㄥ埌锛�
-      let paramsAllTime = this.requestGetParms(
+      let paramsAllTime = index.requestGetParms(
         this.tableCurrentRowData.name,
         beforeAndAfterTime[0],
         beforeAndAfterTime[3]
       );
-    // 灏嗗紓甯告暟鎹繘琛岄澶勭悊锛岄殢鍚庡皢缁撴灉浣滀负鎶樼嚎鍥剧殑閰嶇疆椤�
+      // 灏嗗紓甯告暟鎹繘琛岄澶勭悊锛岄殢鍚庡皢缁撴灉浣滀负鎶樼嚎鍥剧殑閰嶇疆椤�
 
-      this.otherExceptionRequest(paramsAllTime,beforeAndAfterTime,exceptionBeginTime,exceptionEndTime)
+      this.otherExceptionRequest(
+        paramsAllTime,
+        beforeAndAfterTime,
+        exceptionBeginTime,
+        exceptionEndTime
+      );
     },
 
     /**
      * description锛氳幏鍙栦笅涓�鏉″紓甯镐俊鎭�
      */
     getPreviousRowData() {
-    //     // 涓嶆槸琛ㄦ牸鐨勬渶鍚庝竴琛�
+      //     // 涓嶆槸琛ㄦ牸鐨勬渶鍚庝竴琛�
       if (this.selectedRowIndex < this.displayData.length - 1) {
         // 鐐瑰嚮杩囩▼涓� 閿佷綇涓婁笅鏉℃寜閽�  鍦ㄨ缃畬鍥惧舰閰嶇疆椤瑰悗瑙i攣
-        this.flag.banTouch = 1
+        this.flag.banTouch = 1;
 
         //寰楀埌涓婁竴琛屾暟鎹储寮�
         this.selectedRowIndex = this.selectedRowIndex + 1;
@@ -908,255 +990,55 @@
         // this.setinfo(this.selectedRowIndex);
 
         // 寰楀埌涓婁竴琛岀殑鏁版嵁
-        this.tableCurrentRowData = this.displayData[this.selectedRowIndex]
-        let params = this.requestGetParms(this.tableCurrentRowData.name,this.tableCurrentRowData.beginTime,this.tableCurrentRowData.endTime)
-        this.loading.preButton = true
-        this.$http
-          .get('/dust/history', { params: params })
-          .then((response) => {
-            // 淇濆瓨杩斿洖鐨勮秴鏍囨暟鎹�
-            this.dialog.historyData = response.data.data;
-            this.dialog.exceptionTotal = response.data.data.length;
-            // 閫昏緫澶勭悊
-            this.timeAndDataProcessed()
-            this.loading.preButton = false
-          });
+        this.tableCurrentRowData = this.displayData[this.selectedRowIndex];
+        let params = index.requestGetParms(
+          this.tableCurrentRowData.name,
+          this.tableCurrentRowData.beginTime,
+          this.tableCurrentRowData.endTime
+        );
+        this.loading.preButton = true;
+        this.$http.get('/dust/history', { params: params }).then((response) => {
+          // 淇濆瓨杩斿洖鐨勮秴鏍囨暟鎹�
+          this.dialog.historyData = response.data.data;
+          this.dialog.exceptionTotal = response.data.data.length;
+          // 閫昏緫澶勭悊
+          this.timeAndDataProcessed();
+          this.loading.preButton = false;
+        });
       }
-
-        //寰楀埌涓婁竴琛屾暟鎹储寮�
-        // this.selectedRowIndex = this.selectedRowIndex + 1;
-        // this.tableCurrentRowData = this.displayData[this.selectedRowIndex]
-        // console.log('褰撳墠琛屾暟鎹负:',this.tableCurrentRowData);
     },
     /**
      * description锛氳幏鍙栦笅涓�鏉″紓甯镐俊鎭�
      */
     getNextRowData() {
-         // 涓嶆槸琛ㄦ牸鐨勭涓�琛�
+      // 涓嶆槸琛ㄦ牸鐨勭涓�琛�
       if (this.selectedRowIndex !== 0) {
         // 鐐瑰嚮杩囩▼涓� 閿佷綇涓婁笅鏉℃寜閽�  鍦ㄨ缃畬鍥惧舰閰嶇疆椤瑰悗瑙i攣
-        this.flag.banTouch = 1
+        this.flag.banTouch = 1;
 
         //寰楀埌涓婁竴琛屾暟鎹储寮�
         this.selectedRowIndex = this.selectedRowIndex - 1;
         //璇锋眰鏁版嵁 鏀瑰彉exceedingData
-        // this.setinfo(this.selectedRowIndex);
 
-         // 寰楀埌涓婁竴琛岀殑鏁版嵁
-         this.tableCurrentRowData = this.displayData[this.selectedRowIndex]
+        // 寰楀埌涓婁竴琛岀殑鏁版嵁
+        this.tableCurrentRowData = this.displayData[this.selectedRowIndex];
 
-        let params = this.requestGetParms(this.tableCurrentRowData.name,this.tableCurrentRowData.beginTime,this.tableCurrentRowData.endTime)
-        this.loading.afterButton = true
-        this.$http
-          .get('/dust/history', { params: params })
-          .then((response) => {
-            // 淇濆瓨杩斿洖鐨勮秴鏍囨暟鎹�
-            this.dialog.historyData = response.data.data;
-            this.dialog.exceptionTotal = response.data.data.length;
-            // 閫昏緫澶勭悊
-            this.timeAndDataProcessed()
-            this.loading.afterButton = false
-          });
+        let params = index.requestGetParms(
+          this.tableCurrentRowData.name,
+          this.tableCurrentRowData.beginTime,
+          this.tableCurrentRowData.endTime
+        );
+        this.loading.afterButton = true;
+        this.$http.get('/dust/history', { params: params }).then((response) => {
+          // 淇濆瓨杩斿洖鐨勮秴鏍囨暟鎹�
+          this.dialog.historyData = response.data.data;
+          this.dialog.exceptionTotal = response.data.data.length;
+          // 閫昏緫澶勭悊
+          this.timeAndDataProcessed();
+          this.loading.afterButton = false;
+        });
       }
     },
-
-    /**
-     * description锛氫粠瀛愮粍浠惰幏寰楁煇绔欑偣璇ユ椂娈电殑寮傚父鏁版嵁
-     * @createTime:2023-08-18
-     */
-    backExceptionData(val1, val2) {
-      this.displayData = val1;
-      this.total = val2;
-    },
-
-    /**
-     * description锛氬綋鐢ㄦ埛鏀瑰彉鏌ヨ鐨勬椂闂村尯闂存椂锛屼細鏍规嵁璇ュ尯闂存煡璇㈠悇寮傚父鐨勭珯鐐癸紝鏌ヨ璇ユ椂闂村尯闂寸殑鍚勫紓甯告暟閲�
-     * @createTime:2023-08-18
-     */
-    getShopNames() {
-      /* 鏌ヨ寮傚父鐨勭珯鐐� */
-      this.$http
-        .get('/dust/sitenamecode', {
-          params: {
-            exceptionType: '0',
-            beginTime: this.beginTime,
-            endTime: this.endTime
-          }
-        })
-        .then((result) => {
-          this.exception.exception0 = result.data.data;
-        });
-      this.$http
-        .get('/dust/sitenamecode', {
-          params: {
-            exceptionType: '1',
-            beginTime: this.beginTime,
-            endTime: this.endTime
-          }
-        })
-        .then((result) => {
-          this.exception.exception1 = result.data.data;
-        });
-      this.$http
-        .get('/dust/sitenamecode', {
-          params: {
-            exceptionType: '2',
-            beginTime: this.beginTime,
-            endTime: this.endTime
-          }
-        })
-        .then((result) => {
-          this.exception.exception2 = result.data.data;
-        });
-
-      this.$http
-        .get('/dust/sitenamecode', {
-          params: {
-            exceptionType: '3',
-            beginTime: this.beginTime,
-            endTime: this.endTime
-          }
-        })
-        .then((result) => {
-          this.exception.exception3 = result.data.data;
-        });
-
-        this.$http
-        .get('/dust/sitenamecode', {
-          params: {
-            exceptionType: '4',
-            beginTime: this.beginTime,
-            endTime: this.endTime
-          }
-        })
-        .then((result) => {
-          this.exception.exception4 = result.data.data;
-        });
-        this.$http
-        .get('/dust/sitenamecode', {
-          params: {
-            exceptionType: '5',
-            beginTime: this.beginTime,
-            endTime: this.endTime
-          }
-        })
-        .then((result) => {
-          this.exception.exception5 = result.data.data;
-        });
-        this.$http
-        .get('/dust/sitenamecode', {
-          params: {
-            exceptionType: '6',
-            beginTime: this.beginTime,
-            endTime: this.endTime
-          }
-        })
-        .then((result) => {
-          this.exception.exception6 = result.data.data;
-        });
-
-
-
-      /* 寮傚父寮傚父鏁伴噺 */
-      this.$http
-        .get('/dust/exceptionnum', {
-          params: {
-            exceptionType: '0',
-            beginTime: this.beginTime,
-            endTime: this.endTime
-          }
-        })
-        .then((result) => {
-          this.exception.exception0Num = result.data.data;
-        });
-      this.$http
-        .get('/dust/exceptionnum', {
-          params: {
-            exceptionType: '1',
-            beginTime: this.beginTime,
-            endTime: this.endTime
-          }
-        })
-        .then((result) => {
-          this.exception.exception1Num = result.data.data;
-        });
-      this.$http
-        .get('/dust/exceptionnum', {
-          params: {
-            exceptionType: '2',
-            beginTime: this.beginTime,
-            endTime: this.endTime
-          }
-        })
-        .then((result) => {
-          this.exception.exception2Num = result.data.data;
-        });
-
-      this.$http
-        .get('/dust/exceptionnum', {
-          params: {
-            exceptionType: '3',
-            beginTime: this.beginTime,
-            endTime: this.endTime
-          }
-        })
-        .then((result) => {
-          this.exception.exception3Num = result.data.data;
-        });
-        
-        this.$http
-        .get('/dust/exceptionnum', {
-          params: {
-            exceptionType: '4',
-            beginTime: this.beginTime,
-            endTime: this.endTime
-          }
-        })
-        .then((result) => {
-          this.exception.exception4Num = result.data.data;
-        });
-        this.$http
-        .get('/dust/exceptionnum', {
-          params: {
-            exceptionType: '5',
-            beginTime: this.beginTime,
-            endTime: this.endTime
-          }
-        })
-        .then((result) => {
-          this.exception.exception5Num = result.data.data;
-        });
-        this.$http
-        .get('/dust/exceptionnum', {
-          params: {
-            exceptionType: '6',
-            beginTime: this.beginTime,
-            endTime: this.endTime
-          }
-        })
-        .then((result) => {
-          this.exception.exception6Num = result.data.data;
-        });
-    },
-
-    /**
-     * description锛氳姹傚紓甯哥殑搴楅摵鍚嶅瓧
-     * @param锛氬紓甯哥被鍨嬶紝寮�濮嬫椂闂达紝缁撴潫鏃堕棿
-     * @createTime:2023-08-18
-     * @returns锛� 寮傚父鐨勬暟鎹�
-     */
-    // getSiteNameByExceptionType(exception, beginT, endT) {
-    //   let param = {
-    //     exceptionType: exception,
-    //     beginTime: beginT,
-    //     endTime: endT
-    //   };
-
-    //   this.$http.get('/dust/sitenamecode', { params: param }).then((res) => {
-    //     return res.data.data;
-    //   });
-    //   return;
-    // },
 
     /**
      * description锛氭樉绀哄璇濇,杩斿洖璇ュ紓甯告椂闂存鐨勬墍鏈夋暟鎹�
@@ -1166,7 +1048,7 @@
     showDialog(row) {
       // 鎵撳紑瀵硅瘽妗�
       this.dialogTableVisible = true;
-      
+
       // 淇濆瓨褰撳墠琛屾暟鎹�
       this.tableCurrentRowData = row;
 
@@ -1193,9 +1075,10 @@
         this.dialog.historyData = response.data.data;
         this.dialog.exceptionTotal = response.data.data.length;
         // 閫昏緫澶勭悊
-        this.timeAndDataProcessed()
+        this.timeAndDataProcessed();
       });
     },
+
     /**
      * description锛氭潯浠舵煡璇㈠紓甯哥殑鏁版嵁
      * @createTime:2023-08-18
@@ -1205,9 +1088,9 @@
         alert('鏃堕棿璺ㄥ害涓嶈兘瓒呰繃涓�涓湀');
         return;
       }
-      this.loading.queryButton = true
-      this.flag.originClick = 0
-      this.loading.tableLoading = true;
+
+      this.flag.originClick = 0;
+
       let params = {};
       params['page'] = this.currentPage;
       params['pageSize'] = this.pageSize;
@@ -1219,24 +1102,27 @@
       }
       params['beginTime'] = this.beginTime;
       params['endTime'] = this.endTime;
-
+      this.loading.tableLoading = true;
+      this.loading.queryButton = true;
       this.$http
         .get('/dust/exceptiondata', { params: params })
         .then((response) => {
           // 淇濆瓨杩斿洖鐨�
           // this.tableData = response.data.data.rows;
           this.displayData = response.data.data.rows;
-          this.loading.queryButton = false
-          this.loading.tableLoading = false;
+          this.loading.queryButton = false;
+
           if (response.data.data.total == 0) {
             ElMessage('璇ユ椂娈垫棤鏁版嵁');
             this.isNoData = true;
             return;
           }
           this.total = response.data.data.total;
+          this.loading.tableLoading = false;
           // 绉婚櫎绌烘暟鎹姸鎬�
           this.isNoData = false;
         });
+      this.gethasCheckedNumByTime();
     },
 
     /**
@@ -1264,12 +1150,14 @@
 
           if (response.data.data.total == 0) {
             ElMessage('璇ユ椂娈垫棤鏁版嵁');
+            this.loading.tableLoading = false;
             this.isNoData = true;
             return;
           }
-          this.total = response.data.data.total;
           this.loading.tableLoading = false;
+          this.total = response.data.data.total;
         });
+      this.gethasCheckedNumByTime();
     },
 
     /**
@@ -1287,7 +1175,8 @@
       const h2 = this.$refs.h2.$el.offsetHeight;
       const h4 = this.$refs.h4.$el.offsetHeight;
       // 鍏朵腑涓�涓�40鏄洅瀛愮殑鎬诲杈硅窛
-      this.tableHeight = `calc(100vh - ${h1}px - ${h2}px  - ${h4}px - 100px - var(--el-main-padding) * 2)`;
+      this.tableHeight = `calc(100vh - ${h1}px - ${h2}px  - ${h4}px - 20px - 100px - var(--el-main-padding) * 2)`;
+      // this.tableHeight = `calc(100vh - ${h1}px  - ${h4}px - 100px - var(--el-main-padding) * 2)`;
     },
 
     // 椤靛ぇ灏忔敼鍙樻椂瑙﹀彂
@@ -1310,11 +1199,10 @@
       // 灏嗗綋鍓嶉〉鍙风粰currentPage
       this.currentPage = val;
 
-
       // 椤甸潰鍙樺寲鏃惰皟鐢� 鏌ヨ鏁版嵁鍑芥暟
-      if(this.flag.originClick==0){
+      if (this.flag.originClick == 0) {
         this.handleSubmit();
-      }else if(this.flag.originClick ==1){
+      } else if (this.flag.originClick == 1) {
         const startIndex = (val - 1) * this.pageSize;
         const endIndex = startIndex + this.pageSize;
 
@@ -1334,51 +1222,81 @@
 </script>
 
 <template>
- 
   <el-row ref="h1">
     <el-col>
       <el-form :inline="true">
         <div class="head-container-text">
-          <el-form-item >
-          <AreaAndmonitorType ></AreaAndmonitorType>
+          <el-form-item>
+            <AreaAndmonitorType></AreaAndmonitorType>
           </el-form-item>
           <el-form-item>
             <InputSearch
-              :isNeedDefaultSite="0"
+              isNeedDefaultSite="0"
               @submit-value="(n) => (form.name = n)"
-              @submit-site-Nums="(n) => (siteTotal = n)"
             >
             </InputSearch>
           </el-form-item>
 
-          
-
           <el-form-item>
-            <TimeSelectWithShortCuts @submit-time="giveTime"></TimeSelectWithShortCuts>
+            <TimeSelectWithShortCuts
+              @submit-time="giveTime"
+              timeType="month"
+            ></TimeSelectWithShortCuts>
           </el-form-item>
 
           <el-form-item>
             <ExceptionType
-              @submit-value="(n) => form.exceptionName = n"
+              @submit-value="(n) => (form.exceptionName = n)"
             ></ExceptionType>
           </el-form-item>
         </div>
 
         <div class="head-container-search">
+          <span class="head-describtion-text">
+            閲戝北鍖� {{ beginTime }} 鈥斺�� {{ endTime }} 鎵皹鐩戞祴寮傚父淇℃伅姹囨��</span
+          >
           <el-form-item>
-            <el-button type="warning" :loading="loading.queryButton" @click="handleSubmit">鏌ヨ</el-button>
+            <!-- <el-button type="warning" :loading="loading.queryButton" @click="handleSubmit"><el-icon
+                style="margin-right: 6px;font-size: 1.2em;"><i-ep-Search /></el-icon>鏌ヨ</el-button> -->
+            <ButtonClick
+              content="鎼滅储"
+              type="warning"
+              :loading="loading.queryButton"
+              @do-search="handleSubmit"
+            ></ButtonClick>
           </el-form-item>
         </div>
       </el-form>
     </el-col>
   </el-row>
 
-  <el-row class="head-describtion-text" ref="h2">
-    <el-row>
-      <span> 閲戝北鍖� {{ beginTime }} 鈥斺�� {{ endTime }} 鎵皹鐩戞祴寮傚父淇℃伅姹囨��</span>
-    </el-row>
-  </el-row>
+  <el-row class="anasysis" ref="h2">
+    <el-col :span="6">
+      <el-card>
+        <el-statistic title="鍏ㄩ儴瀹℃牳鏁�" :value="total" />
+      </el-card>
+    </el-col>
 
+    <el-col :span="6">
+      <el-card>
+        <el-statistic title="寰呭鏍告暟" :value="unCheckedNUm"> </el-statistic>
+      </el-card>
+    </el-col>
+
+    <el-col :span="6">
+      <el-card>
+        <el-statistic title="宸插鏍告暟" :value="auditNumByTime" />
+      </el-card>
+    </el-col>
+
+    <el-col :span="6">
+      <el-card>
+        <el-statistic title="瀹℃牳姣斾緥" :value="checkedRate">
+          <template #suffix> % </template>
+        </el-statistic>
+      </el-card>
+    </el-col>
+  </el-row>
 
   <el-row>
     <el-col v-show="!isNoData">
@@ -1386,11 +1304,14 @@
         ref="table"
         :data="displayData"
         :height="tableHeight"
-        highlight-current-row="true"
+        :highlight-current-row="true"
+        :row-class-name="tableRowClassName"
         size="default"
         v-loading="loading.tableLoading"
+        @selection-change="handleSelectionChange"
         border
       >
+        <el-table-column type="selection" width="55" align="center" />
         <el-table-column
           type="index"
           label="搴忓彿"
@@ -1448,17 +1369,60 @@
           align="center"
           show-overflow-tooltip
         />
-        <el-table-column label="鎿嶄綔" align="center">
+        <el-table-column label="鎿嶄綔" align="center" width="200" fixed="right">
           <template #default="{ row }">
+            <el-button type="primary" @click="showDialog(row)">
+              鏌ョ湅璇︽儏
+            </el-button>
             <el-button
-              type="primary"
-              class="table-button"
-              @click="showDialog(row)"
-              >鏌ョ湅璇︽儏</el-button
+              v-if="row.auditStatus == 3"
+              size="default"
+              type="info"
+              @click="openAuditDiag(row)"
+              >宸插鏍�</el-button
             >
+            <el-button
+              type="success"
+              size="default"
+              plain
+              v-else-if="row.auditStatus == 1 || row.auditStatus == 2"
+              @click="openAuditDiag(row)"
+              >瀹℃牳</el-button
+            >
+
+            <el-button
+              v-else
+              size="default"
+              type="danger"
+              @click="openAuditDiag(row)"
+              >瀹℃牳</el-button
+            >
+            <!-- <span v-if="row.auditStatus == 3">宸插鏍�</span
+              ><span v-else>瀹℃牳</span> -->
           </template>
         </el-table-column>
       </el-table>
+
+      <!-- <el-row ref="h2">
+    <el-row> -->
+      <div class="check-button">
+        <el-button
+          type="primary"
+          size="small"
+          :disabled="multipleSelection.length == 0"
+          @click="quickReview"
+          >鎵归噺瀹℃牳</el-button
+        >
+        <el-button
+          type="primary"
+          size="small"
+          :disabled="multipleSelection.length == 0"
+          @click="clearSelected"
+          >娓呴櫎閫変腑</el-button
+        >
+      </div>
+      <!-- </el-row>
+  </el-row> -->
 
       <el-pagination
         ref="h4"
@@ -1477,38 +1441,102 @@
 
   <el-empty v-show="isNoData" :image-size="200" />
 
+  <el-dialog v-model="auditDialog.visible" :show-close="false" draggable>
+    <template #header>
+      <!-- <div class="title-text">娣诲姞澶囨敞</div> -->
+      <span class="title-text">{{ tableCurrentRowData.name }}</span
+      ><span>绔欑偣寮傚父鏁版嵁瀹℃牳</span>
+    </template>
+
+    <el-form label-position="top">
+      <el-form-item label="瀹℃牳浜�">
+        <el-input v-model="auditDialog.checker"></el-input>
+      </el-form-item>
+      <el-form-item label="瀹℃牳鎯呭喌">
+        <el-input
+          v-model="auditDialog.checkerNotes"
+          type="textarea"
+          :autosize="true"
+          placeholder="瀹℃牳浜哄憳濉啓"
+          :disabled="tableCurrentRowData.auditStatus == 1"
+        />
+      </el-form-item>
+      <el-form-item label="浼佷笟鍙嶉">
+        <el-input
+          v-model="auditDialog.enterpriseNotes"
+          type="textarea"
+          :autosize="true"
+          placeholder="浼佷笟濉啓"
+          :disabled="tableCurrentRowData.auditStatus == 2"
+        />
+      </el-form-item>
+    </el-form>
+    <el-card>
+      <template #header>瀹℃牳璇︽儏</template>
+      <el-form>
+        <el-form-item label="瀹℃牳浜�">{{
+          tableCurrentRowData.checker
+        }}</el-form-item>
+        <el-form-item label="瀹℃牳鎯呭喌">{{
+          tableCurrentRowData.checkerContent
+        }}</el-form-item>
+        <el-form-item label="瀹℃牳浜哄憳">{{
+          tableCurrentRowData.enterpriseContent
+        }}</el-form-item>
+      </el-form>
+    </el-card>
+    <template #footer>
+      <span class="dialog-footer">
+        <el-button @click="close">鍙栨秷</el-button>
+        <el-button
+          type="primary"
+          :loading="loading.submitAudit"
+          :disabled="tableCurrentRowData.auditStatus == 3"
+          @click="submitAudit"
+        >
+          鎻愪氦
+        </el-button>
+      </span>
+    </template>
+  </el-dialog>
+
   <el-dialog v-model="dialogTableVisible" draggable align-center height="300px">
     <!-- 澶� -->
     <template #header>
       <div class="diag-head">
         <div class="diag-head-text">
           <div>
-          <span class="diag-head-text1">绔欑偣鍚嶇О锛�</span
-          >{{ tableCurrentRowData.name }}
+            <span class="diag-head-text1">绔欑偣鍚嶇О锛�</span
+            >{{ tableCurrentRowData.name }}
           </div>
 
           <div>
-          <span class="diag-head-text1">寮傚父绫诲瀷锛�</span>
-          <span v-if="tableCurrentRowData.exceptionType == '0'"
-            >鏂數鎴栨柇缃�</span
-          >
-          <span v-else-if="tableCurrentRowData.exceptionType == '1'"
-            >鏁版嵁瓒呬綆</span
-          >
-          <span v-else-if="tableCurrentRowData.exceptionType == '2'">瓒呮爣</span>
-          <span v-else-if="tableCurrentRowData.exceptionType == '3'"
-            >鏁版嵁闀挎椂闂存棤娉㈠姩</span
-          >
-          <span v-else-if="tableCurrentRowData.exceptionType == '4'"
-            >閲忕骇绐佸彉寮傚父</span
-          > <span v-else-if="tableCurrentRowData.exceptionType == '5'"
-            >涓磋繎瓒呮爣寮傚父</span
-          > <span v-else-if="tableCurrentRowData.exceptionType == '6'"
-            >鍗曟棩瓒呮爣娆℃暟涓寸晫寮傚父</span
-          > <span v-else-if="tableCurrentRowData.exceptionType == '7'"
-            >婊戝姩骞冲潎鍊煎紓甯�</span
-          >
-        </div>
+            <span class="diag-head-text1">寮傚父绫诲瀷锛�</span>
+            <span v-if="tableCurrentRowData.exceptionType == '0'"
+              >鏂數鎴栨柇缃�</span
+            >
+            <span v-else-if="tableCurrentRowData.exceptionType == '1'"
+              >鏁版嵁瓒呬綆</span
+            >
+            <span v-else-if="tableCurrentRowData.exceptionType == '2'"
+              >瓒呮爣</span
+            >
+            <span v-else-if="tableCurrentRowData.exceptionType == '3'"
+              >鏁版嵁闀挎椂闂存棤娉㈠姩</span
+            >
+            <span v-else-if="tableCurrentRowData.exceptionType == '4'"
+              >閲忕骇绐佸彉寮傚父</span
+            >
+            <span v-else-if="tableCurrentRowData.exceptionType == '5'"
+              >涓磋繎瓒呮爣寮傚父</span
+            >
+            <span v-else-if="tableCurrentRowData.exceptionType == '6'"
+              >鍗曟棩瓒呮爣娆℃暟涓寸晫寮傚父</span
+            >
+            <span v-else-if="tableCurrentRowData.exceptionType == '7'"
+              >婊戝姩骞冲潎鍊煎紓甯�</span
+            >
+          </div>
 
           <div>
             <span class="diag-head-text1">寮傚父鏃堕棿娈碉細</span
@@ -1536,14 +1564,13 @@
       </div>
     </template>
 
-    <!-- :option="dialog.option" -->
-
     <!-- 鍥惧舰 -->
     <DustLineChart
       :option="dialog.option"
       :is-open-dialog="dialogTableVisible"
       v-loading="loading.lineChart"
-    ></DustLineChart>
+    >
+    </DustLineChart>
 
     <!-- 琛ㄦ牸 -->
     <div>
@@ -1600,16 +1627,12 @@
             tableCurrentRowData.exceptionType == '1' ||
             tableCurrentRowData.exceptionType == '2' ||
             tableCurrentRowData.exceptionType == '3' ||
-            tableCurrentRowData.exceptionType == '4' 
+            tableCurrentRowData.exceptionType == '4'
           "
           >寮傚父鏁版嵁锛�</span
         >
         <span class="table-line-num">{{ dialog.exceptionTotal }}鏉�</span>
-        <span
-          v-show="
-            tableCurrentRowData.exceptionType === '0'
-          "
-        >
+        <span v-show="tableCurrentRowData.exceptionType === '0'">
           (閫昏緫璁$畻)</span
         >
       </el-tag>
@@ -1619,14 +1642,14 @@
 
 <style lang="scss" scoped>
 .el-row {
-  margin-left: 10px;
+  margin-left: 20px;
 }
 
 /* 鏉′欢鏌ヨ妯″潡鐨勬牱寮� */
 .head-container-search {
-  // display: flex;
-  // justify-content: flex-end;
-  float: right;
+  display: flex;
+  justify-content: space-between;
+  // float: right;
 }
 
 .head-describtion-text {
@@ -1635,110 +1658,73 @@
   font-size: 14px;
   color: gray;
 }
+
 /* 鏉′欢鏌ヨ妯″潡缁撴潫 */
-
-
-
-/* 寮傚父鍒嗘瀽妯″潡鐨勬牱寮� */
-.card-text1 {
-  // 榛戜綋鐨勫紓甯稿悕瀛楅儴鍒�
-  margin: 10px;
+/*鍒嗘瀽 */
+.anasysis {
+  margin-bottom: 20px;
 }
-.card-text1 + div {
-  // 榛戜綋鐨勫紓甯稿悕瀛椾笅闈㈢殑
-  margin: 12px;
-}
-.card-exception-buttom {
-  // 寮傚父绔欑偣鏂囨湰鎸夐挳鍖哄煙
-  padding: 11px;
-}
-.card-header {
-  margin-left: 5px;
-  font-size: 18px;
+:deep(.el-statistic__head) {
   font-weight: bold;
-}
-.card-content-unnormal {
-  min-height: 200px;
-  border: 2px solid #FFCF8B;
-  border-radius: 20px;
-}
-.card-content-normal {
-  min-height: 200px;
-  border: 2px solid red;
-  border-radius: 20px;
-}
-.card-header-image {
-}
-.card-header-text {
   font-size: 16px;
-  font-weight: bold;
-  margin-top: 4px;
-  margin-left: 4px;
 }
-.card-content-text {
-  white-space: nowrap;
-}
-.card-exceptionname-text1 {
-  // 寮傚父绔欑偣鍗犳瘮
-  font-size: 14px;
-  white-space: nowrap;
-}
-
-.card-exceptionname-text2 {
-  // 寮傚父鏁板崰姣旂殑澶栬竟璺�
-  // margin-left: 50px;
-  font-size: 14px;
-  white-space: nowrap;
-}
-.text-blank {
-  // 閫楀彿
-  margin-right: 10px;
-  color: #000000;
-}
-.card-row {
-  margin-bottom: 10px;
-}
-
-/* 寮傚父鍒嗘瀽妯″潡缁撴潫 */
+/* 鍒嗘瀽缁撴潫 */
 
 /* 琛ㄦ牸妯″潡鐨勬牱寮� */
 
+:global(.el-table .black-row) {
+  color: black;
+}
+
+:global(.el-table .complete--gray-row) {
+  color: #86909c;
+}
+:global(.el-table .deep-gray-row) {
+  color: #7f9fcf;
+}
+//瀵硅瘽妗嗘爣棰�
+.el-form-item__labe {
+  font-weight: bold;
+}
+.title-text {
+  font-weight: bold;
+  margin-right: 20px;
+}
+.check-button {
+  // justify-content: flex-end;
+  float: right;
+  margin-top: 10px;
+  margin-right: 20px;
+}
+
 /* 琛ㄦ牸妯″潡缁撴潫 */
 
-
-
-
-
 /* 鏌ョ湅璇︽儏瀵硅瘽妗嗘ā鍧楃殑鏍峰紡 */
-:deep(.el-dialog) {
-  // 瀵硅瘽妗嗛珮搴�
-}
 .diag-head {
   // 瀵硅瘽妗嗗ご閮ㄥ尯鍩�
   min-height: 200px;
   // border: 1px solid #fdc2db;
 }
+
 .diag-head-text1 {
   // 瀵硅瘽妗嗗ご閮ㄧ殑灞炴�у瓧娈靛姞绮�
   font-weight: bold;
 }
-.diag-head-text span:nth-child(2) {
-  // 瀵硅瘽妗嗗ご閮ㄢ�樺紓甯哥被鍨嬧�欏睘鎬�
-  // margin-left: 150px;
-}
+
 .diag-head-text > div {
   // 瀵硅瘽妗嗗紓甯告椂闂存
   margin-top: 15px;
 }
+
 .diag-head-text {
   margin: 10px;
   padding: 10px;
   background: linear-gradient(90deg, #00c9ff 0%, #92fe9d 100%);
   border: 2px solid #7bc0fc;
 }
+
 .chart-jump-button {
   // 鈥樹笂涓�鏉♀�欙紝鈥樹笅涓�鏉♀�� 鎸夐挳
-  // border: 1px solid #fdc2db;
   min-height: 30px;
   width: 200px;
   float: right;
@@ -1751,11 +1737,12 @@
   margin-bottom: 20px;
   min-width: 600px;
 }
+
 .mx-1 {
   position: absolute;
   left: 10px;
   bottom: 10px;
-
 }
+
 /* 鏌ョ湅璇︽儏瀵硅瘽妗嗘ā鍧楃粨鏉� */
 </style>

--
Gitblit v1.9.3