From 58bf48cea61c6c5b4381a4b8ff5b4a39eb4671eb Mon Sep 17 00:00:00 2001
From: ZZJ <10913410+zzj2100@user.noreply.gitee.com>
Date: 星期五, 10 六月 2022 09:36:03 +0800
Subject: [PATCH] 国标摄像机信息接口

---
 src/pages/library/components/carList.vue | 1589 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 783 insertions(+), 806 deletions(-)

diff --git a/src/pages/library/components/carList.vue b/src/pages/library/components/carList.vue
index 9e03c14..41208c7 100644
--- a/src/pages/library/components/carList.vue
+++ b/src/pages/library/components/carList.vue
@@ -1,241 +1,105 @@
 <template>
   <div class="table-parent">
-    <el-row class style="margin:20px">
-      <!-- <el-col :span="4" class="tl">
-          <b class="f14">{{this.baseObject.tableName}}</b>
-      </el-col>
-      <el-col :span="2">
-          <b class="f14">{{this.baseObject.bwType === '1'?'榛戝悕鍗�':'鐧藉悕鍗�'}}</b>
-      </el-col>
-      <el-col :span="8">
-          <b class="f14">鏈夋晥鏃堕棿锛歿{this.baseObject.startTime}}--{{this.baseObject.endTime?this.baseObject.endTime:'姘镐箙鏈夋晥'}}</b>
-      </el-col>-->
-      <div class="tl">
-        <span
-          class="f14"
-          style="color:#000000;"
-        >{{this.baseObject.tableName?this.baseObject.tableName + '/&nbsp;':''}}</span>
-        <span
-          class="f14"
-          style="color:#000000;"
-        >{{this.baseObject.bwType === '1'?'榛戝悕鍗�/&nbsp;':'鐧藉悕鍗�/&nbsp;&nbsp;&nbsp;'}}</span>
-        <span
-          class="f14"
-          style="color:#000000;"
-        >鏈夋晥鏃堕棿锛歿{this.baseObject.startTime}}--{{this.baseObject.endTime?this.baseObject.endTime:'姘镐箙鏈夋晥'}}</span>
+    <el-row>
+      <div class="base-tip">
+        <div class="left-tips">
+          <span class="ku-name">{{ this.baseObject.tableName }}</span>
+          <span class="list" :class="this.baseObject.bwType === '1' ? 'black-list' : 'white-list'">{{
+            this.baseObject.bwType === "1" ? "榛戝悕鍗�" : "鐧藉悕鍗�"
+          }}</span>
+          <span class="ok-time"
+            >鏈夋晥鏃堕棿锛歿{ this.baseObject.startTime }} --
+            {{ this.baseObject.endTime ? this.baseObject.endTime : "姘镐箙鏈夋晥" }}</span
+          >
+        </div>
+
+        <div class="right-btns">
+          <el-switch
+            :active-value="1"
+            :width="52"
+            :inactive-value="0"
+            v-model="baseObject.enable"
+            active-color="#4E94FF"
+            inactive-color="#BBBBBB"
+            style="margin-right: 10px"
+            :disabled="isDisabled(baseObject)"
+            @change="setEnable(baseObject)"
+          >
+          </el-switch>
+          <div class="shutiao" v-if="baseObject.enable"></div>
+          <div class="shutiao1" v-else></div>
+          <el-tooltip content="鍒犻櫎" placement="top" popper-class="atooltip">
+            <span
+              class="iconfont iconfont-wrap iconshanchuku-09"
+              v-if="isShow('library:set')"
+              @click.stop="askDelete('base')"
+            ></span>
+          </el-tooltip>
+
+          <el-tooltip content="缂栬緫2" placement="top" popper-class="atooltip">
+            <span class="iconfont iconfont-wrap iconbianjiku-09" @click.stop="edit" v-if="isShow('library:set')"></span>
+          </el-tooltip>
+        </div>
       </div>
     </el-row>
-    <el-row class style="margin:40px 0 40px 20px">
-      <el-col :span="6">
-        <el-input
-          placeholder="濮撳悕/鎬у埆/韬唤璇佸彿/鎵嬫満鍙�"
-          autocomplete="off"
-          width="100%"
-          size="small"
-          v-model="BaseManageData.contentValue"
-          @keyup.enter.native="handleSearch"
-        ></el-input>
-      </el-col>
-      <el-col :span="2">
-        <el-button size="small" type="primary" @click="handleSearch">鎼滅储</el-button>
-      </el-col>
-      <el-col :offset="8" :span="3">
-        <fTemplate authority="videoTable:edit">
-          <el-button
+
+    <div style="display: flex" class="border-tabl">
+      <div class="head-search">
+        <div class="desc">
+          鏈簱鍏辨湁
+          <span class="nums">{{ BaseManageData.total }}鏉�</span>
+          鏁版嵁
+        </div>
+        <div class="right-group">
+          <el-input
+            placeholder="濮撳悕/鎬у埆/韬唤璇佸彿/鎵嬫満鍙�"
+            autocomplete="off"
+            width="100%"
             size="small"
-            class="ml10"
-            type="danger"
-            @click="deleteBatch"
-            v-if="isShow('videoTable:edit')"
-          >鎵归噺鍒犻櫎</el-button>
-        </fTemplate>
-      </el-col>
-      <el-col :span="2">
-        <div class="text-left">
-          <el-button size="small" class="ml10" type="primary" @click="addCar">娣诲姞杞﹁締</el-button>
-          <el-drawer
-            title="杞﹁締淇℃伅"
-            :modal="false"
-            :destroy-on-close="true"
-            :append-to-body="true"
-            :visible.sync="addDrawer"
-            :direction="direction"
-            :before-close="handleClose1"
-          >
-            <div class="drawerSpace">
-              <div class="uploadLine">
-                <div class="car-picture">
-                  <el-upload
-                    action
-                    :http-request="uploadCar"
-                    accept="image/*"
-                    list-type="picture-card"
-                    :file-list="form.carUrls"
-                    :before-remove="handleRemoveCarPic"
-                  >
-                    <i class="el-icon-plus" style="margin-top:25px"></i>
-                    <div>涓婁紶杞﹁締鐓х墖</div>
-                  </el-upload>
-                </div>
-                <div class="person-picture">
-                  <el-upload
-                    action
-                    :http-request="uploadPerson"
-                    list-type="picture-card"
-                    accept="image/*"
-                    :limit="1"
-                    :file-list="form.faceUrl"
-                    :on-remove="handleRemoveFacePic"
-                  >
-                    <i class="el-icon-plus" style="margin-top:25px"></i>
-                    <div>涓婁紶杞︿富鐓х墖</div>
-                  </el-upload>
-                </div>
-              </div>
-              <el-form
-                ref="formForCar"
-                :model="form"
-                label-width="100px"
-                style="margin-top:20px;margin-bottom: 50px"
-                :rule="rules"
-              >
-                <el-form-item label="*杞︾墝鍙凤細">
-                  <el-input placeholder="璇疯緭鍏ヨ溅鐗屽彿" v-model="form.carNo" class="inputWidth"></el-input>
-                </el-form-item>
-                <el-form-item label="杞﹁締绫诲瀷锛�">
-                  <el-select v-model="form.carType" placeholder="璇烽�夋嫨杞﹁締绫诲瀷" class="inputWidth">
-                    <el-option
-                      v-for="item in VideoPhotoData.dictionary.CARTYPE"
-                      :key="item.value"
-                      :label="item.name"
-                      :value="item.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="杞﹁締鍝佺墝锛�">
-                  <el-select v-model="form.carBrand" placeholder="璇烽�夋嫨杞﹁締鍝佺墝" class="inputWidth">
-                    <el-option
-                      v-for="item in VideoPhotoData.dictionary.BRAND"
-                      :key="item.value"
-                      :label="item.name"
-                      :value="item.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="杞﹁韩棰滆壊锛�">
-                  <el-select v-model="form.carColor" placeholder="璇烽�夋嫨杞﹁韩棰滆壊" class="inputWidth">
-                    <el-option
-                      v-for="item in VideoPhotoData.dictionary.nColor"
-                      :key="item.value"
-                      :label="item.name"
-                      :value="item.value"
-                    ></el-option>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="杞︿富濮撳悕锛�">
-                  <el-input v-model="form.personName" class="inputWidth"></el-input>
-                </el-form-item>
-                <el-form-item label="杞︿富鎬у埆锛�">
-                  <el-radio-group v-model="form.sex">
-                    <el-radio label="鐢�"></el-radio>
-                    <el-radio label="濂�"></el-radio>
-                  </el-radio-group>
-                </el-form-item>
-                <el-form-item label="韬唤璇佸彿锛�">
-                  <el-input v-model="form.idCard" class="inputWidth"></el-input>
-                </el-form-item>
-                <el-form-item label="鎵嬫満鍙凤細">
-                  <el-input v-model="form.phoneNum" class="inputWidth"></el-input>
-                </el-form-item>
-                <el-form-item label="鍏朵粬锛�">
-                  <el-input v-model="form.reserved" class="inputWidth"></el-input>
-                </el-form-item>
-                <el-form-item style="text-align:tight">
-                  <el-button type="primary" @click="submitCar" style="margin-left:120px">淇濆瓨</el-button>
-                  <el-button @click="resetForm">鍙栨秷</el-button>
-                </el-form-item>
-              </el-form>
-            </div>
-          </el-drawer>
+            v-model="BaseManageData.contentValue"
+            @keyup.enter.native="handleSearch"
+          ></el-input>
+          <el-button size="small" type="primary" @click="handleSearch">鎼滅储</el-button>
+
+          <el-tooltip content="鎵归噺鍒犻櫎" placement="top" popper-class="atooltip">
+            <fTemplate authority="library:set">
+              <span
+                class="iconfont iconfont-wrap iconpiliangshanchu-09"
+                @click="askDelete('batch')"
+                v-if="isShow('library:set')"
+              ></span>
+            </fTemplate>
+          </el-tooltip>
+
+          <el-tooltip content="娣诲姞杞﹁締" placement="top" popper-class="atooltip">
+            <span class="iconfont iconfont-wrap icontianjiacheliang-09" @click="addCar"></span>
+          </el-tooltip>
+
+          <el-tooltip content="鎵归噺涓婁紶杞︾墝" placement="top" popper-class="atooltip">
+            <span class="iconfont iconfont-wrap iconshangchuanchepai-09" @click="addBatch"></span>
+          </el-tooltip>
         </div>
-      </el-col>
-      <el-col :span="3">
-        <div class="text-left">
-          <el-button size="small" class="ml10" type="primary" @click="addBatch">鎵归噺涓婁紶杞︾墝</el-button>
-          <el-drawer
-            title="涓婁紶杞︾墝"
-            :modal="false"
-            :append-to-body="true"
-            :visible.sync="addBatchDrawer"
-            :direction="direction"
-            :before-close="handleClose2"
-          >
-            <div class="drawerSpace">
-              <div class="plateAttach">
-                <el-input
-                  type="textarea"
-                  :rows="25"
-                  v-model="plates"
-                  style="width:90%"
-                  placeholder="璇疯緭鍏ヨ溅鐗屽彿"
-                ></el-input>
-                <p>杞︾墝鍙蜂互閫楀彿鎴栧洖杞﹂敭闅斿紑锛屽崟娆℃渶澶氭敮鎸�100鏉′笂浼狅紝渚嬪锛氫含YAB123,浜現34Y87</p>
-                <el-button type="primary" @click="platesBatch" style="margin-left:210px">淇濆瓨</el-button>
-                <el-button @click="resetForm('ruleForm')">鍙栨秷</el-button>
-              </div>
-            </div>
-          </el-drawer>
-        </div>
-      </el-col>
-    </el-row>
-    <div style="display:flex;" class="border-tabl ml20">
+      </div>
+
       <el-table
         id="multipleTable"
+        class="tableBox"
         ref="multipleTable"
         :data="BaseManageData.personList"
         tooltip-effect="dark"
-        style="width: 100%;"
+        style="width: 100%; overflow: auto"
         :fit="true"
-        :max-height="tableHeight"
-        :default-sort="{prop: 'createTime', order: 'descending'}"
+        border
+        :default-sort="{ prop: 'createTime', order: 'descending' }"
         @selection-change="handleSelectionChange"
-        :header-cell-style="{background:'#f8f8f8',color:'#222222'}"
+        :header-cell-style="{
+          background: '#fff',
+          color: '#222222',
+          padding: '2px 1px',
+          borderBottom: 'none'
+        }"
       >
         <el-table-column type="selection" width="30"></el-table-column>
-        <el-table-column label="搴忓彿" width="70" sortable align="center">
-          <template slot-scope="scope">{{scope.$index+1}}</template>
-        </el-table-column>
-        <el-table-column prop="carNo" label="杞︾墝鍙�" sortable align="center" width="120"></el-table-column>
-        <el-table-column
-          prop="carType"
-          label="杞﹁締绫诲瀷"
-          width="100"
-          show-overflow-tooltip
-          sortable
-          align="center"
-        ></el-table-column>
-        <el-table-column prop="carBrand" label="杞﹁締鍝佺墝" min-width="100" sortable align="center"></el-table-column>
-        <el-table-column
-          prop="carColor"
-          label="杞﹁韩棰滆壊"
-          width="100"
-          show-overflow-tooltip
-          sortable
-          align="center"
-        >
-          <template
-            slot-scope="scope"
-          >{{getDataName(VideoPhotoData.dictionary.nColor,scope.row.carColor)}}</template>
-        </el-table-column>
-        <el-table-column
-          prop="personName"
-          label="杞︿富濮撳悕"
-          min-width="110"
-          show-overflow-tooltip
-          sortable
-          align="center"
-        ></el-table-column>
-        <el-table-column prop="sex" label="杞︿富鎬у埆" align="center" width="80"></el-table-column>
         <el-table-column
           prop="carUrls"
           label="杞﹁締鐓х墖"
@@ -247,17 +111,53 @@
         >
           <template slot-scope="scope">
             <el-carousel
-              style="height:100px;"
+              style="height: 100px"
               :autoplay="false"
               indicator-position="none"
               :arrow="scope.row.carUrls.length > 1 ? 'always' : 'never'"
             >
               <el-carousel-item v-for="(item, index) in scope.row.carUrls" :key="index">
-                <img style="width:100px;height:100px;object-fit:contain;" :src="item.url" alt />
+                <img style="width: 100px; height: 100px; object-fit: contain" :src="item.url" alt />
               </el-carousel-item>
             </el-carousel>
           </template>
         </el-table-column>
+        <el-table-column label="鐢熸晥鐘舵��" align="center" width="80">
+          <template slot-scope="scope">
+            <el-switch
+              v-model="scope.row.enable"
+              :active-value="1"
+              :disabled="!isShow('library:set')"
+              :inactive-value="0"
+              @change="enable(scope.row)"
+            ></el-switch>
+          </template>
+        </el-table-column>
+        <el-table-column prop="carNo" label="杞︾墝鍙�" sortable align="center" width="120"></el-table-column>
+        <el-table-column
+          prop="carType"
+          label="杞﹁締绫诲瀷"
+          width="100"
+          show-overflow-tooltip
+          sortable
+          align="center"
+        ></el-table-column>
+        <el-table-column prop="carBrand" label="杞﹁締鍝佺墝" min-width="100" sortable align="center"></el-table-column>
+        <el-table-column prop="carColor" label="杞﹁韩棰滆壊" width="100" show-overflow-tooltip sortable align="center">
+          <template slot-scope="scope">{{
+            getDataName(VideoPhotoData.dictionary.nColor, scope.row.carColor)
+          }}</template>
+        </el-table-column>
+        <el-table-column
+          prop="personName"
+          label="杞︿富濮撳悕"
+          min-width="110"
+          show-overflow-tooltip
+          sortable
+          align="center"
+        ></el-table-column>
+        <el-table-column prop="sex" label="杞︿富鎬у埆" align="center" width="80"></el-table-column>
+
         <el-table-column
           prop="createTime"
           label="鍏ュ簱鏃堕棿"
@@ -266,96 +166,81 @@
           sortable
           align="center"
         ></el-table-column>
-        <!-- <el-table-column prop="reserved" label="鍏朵粬" align="center"></el-table-column> -->
-        <el-table-column label="鐢熸晥鐘舵��" align="center" width="80">
-          <template slot-scope="scope">
-            <el-switch
-              v-model="scope.row.enable"
-              :active-value="1"
-              :disabled="!isShow('videoTable:edit')"
-              :inactive-value="0"
-              @change="enable(scope.row)"
-            ></el-switch>
-          </template>
-        </el-table-column>
+
         <el-table-column label="鎿嶄綔" min-width="200" align="center">
           <template slot-scope="scope">
-            <fTemplate authority="videoTable:edit">
+            <fTemplate authority="library:set">
               <el-tooltip content="缂栬緫" placement="top" popper-class="atooltip">
                 <span
-                  class="iconfont iconbianji iconStyle1"
-                  style="font-size:15px;"
+                  class="iconfont iconbianjixinxi-09"
+                  style="    font-size: 24px;cursor: pointer"
                   @click="handleClick(scope.row)"
                 ></span>
               </el-tooltip>
             </fTemplate>
-            <el-tooltip content="鏌ユ壘姝や汉" placement="top" popper-class="atooltip">
-              <span class="iconfont iconsousuoren iconStyle1" @click="tosearch(scope.row)"></span>
-            </el-tooltip>
-            <fTemplate authority="videoTable:edit">
-              <el-tooltip content="澶嶅埗" placement="top" popper-class="atooltip">
-                <span
-                  class="iconfont iconfuzhi iconStyle1"
-                  title="澶嶅埗"
-                  @click="copyClick(scope.row)"
-                ></span>
+            <el-popover placement="top" trigger="click" popper-class="popper-caozuo1">
+              <el-tooltip content="鏌ユ壘姝よ溅" placement="top" popper-class="atooltip">
+                <span class="iconfont iconchazhaociren-09" @click="tosearch(scope.row)"></span>
               </el-tooltip>
-            </fTemplate>
-            <fTemplate authority="videoTable:edit">
-              <el-tooltip content="绉诲姩" placement="top" popper-class="atooltip">
-                <span
-                  class="iconfont iconyidongzhi iconStyle1"
-                  style="font-size:15px;"
-                  title="绉诲姩"
-                  @click="moveClick(scope.row)"
-                ></span>
-              </el-tooltip>
-            </fTemplate>
-            <fTemplate authority="videoTable:edit">
-              <el-tooltip content="鍒犻櫎" placement="top" popper-class="atooltip">
-                <span
-                  class="iconfont iconshanchu iconStyle1"
-                  style="color:#E74C3C;"
-                  @click="deleteThis(scope.row.id)"
-                  title="鍒犻櫎"
-                ></span>
-              </el-tooltip>
-            </fTemplate>
+              <fTemplate authority="library:set">
+                <el-tooltip content="澶嶅埗" placement="top" popper-class="atooltip">
+                  <span class="iconfont iconfuzhi-09" title="澶嶅埗" @click="copyClick(scope.row)"></span>
+                </el-tooltip>
+              </fTemplate>
+              <fTemplate authority="library:set">
+                <el-tooltip content="绉诲姩" placement="top" popper-class="atooltip">
+                  <span class="iconfont iconyidong-09" title="绉诲姩" @click="moveClick(scope.row)"></span>
+                </el-tooltip>
+              </fTemplate>
+              <fTemplate authority="library:set">
+                <el-tooltip content="鍒犻櫎" placement="top" popper-class="atooltip">
+                  <span
+                    class="iconfont iconshanchu-09"
+                    style="color: #e74c3c"
+                    @click="askDelete('single', scope.row.id)"
+                    title="鍒犻櫎"
+                  ></span>
+                </el-tooltip>
+              </fTemplate>
+              <span
+                slot="reference"
+                class="iconfont icongengduocaozuo-09"
+                style="font-size: 24px; cursor: pointer"
+              ></span>
+            </el-popover>
           </template>
         </el-table-column>
       </el-table>
-    </div>
-    <div class="pt5 pb20" style="height:40px;position:relative">
       <el-pagination
         @current-change="refrash"
         :current-page="BaseManageData.page"
         :page-size="BaseManageData.size"
-        style="position:absolute;right:10px;bottom:5px"
+        style="margin-top: 10px"
         :total="BaseManageData.total"
       ></el-pagination>
     </div>
-    <el-dialog
-      title="鎻愮ず"
-      :visible.sync="dialogVisible"
-      :append-to-body="true"
-      :close="getCarList"
-      width="30%"
-    >
+    <el-dialog title="鎻愮ず" :visible.sync="dialogVisible" :append-to-body="true" :close="getCarList" width="30%">
       <div>
         <div class="tl">
-          <span>涓婁紶鎴愬姛鐨勬暟閲忥細{{uploadResult.successList.length}}</span>
+          <span>涓婁紶鎴愬姛鐨勬暟閲忥細{{ uploadResult.successList.length }}</span>
         </div>
         <div class="flex-box mt10">
-          <span>涓婁紶澶辫触鐨勬暟閲忥細{{uploadResult.failList.length}}</span>
-          <div class="ml20" v-for="(i,index) in uploadResult.failList" :key="index">{{i}}</div>
+          <span>涓婁紶澶辫触鐨勬暟閲忥細{{ uploadResult.failList.length }}</span>
+          <div class="ml20" v-for="(i, index) in uploadResult.failList" :key="index">
+            {{ i }}
+          </div>
         </div>
         <div class="flex-box mt10">
-          <span>鍖呭惈澶氬紶浜鸿劯鐨勫浘鐗囨暟閲忥細{{uploadResult.multiFaceList.length}}</span>
-          <div class="ml20" v-for="(i,index) in uploadResult.multiFaceList" :key="index">{{i}}</div>
+          <span>鍖呭惈澶氬紶浜鸿劯鐨勫浘鐗囨暟閲忥細{{ uploadResult.multiFaceList.length }}</span>
+          <div class="ml20" v-for="(i, index) in uploadResult.multiFaceList" :key="index">
+            {{ i }}
+          </div>
         </div>
         <div class="flex-box mt10">
-          <span>涓嶅惈浜鸿劯鐨勫浘鐗囨暟閲忥細{{uploadResult.noFaceList.length}}</span>
-          <div class="ml20" v-for="(i,index) in uploadResult.noFaceList" :key="index">{{i}}</div>
+          <span>涓嶅惈浜鸿劯鐨勫浘鐗囨暟閲忥細{{ uploadResult.noFaceList.length }}</span>
+          <div class="ml20" v-for="(i, index) in uploadResult.noFaceList" :key="index">
+            {{ i }}
+          </div>
         </div>
       </div>
     </el-dialog>
@@ -377,11 +262,9 @@
           <div class="baseList">
             <el-checkbox-group v-model="BaseManageData.selectBlacks" @change="blackAngWhite">
               <div class="base" v-for="(item, index) in BaseManageData.blackList" :key="index">
-                <el-checkbox
-                  :label="item.value"
-                  :title="item.title"
-                  :disabled="item.disabled"
-                >{{item.title}}</el-checkbox>
+                <el-checkbox :label="item.value" :title="item.title" :disabled="item.disabled">{{
+                  item.title
+                }}</el-checkbox>
               </div>
             </el-checkbox-group>
           </div>
@@ -393,11 +276,9 @@
           <div class="baseList">
             <el-checkbox-group v-model="BaseManageData.selectWhites" @change="blackAngWhite">
               <div class="base" v-for="(item, index) in BaseManageData.whiteList" :key="index">
-                <el-checkbox
-                  :label="item.value"
-                  :title="item.title"
-                  :disabled="item.disabled"
-                >{{item.title}}</el-checkbox>
+                <el-checkbox :label="item.value" :title="item.title" :disabled="item.disabled">{{
+                  item.title
+                }}</el-checkbox>
               </div>
             </el-checkbox-group>
           </div>
@@ -424,17 +305,11 @@
             <p>榛戝悕鍗� ></p>
           </div>
           <div class="baseList">
-            <el-checkbox-group
-              v-model="BaseManageData.selectBlacks"
-              @change="blackAngWhite"
-              :max="1"
-            >
+            <el-checkbox-group v-model="BaseManageData.selectBlacks" @change="blackAngWhite" :max="1">
               <div class="base" v-for="(item, index) in BaseManageData.blackList" :key="index">
-                <el-checkbox
-                  :label="item.value"
-                  :title="item.title"
-                  :disabled="item.disabled"
-                >{{item.title}}</el-checkbox>
+                <el-checkbox :label="item.value" :title="item.title" :disabled="item.disabled">{{
+                  item.title
+                }}</el-checkbox>
               </div>
             </el-checkbox-group>
           </div>
@@ -444,17 +319,11 @@
             <p>鐧藉悕鍗� ></p>
           </div>
           <div class="baseList">
-            <el-checkbox-group
-              v-model="BaseManageData.selectWhites"
-              @change="blackAngWhite"
-              :max="1"
-            >
+            <el-checkbox-group v-model="BaseManageData.selectWhites" @change="blackAngWhite" :max="1">
               <div class="base" v-for="(item, index) in BaseManageData.whiteList" :key="index">
-                <el-checkbox
-                  :label="item.value"
-                  :title="item.title"
-                  :disabled="item.disabled"
-                >{{item.title}}</el-checkbox>
+                <el-checkbox :label="item.value" :title="item.title" :disabled="item.disabled">{{
+                  item.title
+                }}</el-checkbox>
               </div>
             </el-checkbox-group>
           </div>
@@ -465,24 +334,217 @@
         <el-button size="small" type="primary" @click="moveSubmit()">纭� 瀹�</el-button>
       </div>
     </el-dialog>
+
+    <el-dialog :visible.sync="askDeleteShow" :center="true" custom-class="del-dialog">
+      <div>
+        <div class="suc-icon">
+          <i class="iconfont icongantanhao1"></i>
+        </div>
+        <div class="tt">{{ delText[0] }}</div>
+        <div class="flex-box">
+          <span>{{ delText[1] }}</span>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="askDeleteShow = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="handleDel" :loading="delBtnLoading">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+
+    <el-drawer
+      title="杞﹁締淇℃伅"
+      :modal="false"
+      :destroy-on-close="true"
+      custom-class="add-car"
+      :visible.sync="addDrawer"
+      :direction="direction"
+      :before-close="handleClose1"
+    >
+      <div class="uploadLine">
+        <div class="car-picture">
+          <div class="car-text">涓婁紶杞﹁締鐓х墖</div>
+          <el-upload
+            action
+            :http-request="uploadCar"
+            accept="image/*"
+            list-type="picture-card"
+            :file-list="form.carUrls"
+            :before-remove="handleRemoveCarPic"
+          >
+            <i class="el-icon-plus" style="margin-top: 25px"></i>
+          </el-upload>
+        </div>
+        <div class="person-picture">
+          <div class="car-text">涓婁紶杞︿富鐓х墖</div>
+          <el-upload
+            action
+            :http-request="uploadPerson"
+            list-type="picture-card"
+            accept="image/*"
+            :limit="1"
+            :file-list="form.faceUrl"
+            :on-remove="handleRemoveFacePic"
+          >
+            <i class="el-icon-plus" style="margin-top: 25px"></i>
+          </el-upload>
+        </div>
+      </div>
+      <el-form
+        ref="formForCar"
+        :model="form"
+        label-width="80px"
+        style="margin-top: 20px; margin-bottom: 30px"
+        :rule="rules"
+      >
+        <el-form-item label="杞︾墝鍙�" prop="carNo">
+          <el-input placeholder="璇疯緭鍏ヨ溅鐗屽彿" v-model="form.carNo" class="inputWidth"></el-input>
+        </el-form-item>
+        <el-form-item label="杞﹁締绫诲瀷">
+          <el-select v-model="form.carType" placeholder="璇烽�夋嫨杞﹁締绫诲瀷" class="inputWidth">
+            <el-option
+              v-for="item in VideoPhotoData.dictionary.CARTYPE"
+              :key="item.value"
+              :label="item.name"
+              :value="item.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="杞﹁締鍝佺墝">
+          <el-select v-model="form.carBrand" placeholder="璇烽�夋嫨杞﹁締鍝佺墝" class="inputWidth">
+            <el-option
+              v-for="item in VideoPhotoData.dictionary.BRAND"
+              :key="item.value"
+              :label="item.name"
+              :value="item.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="杞﹁韩棰滆壊">
+          <el-select v-model="form.carColor" placeholder="璇烽�夋嫨杞﹁韩棰滆壊" class="inputWidth">
+            <el-option
+              v-for="item in VideoPhotoData.dictionary.nColor"
+              :key="item.value"
+              :label="item.name"
+              :value="item.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="杞︿富濮撳悕">
+          <el-input v-model="form.personName" class="inputWidth"></el-input>
+        </el-form-item>
+        <el-form-item label="杞︿富鎬у埆">
+          <el-radio-group v-model="form.sex">
+            <el-radio label="鐢�"></el-radio>
+            <el-radio label="濂�"></el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="韬唤璇佸彿">
+          <el-input v-model="form.idCard" class="inputWidth"></el-input>
+        </el-form-item>
+        <el-form-item label="鎵嬫満鍙�">
+          <el-input v-model="form.phoneNum" class="inputWidth"></el-input>
+        </el-form-item>
+        <el-form-item label="鍏朵粬">
+          <el-input v-model="form.reserved" class="inputWidth"></el-input>
+        </el-form-item>
+        <!-- <el-form-item style="text-align: tight">
+          <el-button
+            type="primary"
+            @click="submitCar"
+            style="margin-left: 120px"
+            >淇濆瓨</el-button
+          >
+          <el-button @click="resetForm">鍙栨秷</el-button>
+        </el-form-item> -->
+      </el-form>
+      <div class="dialog-footer">
+        <el-button size="small" class="sure-btn" type="primary" @click="submitCar">纭� 瀹�</el-button>
+        <el-button size="small" class="cancel-btn" @click="resetForm" type="info">鍙� 娑�</el-button>
+      </div>
+    </el-drawer>
+
+    <el-drawer
+      title="涓婁紶杞︾墝"
+      :modal="false"
+      :visible.sync="addBatchDrawer"
+      :direction="direction"
+      custom-class="upload-pai"
+      :before-close="handleClose2"
+    >
+      <div class="drawerSpace">
+        <div class="plateAttach">
+          <el-input
+            type="textarea"
+            :rows="25"
+            v-model="plates"
+            style="width: 90%"
+            placeholder="璇疯緭鍏ヨ溅鐗屽彿"
+          ></el-input>
+          <p>
+            杞︾墝鍙蜂互閫楀彿鎴栧洖杞﹂敭闅斿紑锛屽崟娆℃渶澶氭敮鎸�100鏉′笂浼狅紝渚嬪锛氫含YAB123,浜現34Y87
+          </p>
+          <!-- <el-button
+            type="primary"
+            @click="platesBatch"
+            style="margin-left: 210px"
+            >淇濆瓨</el-button
+          >
+          <el-button @click="resetForm('ruleForm')">鍙栨秷</el-button> -->
+        </div>
+      </div>
+      <div class="dialog-footer">
+        <el-button size="small" class="sure-btn" type="primary" @click="platesBatch">淇濆瓨</el-button>
+        <el-button size="small" class="cancel-btn" @click="resetForm('ruleForm')" type="info">鍙栨秷</el-button>
+      </div>
+    </el-drawer>
   </div>
 </template>
 <script>
-import { addBaseCar, updateBaseCar, deleteBasePersons, plateBatch } from "@/api/baseLibrary";
-import axios from "axios";
-// import { findByType } from '@/server/video.js'
-import Upload from "./upload";
-import fTemplate from "@/components/fTemplate";
+import {
+  addBaseCar,
+  updateBaseCar,
+  deleteBasePersons,
+  plateBatch,
+  updateDbTableStatus,
+  deleteDbPersonById,
+  deleteDBtablesById
+} from "@/api/baseLibrary"
+import axios from "axios"
+import fTemplate from "@/components/fTemplate"
 import request from "@/scripts/httpRequest"
 export default {
   components: {
-    // httpImg,
     fTemplate
   },
   props: {
     baseObject: {
-      default: () => { },
+      default: () => {},
       type: Object
+    },
+    syncType: {
+      type: String
+    }
+  },
+
+  computed: {
+    isAdmin() {
+      if (sessionStorage.getItem("userInfo") && sessionStorage.getItem("userInfo") !== "") {
+        let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username
+        return loginName === "superadmin" || loginName === "basic"
+      }
+      return false
+    },
+    delText() {
+      switch (this.delType) {
+        case "base":
+          return ["鍒犻櫎搴曞簱", "纭畾鍒犻櫎璇ュ簳搴擄紵"]
+        case "single":
+          return ["鍒犻櫎杞﹁締淇℃伅", "纭畾鍒犻櫎璇ヨ溅杈嗕俊鎭紵"]
+        case "batch":
+          return ["鎵归噺鍒犻櫎", "纭畾鍒犻櫎璇ュ簳搴撻�変腑鐨勮溅杈嗕俊鎭紵"]
+        default:
+          return ["", ""]
+      }
     }
   },
   data() {
@@ -491,14 +553,21 @@
       addDrawer: false,
       plates: "",
       addBatchDrawer: false,
-      direction: 'rtl',
-      dialogImageUrl: '',
-      fileList: [{ name: "fasjido.jpg", url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg" }, { name: "fasjido.jpg", url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg" }],
-      provinces: [{ name: '浜�', value: 1 }, { name: '娲�', value: 2 }, { name: '鍐�', value: 3 }],
+      direction: "rtl",
+      dialogImageUrl: "",
+      fileList: [
+        {
+          name: "fasjido.jpg",
+          url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg"
+        },
+        {
+          name: "fasjido.jpg",
+          url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg"
+        }
+      ],
       copyVisiabled: false,
       moveVisiabled: false,
       buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [],
-      searchName: "",
       current: 1,
       compare: false,
       pageSize: 10,
@@ -517,7 +586,7 @@
         idCard: "",
         phoneNum: "",
         monitorLevel: "one",
-        carUrls: [], //{url:"/httpImage/192.168.20.10:6701/818,56d0122c44f069"},{url:"/httpImage/192.168.20.10:6701/818,56d0122c44f069"}
+        carUrls: [],
         faceUrl: [],
         faceFeature: "",
         carPicUrls: "",
@@ -530,93 +599,144 @@
         reserved: ""
       },
       rules: {
-        picDesc: [
-          { required: true, message: "璇疯緭鍏ョ収鐗囨爣璇�", trigger: "change" }
-        ],
-        sex: [{ required: true, message: "璇峰嬀閫夋�у埆", trigger: "change" }],
-        monitorLevel: [
-          { required: true, message: "璇烽�夋嫨浜哄憳绛夌骇", trigger: "change" }
-        ]
+        carNo: [{ required: true, message: "璇疯緭鍏ヨ溅鐗屽彿", trigger: "change" }]
       },
       tableData: [],
-      tableHeight: window.innerHeight - 320,
-      multipleSelection: [],
-      peoperLevel: [],
       oldWidth: "",
       oldHeight: "",
-      // 涓婁紶鍚庣殑寮规鏄剧ず
+      askDeleteShow: false,
+      delType: "",
+      toDeleteId: "",
       dialogVisible: false,
-      // 鎵归噺涓婁紶鍚庣殑杩斿洖缁撴灉
-      uploadResult: { failList: [], successList: [], multiFaceList: [], noFaceList: [] }
-    };
-  },
-  computed: {
-    isAdmin() {
-      if (
-        sessionStorage.getItem('userInfo') &&
-        sessionStorage.getItem('userInfo') !== ''
-      ) {
-        let loginName = JSON.parse(sessionStorage.getItem('userInfo')).username
-        return (
-          loginName === 'superadmin' || loginName === 'basic'
-        )
-      }
-      return false;
+      uploadResult: {
+        failList: [],
+        successList: [],
+        multiFaceList: [],
+        noFaceList: []
+      },
+      delBtnLoading: false
     }
   },
+  watch: {
+    "BaseManageData.selectBlacks": function(value) {
+      this.blackAngWhite()
+    },
+    "BaseManageData.selectWhites": function(value) {
+      this.blackAngWhite()
+    }
+  },
+  mounted() {
+    this.getCarList()
+    this.VideoPhotoData.queryDictionary()
+    this.BaseManageData.queryTagList()
+    this.oldWidth = document.body.clientWidth
+    this.oldHeight = document.body.clientHeight
+    this.blackAngWhite()
+    window.onresize = () => {
+      let width = document.body.clientWidth
+      let height = document.body.clientHeight
+      if (width !== this.oldWidth && width < 1750) {
+      }
+      this.$nextTick(() => {
+        this.$refs.multipleTable.doLayout()
+      })
+    }
+    this.$nextTick(() => {
+      this.$refs.multipleTable.doLayout()
+    })
+  },
+  beforeDestroy() {
+    window.onresize = null
+  },
   methods: {
+    async handleDel() {
+      this.delBtnLoading = true
+      if (this.delType == "single") {
+        await this.deleteThis()
+      } else if (this.delType == "base") {
+        await this.deleteBase()
+      } else if (this.delType == "batch") {
+        await this.deleteBatch()
+      }
+
+      this.delBtnLoading = false
+      this.askDeleteShow = false
+    },
+    deleteBase() {
+      deleteDBtablesById({ id: this.baseObject.id })
+        .then((res) => {
+          if (res.success) {
+            this.$notify({
+              type: "success",
+              message: "搴曞簱鍒犻櫎鎴愬姛锛�"
+            })
+          }
+          this.askDeleteShow = false
+          this.$emit("onDelete")
+        })
+        .catch((err) => {
+          this.$notify({
+            type: "error",
+            message: err
+          })
+        })
+    },
     handleRemoveCarPic(file, fileList) {
-      console.log("鍒犻櫎鏂囦欢", file, fileList);
-      var index = fileList.findIndex(item => {
+      var index = fileList.findIndex((item) => {
         if (item.uid == file.uid) {
           return true
         }
       })
-      console.log("鍒犻櫎鐨勭储寮�", index)
       this.form.carUrls.splice(index, 1)
-      console.log("鍒犻櫎鍚庣殑fileList:", this.fileList)
+    },
+    isDisabled(item) {
+      var flag = true
+      if (this.isShow("library:set")) {
+        if (item.endTime == "") {
+          flag = false
+        } else {
+          flag = !this.$moment(new Date()).isBetween(item.startTime, item.endTime)
+        }
+      }
+      return flag
     },
     handleRemoveFacePic(file, fileList) {
       this.form.faceUrl.splice(0, 1)
-      console.log("鍒犻櫎鍚庣殑faceUrl:", this.fileList)
     },
-    beforeUoload() {
-
+    edit() {
+      this.$emit("changeShow", this.baseObject, this.syncType)
     },
+    // beforeUoload() {},
     handlePictureCardPreview(file) {
-      this.dialogImageUrl = file.url;
-      this.dialogVisible = true;
+      this.dialogImageUrl = file.url
+      this.dialogVisible = true
     },
     async uploadCar(param) {
       const fd = new FormData()
-      console.log("鏂囦欢鍙傛暟锛�", param)
-      fd.append('file', param.file)
-      fd.append('picType', '0')
-      console.log("鍙傛暟锛�", fd)
+      fd.append("file", param.file)
+      fd.append("picType", "0")
       let res = await request({
-        method: 'post',
+        method: "post",
         url: `/data/api-v/dbperson/fileupload`,
         data: fd
       })
-      console.log("鍥剧墖涓婁紶缁撴灉锛�", res.success)
       if (res.success) {
         this.form.carUrls.push({ url: "/httpImage/" + res.data.picUrl })
-        console.log("carUrl:", this.form.carUrls)
       }
     },
     async uploadPerson(param) {
       const fd = new FormData()
-      fd.append('file', param.file)
-      fd.append('picType', '1')
+      fd.append("file", param.file)
+      fd.append("picType", "1")
       let res = await request({
-        method: 'post',
+        method: "post",
         url: `/data/api-v/dbperson/fileupload`,
         data: fd
       })
+      debugger
       if (res.success) {
         this.form.faceUrl.push({ url: "/httpImage/" + res.data.picUrl })
         this.form.faceFeature = res.data.faceFeature
-        console.log("faceUrl:", this.form.faceUrl)
       }
     },
     addCar() {
@@ -625,11 +745,9 @@
     addBatch() {
       this.addBatchDrawer = true
     },
-    resetForm() {
-
-    },
+    resetForm() {},
     handleClose1(done) {
-      this.form = {
+      ;(this.form = {
         id: "",
         sex: "鐢�",
         name: "",
@@ -638,7 +756,7 @@
         idCard: "",
         phoneNum: "",
         monitorLevel: "one",
-        carUrls: [], //{url:"/httpImage/192.168.20.10:6701/818,56d0122c44f069"},{url:"/httpImage/192.168.20.10:6701/818,56d0122c44f069"}
+        carUrls: [],
         faceUrl: [],
         faceFeature: "",
         carPicUrls: "",
@@ -649,93 +767,45 @@
         carNo: "",
         enable: 0,
         reserved: ""
-      },
+      }),
         done()
-      // this.$confirm('纭鍏抽棴锛�')
-      //   .then(_ => {
-      //     done();
-      //   })
-      //   .catch(_ => {});
     },
     handleClose2(done) {
       done()
-      // this.$confirm('纭鍏抽棴锛�')
-      //   .then(_ => {
-      //     done();
-      //   })
-      //   .catch(_ => {});
     },
     isShow(authority) {
-      if (this.isAdmin) {
-        return true
-      } else if (
-        this.buttonAuthority.indexOf(',' + authority + ',') > -1
-      ) {
-        return true
-      } else {
-        return false
-      }
+      return this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1
     },
     toggleSelection(rows) {
       if (rows) {
-        rows.forEach(row => {
-          this.$refs.multipleTable.toggleRowSelection(row);
-        });
+        rows.forEach((row) => {
+          this.$refs.multipleTable.toggleRowSelection(row)
+        })
       } else {
-        this.$refs.multipleTable.clearSelection();
+        this.$refs.multipleTable.clearSelection()
       }
     },
-    deleteThis(id) {
-      let token =
-        sessionStorage.getItem("loginedInfo") &&
-        JSON.parse(sessionStorage.getItem("loginedInfo")).access_token;
-      this.$confirm("鎻愮ず锛氱‘瀹氬垹闄よ搴曞簱浜哄憳锛�", {
-        center: true,
-        cancelButtonClass: "comfirm-class-cancle",
-        confirmButtonClass: "comfirm-class-sure"
-      })
-        .then(_ => {
-          fetch(`/data/api-v/dbperson/deleteDbPersonById/${id}`, {
-            method: "POST",
-            headers: {
-              "Content-Type": "application/json",
-              Authorization: token
-            }
-          })
-            .then(res => {
-              return res.json();
+    deleteThis() {
+      deleteDbPersonById({ id: this.toDeleteId })
+        .then((data) => {
+          if (data.success) {
+            this.$notify({
+              type: "success",
+              message: "杞﹁締淇℃伅鍒犻櫎鎴愬姛锛�"
             })
-            .then(data => {
-              // console.log(data.data);
-              if (data.success) {
-                this.$notify({
-                  type: "success",
-                  message: "璇ヤ汉鍛樺垹闄ゆ垚鍔燂紒"
-                });
-              }
-              this.getCarList();
-            })
-            .catch(err => {
-              console.log(err);
-            });
+          }
+          this.getCarList()
         })
-        .catch(_ => { });
-    },
-    sayHello() {
-      console.log("hello");
+        .catch((err) => {})
     },
     getUploadResult(result) {
-      console.log(result, "涓婁紶鐨勮繑鍥�");
-      this.uploadResult = result.data;
-      this.dialogVisible = true;
-      this.getCarList();
+      this.uploadResult = result.data
+      this.dialogVisible = true
+      this.getCarList()
     },
     async getCarList() {
-      // console.log("鎵ц浜嗗埛鏂板嚱鏁�", this.BaseManageData.syncTables[0]);
       if (this.baseObject.id && this.baseObject.id !== undefined) {
-        // console.log("搴曞簱id", this.baseObject.id);
-        this.BaseManageData.tableId = this.baseObject.id;
-        // this.BaseManageData.queryPersonList();
+        this.BaseManageData.tableId = this.baseObject.id
         this.setLoadSearch(this.BaseManageData.queryPersonList())
       }
     },
@@ -744,55 +814,50 @@
         this.$notify({
           type: "error",
           message: item.errorMsg.message
-        });
-      });
+        })
+      })
     },
     handleClose() {
-      //this.getCarList();
-      this.dialogFormVisible = false;
+      this.dialogFormVisible = false
     },
     handleSelectionChange(val) {
-      this.selectedRowKeys = val;
+      this.selectedRowKeys = val
     },
     refrash(current, pageSize) {
-      this.current = current;
-      this.BaseManageData.page = current;
-      this.getCarList();
+      this.current = current
+      this.BaseManageData.page = current
+      this.getCarList()
     },
     handleClick(row) {
-      this.form = row;
+      this.form = row
       // 杩欏潡鍎垮悗鍙扮殑瀛楀吀value鍊兼湁闂锛岄渶瑕佸墠绔潵鍥炶浆
       this.form.carColor += ""
       this.form.carType += ""
       this.form.carBrand += ""
-      console.log("this.form", this.form)
-      this.addDrawer = true;
+      this.addDrawer = true
     },
     async submit() {
-      this.$refs["formForEdit"].validate(async valid => {
-        // console.log("閫氳繃楠岃瘉", valid);
+      this.$refs["formForEdit"].validate(async (valid) => {
         if (valid) {
-          let { ...json } = this.form;
-          delete (json["compareScore"])
-          // console.log("淇敼鐨勫弬鏁帮細", json);
-          let res = await updateBasePerson(json);
-          // console.log("淇濆瓨浜�", res);
+          let { ...json } = this.form
+          delete json["compareScore"]
+          let res = await updateBasePerson(json)
           if (res.success) {
             this.$notify({
               type: "success",
-              message: "浜哄憳淇敼鎴愬姛锛�"
-            });
-            this.dialogFormVisible = false;
+              message: "杞﹁締淇℃伅淇敼鎴愬姛锛�"
+            })
+            this.dialogFormVisible = false
           } else {
             this.$notify({
               type: "error",
-              message: "浜哄憳淇敼澶辫触锛岃閲嶈瘯锛侊紒"
-            });
+              message: "杞﹁締淇℃伅淇敼澶辫触锛岃閲嶈瘯锛侊紒"
+            })
           }
         } else {
-          return false;
+          return false
         }
-      });
+      })
     },
     confirm() {
       this.$confirm({
@@ -800,7 +865,7 @@
         content: "Bla bla ...",
         okText: "纭",
         cancelText: "鍙栨秷"
-      });
+      })
     },
     async enable(item) {
       let res = await updateBasePerson({
@@ -814,34 +879,46 @@
         monitorLevel: item.monitorLevel,
         personPicUrl: item.personPicUrl,
         reserved: item.reserved
-      });
-      if (res.success === true) {
+      })
+      if (res.success) {
         this.$notify({
           type: "success",
-          message: "搴曞簱浜哄憳鎴愬姛鍙樻洿鐢熸晥鐘舵�侊紒"
-        });
+          message: "杞﹁締淇℃伅鎴愬姛鍙樻洿鐢熸晥鐘舵�侊紒"
+        })
       } else {
         this.$notify({
           type: "error",
-          message: "搴曞簱浜哄憳鍙樻洿鐢熸晥鐘舵�佸け璐ワ紒"
-        });
+          message: "杞﹁締淇℃伅鍙樻洿鐢熸晥鐘舵�佸け璐ワ紒"
+        })
       }
     },
     handleSearch() {
-      this.getCarList();
+      this.getCarList()
     },
     searchImg() {
-      this.$refs.uploadDrag && this.$refs.uploadDrag.uploadStart();
+      this.$refs.uploadDrag && this.$refs.uploadDrag.uploadStart()
     },
     haveScore(row) {
-      if (row.compareScore && row.compareScore !== "") {
-        return true
+      return row.compareScore && row.compareScore !== ""
+    },
+    async setEnable(item) {
+      let res = await updateDbTableStatus({
+        id: item.id,
+        enable: item.enable
+      })
+      if (res.success) {
+        this.$notify({
+          type: "success",
+          message: "搴曞簱鎴愬姛鍙樻洿鐢熸晥鐘舵�侊紒"
+        })
       } else {
-        return false
+        this.$notify({
+          type: "error",
+          message: "搴曞簱鍙樻洿鐢熸晥鐘舵�佸け璐ワ紒"
+        })
       }
     },
     async searchImgList(faceUrl, threshold) {
-      // console.log("鎼滃浘鍙傛暟", faceUrl, threshold);
       let json = {
         tableId: this.baseObject.id,
         page: this.current,
@@ -850,139 +927,118 @@
         threshold: threshold,
         orderType: this.orderType,
         orderName: this.orderName
-      };
-      let res = await getPersonByPhoto(json);
-      // console.log("鍒楄〃鏌ヨ", json);
-      this.tableData = res.data.datalist;
-      this.total = res.data.total;
-      this.compare = true;
+      }
+      let res = await getPersonByPhoto(json)
+      this.tableData = res.data.datalist
+      this.total = res.data.total
+      this.compare = true
     },
-    updateThreshold() { },
+    // updateThreshold() {},
     async updateFace(param) {
-      const fd = new FormData();
-      fd.append("file", param.file);
-      fd.append("id", this.form.id);
-      // console.log("鎹㈣劯浜嗗悧", fd);
+      const fd = new FormData()
+      fd.append("file", param.file)
+      fd.append("id", this.form.id)
       let res = await axios({
         method: "post",
         url: `/data/api-v/dbperson/updateFace`,
         headers: {
-          'Authorization': sessionStorage.getItem('loginedInfo') && JSON.parse(sessionStorage.getItem('loginedInfo')).access_token
+          Authorization:
+            sessionStorage.getItem("loginedInfo") && JSON.parse(sessionStorage.getItem("loginedInfo")).access_token
         },
         data: fd
-      });
+      })
       if (res.data.success) {
-        this.form.personPicUrl = res.data.data.personPicUrl;
-        this.form.faceFeature = res.data.data.faceFeature;
+        this.form.personPicUrl = res.data.data.personPicUrl
+        this.form.faceFeature = res.data.data.faceFeature
       }
     },
-    uploadSuccess() {
-      console.log("鎹㈣劯鎴愬姛浜�");
-    },
-    uploadError() {
-      console.log("鎹㈣劯澶辫触浜�");
-    },
-    deleteBatch() {
-      // console.log('瑕佸垹闄ょ殑', this.selectedRowKeys.length)
-      if (this.selectedRowKeys.length === 0) {
+    async deleteBatch() {
+      let ids = []
+      this.selectedRowKeys.map((item, index) => {
+        ids.push(item.id)
+      })
+      let res = await deleteBasePersons({ ids: ids })
+      if (res.success) {
         this.$notify({
-          type: "warning",
-          message: "璇烽�夋嫨瑕佸垹闄ょ殑浜哄憳"
-        });
+          type: "success",
+          message: "鍒犻櫎鎴愬姛锛�"
+        })
+        this.getCarList()
       } else {
-        this.$confirm("鎻愮ず锛氱‘瀹氬垹闄よ搴曞簱閫変腑浜哄憳锛�", {
-          center: true,
-          cancelButtonClass: "comfirm-class-cancle",
-          confirmButtonClass: "comfirm-class-sure"
-        }).then(async _ => {
-          let ids = [];
-          this.selectedRowKeys.map((item, index) => {
-            ids.push(item.id);
-          });
-          // console.log('鎵归噺鍒犻櫎鏁扮粍', ids)
-          let res = await deleteBasePersons(ids);
-          // console.log(res, '鎵归噺鍒犻櫎缁撴灉')
-          if (res.success) {
-            this.$notify({
-              type: "success",
-              message: "鍒犻櫎鎴愬姛锛�"
-            });
-            this.getCarList();
-          } else {
-            this.$notify({
-              type: "error",
-              message: "鍒犻櫎澶辫触锛�"
-            });
-          }
-        });
+        this.$notify({
+          type: "error",
+          message: "鍒犻櫎澶辫触锛�"
+        })
       }
     },
     async init() {
-      await this.BaseManageData.querySyncTables();
-      await this.BaseManageData.queryLocalTables();
+      await this.BaseManageData.querySyncTables()
+      await this.BaseManageData.queryLocalTables()
       if (this.baseObject.id && this.baseObject.id !== undefined) {
-        // console.log("one;", this.baseObject.id);
-      } else if (
-        this.BaseManageData.syncTables[0].id &&
-        this.BaseManageData.syncTables[0].id !== undefined
-      ) {
-        this.BaseManageData.tableId = this.BaseManageData.syncTables[0].id;
-        this.BaseManageData.queryPersonList();
+      } else if (this.BaseManageData.syncTables[0].id && this.BaseManageData.syncTables[0].id !== undefined) {
+        this.BaseManageData.tableId = this.BaseManageData.syncTables[0].id
+        this.BaseManageData.queryPersonList()
       } else {
-        this.BaseManageData.tableId = this.BaseManageData.localTables[0].id;
-        this.BaseManageData.queryPersonList();
+        this.BaseManageData.tableId = this.BaseManageData.localTables[0].id
+        this.BaseManageData.queryPersonList()
       }
     },
-    handleRowStyle({ row, rowIndex }) {
-      // console.log(row, rowIndex, "handleRowStyle");
-      if (rowIndex === 0) {
-        return "background:#222222;";
+    askDelete(typ, id) {
+      if (typ == "batch") {
+        if (this.selectedRowKeys.length === 0) {
+          this.$notify({
+            type: "warning",
+            message: "璇烽�夋嫨瑕佸垹闄ょ殑杞﹁締淇℃伅"
+          })
+          return
+        }
       }
+      this.askDeleteShow = true
+      this.delType = typ
+      id && (this.toDeleteId = id)
     },
     blackAngWhite() {
       if (this.BaseManageData.selectBlacks.length > 0) {
         for (let i = 0; i < this.BaseManageData.whiteList.length; i++) {
           //this.VideoPhotoData.whiteList[i].disabled = true
-          this.$set(this.BaseManageData.whiteList[i], 'disabled', true)
+          this.$set(this.BaseManageData.whiteList[i], "disabled", true)
         }
       }
       if (this.BaseManageData.selectBlacks.length == 0) {
         for (let i = 0; i < this.BaseManageData.whiteList.length; i++) {
           //this.VideoPhotoData.whiteList[i].disabled = false
-          this.$set(this.BaseManageData.whiteList[i], 'disabled', false)
+          this.$set(this.BaseManageData.whiteList[i], "disabled", false)
         }
       }
       if (this.BaseManageData.selectWhites.length > 0) {
         for (let i = 0; i < this.BaseManageData.blackList.length; i++) {
-          // this.VideoPhotoData.blackList[i].disabled = true   
-          this.$set(this.BaseManageData.blackList[i], 'disabled', true)
+          // this.VideoPhotoData.blackList[i].disabled = true
+          this.$set(this.BaseManageData.blackList[i], "disabled", true)
         }
       }
       if (this.BaseManageData.selectWhites.length == 0) {
         for (let i = 0; i < this.BaseManageData.blackList.length; i++) {
-          //this.VideoPhotoData.blackList[i].disabled = false          
-          this.$set(this.BaseManageData.blackList[i], 'disabled', false)
+          //this.VideoPhotoData.blackList[i].disabled = false
+          this.$set(this.BaseManageData.blackList[i], "disabled", false)
         }
       }
     },
     tosearch(item) {
-      // console.log("璺宠浆鍦板潃", item)
-      var curWwwPath = window.document.location.href;
-      var pathname = window.document.location.pathname;
-      var pos = curWwwPath.indexOf(pathname);
-      var localhostPath = curWwwPath.substring(0, pos); //ip+port
+      var curWwwPath = window.document.location.href
+      var pathname = window.document.location.pathname
+      var pos = curWwwPath.indexOf(pathname)
+      var localhostPath = curWwwPath.substring(0, pos) //ip+port
       var href = localhostPath + "/Layout/Searching"
       let captureId = item.id == "" ? item.personId : item.id
       var url = item.personPicUrl ? item.personPicUrl : item.personPicUrl
-      // console.log("璺宠浆鍦板潃",href,"url",url)
       var compType = 0
-      window.open(href + '?showType=findByPic&targetId=' + captureId + '&picSmUrl=' + url + '&compType=' + compType)
+      window.open(href + "?showType=findByPic&targetId=" + captureId + "&picSmUrl=" + url + "&compType=" + compType)
     },
     async platesBatch() {
-      var temp = this.plates.split(/[\n,]/g);
-      var reg = /[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块]{1}[A-Z]{1}[A-Z0-9]{5,6}/;
+      var temp = this.plates.split(/[\n,]/g)
+      var reg = /[浜触娌笣鍐�璞簯杈介粦婀樼殩椴佹柊鑻忔禉璧i剛妗傜敇鏅嬭挋闄曞悏闂借吹绮ら潚钘忓窛瀹佺惣浣块]{1}[A-Z]{1}[A-Z0-9]{5,6}/
       for (let i = 0; i < temp.length; i++) {
-        if (temp[i] == '') {
+        if (temp[i] == "") {
           temp.splice(i, 1)
           i--
         } else {
@@ -997,8 +1053,8 @@
       }
       if (temp.length == 0) {
         this.$notify({
-          type: 'error',
-          message: '璇疯緭鍏ヨ溅鐗屽彿',
+          type: "error",
+          message: "璇疯緭鍏ヨ溅鐗屽彿"
         })
         return
       }
@@ -1007,29 +1063,25 @@
         carNos: temp
       }
       let resp = await plateBatch(param)
-      console.log("resp:", resp)
       if (resp && resp.success) {
         // 鍒锋柊car鍒楄〃
         this.$notify({
           type: "success",
           message: resp.msg
-        });
-        this.getCarList();
-        this.addBatchDrawer = false;
+        })
+        this.getCarList()
+        this.addBatchDrawer = false
       } else {
         this.$notify({
           type: "error",
           message: resp.msg
-        });
+        })
       }
-
     },
     async submitCar() {
-      this.$refs["formForCar"].validate(async valid => {
-        // console.log("閫氳繃楠岃瘉", valid);
+      this.$refs["formForCar"].validate(async (valid) => {
         if (valid) {
-          let { ...json } = this.form;
-
+          let { ...json } = this.form
           for (let index in json.carUrls) {
             if (index == 0) {
               json.carPicUrls += json.carUrls[index].url.substring(11)
@@ -1040,35 +1092,33 @@
           json.carColor = parseInt(json.carColor)
           json.carType = parseInt(json.carType)
           json.carBrand = parseInt(json.carBrand)
+          debugger
           json.personPicUrl = json.faceUrl[0].url.substring(11)
           json.tableId = this.baseObject.id
-          console.log("琛ㄥ崟鐨刯son鍖栵細", json)
-          delete (json["compareScore"])
-          // console.log("淇敼鐨勫弬鏁帮細", json);
+          delete json["compareScore"]
           let res
           if (json.id == "") {
-            res = await addBaseCar(json);
+            res = await addBaseCar(json)
           } else {
-            res = await updateBaseCar(json);
+            res = await updateBaseCar(json)
           }
-          console.log("淇濆瓨浜�", res);
           if (res.success) {
             this.$notify({
               type: "success",
               message: res.data.msg
-            });
-            this.getCarList();
-            this.addDrawer = false;
+            })
+            this.getCarList()
+            this.addDrawer = false
           } else {
             this.$notify({
               type: "error",
               message: res.data.msg
-            });
+            })
           }
         } else {
-          return false;
+          return false
         }
-      });
+      })
     },
     copyClick(row) {
       this.BaseManageData.personId = row.id
@@ -1100,7 +1150,7 @@
         return
       }
       var resp = this.BaseManageData.copyTo()
-      resp.then(data => {
+      resp.then((data) => {
         if (data.success) {
           this.$notify({
             title: "鎴愬姛",
@@ -1141,7 +1191,7 @@
         return
       }
       var resp = this.BaseManageData.moveTo()
-      resp.then(data => {
+      resp.then((data) => {
         if (data.success) {
           this.$notify({
             title: "鎴愬姛",
@@ -1163,53 +1213,13 @@
       })
     },
     setLoadSearch(fn) {
-      this.AuthData.setLoading("multipleTable", this);
-      fn.then(_ => {
-        this.AuthData.closeLoad();
+      this.AuthData.setLoading("multipleTable", this)
+      fn.then((_) => {
+        this.AuthData.closeLoad()
       })
     }
-  },
-  mounted() {
-    this.getCarList();
-    this.VideoPhotoData.queryDictionary();
-    this.BaseManageData.queryTagList();
-    this.oldWidth = document.body.clientWidth;
-    this.oldHeight = document.body.clientHeight;
-    this.blackAngWhite();
-    window.onresize = () => {
-      let width = document.body.clientWidth;
-      let height = document.body.clientHeight;
-      // console.log(width, height, "绐楀彛鍙樺寲瀵规瘮", this.oldWidth, this.oldHeight);
-      if (width !== this.oldWidth && width < 1750) {
-      }
-      this.$nextTick(() => {
-        this.$refs.multipleTable.doLayout();
-      });
-    };
-    this.$nextTick(() => {
-      this.$refs.multipleTable.doLayout();
-    });
-  },
-  beforeDestroy() {
-    window.onresize = null;
-  },
-  watch: {
-    baseObject: {
-      handler(newVal, oldVal) {
-        // console.log(newVal, "鐩戝惉baseObject");
-        this.BaseManageData.cleanData();
-        this.getCarList();
-      },
-      deep: true
-    },
-    "BaseManageData.selectBlacks": function (value) {
-      this.blackAngWhite()
-    },
-    "BaseManageData.selectWhites": function (value) {
-      this.blackAngWhite()
-    },
   }
-};
+}
 </script>
 <style lang="scss">
 .iconStyle1 {
@@ -1236,9 +1246,6 @@
   max-width: none;
   font-size: 14px;
   color: #606266;
-  thead {
-    background: green !important;
-  }
 }
 .avatar-uploader:hover {
   .mask1 {
@@ -1247,8 +1254,8 @@
 }
 .mask1 {
   position: absolute;
-  width: 150px;
-  height: 150px;
+  width: 100px;
+  height: 100px;
   background: rgba(0, 0, 0, 0.35);
   backdrop-filter: blur(1px) brightness(100%);
   text-align: center;
@@ -1257,8 +1264,7 @@
   display: none;
 }
 .table-parent {
-  // position: relative;
-  height: 90%;
+  height: 100%;
   overflow: visible !important;
   .picture {
     .el-carousel__item {
@@ -1291,16 +1297,72 @@
       height: 25px;
     }
   }
-  .el-drawer.ltr,
-  .el-drawer.rtl {
-    width: 27% !important;
-    height: 90%;
-    top: 9%;
+  .el-drawer.add-car {
+    width: 380px;
     .el-drawer__header {
-      border-bottom: 2px solid #eee;
-      padding-bottom: 10px;
-      font-size: 16px;
-      margin-bottom: 0px;
+      margin-bottom: 0;
+      padding: 20px;
+      box-shadow: 0px 2px 4px rgb(0 0 0 / 8%);
+      font-size: 14px;
+    }
+    .el-drawer__body {
+      .uploadLine {
+        padding-left: 10px;
+
+        .el-upload-list--picture-card .el-upload-list__item {
+          background-color: #fff;
+          border: 2px solid #d4d6d9;
+          border-radius: 8px;
+          width: 100px;
+          height: 100px;
+        }
+        .el-upload--picture-card {
+          background-color: #fff;
+          border: 2px solid #d4d6d9;
+          border-radius: 8px;
+          width: 100px;
+          height: 100px;
+          line-height: 100px;
+        }
+        .car-text {
+          color: #999999;
+          font-size: 14px;
+          line-height: 20px;
+          text-align: left;
+          margin-bottom: 5px;
+        }
+        .car-picture {
+          margin-bottom: 20px;
+          & > div {
+            display: flex;
+          }
+        }
+        .person-picture {
+          margin-bottom: 20px;
+          & > div {
+            display: flex;
+          }
+        }
+      }
+      .el-select {
+        width: 100%;
+      }
+      .el-radio-group {
+        width: 100%;
+        text-align: left;
+      }
+      .el-form-item {
+        margin-bottom: 18px;
+      }
+    }
+  }
+  .el-drawer.upload-pai {
+    width: 380px;
+    .el-drawer__header {
+      margin-bottom: 0;
+      padding: 20px;
+      box-shadow: 0px 2px 4px rgb(0 0 0 / 8%);
+      font-size: 14px;
     }
   }
 }
@@ -1313,7 +1375,36 @@
 .border-tabl {
   border: 1px solid #ebeef5;
   border-bottom: none;
-  // border-bottom: none;
+  height: calc(100% - 100px);
+  overflow: auto;
+  .tableBox {
+    border: none;
+    &::before,
+    &::after {
+      display: none;
+    }
+    .el-table--border .el-table__cell,
+    .el-table__body-wrapper .el-table--border.is-scrolling-left ~ .el-table__fixed {
+      border-right: none;
+    }
+    td {
+      border: none;
+    }
+  }
+  .head-search {
+    .desc {
+      min-width: fit-content;
+      margin-right: 20px;
+    }
+    .right-group {
+      .iconshangchuanchepai-09:hover,
+      .icontianjiacheliang-09:hover {
+        border: 1px solid var(--colorCard);
+        background: var(--colorCard);
+        color: #fff;
+      }
+    }
+  }
 }
 .el-dialog__header {
   padding: 20px 0 10px;
@@ -1333,9 +1424,9 @@
   font-size: 14px;
   word-break: break-all;
 }
-.dialog-footer {
-  text-align: center;
-}
+// .dialog-footer {
+//   text-align: center;
+// }
 .comfirm-class-sure {
   background: #f53d3d;
   border-radius: 2px;
@@ -1365,61 +1456,7 @@
   padding-left: 8px !important;
   padding-right: 0px !important;
 }
-.addToBase1 {
-  width: 98%;
-  height: 350px;
-  position: relative;
-  .topLabel {
-    margin-top: 20px;
-    height: 40px;
-    border-bottom: 1px solid #eee;
-    font-family: PingFangSC-Medium;
-    font-size: 20px;
-    font-weight: 600;
-    line-height: 1rem;
-    color: #222222;
-    text-align: left;
-    margin-left: 15px;
-  }
-  .items {
-    width: 100%;
-    height: auto;
-    max-height: 35%;
-    overflow-y: auto;
-    margin: 20px 0px;
-    .lable {
-      width: 15%;
-      margin-top: 10px;
-      float: left;
-      //font-family: PingFangSC-Medium;
-      font-size: 14px;
-      font-weight: 600;
-    }
-    .baseList {
-      width: 85%;
-      height: 100%;
-      float: left;
-      .base {
-        width: calc(33% - 10px);
-        padding: 0px 5px;
-        line-height: 30px;
-        float: left;
-        text-align: left;
-        font-size: 12px !important;
-        .el-checkbox {
-          width: 100%;
-          display: block;
-          overflow: hidden;
-          text-overflow: ellipsis;
-          white-space: nowrap;
-          .el-checkbox__label {
-            display: inline !important;
-          }
-        }
-      }
-    }
-  }
-}
+
 .copy,
 .move {
   .el-dialog__body {
@@ -1428,100 +1465,40 @@
 }
 
 .avatar-uploader {
-  max-width: 150px;
-  min-width: 150px;
-  min-height: 152px;
+  max-width: 100px;
+  min-width: 100px;
+  min-height: 100px;
   border: 1px solid #eee;
 }
-
-.inputWidth {
-  width: 270px !important;
-}
-.rightInputWidth {
-  max-width: 270px;
-}
-
-.el-drawer.ltr,
-.el-drawer.rtl {
-  min-width: 450px;
-  width: 25% !important;
-  height: 90%;
-  min-height: 1100px;
-  top: 9%;
-  .el-drawer__header {
-    border-bottom: 2px solid #eee;
-    padding-bottom: 10px;
-    font-size: 16px;
-    margin-bottom: 0px;
-    :focus {
-      outline: 0;
+.el-popover.el-popper.popper-caozuo1 {
+  box-shadow: 0px 0px 10px rgb(0 0 0 / 12%);
+  border-radius: 8px;
+  padding: 0;
+  padding-right: 1px;
+  & > span {
+    width: 32px;
+    height: 32px;
+    cursor: pointer;
+    display: inline-block;
+    text-align: center;
+    line-height: 32px;
+    border-radius: 8px;
+    font-size: 24px;
+    .iconfont {
+      font-size: 24px;
+    }
+    .iconshanchu-09 {
+      color: #fe6d68;
     }
   }
-}
-
-.drawerSpace {
-  height: 900px;
-  margin-bottom: 30px;
-  overflow-y: scroll;
-  .uploadLine {
-    height: 280px;
-
-    .car-picture {
-      float: left;
-      margin: 15px;
-      border: 1px solid #eee;
-      width: 280px;
-      height: 260px;
-      overflow: hidden;
-      .el-upload--picture-card {
-        margin: 10px;
-        width: 110px;
-        height: 110px;
-        line-height: 35px;
-      }
-      .el-upload-list--picture-card {
-        .el-upload-list__item {
-          margin: 10px;
-          width: 110px;
-          height: 110px;
-          img {
-            object-fit: contain;
-          }
-        }
-        .el-progress--circle {
-          width: 30px !important;
-        }
-      }
-    }
-    .person-picture {
-      float: left;
-      margin-top: 15px;
-      width: 120px;
-      height: 120px;
-      overflow: hidden;
-      .el-upload--picture-card {
-        width: 110px;
-        height: 110px;
-        line-height: 35px;
-      }
-      .el-upload-list__item {
-        margin: 10px;
-        width: 110px;
-        height: 110px;
-        img {
-          object-fit: contain;
-        }
-      }
-    }
+  & > span:hover {
+    background: var(--colorCard);
+    color: #fff;
   }
-  .plateAttach {
-    width: calc(100% -40px);
-    height: calc(100% -40px);
-    padding: 20px;
-    p {
-      margin-top: 20px;
-      width: 400px;
-      line-height: 20px;
+  & > .del-wrap:hover {
+    background: #fe6d68;
+    .iconshanchu-09 {
+      color: #fff;
     }
   }
 }

--
Gitblit v1.8.0