From ea3796f9a0098858f5726e03db56a339b6eab3cc Mon Sep 17 00:00:00 2001
From: ZhangXianQiang <1135831638@qq.com>
Date: 星期二, 21 五月 2024 09:13:19 +0800
Subject: [PATCH] Merge branch 'master' into dev-threejs

---
 src/views/system/check/result/detail/detail.vue |    2 
 src/views/system/work-order/threshold/index.vue |  354 +++++++++++++++++++++++++++++++++++++++-----------
 src/views/system/check/result/index.vue         |   17 +
 src/views/system/check/result/detail/index.vue  |    4 
 4 files changed, 290 insertions(+), 87 deletions(-)

diff --git a/src/views/system/check/result/detail/detail.vue b/src/views/system/check/result/detail/detail.vue
index 05adf88..b6db3cf 100644
--- a/src/views/system/check/result/detail/detail.vue
+++ b/src/views/system/check/result/detail/detail.vue
@@ -237,7 +237,7 @@
     },
     /** 杩斿洖鎸夐挳 */
     goBack() {
-      const obj = { path: "/examine/detail", query: { index: this.$route.query.deptId, examineTag: this.$route.query.examineTag, pageNum: this.$route.query.pageNum } };
+      const obj = { path: "/check/detail", query: { index: this.$route.query.deptId, examineTag: this.$route.query.examineTag, pageNum: this.$route.query.pageNum } };
       this.$tab.closeOpenPage(obj);
     },
     // 鍏抽棴褰撳墠tab椤电锛屾墦寮�鏂伴〉绛�
diff --git a/src/views/system/check/result/detail/index.vue b/src/views/system/check/result/detail/index.vue
index d9326e2..d6c65b4 100644
--- a/src/views/system/check/result/detail/index.vue
+++ b/src/views/system/check/result/detail/index.vue
@@ -57,8 +57,8 @@
         <el-table-column label="鎿嶄綔" align="center">
           <template slot-scope="scope">
             <div style="display: flex;justify-content: center;">
-            <el-button size="small" type="text" @click="handlePublish(scope.row)" v-if="scope.row.publish === 'UNPUBLISHED'" >纭鍙戝竷</el-button>
-            <el-button size="small" type="text" @click="handlePublish(scope.row)" v-if="scope.row.publish === 'PUBLISHED'">鍙栨秷鍙戝竷</el-button>
+            <el-button v-hasPermi="['check:score:publish']" size="small" type="text" @click="handlePublish(scope.row)" v-if="scope.row.publish === 'UNPUBLISHED'" >纭鍙戝竷</el-button>
+            <el-button v-hasPermi="['check:score:publish']" size="small" type="text" @click="handlePublish(scope.row)" v-if="scope.row.publish === 'PUBLISHED'">鍙栨秷鍙戝竷</el-button>
             <el-button
               size="mini"
               type="text"
diff --git a/src/views/system/check/result/index.vue b/src/views/system/check/result/index.vue
index 090956a..1013586 100644
--- a/src/views/system/check/result/index.vue
+++ b/src/views/system/check/result/index.vue
@@ -43,7 +43,7 @@
                 </div>
               </div>
               <div class="bottom-publish">
-                <el-button size="medium" :type="isAnyUnpublished(city) ? 'success' : 'danger'" @click="publish(city)">
+                <el-button v-hasPermi="['check:score:publish']" size="medium" :type="isAnyUnpublished(city) ? 'success' : 'danger'" @click="publish(city)">
                   {{ isAnyUnpublished(city) ? '鍙戝竷' : '鍙栨秷' }}
                 </el-button>
                 <el-button size="medium" @click="jumpDetail(index)" type="info">璇︽儏</el-button>
@@ -138,6 +138,7 @@
             type: 'bar',
             name: '瑙嗛鑰冩牳',
             data: this.dataList.data1,
+            barWidth: '40',
             itemStyle: {
               color: 'rgba(255, 165, 0, 1)'
             }
@@ -146,6 +147,7 @@
             type: 'bar',
             name: '浜鸿劯鑰冩牳',
             data: this.dataList.data2,
+            barWidth: '40',
             itemStyle: {
               color: 'rgba(85, 192, 191, 1)'
             }
@@ -154,6 +156,7 @@
             type: 'bar',
             name: '杞﹁締鑰冩牳',
             data: this.dataList.data3,
+            barWidth: '40',
             itemStyle: {
               color: 'rgba(62, 144, 247, 1)'
             }
@@ -196,33 +199,37 @@
           axisLabel: {
           },
           data: nameArray
+
         },
         yAxis: {
-          min: 90,
+          min: 60
         },
         series: [
           {
             type: 'bar',
             name: '瑙嗛鑰冩牳',
             data: data1,
+            barWidth: '40',
             itemStyle: {
-              color: 'rgba(255, 165, 0, 1)'
+              color: 'rgba(255, 165, 0, 1)',
             }
           },
           {
             type: 'bar',
             name: '浜鸿劯鑰冩牳',
             data: data2,
+            barWidth: '40',
             itemStyle: {
-              color: 'rgba(85, 192, 191, 1)'
+              color: 'rgba(85, 192, 191, 1)',
             }
           },
           {
             type: 'bar',
             name: '杞﹁締鑰冩牳',
             data: data3,
+            barWidth: '40',
             itemStyle: {
-              color: 'rgba(62, 144, 247, 1)'
+              color: 'rgba(62, 144, 247, 1)',
             }
           },
         ]
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