From f8331485341314c3d0613079d4981887a111568c Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 24 十月 2024 17:20:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/views/system/work-order/threshold/index.vue | 1280 +++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 771 insertions(+), 509 deletions(-)

diff --git a/src/views/system/work-order/threshold/index.vue b/src/views/system/work-order/threshold/index.vue
index 54f88b9..6e2d5af 100644
--- a/src/views/system/work-order/threshold/index.vue
+++ b/src/views/system/work-order/threshold/index.vue
@@ -1,308 +1,416 @@
 <template>
   <div class="app-container">
-<!--    <el-row :gutter="10" class="mb8">-->
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          type="primary"-->
-<!--          plain-->
-<!--          icon="el-icon-plus"-->
-<!--          size="mini"-->
-<!--          @click="handleAdd"-->
-<!--          v-hasPermi="['ycl:threshold:add']"-->
-<!--        >鏂板-->
-<!--        </el-button>-->
-<!--      </el-col>-->
-<!--    </el-row>-->
-
-    <el-table v-loading="loading" :data="thresholdList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center"/>
-      <el-table-column label="璁惧绫诲瀷" align="center" prop="monitorType">
-        <template slot-scope="scope">
-          <span v-show="scope.row['monitorType'] === 'face'">浜鸿劯</span>
-          <span v-show="scope.row['monitorType'] === 'car'">杞﹁締</span>
-          <span v-show="scope.row['monitorType'] === 'video'">瑙嗛</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="宸ュ崟闃堝��" align="center">
-        <template slot-scope="scope">
-          <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>
+    <!--    <el-row :gutter="10" class="mb8">-->
+    <!--      <el-col :span="1.5">-->
+    <!--        <el-button-->
+    <!--          type="primary"-->
+    <!--          plain-->
+    <!--          icon="el-icon-plus"-->
+    <!--          size="mini"-->
+    <!--          @click="handleAdd"-->
+    <!--          v-hasPermi="['ycl:threshold:add']"-->
+    <!--        >鏂板-->
+    <!--        </el-button>-->
+    <!--      </el-col>-->
+    <!--    </el-row>-->
+    <el-row>
+      <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="8">
+        <el-card style="margin-bottom: 20px; height: 350px; margin-right: 20px;color: #656565;">
+          <div style="display: flex; justify-content: space-between">
+            <div class="header鈥攖ext">瑙嗛</div>
+            <div>
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-edit"
+                v-hasPermi="['ycl:threshold:edit']"
+                @click="showEdit('video')"
+                v-if="!ifEditVideo"
+                >淇敼
+              </el-button>
+              <el-button
+                size="mini"
+                type="primary"
+                @click="saveEdit('video')"
+                v-if="ifEditVideo"
+                >淇濆瓨
+              </el-button>
             </div>
-            <div class="table-row">
-              <div class="table-row-item">鍙婃椂鐜�</div>
-              <div class="table-row-item">{{ scope.row.timelyRate }}</div>
+          </div>
+          <div
+            style="
+              margin: 20px;
+              display: flex;
+              width: 400px;
+              justify-content: space-between;
+            "
+          >
+            <div>
+              <div
+                style="
+                  font-size: small;
+                  display: flex;
+                  flex-direction: row-reverse;
+                  width: 192px;
+                "
+              >
+                宸ュ崟闃堝��
+              </div>
+              <div>
+                <el-form label-width="140px">
+                  <el-form-item
+                    v-for="(item, index) in thresholdList.video"
+                    :label="item.name + '锛�'"
+                    :key="item.id"
+                  >
+                    <el-input
+                      v-model="videoList[index].value"
+                      size="mini"
+                      style="width: 100px"
+                      :type="item.countType=='int'?'number':''"
+                      v-if="ifEditVideo"
+                    ></el-input>
+                    <span v-else>{{ item.value }}</span>
+                    <span class="unit" v-if="item.countType=='percent'">%</span>
+                    <span class="unit" v-if="item.countType=='second'">绉�</span>
+                  </el-form-item>
+                </el-form>
+              </div>
             </div>
-            <div class="table-row">
-              <div class="table-row-item">寤惰繜閲�</div>
-              <div class="table-row-item">{{ scope.row.delayAmount }}</div>
+            <div>
+              <span style="font-size: small">涓嬪彂闃堝��</span>
+              <div>
+                <el-form ref="form">
+                  <el-form-item
+                    v-for="(item, index) in thresholdList.video"
+                    label=""
+                    :key="item.id"
+                  >
+                    <el-input
+                      v-model="videoList[index].valueAuto"
+                      size="mini"
+                      style="width: 100px"
+                      :type="item.countType=='int'?'number':''"
+                      v-if="ifEditVideo"
+                    ></el-input>
+                    <span v-else>{{ item.valueAuto }}</span>
+                    <span class="unit" v-if="item.countType=='percent'">%</span>
+                    <span class="unit" v-if="item.countType=='second'">绉�</span>
+                  </el-form-item>
+                </el-form>
+              </div>
             </div>
-            <div class="table-row">
-              <div class="table-row-item">璁惧娲昏穬鐜�</div>
-              <div class="table-row-item">{{ scope.row.deviceActiveRate }}</div>
+          </div>
+        </el-card>
+      </el-col>
+      <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="8">
+        <el-card style="margin-bottom: 20px; height: 350px; margin-right: 20px;color: #656565;">
+          <div style="display: flex; justify-content: space-between">
+            <div class="header鈥攖ext">浜鸿劯</div>
+            <div>
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-edit"
+                v-hasPermi="['ycl:threshold:edit']"
+                @click="showEdit('face')"
+                v-if="!ifEditFace"
+                >淇敼
+              </el-button>
+              <el-button
+                size="mini"
+                type="primary"
+                @click="saveEdit('face')"
+                v-if="ifEditFace"
+                >淇濆瓨
+              </el-button>
             </div>
-            <div class="table-row">
-              <div class="table-row-item">鎶撴媿鍙婃椂鐜�</div>
-              <div class="table-row-item">{{ scope.row.timelyCapture }}</div>
+          </div>
+          <div
+            style="
+              margin: 20px;
+              display: flex;
+              width: 400px;
+              justify-content: space-between;
+            "
+          >
+            <div>
+              <div
+                style="
+                  font-size: small;
+                  display: flex;
+                  flex-direction: row-reverse;
+                  width: 190px;
+                "
+              >
+                宸ュ崟闃堝��
+              </div>
+              <div>
+                <el-form label-width="140px">
+                  <el-form-item
+                    v-for="(item, index) in thresholdList.face"
+                    :label="item.name + '锛�'"
+                    :key="item.id"
+                  >
+                    <el-input
+                      v-model="faceList[index].value"
+                      size="mini"
+                      style="width: 100px"
+                      :type="item.countType=='int'?'number':''"
+                      v-if="ifEditFace"
+                    ></el-input>
+                    <span v-else>{{ item.value }}</span>
+                    <span class="unit" v-if="item.countType=='percent'">%</span>
+                    <span class="unit" v-if="item.countType=='second'">绉�</span>
+                  </el-form-item>
+                </el-form>
+              </div>
             </div>
-            <div class="table-row">
-              <div class="table-row-item">鏃堕挓鍑嗙‘鐜�</div>
-              <div class="table-row-item">{{ scope.row.timeAccuracy }}</div>
+            <div>
+              <span style="font-size: small">涓嬪彂闃堝��</span>
+              <div>
+                <el-form ref="form">
+                  <el-form-item
+                    v-for="(item, index) in thresholdList.face"
+                    label=""
+                    :key="item.id"
+                  >
+                    <el-input
+                      v-model="faceList[index].valueAuto"
+                      size="mini"
+                      style="width: 100px"
+                      :type="item.countType=='int'?'number':''"
+                      v-if="ifEditFace"
+                    ></el-input>
+                    <span v-else>{{ item.valueAuto }}</span>
+                    <span class="unit" v-if="item.countType=='percent'">%</span>
+                    <span class="unit" v-if="item.countType=='second'">绉�</span>
+                    </el-form-item
+                  >
+                </el-form>
+              </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>
+        </el-card></el-col
+      >
+      <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="8">
+        <el-card style="margin-bottom: 20px; height: 350px; margin-right: 20px;color: #656565;">
+          <div style="display: flex; justify-content: space-between">
+            <div class="header鈥攖ext">杞﹁締</div>
+            <div>
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-edit"
+                v-hasPermi="['ycl:threshold:edit']"
+                @click="showEdit('car')"
+                v-if="!ifEditCar"
+                >淇敼
+              </el-button>
+              <el-button
+                size="mini"
+                type="primary"
+                @click="saveEdit('car')"
+                v-if="ifEditCar"
+                >淇濆瓨
+              </el-button>
             </div>
-            <div class="table-row">
-              <div class="table-row-item">杩囪溅缂哄け鐜�</div>
-              <div class="table-row-item">{{ scope.row.passCarMissRate }}</div>
+          </div>
+          <div
+            style="
+              margin: 20px;
+              display: flex;
+              width: 400px;
+              justify-content: space-between;
+            "
+          >
+            <div>
+              <div
+                style="
+                  font-size: small;
+                  display: flex;
+                  flex-direction: row-reverse;
+                  width: 206px;
+                "
+              >
+                宸ュ崟闃堝��
+              </div>
+              <div>
+                <el-form ref="form" label-width="160px">
+                  <el-form-item
+                    v-for="(item, index) in thresholdList.car"
+                    :label="item.name + '锛�'"
+                    :key="item.id"
+                  >
+                    <el-input
+                      v-model="carList[index].value"
+                      size="mini"
+                      style="width: 100px"
+                      :type="item.countType=='int'?'number':''"
+                      v-if="ifEditCar"
+                    ></el-input>
+                    <span v-else>{{ item.value }}</span>
+                    <span class="unit" v-if="item.countType=='percent'">%</span>
+                    <span class="unit" v-if="item.countType=='second'">绉�</span>
+                  </el-form-item>
+                </el-form>
+              </div>
             </div>
-            <div class="table-row">
-              <div class="table-row-item">鏈夋晥杩囪溅鏁版嵁閲�</div>
-              <div class="table-row-item">{{ scope.row.passCarEffectiveNum }}</div>
+            <div>
+              <span style="font-size: small">涓嬪彂闃堝��</span>
+              <div>
+                <el-form ref="form">
+                  <el-form-item
+                    v-for="(item, index) in thresholdList.car"
+                    label=""
+                    :key="item.id"
+                  >
+                    <el-input
+                      v-model="carList[index].valueAuto"
+                      size="mini"
+                      style="width: 100px"
+                      :type="item.countType=='int'?'number':''"
+                      v-if="ifEditCar"
+                    ></el-input>
+                    <span v-else>{{ item.valueAuto }}</span>
+                    <span class="unit" v-if="item.countType=='percent'">%</span>
+                    <span class="unit" v-if="item.countType=='second'">绉�</span>
+                  </el-form-item>
+                </el-form>
+              </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">
-        <template slot-scope="scope">
-          <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">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            v-hasPermi="['ycl:threshold:edit']"
-            @click="updateWho(scope.row)"
-          >淇敼
-          </el-button>
-<!--          <el-button-->
-<!--            size="mini"-->
-<!--            type="text"-->
-<!--            icon="el-icon-delete"-->
-<!--            @click="handleDelete(scope.row)"-->
-<!--            v-hasPermi="['ycl:threshold:remove']"-->
-<!--          >鍒犻櫎-->
-<!--          </el-button>-->
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 浜鸿劯闃堝�� -->
-    <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="涓嬪彂闃堝��"/>
+          </div>
+        </el-card></el-col
+      >
+    </el-row>
+    <el-row class="content-warp">
+      <div class="header鈥攖ext" style="margin-bottom: 5px">宸ュ崟鐧藉悕鍗�</div>
+      <el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
+        <el-form-item label="璁惧缂栫爜" prop="serialNumber">
+          <el-input
+            v-model="queryParams.serialNumber"
+            placeholder="璁惧缂栫爜"
+            clearable
+            @keyup.enter.native="getWhiteList"
+            @clear="getWhiteList"
+          />
         </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 label="鐐逛綅鍚嶇О" prop="pointName">
+          <el-input
+            v-model="queryParams.pointName"
+            placeholder="鐐逛綅鍚嶇О"
+            clearable
+            @keyup.enter.native="getWhiteList"
+            @clear="getWhiteList"
+          />
         </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-button type="primary" icon="el-icon-search" size="small" @click="getWhiteList">鎼滅储</el-button>
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="editFace">纭� 瀹�</el-button>
-        <el-button @click="cancelFace">鍙� 娑�</el-button>
-      </div>
-    </el-dialog>
+    </el-row>
+    <el-row class="content-warp">
+      <el-button size="small" type="success" @click="addOpen" plain>鏂板</el-button>
+      <el-button size="small" type="danger" @click="bathDelete" plain>鍒犻櫎</el-button>
+      <el-popover style="margin-left: 10px" placement="bottom" trigger="hover" content="瀵煎叆鐐逛綅">
+        <div class="bottom_">
+          <p>瀵煎叆鐐逛綅鍙仛鏂板鎿嶄綔</p>
+        </div>
+        <div class="bottom_">
+          <el-upload
+            ref="upload"
+            class="upload-demo"
+            drag
+            :action="importUrl"
+            :file-list="fileList"
+            :before-upload="beforeUpload"
+          >
+            <i class="el-icon-upload"></i>
+            <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+            <div class="el-upload__tip" slot="tip">鍙兘涓婁紶xls/xlsx鏂囦欢</div>
+          </el-upload>
+        </div>
+        <div>
+          <el-button class="bottom_" type="primary" size="small" v-loading="upload" @click="handleImport"
+                     v-hasPermi="['point:import']">瀵煎叆</el-button>
+        </div>
+        <el-button type="primary" size="small" plain icon="el-icon-bottom" slot="reference" v-hasPermi="['point:import']">瀵煎叆鐧藉悕鍗�</el-button>
+      </el-popover>
+    </el-row>
+    <el-row class="content-warp">
+      <el-col :span="24">
+        <el-table v-loading="loading" :data="workOrderWhiteList" @selection-change="handleSelectionChange">
+          <el-table-column type="selection" width="55" align="center" prop="id"/>
+          <el-table-column label="璁惧缂栫爜" align="center" prop="serialNumber"/>
+          <el-table-column label="鐐逛綅鍚嶇О" align="center" prop="pointName"/>
+          <el-table-column label="鍒涘缓浜�" align="center" prop="createBy"/>
+          <el-table-column label="澶囨敞" align="center" prop="remark"/>
+        </el-table>
 
-    <!-- 杞﹁締闃堝�� -->
-    <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">
-        <el-button type="primary" @click="editCar">纭� 瀹�</el-button>
-        <el-button @click="cancelCar">鍙� 娑�</el-button>
-      </div>
-    </el-dialog>
+        <pagination
+          v-show="total>0"
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="getWhiteList"
+        />
+      </el-col>
+    </el-row>
 
-    <!-- 瑙嗛闃堝�� -->
-    <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>
-          <el-select v-model="videoForm.imageQualityAuto" placeholder="涓嬪彂闃堝��" @change="handleModeNameChange">
-            <el-option :key="dict.value" :label="dict.value" v-for="dict in dict.type.image_qualify"/>
-          </el-select>
-        </el-form-item>
-        <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>
-          <el-select v-model="videoForm.videoQualityAuto" placeholder="涓嬪彂闃堝��" @change="handleModeNameChange">
-            <el-option :key="dict.value" :label="dict.value" v-for="dict in dict.type.video_qualify"/>
-          </el-select>
-        </el-form-item>
-        <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>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="editVideo">纭� 瀹�</el-button>
-        <el-button @click="cancelVideo">鍙� 娑�</el-button>
+<!--    鏂板鐧藉悕鍗�-->
+    <el-dialog
+      title="鏂板鐧藉悕鍗�"
+      :visible.sync="addShow"
+      width="500px"
+      :close-on-click-modal="false"
+      :before-close="addClose">
+      <div>
+        <el-form :model="addForm" label-position="top" :rules="addFormRules" ref="addForm" size="small">
+          <el-form-item label="璁惧缂栫爜" prop="serialNumber">
+            <el-input v-model="addForm.serialNumber"></el-input>
+          </el-form-item>
+          <el-form-item label="澶囨敞淇℃伅" prop="remark">
+            <el-input v-model="addForm.remark"></el-input>
+          </el-form-item>
+        </el-form>
       </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="addClose">鍙� 娑�</el-button>
+        <el-button type="primary" @click="addSubmit">鏂� 澧�</el-button>
+      </span>
     </el-dialog>
-
   </div>
 </template>
 
 <script>
-import { listThreshold, getThreshold, editVideo } from '@/api/platform/threshold'
-import { editCar, editFace, getCar, getFace, getVideo } from '../../../../api/platform/threshold'
+import {
+  listThreshold,
+  getThreshold,
+  updateThreshold,
+  importData,
+} from "@/api/platform/threshold";
+import {
+  editCar,
+  editFace,
+  getCar,
+  getFace,
+  getVideo,
+} from "../../../../api/platform/threshold";
+
+import {
+  getWhiteList,
+  addWhiteList,
+  bathDelete,
+} from "@/api/platform/work-order";
 
 export default {
-  dicts: ['image_qualify', 'video_qualify'],
-  name: 'Threshold',
+  dicts: ["image_qualify", "video_qualify"],
+  name: "Threshold",
   data() {
     return {
+      ifEditVideo: false,
+      ifEditFace: false,
+      ifEditCar: false,
       indicators: [],
       // 閬僵灞�
       loading: true,
@@ -317,9 +425,12 @@
       // 鎬绘潯鏁�
       total: 0,
       // 杩愮淮闃堝�艰〃鏍兼暟鎹�
-      thresholdList: [],
+      thresholdList: {},
+      videoList: [],
+      faceList: [],
+      carList: [],
       // 寮瑰嚭灞傛爣棰�
-      title: '',
+      title: "",
       // 鏄惁鏄剧ず寮瑰嚭灞�
       videoOpen: false,
       faceOpen: false,
@@ -328,7 +439,9 @@
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        monitorType: null
+        monitorType: null,
+        serialNumber: null,
+        pointName: null,
       },
       // 琛ㄥ崟鍙傛暟
       videoForm: {},
@@ -337,141 +450,208 @@
       // 琛ㄥ崟鏍¢獙
       faceRules: {
         monitorType: [
-          { required: true, message: '璁惧绫诲瀷涓嶈兘涓虹┖', trigger: 'change' }
+          {required: true, message: "璁惧绫诲瀷涓嶈兘涓虹┖", trigger: "change"},
         ],
         captureNum: [
-          { required: true, message: '璇峰~鍐欐姄鎷嶉噺', trigger: 'blur' }
+          {required: true, message: "璇峰~鍐欐姄鎷嶉噺", trigger: "blur"},
         ],
         timelyRate: [
-          { required: true, message: '璇峰~鍐欏強鏃剁巼', trigger: 'blur' }
+          {required: true, message: "璇峰~鍐欏強鏃剁巼", trigger: "blur"},
         ],
         delayAmount: [
-          { required: true, message: '璇峰~鍐欏欢杩熼噺', trigger: 'blur' }
+          {required: true, message: "璇峰~鍐欏欢杩熼噺", trigger: "blur"},
         ],
         deviceActiveRate: [
-          { required: true, message: '璇峰~鍐欒澶囨椿璺冪巼', trigger: 'blur' }
+          {required: true, message: "璇峰~鍐欒澶囨椿璺冪巼", trigger: "blur"},
         ],
         timeAccuracy: [
-          { required: true, message: '璇峰~鍐欐椂閽熷噯纭巼', trigger: 'blur' }
+          {required: true, message: "璇峰~鍐欐椂閽熷噯纭巼", trigger: "blur"},
         ],
         timelyCapture: [
-          { required: true, message: '璇峰~鍐欐姄鎷嶅強鏃剁巼', trigger: 'blur' }
+          {required: true, message: "璇峰~鍐欐姄鎷嶅強鏃剁巼", trigger: "blur"},
         ],
       },
       carRules: {
         monitorType: [
-          { required: true, message: '璁惧绫诲瀷涓嶈兘涓虹┖', trigger: 'change' }
+          {required: true, message: "璁惧绫诲瀷涓嶈兘涓虹┖", trigger: "change"},
         ],
         passCarNum: [
-          { required: true, message: '璇峰~鍐欒繃杞︽暟鎹噺', trigger: 'blur' }
+          {required: true, message: "璇峰~鍐欒繃杞︽暟鎹噺", trigger: "blur"},
         ],
         passCarMissRate: [
-          { required: true, message: '璇峰~鍐欒繃杞︾己澶辩巼', trigger: 'blur' }
+          {required: true, message: "璇峰~鍐欒繃杞︾己澶辩巼", trigger: "blur"},
         ],
         passCarEffectiveNum: [
-          { required: true, message: '璇峰~鍐欐湁鏁堣繃杞︽暟鎹噺', trigger: 'blur' }
+          {required: true, message: "璇峰~鍐欐湁鏁堣繃杞︽暟鎹噺", trigger: "blur"},
         ],
         timelyCapture: [
-          { required: true, message: '璇峰~鍐欐姄鎷嶅強鏃剁巼', trigger: 'blur' }
+          {required: true, message: "璇峰~鍐欐姄鎷嶅強鏃剁巼", trigger: "blur"},
         ],
         deviceActiveRate: [
-          { required: true, message: '璇峰~鍐欒澶囨椿璺冪巼', trigger: 'blur' }
+          {required: true, message: "璇峰~鍐欒澶囨椿璺冪巼", trigger: "blur"},
         ],
         timeAccuracy: [
-          { required: true, message: '璇峰~鍐欐椂閽熷噯纭巼', trigger: 'blur' }
+          {required: true, message: "璇峰~鍐欐椂閽熷噯纭巼", trigger: "blur"},
         ],
       },
       rules: {
         monitorType: [
-          { required: true, message: '璁惧绫诲瀷锛�1浜鸿劯 2杞﹁締 3瑙嗛涓嶈兘涓虹┖', trigger: 'change' }
+          {
+            required: true,
+            message: "璁惧绫诲瀷锛�1浜鸿劯 2杞﹁締 3瑙嗛涓嶈兘涓虹┖",
+            trigger: "change",
+          },
         ],
         videoQuality: [
-          { required: true, message: '璇烽�夋嫨瑙嗛璐ㄩ噺闃堝��', trigger: 'change' }
+          {required: true, message: "璇烽�夋嫨瑙嗛璐ㄩ噺闃堝��", trigger: "change"},
         ],
         imageQuality: [
-          { required: true, message: '璇烽�夋嫨鍥惧儚璐ㄩ噺闃堝��', trigger: 'change' }
+          {required: true, message: "璇烽�夋嫨鍥惧儚璐ㄩ噺闃堝��", trigger: "change"},
         ],
         annotationAccuracy: [
-          { required: true, message: '璇峰~鍐欐爣娉ㄥ噯纭巼闃堝��', trigger: 'blur' }
+          {required: true, message: "璇峰~鍐欐爣娉ㄥ噯纭巼闃堝��", trigger: "blur"},
         ],
-      }
-    }
+      },
+      // 鐧藉悕鍗曞垪琛�
+      workOrderWhiteList: [],
+      // 鏂板妗�
+      addShow: false,
+      addForm: {
+        serialNumber: "",
+        remark: "",
+      },
+      // 鏂板妗嗘牎楠�
+      addFormRules: {
+        serialNumber: [
+          {required: true, message: "璁惧缂栫爜涓嶈兘涓虹┖", trigger: "blur"},
+        ],
+      },
+      // 瀵煎叆鏂囦欢璺緞
+      importUrl: '',
+      fileList: [],
+      importFile: null,
+      upload: false,
+    };
   },
   created() {
-    this.getList()
+    this.getList();
+    this.getWhiteList();
   },
   methods: {
+    showEdit(value) {
+      if (value == "video") {
+        this.videoList = JSON.parse(JSON.stringify(this.thresholdList.video));
+        this.ifEditVideo = true;
+      }
+      if (value == "face") {
+        this.faceList = JSON.parse(JSON.stringify(this.thresholdList.face));
+        this.ifEditFace = true;
+      }
+      if (value == "car") {
+        this.carList = JSON.parse(JSON.stringify(this.thresholdList.car));
+        this.ifEditCar = true;
+      }
+    },
+    saveEdit(value) {
+      let data = []
+      if (value == "video") {
+        data = this.videoList;
+        this.ifEditVideo = false;
+      }
+      if (value == "face") {
+        data = this.faceList;
+        this.ifEditFace = false;
+      }
+      if (value == "car") {
+        data = this.carList;
+        this.ifEditCar = false;
+      }
+      updateThreshold(data).then((response) => {
+        this.$modal.msgSuccess("淇敼鎴愬姛");
+        this.getList();
+      });
+    },
     showContent(row) {
-      if(row.monitorType === "car") {
-
+      if (row.monitorType === "car") {
       }
     },
     editVideo() {
       // 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("淇敼澶辫触")
-            }
+      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 => {
+      editFace(this.videoForm).then((res) => {
         if (res.code === 200) {
-          this.$message.success("淇敼鎴愬姛")
-          this.faceOpen = false
+          this.$message.success("淇敼鎴愬姛");
+          this.faceOpen = false;
           this.getList();
         } else {
-          this.$message.success("淇敼澶辫触")
+          this.$message.success("淇敼澶辫触");
         }
         //   })
         // }
-      })
+      });
     },
     editCar() {
       // this.$refs['carForm'].validate(validate => {
       //   if (validate) {
-      editCar(this.carForm).then(res => {
+      editCar(this.carForm).then((res) => {
         if (res.code === 200) {
-          this.$message.success("淇敼鎴愬姛")
-          this.carOpen = false
+          this.$message.success("淇敼鎴愬姛");
+          this.carOpen = false;
           this.getList();
         } else {
-          this.$message.success("淇敼澶辫触")
+          this.$message.success("淇敼澶辫触");
         }
         //   })
         // }
-      })
+      });
     },
     /** 鏌ヨ杩愮淮闃堝�煎垪琛� */
     getList() {
-      this.loading = true
-      listThreshold(this.queryParams).then(response => {
-        this.thresholdList = response.rows
-        this.total = response.total
-        this.loading = false
-      })
+      this.loading = true;
+      listThreshold(this.queryParams).then((response) => {
+        this.thresholdList = response.data;
+        this.videoList = JSON.parse(JSON.stringify(this.thresholdList.video));
+        this.faceList = JSON.parse(JSON.stringify(this.thresholdList.face));
+        this.carList = JSON.parse(JSON.stringify(this.thresholdList.car));
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    getWhiteList() {
+      this.loading = true;
+      getWhiteList(this.queryParams).then((response) => {
+        this.workOrderWhiteList = response.data;
+        this.total = response.total;
+        this.loading = false;
+      });
     },
     // 鍙栨秷鎸夐挳
     cancelFace() {
-      this.faceOpen = false
-      this.resetFace()
+      this.faceOpen = false;
+      this.resetFace();
     },
     cancelCar() {
-      this.carOpen = false
-      this.resetCar()
+      this.carOpen = false;
+      this.resetCar();
     },
     cancelVideo() {
-      this.videoOpen = false
-      this.resetVideo()
+      this.videoOpen = false;
+      this.resetVideo();
     },
     // 琛ㄥ崟閲嶇疆
     reset() {
@@ -482,9 +662,9 @@
         indicator: null,
         createTime: null,
         updateTime: null,
-        deleted: null
-      }
-      this.resetForm('form')
+        deleted: null,
+      };
+      this.resetForm("form");
     },
     resetVideo() {
       this.videoForm = {
@@ -496,8 +676,8 @@
         videoQualityAuto: "",
         annotationAccuracy: null,
         annotationAccuracyAuto: null,
-      }
-      this.resetForm('videoForm')
+      };
+      this.resetForm("videoForm");
     },
     resetFace() {
       this.faceForm = {
@@ -509,8 +689,8 @@
         videoQualityAuto: "",
         annotationAccuracy: null,
         annotationAccuracyAuto: null,
-      }
-      this.resetForm('faceForm')
+      };
+      this.resetForm("faceForm");
     },
     resetCar() {
       this.carForm = {
@@ -522,18 +702,215 @@
         videoQualityAuto: "",
         annotationAccuracy: null,
         annotationAccuracyAuto: null,
-      }
-      this.resetForm('carForm')
+      };
+      this.resetForm("carForm");
     },
     /** 鎼滅储鎸夐挳鎿嶄綔 */
-    handleQuery() {
-      this.queryParams.pageNum = 1
-      this.getList()
-    },
+    // handleQuery() {
+    //   this.queryParams.pageNum = 1;
+    //   this.getList();
+    // },
     /** 閲嶇疆鎸夐挳鎿嶄綔 */
-    resetQuery() {
-      this.resetForm('queryForm')
-      this.handleQuery()
+    // resetQuery() {
+    //   this.resetForm("queryForm");
+    //   this.handleQuery();
+    // },
+    // 澶氶�夋閫変腑鏁版嵁
+    // handleSelectionChange(selection) {
+    //   this.ids = selection.map((item) => item.id);
+    //   this.single = selection.length !== 1;
+    //   this.multiple = !selection.length;
+    // },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    // handleAdd() {
+    //   this.reset();
+    //   this.open = true;
+    //   this.title = "娣诲姞杩愮淮闃堝��";
+    //   this.handleModeNameChange();
+    // },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    updateWho(row) {
+      if (row.monitorType === "face") {
+        getFace(row.id).then((response) => {
+          this.faceForm = response.data;
+          this.faceOpen = true;
+        });
+      } else if (row.monitorType === "car") {
+        getCar(row.id).then((response) => {
+          this.carForm = response.data;
+          this.carOpen = true;
+        });
+      } else {
+        getVideo(row.id).then((response) => {
+          this.videoForm = response.data;
+          this.videoOpen = true;
+        });
+      }
+    },
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids;
+      getThreshold(id).then((response) => {
+        this.form = response.data;
+        this.indicators = JSON.parse(this.form.indicator);
+        this.videoOpen = true;
+        this.title = "淇敼杩愮淮闃堝��";
+      });
+    },
+    /** 鎻愪氦鎸夐挳 */
+    submitForm() {
+      this.$refs["form"].validate((valid) => {
+        if (valid) {
+          // 灏唅ndicators杞负json璧嬪�煎埌form
+          this.form.indicator = JSON.stringify(this.indicators);
+          if (this.form.id != null) {
+            updateThreshold(this.form).then((response) => {
+              this.$modal.msgSuccess("淇敼鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addThreshold(this.form).then((response) => {
+              this.$modal.msgSuccess("鏂板鎴愬姛");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal
+        .confirm('鏄惁纭鍒犻櫎杩愮淮闃堝�肩紪鍙蜂负"' + ids + '"鐨勬暟鎹」锛�')
+        .then(function () {
+          return delThreshold(ids);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        })
+        .catch(() => {
+        });
+    },
+    /** 鍒囨崲涓嶅悓鎸囨爣 */
+    handleModeNameChange() {
+      if (this.form.monitorType === "1" || this.form.monitorType === null) {
+        this.indicators = [
+          {
+            label: "鎶撴媿閲�",
+            value: null,
+          },
+          {
+            label: "鍙婃椂鐜�",
+            value: null,
+          },
+          {
+            label: "寤惰繜閲�",
+            value: null,
+          },
+          {
+            label: "鎶芥閲�",
+            value: null,
+          },
+          {
+            label: "璁惧娲昏穬鐜�",
+            value: null,
+          },
+          {
+            label: "鎶撴媿鍙婃椂鐜�",
+            value: null,
+          },
+          {
+            label: "鏃堕挓鍑嗙‘鐜�",
+            value: null,
+          },
+          {
+            label: "鏃堕挓涓嶅噯纭巼",
+            value: null,
+          },
+        ];
+      } else if (this.form.monitorType === "car") {
+        this.indicators = [
+          {
+            label: "杩囪溅鏁版嵁閲�",
+            value: null,
+          },
+          {
+            label: "杩囪溅缂哄け鐜�",
+            value: null,
+          },
+          {
+            label: "鏈夋晥杩囪溅鏁版嵁閲�",
+            value: null,
+          },
+          {
+            label: "鎶芥閲�",
+            value: null,
+          },
+          {
+            label: "璁惧娲昏穬鐜�",
+            value: null,
+          },
+          {
+            label: "鎶撴媿鍙婃椂鐜�",
+            value: null,
+          },
+          {
+            label: "鏃堕挓鍑嗙‘鐜�",
+            value: null,
+          },
+          {
+            label: "鏃堕挓涓嶅噯纭巼",
+            value: null,
+          },
+        ];
+      } else if (this.form.monitorType === "video") {
+        this.indicators = [
+          {
+            label: "褰曞儚璐ㄩ噺",
+            value: null,
+          },
+          {
+            label: "鏍囨敞鍑嗙‘鐜�",
+            value: null,
+          },
+          {
+            label: "鍥惧儚璐ㄩ噺",
+            value: null,
+          },
+        ];
+      }
+    },
+    // 鎵撳紑鏂板妗�
+    addOpen() {
+      this.addShow = true;
+    },
+    // 鍏抽棴鏂板妗�
+    addClose() {
+      this.addShow = false;
+      this.addReset();
+    },
+    // 鏂板妗嗘彁浜�
+    addSubmit() {
+      this.$refs["addForm"].validate((valid) => {
+        if (valid) {
+          addWhiteList(this.addForm).then((response) => {
+            this.$modal.msgSuccess("鏂板鎴愬姛");
+            this.addShow = false;
+            this.getWhiteList();
+            this.addReset();
+          });
+        }
+      });
+    },
+    // 鏂板妗嗛噸缃�
+    addReset() {
+      this.addForm = {
+        serialNumber: "",
+        remark: "",
+      };
     },
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
@@ -541,176 +918,43 @@
       this.single = selection.length !== 1
       this.multiple = !selection.length
     },
-    /** 鏂板鎸夐挳鎿嶄綔 */
-    handleAdd() {
-      this.reset()
-      this.open = true
-      this.title = '娣诲姞杩愮淮闃堝��'
-      this.handleModeNameChange()
-    },
-    /** 淇敼鎸夐挳鎿嶄綔 */
-    updateWho(row) {
-      if (row.monitorType === 'face') {
-        getFace(row.id).then(response => {
-          this.faceForm = response.data
-          this.faceOpen = true;
-        })
-      } else if (row.monitorType === 'car') {
-        getCar(row.id).then(response => {
-          this.carForm = response.data
-          this.carOpen = true;
-        })
-      } else {
-        getVideo(row.id).then(response => {
-          this.videoForm = response.data
-          this.videoOpen = true;
-        })
-      }
-    },
-    handleUpdate(row) {
-      this.reset()
-      const id = row.id || this.ids
-      getThreshold(id).then(response => {
-        this.form = response.data
-        this.indicators = JSON.parse(this.form.indicator)
-        this.videoOpen = true
-        this.title = '淇敼杩愮淮闃堝��'
+    // 鎵归噺鍒犻櫎
+    bathDelete() {
+      bathDelete(this.ids).then(() => {
+        this.getWhiteList();
+        this.$modal.msgSuccess("鎵归噺鍒犻櫎鎴愬姛");
+        this.ids = [];
       })
     },
-    /** 鎻愪氦鎸夐挳 */
-    submitForm() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          // 灏唅ndicators杞负json璧嬪�煎埌form
-          this.form.indicator = JSON.stringify(this.indicators)
-          if (this.form.id != null) {
-            updateThreshold(this.form).then(response => {
-              this.$modal.msgSuccess('淇敼鎴愬姛')
-              this.open = false
-              this.getList()
-            })
-          } else {
-            addThreshold(this.form).then(response => {
-              this.$modal.msgSuccess('鏂板鎴愬姛')
-              this.open = false
-              this.getList()
-            })
-          }
-        }
-      })
+    beforeUpload(file) {
+      this.importFile = file
+      this.fileList = [file]
+      return false
     },
-    /** 鍒犻櫎鎸夐挳鎿嶄綔 */
-    handleDelete(row) {
-      const ids = row.id || this.ids
-      this.$modal.confirm('鏄惁纭鍒犻櫎杩愮淮闃堝�肩紪鍙蜂负"' + ids + '"鐨勬暟鎹」锛�').then(function() {
-        return delThreshold(ids)
-      }).then(() => {
-        this.getList()
-        this.$modal.msgSuccess('鍒犻櫎鎴愬姛')
-      }).catch(() => {
+    // 瀵煎叆鐧藉悕鍗�
+    handleImport() {
+      this.upload = true;
+      let formData = new FormData()
+      formData.append("file", this.importFile)
+      importData(formData).then(res => {
+        this.$message.success("瀵煎叆鎴愬姛")
+        this.upload = false
+        this.fileList = []
+        this.getWhiteList()
       })
-    },
-    /** 鍒囨崲涓嶅悓鎸囨爣 */
-    handleModeNameChange() {
-      if (this.form.monitorType === '1' || this.form.monitorType === null) {
-        this.indicators = [
-          {
-            label: '鎶撴媿閲�',
-            value: null
-          },
-          {
-            label: '鍙婃椂鐜�',
-            value: null
-          },
-          {
-            label: '寤惰繜閲�',
-            value: null
-          },
-          {
-            label: '鎶芥閲�',
-            value: null
-          },
-          {
-            label: '璁惧娲昏穬鐜�',
-            value: null
-          },
-          {
-            label: '鎶撴媿鍙婃椂鐜�',
-            value: null
-          },
-          {
-            label: '鏃堕挓鍑嗙‘鐜�',
-            value: null
-          },
-          {
-            label: '鏃堕挓涓嶅噯纭巼',
-            value: null
-          }
-        ]
-      } else if (this.form.monitorType === 'car') {
-        this.indicators = [
-          {
-            label: '杩囪溅鏁版嵁閲�',
-            value: null
-          },
-          {
-            label: '杩囪溅缂哄け鐜�',
-            value: null
-          },
-          {
-            label: '鏈夋晥杩囪溅鏁版嵁閲�',
-            value: null
-          },
-          {
-            label: '鎶芥閲�',
-            value: null
-          },
-          {
-            label: '璁惧娲昏穬鐜�',
-            value: null
-          },
-          {
-            label: '鎶撴媿鍙婃椂鐜�',
-            value: null
-          },
-          {
-            label: '鏃堕挓鍑嗙‘鐜�',
-            value: null
-          },
-          {
-            label: '鏃堕挓涓嶅噯纭巼',
-            value: null
-          }
-        ]
-      } else if (this.form.monitorType === 'video') {
-        this.indicators = [
-          {
-            label: '褰曞儚璐ㄩ噺',
-            value: null
-          },
-          {
-            label: '鏍囨敞鍑嗙‘鐜�',
-            value: null
-          },
-          {
-            label: '鍥惧儚璐ㄩ噺',
-            value: null
-          },
-        ]
-      }
     }
   }
-}
+};
 </script>
-<style>
-.el-input-half-width {
+<style scoped>
+::v-deep .el-input-half-width {
   width: calc(50% - 6px); /* 鍑忓幓涓�浜涢棿闅� */
 }
-.table-row {
+::v-deep .table-row {
   display: flex;
   flex-direction: row;
 }
-.table-row-item {
+::v-deep .table-row-item {
   width: 120px;
   text-align: center;
 }
@@ -721,4 +965,22 @@
   display: flex;
   flex-direction: row;
 }
+
+.header鈥攖ext {
+  font-weight: bold;
+  font-size: large;
+}
+::v-deep .el-form-item {
+  margin-bottom: 0px; /* 鏍规嵁闇�姹傝皟鏁磋繖涓�� */
+}
+::v-deep .el-form-item__label {
+  color: #8d8d8d;
+}
+.unit {
+  margin-left: 5px;
+  display: inline-block;
+}
+.content-warp {
+  margin-top: 10px;
+}
 </style>

--
Gitblit v1.8.0