From 3c6203da5fc2503b83ee2f7bd5b8a37333b62cb2 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 08 五月 2024 17:30:34 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/system/work-order/threshold/index.vue |  354 +++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 275 insertions(+), 79 deletions(-)

diff --git a/src/views/system/work-order/threshold/index.vue b/src/views/system/work-order/threshold/index.vue
index ddbbc4e..54f88b9 100644
--- a/src/views/system/work-order/threshold/index.vue
+++ b/src/views/system/work-order/threshold/index.vue
@@ -23,36 +23,144 @@
           <span v-show="scope.row['monitorType'] === 'video'">瑙嗛</span>
         </template>
       </el-table-column>
-      <el-table-column label="宸ュ崟闃堝��" align="center" prop="indicator">
+      <el-table-column label="宸ュ崟闃堝��" align="center">
         <template slot-scope="scope">
-          <div class="table-row" style="display: flex;flex-direction: row">
-            <div class="table-row-item">鍥惧儚璐ㄩ噺</div>
-            <div class="table-row-item">{{ scope.row.imageQuality }}</div>
-          </div>
-          <div class="table-row" style="display: flex;flex-direction: row">
-            <div class="table-row-item">瑙嗛璐ㄩ噺</div>
-            <div class="table-row-item">{{ scope.row.videoQuality }}</div>
-          </div>
-          <div class="table-row" style="display: flex;flex-direction: row">
-            <div class="table-row-item">鏍囨敞鍑嗙‘鐜�</div>
-            <div class="table-row-item">{{ scope.row.annotationAccuracy }}</div>
-          </div>
+          <template v-if="scope.row.monitorType === 'face'">
+            <div class="table-row">
+              <div class="table-row-item">鎶撴媿閲�</div>
+              <div class="table-row-item">{{ scope.row.captureNum }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">鍙婃椂鐜�</div>
+              <div class="table-row-item">{{ scope.row.timelyRate }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">寤惰繜閲�</div>
+              <div class="table-row-item">{{ scope.row.delayAmount }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">璁惧娲昏穬鐜�</div>
+              <div class="table-row-item">{{ scope.row.deviceActiveRate }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">鎶撴媿鍙婃椂鐜�</div>
+              <div class="table-row-item">{{ scope.row.timelyCapture }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">鏃堕挓鍑嗙‘鐜�</div>
+              <div class="table-row-item">{{ scope.row.timeAccuracy }}</div>
+            </div>
+          </template>
+          <template v-else-if="scope.row.monitorType === 'car'">
+            <div class="table-row">
+              <div class="table-row-item">杩囪溅鏁版嵁閲�</div>
+              <div class="table-row-item">{{ scope.row.passCarNum }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">杩囪溅缂哄け鐜�</div>
+              <div class="table-row-item">{{ scope.row.passCarMissRate }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">鏈夋晥杩囪溅鏁版嵁閲�</div>
+              <div class="table-row-item">{{ scope.row.passCarEffectiveNum }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">璁惧娲昏穬鐜�</div>
+              <div class="table-row-item">{{ scope.row.deviceActiveRate }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">鎶撴媿鍙婃椂鐜�</div>
+              <div class="table-row-item">{{ scope.row.timelyCapture }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">鏃堕挓鍑嗙‘鐜�</div>
+              <div class="table-row-item">{{ scope.row.timeAccuracy }}</div>
+            </div>
+          </template>
+          <template v-else-if="scope.row.monitorType === 'video'">
+            <div class="table-row" style="display: flex;flex-direction: row">
+              <div class="table-row-item">鍥惧儚璐ㄩ噺</div>
+              <div class="table-row-item">{{ scope.row.imageQuality }}</div>
+            </div>
+            <div class="table-row" style="display: flex;flex-direction: row">
+              <div class="table-row-item">瑙嗛璐ㄩ噺</div>
+              <div class="table-row-item">{{ scope.row.videoQuality }}</div>
+            </div>
+            <div class="table-row" style="display: flex;flex-direction: row">
+              <div class="table-row-item">鏍囨敞鍑嗙‘鐜�</div>
+              <div class="table-row-item">{{ scope.row.annotationAccuracy }}</div>
+            </div>
+          </template>
         </template>
       </el-table-column>
-      <el-table-column label="涓嬪彂闃堝��" align="center" prop="indicator">
+      <el-table-column label="涓嬪彂闃堝��" align="center">
         <template slot-scope="scope">
-          <div class="table-row" style="display: flex;flex-direction: row">
-            <div class="table-row-item">鍥惧儚璐ㄩ噺</div>
-            <div class="table-row-item">{{ scope.row.imageQualityAuto }}</div>
-          </div>
-          <div class="table-row" style="display: flex;flex-direction: row">
-            <div class="table-row-item">瑙嗛璐ㄩ噺</div>
-            <div class="table-row-item">{{ scope.row.videoQualityAuto }}</div>
-          </div>
-          <div class="table-row" style="display: flex;flex-direction: row">
-            <div class="table-row-item">鏍囨敞鍑嗙‘鐜�</div>
-            <div class="table-row-item">{{ scope.row.annotationAccuracyAuto }}</div>
-          </div>
+          <template v-if="scope.row.monitorType === 'face'">
+            <div class="table-row">
+              <div class="table-row-item">鎶撴媿閲�</div>
+              <div class="table-row-item">{{ scope.row.captureNumAuto }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">鍙婃椂鐜�</div>
+              <div class="table-row-item">{{ scope.row.timelyRateAuto }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">寤惰繜閲�</div>
+              <div class="table-row-item">{{ scope.row.delayAmountAuto }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">璁惧娲昏穬鐜�</div>
+              <div class="table-row-item">{{ scope.row.deviceActiveRateAuto }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">鎶撴媿鍙婃椂鐜�</div>
+              <div class="table-row-item">{{ scope.row.timelyCaptureAuto }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">鏃堕挓鍑嗙‘鐜�</div>
+              <div class="table-row-item">{{ scope.row.timeAccuracyAuto }}</div>
+            </div>
+          </template>
+          <template v-else-if="scope.row.monitorType === 'car'">
+            <div class="table-row">
+              <div class="table-row-item">杩囪溅鏁版嵁閲�</div>
+              <div class="table-row-item">{{ scope.row.passCarNumAuto }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">杩囪溅缂哄け鐜�</div>
+              <div class="table-row-item">{{ scope.row.passCarMissRateAuto }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">鏈夋晥杩囪溅鏁版嵁閲�</div>
+              <div class="table-row-item">{{ scope.row.passCarEffectiveNumAuto }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">璁惧娲昏穬鐜�</div>
+              <div class="table-row-item">{{ scope.row.deviceActiveRateAuto }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">鎶撴媿鍙婃椂鐜�</div>
+              <div class="table-row-item">{{ scope.row.timelyCaptureAuto }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">鏃堕挓鍑嗙‘鐜�</div>
+              <div class="table-row-item">{{ scope.row.timeAccuracyAuto }}</div>
+            </div>
+          </template>
+          <template v-else-if="scope.row.monitorType === 'video'">
+            <div class="table-row">
+              <div class="table-row-item">鍥惧儚璐ㄩ噺</div>
+              <div class="table-row-item">{{ scope.row.imageQualityAuto }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">瑙嗛璐ㄩ噺</div>
+              <div class="table-row-item">{{ scope.row.videoQualityAuto }}</div>
+            </div>
+            <div class="table-row">
+              <div class="table-row-item">鏍囨敞鍑嗙‘鐜�</div>
+              <div class="table-row-item">{{ scope.row.annotationAccuracyAuto }}</div>
+            </div>
+          </template>
         </template>
       </el-table-column>
       <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
@@ -86,16 +194,32 @@
     />
 
     <!-- 浜鸿劯闃堝�� -->
-    <el-dialog title="淇敼浜鸿劯宸ュ崟闃堝��" :visible.sync="faceOpen" width="400px" append-to-body>
-      <el-form ref="faceForm" :model="faceForm" :rules="rules" label-width="150px">
-        <el-form-item label="璁惧绫诲瀷" prop="monitorType">
-          <el-select v-model="faceForm.monitorType" placeholder="璇烽�夋嫨璁惧绫诲瀷" @change="handleModeNameChange">
-            <el-option label="浜鸿劯" value="face"/>
-            <el-option label="杞﹁締" value="car"/>
-            <el-option label="瑙嗛" value="video"/>
-          </el-select>
+    <el-dialog title="淇敼浜鸿劯宸ュ崟闃堝��" :visible.sync="faceOpen" width="700px" append-to-body>
+      <el-form ref="faceForm" :model="faceForm" label-width="150px" :inline="true">
+        <el-form-item class="fixedWidth" label="鎶撴媿閲�" prop="captureNum">
+          <el-input clearable size="small" v-model="faceForm.captureNum" placeholder="宸ュ崟闃堝��"/>
+          <el-input clearable size="small" v-model="faceForm.captureNumAuto" placeholder="涓嬪彂闃堝��"/>
         </el-form-item>
-
+        <el-form-item class="fixedWidth" label="杩囪溅缂哄け鐜�" prop="timelyRate">
+          <el-input clearable size="small" v-model="faceForm.timelyRate" placeholder="宸ュ崟闃堝��"/>
+          <el-input clearable size="small" v-model="faceForm.timelyRateAuto" placeholder="涓嬪彂闃堝��"/>
+        </el-form-item>
+        <el-form-item class="fixedWidth" label="寤惰繜閲�" prop="delayAmount">
+          <el-input clearable size="small" v-model="faceForm.delayAmount" placeholder="宸ュ崟闃堝��"/>
+          <el-input clearable size="small" v-model="faceForm.delayAmountAuto" placeholder="涓嬪彂闃堝��"/>
+        </el-form-item>
+        <el-form-item class="fixedWidth" label="璁惧娲昏穬鐜�" prop="deviceActiveRate">
+          <el-input clearable size="small" v-model="faceForm.deviceActiveRate" placeholder="宸ュ崟闃堝��"/>
+          <el-input clearable size="small" v-model="faceForm.deviceActiveRateAuto" placeholder="涓嬪彂闃堝��"/>
+        </el-form-item>
+        <el-form-item class="fixedWidth" label="鎶撴媿鍙婃椂鐜�" prop="timelyCapture">
+          <el-input clearable size="small" v-model="faceForm.timelyCapture" placeholder="宸ュ崟闃堝��"/>
+          <el-input clearable size="small" v-model="faceForm.timelyCaptureAuto" placeholder="涓嬪彂闃堝��"/>
+        </el-form-item>
+        <el-form-item class="fixedWidth" label="鏃堕挓鍑嗙‘鐜�" prop="deviceActiveRate">
+          <el-input clearable size="small" v-model="faceForm.timeAccuracy" placeholder="宸ュ崟闃堝��"/>
+          <el-input clearable size="small" v-model="faceForm.timeAccuracyAuto" placeholder="涓嬪彂闃堝��"/>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="editFace">纭� 瀹�</el-button>
@@ -104,14 +228,31 @@
     </el-dialog>
 
     <!-- 杞﹁締闃堝�� -->
-    <el-dialog title="淇敼杞﹁締宸ュ崟闃堝��" :visible.sync="faceOpen" width="400px" append-to-body>
-      <el-form ref="faceForm" :model="faceForm" :rules="rules" label-width="150px">
-        <el-form-item label="璁惧绫诲瀷" prop="monitorType">
-          <el-select v-model="faceForm.monitorType" placeholder="璇烽�夋嫨璁惧绫诲瀷" @change="handleModeNameChange">
-            <el-option label="浜鸿劯" value="face"/>
-            <el-option label="杞﹁締" value="car"/>
-            <el-option label="瑙嗛" value="video"/>
-          </el-select>
+    <el-dialog title="淇敼杞﹁締宸ュ崟闃堝��" :visible.sync="carOpen" width="700px" append-to-body>
+      <el-form ref="faceForm" :model="faceForm" label-width="150px" :inline="true">
+        <el-form-item class="fixedWidth" label="杩囪溅鏁版嵁閲�" prop="passCarNum">
+          <el-input clearable size="small" v-model="carForm.passCarNum" placeholder="宸ュ崟闃堝��"/>
+          <el-input clearable size="small" v-model="carForm.passCarNumAuto" placeholder="涓嬪彂闃堝��"/>
+        </el-form-item>
+        <el-form-item class="fixedWidth" label="杩囪溅缂哄け鐜�" prop="passCarMissRate">
+          <el-input clearable size="small" v-model="carForm.passCarMissRate" placeholder="宸ュ崟闃堝��"/>
+          <el-input clearable size="small" v-model="carForm.passCarMissRateAuto" placeholder="涓嬪彂闃堝��"/>
+        </el-form-item>
+        <el-form-item class="fixedWidth" label="鏈夋晥杩囪溅鏁版嵁閲�" prop="passCarEffectiveNum">
+          <el-input clearable size="small" v-model="carForm.passCarEffectiveNum" placeholder="宸ュ崟闃堝��"/>
+          <el-input clearable size="small" v-model="carForm.passCarEffectiveNumAuto" placeholder="涓嬪彂闃堝��"/>
+        </el-form-item>
+        <el-form-item class="fixedWidth" label="璁惧娲昏穬鐜�" prop="deviceActiveRate">
+          <el-input clearable size="small" v-model="carForm.deviceActiveRate" placeholder="宸ュ崟闃堝��"/>
+          <el-input clearable size="small" v-model="carForm.deviceActiveRateAuto" placeholder="涓嬪彂闃堝��"/>
+        </el-form-item>
+        <el-form-item class="fixedWidth" label="鎶撴媿鍙婃椂鐜�" prop="timelyCapture">
+          <el-input clearable size="small" v-model="carForm.timelyCapture" placeholder="宸ュ崟闃堝��"/>
+          <el-input clearable size="small" v-model="carForm.timelyCaptureAuto" placeholder="涓嬪彂闃堝��"/>
+        </el-form-item>
+        <el-form-item class="fixedWidth" label="鏃堕挓鍑嗙‘鐜�" prop="timeAccuracy">
+          <el-input clearable size="small" v-model="carForm.timeAccuracy" placeholder="宸ュ崟闃堝��"/>
+          <el-input clearable size="small" v-model="carForm.timeAccuracyAuto" placeholder="涓嬪彂闃堝��"/>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -121,16 +262,9 @@
     </el-dialog>
 
     <!-- 瑙嗛闃堝�� -->
-    <el-dialog title="淇敼瑙嗛宸ュ崟闃堝��" :visible.sync="videoOpen" width="500px" append-to-body>
-      <el-form ref="videoForm" :model="videoForm" :rules="rules" label-width="100px">
-        <el-form-item label="璁惧绫诲瀷" prop="monitorType">
-          <el-select v-model="videoForm.monitorType" disabled placeholder="璇烽�夋嫨璁惧绫诲瀷" @change="handleModeNameChange">
-            <el-option label="浜鸿劯" value="face"/>
-            <el-option label="杞﹁締" value="car"/>
-            <el-option label="瑙嗛" value="video"/>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="鍥惧儚璐ㄩ噺" prop="imageQuality" label-width="100px">
+    <el-dialog title="淇敼瑙嗛宸ュ崟闃堝��" :visible.sync="videoOpen" width="700px" append-to-body>
+      <el-form ref="videoForm" :model="videoForm" label-width="100px" :inline="true">
+        <el-form-item class="fixedWidth" label="鍥惧儚璐ㄩ噺" prop="imageQuality" label-width="100px">
           <el-select v-model="videoForm.imageQuality" placeholder="宸ュ崟闃堝��" @change="handleModeNameChange">
             <el-option :key="dict.value" :label="dict.value" v-for="dict in dict.type.image_qualify"/>
           </el-select>
@@ -138,7 +272,7 @@
             <el-option :key="dict.value" :label="dict.value" v-for="dict in dict.type.image_qualify"/>
           </el-select>
         </el-form-item>
-        <el-form-item label="瑙嗛璐ㄩ噺" prop="videoQuality" label-width="100px">
+        <el-form-item class="fixedWidth" label="瑙嗛璐ㄩ噺" prop="videoQuality" label-width="100px">
           <el-select v-model="videoForm.videoQuality" placeholder="宸ュ崟闃堝��" @change="handleModeNameChange">
             <el-option :key="dict.value" :label="dict.value" v-for="dict in dict.type.video_qualify"/>
           </el-select>
@@ -146,7 +280,7 @@
             <el-option :key="dict.value" :label="dict.value" v-for="dict in dict.type.video_qualify"/>
           </el-select>
         </el-form-item>
-        <el-form-item label="鏍囨敞鍑嗙‘鐜�" prop="annotationAccuracy" label-width="100px">
+        <el-form-item class="fixedWidth" label="鏍囨敞鍑嗙‘鐜�" prop="annotationAccuracy" label-width="100px">
           <el-input v-model="videoForm.annotationAccuracy" type="number" size="small" placeholder="宸ュ崟闃堝��"></el-input>
           <el-input v-model="videoForm.annotationAccuracy" type="number" size="small" placeholder="涓嬪彂闃堝��"></el-input>
         </el-form-item>
@@ -189,6 +323,7 @@
       // 鏄惁鏄剧ず寮瑰嚭灞�
       videoOpen: false,
       faceOpen: false,
+      carOpen: false,
       // 鏌ヨ鍙傛暟
       queryParams: {
         pageNum: 1,
@@ -200,6 +335,52 @@
       carForm: {},
       faceForm: {},
       // 琛ㄥ崟鏍¢獙
+      faceRules: {
+        monitorType: [
+          { required: true, message: '璁惧绫诲瀷涓嶈兘涓虹┖', trigger: 'change' }
+        ],
+        captureNum: [
+          { required: true, message: '璇峰~鍐欐姄鎷嶉噺', trigger: 'blur' }
+        ],
+        timelyRate: [
+          { required: true, message: '璇峰~鍐欏強鏃剁巼', trigger: 'blur' }
+        ],
+        delayAmount: [
+          { required: true, message: '璇峰~鍐欏欢杩熼噺', trigger: 'blur' }
+        ],
+        deviceActiveRate: [
+          { required: true, message: '璇峰~鍐欒澶囨椿璺冪巼', trigger: 'blur' }
+        ],
+        timeAccuracy: [
+          { required: true, message: '璇峰~鍐欐椂閽熷噯纭巼', trigger: 'blur' }
+        ],
+        timelyCapture: [
+          { required: true, message: '璇峰~鍐欐姄鎷嶅強鏃剁巼', trigger: 'blur' }
+        ],
+      },
+      carRules: {
+        monitorType: [
+          { required: true, message: '璁惧绫诲瀷涓嶈兘涓虹┖', trigger: 'change' }
+        ],
+        passCarNum: [
+          { required: true, message: '璇峰~鍐欒繃杞︽暟鎹噺', trigger: 'blur' }
+        ],
+        passCarMissRate: [
+          { required: true, message: '璇峰~鍐欒繃杞︾己澶辩巼', trigger: 'blur' }
+        ],
+        passCarEffectiveNum: [
+          { required: true, message: '璇峰~鍐欐湁鏁堣繃杞︽暟鎹噺', trigger: 'blur' }
+        ],
+        timelyCapture: [
+          { required: true, message: '璇峰~鍐欐姄鎷嶅強鏃剁巼', trigger: 'blur' }
+        ],
+        deviceActiveRate: [
+          { required: true, message: '璇峰~鍐欒澶囨椿璺冪巼', trigger: 'blur' }
+        ],
+        timeAccuracy: [
+          { required: true, message: '璇峰~鍐欐椂閽熷噯纭巼', trigger: 'blur' }
+        ],
+      },
       rules: {
         monitorType: [
           { required: true, message: '璁惧绫诲瀷锛�1浜鸿劯 2杞﹁締 3瑙嗛涓嶈兘涓虹┖', trigger: 'change' }
@@ -220,46 +401,54 @@
     this.getList()
   },
   methods: {
+    showContent(row) {
+      if(row.monitorType === "car") {
+
+      }
+    },
     editVideo() {
-      this.$refs['videoForm'].validate(validate => {
-        if (validate) {
+      // this.$refs['videoForm'].validate(validate => {
+      //   if (validate) {
           editVideo(this.videoForm).then(res => {
             if (res.code === 200) {
               this.$message.success("淇敼鎴愬姛")
+              this.videoOpen = false
               this.getList();
             } else {
               this.$message.success("淇敼澶辫触")
             }
-          })
-        }
+        //   })
+        // }
       })
     },
     editFace() {
-      this.$refs['faceForm'].validate(validate => {
-        if (validate) {
-          editFace(this.videoForm).then(res => {
-            if (res.code === 200) {
-              this.$message.success("淇敼鎴愬姛")
-              this.getList();
-            } else {
-              this.$message.success("淇敼澶辫触")
-            }
-          })
+      // this.$refs['faceForm'].validate(validate => {
+      //   if (validate) {
+      editFace(this.videoForm).then(res => {
+        if (res.code === 200) {
+          this.$message.success("淇敼鎴愬姛")
+          this.faceOpen = false
+          this.getList();
+        } else {
+          this.$message.success("淇敼澶辫触")
         }
+        //   })
+        // }
       })
     },
     editCar() {
-      this.$refs['carForm'].validate(validate => {
-        if (validate) {
-          editCar(this.carForm).then(res => {
-            if (res.code === 200) {
-              this.$message.success("淇敼鎴愬姛")
-              this.getList();
-            } else {
-              this.$message.success("淇敼澶辫触")
-            }
-          })
+      // this.$refs['carForm'].validate(validate => {
+      //   if (validate) {
+      editCar(this.carForm).then(res => {
+        if (res.code === 200) {
+          this.$message.success("淇敼鎴愬姛")
+          this.carOpen = false
+          this.getList();
+        } else {
+          this.$message.success("淇敼澶辫触")
         }
+        //   })
+        // }
       })
     },
     /** 鏌ヨ杩愮淮闃堝�煎垪琛� */
@@ -525,4 +714,11 @@
   width: 120px;
   text-align: center;
 }
+.fixedWidth {
+  width: 200px;
+}
+.threshold {
+  display: flex;
+  flex-direction: row;
+}
 </style>

--
Gitblit v1.8.0