heyujie
2022-06-17 5449cced03ef77f5e95a08e871996abb7132c40b
cp dialog
2个文件已修改
1120 ■■■■■ 已修改文件
src/pages/library/components/carList.vue 1109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/library/components/personList.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/library/components/carList.vue
@@ -4,16 +4,23 @@
      <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="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
            {{
              this.baseObject.endTime ? this.baseObject.endTime : "永久有效"
            }}</span
          >
        </div>
        <div class="right-btns">
          <span style="margin-right: 2px">底库状态(生效/失效)</span>
          <el-switch
            :active-value="1"
            :width="52"
@@ -36,8 +43,12 @@
            ></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 content="编辑" 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>
@@ -59,9 +70,15 @@
            v-model="BaseManageData.contentValue"
            @keyup.enter.native="handleSearch"
          ></el-input>
          <el-button size="small" type="primary" @click="handleSearch">搜索</el-button>
          <el-button size="small" type="primary" @click="handleSearch"
            >搜索</el-button
          >
          <el-tooltip content="批量删除" placement="top" popper-class="atooltip">
          <el-tooltip
            content="批量删除"
            placement="top"
            popper-class="atooltip"
          >
            <fTemplate authority="library:set">
              <span
                class="iconfont iconfont-wrap iconpiliangshanchu-09"
@@ -71,12 +88,26 @@
            </fTemplate>
          </el-tooltip>
          <el-tooltip content="添加车辆" placement="top" popper-class="atooltip">
            <span class="iconfont iconfont-wrap icontianjiacheliang-09" @click="addCar"></span>
          <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
            content="批量上传车牌"
            placement="top"
            popper-class="atooltip"
          >
            <span
              class="iconfont iconfont-wrap iconshangchuanchepai-09"
              @click="addBatch"
            ></span>
          </el-tooltip>
        </div>
      </div>
@@ -96,7 +127,7 @@
          background: '#fff',
          color: '#222222',
          padding: '2px 1px',
          borderBottom: 'none'
          borderBottom: 'none',
        }"
      >
        <el-table-column type="selection" width="30"></el-table-column>
@@ -116,8 +147,15 @@
              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 />
              <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
                />
              </el-carousel-item>
            </el-carousel>
          </template>
@@ -133,7 +171,13 @@
            ></el-switch>
          </template>
        </el-table-column>
        <el-table-column prop="carNo" label="车牌号" sortable align="center" width="120"></el-table-column>
        <el-table-column
          prop="carNo"
          label="车牌号"
          sortable
          align="center"
          width="120"
        ></el-table-column>
        <el-table-column
          prop="carType"
          label="车辆类型"
@@ -142,8 +186,21 @@
          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">
        <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>
@@ -156,7 +213,12 @@
          sortable
          align="center"
        ></el-table-column>
        <el-table-column prop="sex" label="车主性别" align="center" width="80"></el-table-column>
        <el-table-column
          prop="sex"
          label="车主性别"
          align="center"
          width="80"
        ></el-table-column>
        <el-table-column
          prop="createTime"
@@ -170,30 +232,65 @@
        <el-table-column label="操作" min-width="200" align="center">
          <template slot-scope="scope">
            <fTemplate authority="library:set">
              <el-tooltip content="编辑" placement="top" popper-class="atooltip">
              <el-tooltip
                content="编辑"
                placement="top"
                popper-class="atooltip"
              >
                <span
                  class="iconfont iconbianjixinxi-09"
                  style="    font-size: 24px;cursor: pointer"
                  style="font-size: 24px; cursor: pointer"
                  @click="handleClick(scope.row)"
                ></span>
              </el-tooltip>
            </fTemplate>
            <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-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 authority="library:set">
                <el-tooltip content="复制" placement="top" popper-class="atooltip">
                  <span class="iconfont iconfuzhi-09" title="复制" @click="copyClick(scope.row)"></span>
                <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
                  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">
                <el-tooltip
                  content="删除"
                  placement="top"
                  popper-class="atooltip"
                >
                  <span
                    class="iconfont iconshanchu-09"
                    style="color: #e74c3c"
@@ -219,26 +316,48 @@
        :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>
        </div>
        <div class="flex-box mt10">
          <span>上传失败的数量:{{ uploadResult.failList.length }}</span>
          <div class="ml20" v-for="(i, index) in uploadResult.failList" :key="index">
          <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">
          <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">
          <div
            class="ml20"
            v-for="(i, index) in uploadResult.noFaceList"
            :key="index"
          >
            {{ i }}
          </div>
        </div>
@@ -250,8 +369,7 @@
      :visible.sync="copyVisiabled"
      :append-to-body="true"
      okText="保存"
      width="35%"
      class="copy"
      custom-class="copy-dialog"
      cancelText="取消"
    >
      <div class="addToBase1">
@@ -260,11 +378,21 @@
            <p>黑名单 ></p>
          </div>
          <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-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
                >
              </div>
            </el-checkbox-group>
          </div>
@@ -274,11 +402,21 @@
            <p>白名单 ></p>
          </div>
          <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-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
                >
              </div>
            </el-checkbox-group>
          </div>
@@ -286,7 +424,9 @@
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button size="small" @click="copyClose" type="info">取 消</el-button>
        <el-button size="small" type="primary" @click="copySubmit()">确 定</el-button>
        <el-button size="small" type="primary" @click="copySubmit()"
          >确 定</el-button
        >
      </div>
    </el-dialog>
@@ -295,8 +435,7 @@
      :visible.sync="moveVisiabled"
      :append-to-body="true"
      okText="保存"
      class="move"
      width="35%"
      custom-class="copy-dialog"
      cancelText="取消"
    >
      <div class="addToBase1">
@@ -305,11 +444,22 @@
            <p>黑名单 ></p>
          </div>
          <div class="baseList">
            <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-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
                >
              </div>
            </el-checkbox-group>
          </div>
@@ -319,11 +469,22 @@
            <p>白名单 ></p>
          </div>
          <div class="baseList">
            <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-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
                >
              </div>
            </el-checkbox-group>
          </div>
@@ -331,11 +492,17 @@
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button size="small" @click="moveClose" type="info">取 消</el-button>
        <el-button size="small" type="primary" @click="moveSubmit()">确 定</el-button>
        <el-button size="small" type="primary" @click="moveSubmit()"
          >确 定</el-button
        >
      </div>
    </el-dialog>
    <el-dialog :visible.sync="askDeleteShow" :center="true" custom-class="del-dialog">
    <el-dialog
      :visible.sync="askDeleteShow"
      :center="true"
      custom-class="del-dialog"
    >
      <div>
        <div class="suc-icon">
          <i class="iconfont icongantanhao1"></i>
@@ -347,7 +514,9 @@
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="askDeleteShow = false">取 消</el-button>
        <el-button type="primary" @click="handleDel" :loading="delBtnLoading">确 定</el-button>
        <el-button type="primary" @click="handleDel" :loading="delBtnLoading"
          >确 定</el-button
        >
      </span>
    </el-dialog>
@@ -397,10 +566,18 @@
        :rule="carRules"
      >
        <el-form-item label="车牌号" prop="carNo">
          <el-input placeholder="请输入车牌号" v-model="form.carNo" class="inputWidth"></el-input>
          <el-input
            placeholder="请输入车牌号"
            v-model="form.carNo"
            class="inputWidth"
          ></el-input>
        </el-form-item>
        <el-form-item label="车辆类型" prop="carType">
          <el-select v-model="form.carType" placeholder="请选择车辆类型" class="inputWidth">
          <el-select
            v-model="form.carType"
            placeholder="请选择车辆类型"
            class="inputWidth"
          >
            <el-option
              v-for="item in VideoPhotoData.dictionary.CARTYPE"
              :key="item.value"
@@ -410,7 +587,11 @@
          </el-select>
        </el-form-item>
        <el-form-item label="车辆品牌" prop="carBrand">
          <el-select v-model="form.carBrand" placeholder="请选择车辆品牌" class="inputWidth">
          <el-select
            v-model="form.carBrand"
            placeholder="请选择车辆品牌"
            class="inputWidth"
          >
            <el-option
              v-for="item in VideoPhotoData.dictionary.BRAND"
              :key="item.value"
@@ -420,7 +601,11 @@
          </el-select>
        </el-form-item>
        <el-form-item label="车身颜色" prop="carColor">
          <el-select v-model="form.carColor" placeholder="请选择车身颜色" class="inputWidth">
          <el-select
            v-model="form.carColor"
            placeholder="请选择车身颜色"
            class="inputWidth"
          >
            <el-option
              v-for="item in VideoPhotoData.dictionary.nColor"
              :key="item.value"
@@ -449,8 +634,20 @@
        </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>
        <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>
@@ -484,8 +681,20 @@
        </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>
        <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>
@@ -498,68 +707,71 @@
  plateBatch,
  updateDbTableStatus,
  deleteDbPersonById,
  deleteDBtablesById
} from "@/api/baseLibrary"
import axios from "axios"
import fTemplate from "@/components/fTemplate"
import request from "@/scripts/httpRequest"
  deleteDBtablesById,
} from "@/api/baseLibrary";
import axios from "axios";
import fTemplate from "@/components/fTemplate";
import request from "@/scripts/httpRequest";
export default {
  components: {
    fTemplate
    fTemplate,
  },
  props: {
    baseObject: {
      default: () => {},
      type: Object
      type: Object,
    },
    syncType: {
      type: String
    }
      type: String,
    },
  },
  computed: {
    isAdmin() {
      if (sessionStorage.getItem("userInfo") && sessionStorage.getItem("userInfo") !== "") {
        let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username
        return loginName === "superadmin" || loginName === "basic"
      if (
        sessionStorage.getItem("userInfo") &&
        sessionStorage.getItem("userInfo") !== ""
      ) {
        let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username;
        return loginName === "superadmin" || loginName === "basic";
      }
      return false
      return false;
    },
    delText() {
      switch (this.delType) {
        case "base":
          return ["删除底库", "确定删除该底库?"]
          return ["删除底库", "确定删除该底库?"];
        case "single":
          return ["删除车辆信息", "确定删除该车辆信息?"]
          return ["删除车辆信息", "确定删除该车辆信息?"];
        case "batch":
          return ["批量删除", "确定删除该底库选中的车辆信息?"]
          return ["批量删除", "确定删除该底库选中的车辆信息?"];
        default:
          return ["", ""]
          return ["", ""];
      }
    }
    },
  },
  data() {
     var checkCar = (rule, value, callback) => {
       debugger
    var checkCar = (rule, value, callback) => {
      debugger;
      if (!value) {
        return callback()
        return callback();
      } else {
        var result = false
        var result = false;
        if (value.length === 7) {
          var express = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/
          result = express.test(value)
          var express = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
          result = express.test(value);
        } else if (value.length === 8) {
          var express2 = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{5}[A-Z0-9挂学警港澳]{1}$/
          result = express2.test(value)
          var express2 = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{5}[A-Z0-9挂学警港澳]{1}$/;
          result = express2.test(value);
        }
        if (result) {
          callback()
          callback();
        } else {
          callback(new Error('请输入正确车牌号码'))
          callback(new Error("请输入正确车牌号码"));
        }
        return result
        return result;
      }
    }
    };
    return {
      dialogFormVisible: false,
      addDrawer: false,
@@ -570,12 +782,12 @@
      fileList: [
        {
          name: "fasjido.jpg",
          url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg"
          url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg",
        },
        {
          name: "fasjido.jpg",
          url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg"
        }
          url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg",
        },
      ],
      copyVisiabled: false,
      moveVisiabled: false,
@@ -608,13 +820,13 @@
        carBrand: "0",
        carNo: "",
        enable: 0,
        reserved: ""
        reserved: "",
      },
      carRules: {
        carNo: [
          { required: true, message: '请输入活动名称', trigger: 'blur' },
          { required: true, message: "请输入活动名称", trigger: "blur" },
          // { validator: checkCar, trigger: 'blur' }
          ]
        ],
      },
      tableData: [],
      oldWidth: "",
@@ -627,66 +839,66 @@
        failList: [],
        successList: [],
        multiFaceList: [],
        noFaceList: []
        noFaceList: [],
      },
      delBtnLoading: false
    }
      delBtnLoading: false,
    };
  },
  watch: {
    "BaseManageData.selectBlacks": function(value) {
      this.blackAngWhite()
    "BaseManageData.selectBlacks": function (value) {
      this.blackAngWhite();
    },
    "BaseManageData.selectWhites": 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()
    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
      let width = document.body.clientWidth;
      let height = document.body.clientHeight;
      if (width !== this.oldWidth && width < 1750) {
      }
      this.$nextTick(() => {
        this.$refs.multipleTable.doLayout()
      })
    }
        this.$refs.multipleTable.doLayout();
      });
    };
    this.$nextTick(() => {
      this.$refs.multipleTable.doLayout()
    })
      this.$refs.multipleTable.doLayout();
    });
  },
  beforeDestroy() {
    window.onresize = null
    window.onresize = null;
  },
  methods: {
    checkCarNo(value){
      var result = false
        if (value.length === 7) {
          var express = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/
          result = express.test(value)
        } else if (value.length === 8) {
          var express2 = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{5}[A-Z0-9挂学警港澳]{1}$/
          result = express2.test(value)
        }
        return result
    checkCarNo(value) {
      var result = false;
      if (value.length === 7) {
        var express = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
        result = express.test(value);
      } else if (value.length === 8) {
        var express2 = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{5}[A-Z0-9挂学警港澳]{1}$/;
        result = express2.test(value);
      }
      return result;
    },
    async handleDel() {
      this.delBtnLoading = true
      this.delBtnLoading = true;
      if (this.delType == "single") {
        await this.deleteThis()
        await this.deleteThis();
      } else if (this.delType == "base") {
        await this.deleteBase()
        await this.deleteBase();
      } else if (this.delType == "batch") {
        await this.deleteBatch()
        await this.deleteBatch();
      }
      this.delBtnLoading = false
      this.askDeleteShow = false
      this.delBtnLoading = false;
      this.askDeleteShow = false;
    },
    deleteBase() {
      deleteDBtablesById({ id: this.baseObject.id })
@@ -694,86 +906,89 @@
          if (res.success) {
            this.$notify({
              type: "success",
              message: "底库删除成功!"
            })
              message: "底库删除成功!",
            });
          }
          this.askDeleteShow = false
          this.$emit("onDelete")
          this.askDeleteShow = false;
          this.$emit("onDelete");
        })
        .catch((err) => {
          this.$notify({
            type: "error",
            message: err
          })
        })
            message: err,
          });
        });
    },
    handleRemoveCarPic(file, fileList) {
      var index = fileList.findIndex((item) => {
        if (item.uid == file.uid) {
          return true
          return true;
        }
      })
      this.form.carUrls.splice(index, 1)
      });
      this.form.carUrls.splice(index, 1);
    },
    isDisabled(item) {
      var flag = true
      var flag = true;
      if (this.isShow("library:set")) {
        if (item.endTime == "") {
          flag = false
          flag = false;
        } else {
          flag = !this.$moment(new Date()).isBetween(item.startTime, item.endTime)
          flag = !this.$moment(new Date()).isBetween(
            item.startTime,
            item.endTime
          );
        }
      }
      return flag
      return flag;
    },
    handleRemoveFacePic(file, fileList) {
      this.form.faceUrl.splice(0, 1)
      this.form.faceUrl.splice(0, 1);
    },
    edit() {
      this.$emit("changeShow", this.baseObject, this.syncType)
      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()
      fd.append("file", param.file)
      fd.append("picType", "0")
      const fd = new FormData();
      fd.append("file", param.file);
      fd.append("picType", "0");
      let res = await request({
        method: "post",
        url: `/data/api-v/dbperson/fileupload`,
        data: fd
      })
        data: fd,
      });
      if (res.success) {
        this.form.carUrls.push({ url: "/httpImage/" + res.data.picUrl })
        debugger;
        this.form.carUrls.push({ url: "/httpImage/" + res.data.picUrl });
      }
    },
    async uploadPerson(param) {
      const fd = new FormData()
      fd.append("file", param.file)
      fd.append("picType", "1")
      const fd = new FormData();
      fd.append("file", param.file);
      fd.append("picType", "1");
      let res = await request({
        method: "post",
        url: `/data/api-v/dbperson/fileupload`,
        data: fd
      })
      debugger
        data: fd,
      });
      if (res.success) {
        this.form.faceUrl.push({ url: "/httpImage/" + res.data.picUrl })
        this.form.faceFeature = res.data.faceFeature
        this.form.faceUrl.push({ url: "/httpImage/" + res.data.picUrl });
        this.form.faceFeature = res.data.faceFeature;
      }
    },
    addCar() {
      this.addDrawer = true
      this.addDrawer = true;
    },
    addBatch() {
      this.addBatchDrawer = true
      this.addBatchDrawer = true;
    },
    resetForm() {},
    handleClose1(done) {
      ;(this.form = {
      (this.form = {
        id: "",
        sex: "男",
        name: "",
@@ -792,23 +1007,25 @@
        carBrand: "0",
        carNo: "",
        enable: 0,
        reserved: ""
        reserved: "",
      }),
        done()
        done();
    },
    handleClose2(done) {
      done()
      done();
    },
    isShow(authority) {
      return this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1
      return (
        this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1
      );
    },
    toggleSelection(rows) {
      if (rows) {
        rows.forEach((row) => {
          this.$refs.multipleTable.toggleRowSelection(row)
        })
          this.$refs.multipleTable.toggleRowSelection(row);
        });
      } else {
        this.$refs.multipleTable.clearSelection()
        this.$refs.multipleTable.clearSelection();
      }
    },
    deleteThis() {
@@ -817,81 +1034,81 @@
          if (data.success) {
            this.$notify({
              type: "success",
              message: "车辆信息删除成功!"
            })
              message: "车辆信息删除成功!",
            });
          }
          this.getCarList()
          this.getCarList();
        })
        .catch((err) => {})
        .catch((err) => {});
    },
    getUploadResult(result) {
      this.uploadResult = result.data
      this.dialogVisible = true
      this.getCarList()
      this.uploadResult = result.data;
      this.dialogVisible = true;
      this.getCarList();
    },
    async getCarList() {
    getCarList() {
      if (this.baseObject.id && this.baseObject.id !== undefined) {
        this.BaseManageData.tableId = this.baseObject.id
        this.setLoadSearch(this.BaseManageData.queryPersonList())
        this.BaseManageData.tableId = this.baseObject.id;
        this.setLoadSearch(this.BaseManageData.queryPersonList());
      }
    },
    changeDialog(data) {
      data.erFileList.map((item, index) => {
        this.$notify({
          type: "error",
          message: item.errorMsg.message
        })
      })
          message: item.errorMsg.message,
        });
      });
    },
    handleClose() {
      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 += ""
      this.addDrawer = true
      this.form.carColor += "";
      this.form.carType += "";
      this.form.carBrand += "";
      this.addDrawer = true;
    },
    async submit() {
      this.$refs["formForEdit"].validate(async (valid) => {
        if (valid) {
          let { ...json } = this.form
          delete json["compareScore"]
          let res = await updateBasePerson(json)
          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({
        title: "Confirm",
        content: "Bla bla ...",
        okText: "确认",
        cancelText: "取消"
      })
        cancelText: "取消",
      });
    },
    async enable(item) {
      let res = await updateBasePerson({
@@ -904,44 +1121,44 @@
        phoneNum: item.phoneNum,
        monitorLevel: item.monitorLevel,
        personPicUrl: item.personPicUrl,
        reserved: item.reserved
      })
        reserved: item.reserved,
      });
      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) {
      return row.compareScore && row.compareScore !== ""
      return row.compareScore && row.compareScore !== "";
    },
    async setEnable(item) {
      let res = await updateDbTableStatus({
        id: item.id,
        enable: item.enable
      })
        enable: item.enable,
      });
      if (res.success) {
        this.$notify({
          type: "success",
          message: "底库成功变更生效状态!"
        })
          message: "底库成功变更生效状态!",
        });
      } else {
        this.$notify({
          type: "error",
          message: "底库变更生效状态失败!"
        })
          message: "底库变更生效状态失败!",
        });
      }
    },
    async searchImgList(faceUrl, threshold) {
@@ -952,61 +1169,65 @@
        faceUrl: faceUrl,
        threshold: threshold,
        orderType: this.orderType,
        orderName: this.orderName
      }
      let res = await getPersonByPhoto(json)
      this.tableData = res.data.datalist
      this.total = res.data.total
      this.compare = true
        orderName: this.orderName,
      };
      let res = await getPersonByPhoto(json);
      this.tableData = res.data.datalist;
      this.total = res.data.total;
      this.compare = true;
    },
    // updateThreshold() {},
    async updateFace(param) {
      const fd = new FormData()
      fd.append("file", param.file)
      fd.append("id", this.form.id)
      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
            sessionStorage.getItem("loginedInfo") &&
            JSON.parse(sessionStorage.getItem("loginedInfo")).access_token,
        },
        data: fd
      })
        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;
      }
    },
    async deleteBatch() {
      let ids = []
      let ids = [];
      this.selectedRowKeys.map((item, index) => {
        ids.push(item.id)
      })
      let res = await deleteBasePersons({ ids: ids })
        ids.push(item.id);
      });
      let res = await deleteBasePersons({ ids: ids });
      if (res.success) {
        this.$notify({
          type: "success",
          message: "删除成功!"
        })
        this.getCarList()
          message: "删除成功!",
        });
        this.getCarList();
      } else {
        this.$notify({
          type: "error",
          message: "删除失败!"
        })
          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) {
      } 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();
      }
    },
    askDelete(typ, id) {
@@ -1014,246 +1235,259 @@
        if (this.selectedRowKeys.length === 0) {
          this.$notify({
            type: "warning",
            message: "请选择要删除的车辆信息"
          })
          return
            message: "请选择要删除的车辆信息",
          });
          return;
        }
      }
      this.askDeleteShow = true
      this.delType = typ
      id && (this.toDeleteId = id)
      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.$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.$set(this.BaseManageData.blackList[i], "disabled", false);
        }
      }
    },
    tosearch(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 href = localhostPath + "/Layout/Searching"
      let captureId = item.id == "" ? item.personId : item.id
      var url = item.personPicUrl ? item.personPicUrl : item.personPicUrl
      var compType = 0
      window.open(href + "?showType=findByPic&targetId=" + captureId + "&picSmUrl=" + url + "&compType=" + compType)
      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;
      var compType = 0;
      window.open(
        href +
          "?showType=findByPic&targetId=" +
          captureId +
          "&picSmUrl=" +
          url +
          "&compType=" +
          compType
      );
    },
    async platesBatch() {
      var temp = this.plates.split(/[\n,]/g)
      var reg = /[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]{1}[A-Z]{1}[A-Z0-9]{5,6}/
      var temp = this.plates.split(/[\n,]/g);
      var reg = /[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]{1}[A-Z]{1}[A-Z0-9]{5,6}/;
      for (let i = 0; i < temp.length; i++) {
        if (temp[i] == "") {
          temp.splice(i, 1)
          i--
          temp.splice(i, 1);
          i--;
        } else {
          if (!reg.test(temp[i])) {
            this.$notify({
              type: "error",
              message: "车牌号:" + temp[i] + "不符合规则,请检查!"
            })
            return
              message: "车牌号:" + temp[i] + "不符合规则,请检查!",
            });
            return;
          }
        }
      }
      if (temp.length == 0) {
        this.$notify({
          type: "error",
          message: "请输入车牌号"
        })
        return
          message: "请输入车牌号",
        });
        return;
      }
      let param = {
        tableId: this.baseObject.id,
        carNos: temp
      }
      let resp = await plateBatch(param)
        carNos: temp,
      };
      let resp = await plateBatch(param);
      if (resp && resp.success) {
        // 刷新car列表
        this.$notify({
          type: "success",
          message: resp.msg
        })
        this.getCarList()
        this.addBatchDrawer = false
          message: resp.msg,
        });
        this.getCarList();
        this.addBatchDrawer = false;
      } else {
        this.$notify({
          type: "error",
          message: resp.msg
        })
          message: resp.msg,
        });
      }
    },
    submitCar() {
      debugger
      this.$refs["formForCar"].validate(async (valid) => {
        if (valid) {
          let { ...json } = this.form
          let { ...json } = this.form;
          json.carPicUrls = "";
          for (let index in json.carUrls) {
            if (index == 0) {
              json.carPicUrls += json.carUrls[index].url.substring(11)
              json.carPicUrls += json.carUrls[index].url.substring(11);
            } else {
              json.carPicUrls += ";" + json.carUrls[index].url.substring(11)
              json.carPicUrls += ";" + json.carUrls[index].url.substring(11);
            }
          }
          if (!this.checkCarNo(json.carNo)) {
             this.$notify({
            this.$notify({
              type: "warning",
              message: "请输入正确的车牌号"
            })
            return
              message: "请输入正确的车牌号",
            });
            return;
          }
          json.carColor = parseInt(json.carColor)
          json.carType = parseInt(json.carType)
          json.carBrand = parseInt(json.carBrand)
          json.personPicUrl = json.faceUrl[0].url.substring(11)
          json.tableId = this.baseObject.id
          delete json["compareScore"]
          let res
          json.carColor = parseInt(json.carColor);
          json.carType = parseInt(json.carType);
          json.carBrand = parseInt(json.carBrand);
          json.personPicUrl = json.faceUrl[0].url.substring(11);
          json.tableId = this.baseObject.id;
          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);
          }
          if (res.success) {
            this.$notify({
              type: "success",
              message: res.data.msg
            })
            this.getCarList()
            this.addDrawer = false
              message: "保存成功",
            });
            this.getCarList();
            this.addDrawer = false;
          } else {
            this.$notify({
              type: "error",
              message: res.data.msg
            })
              message: res.msg,
            });
          }
        } else {
          return false
          return false;
        }
      })
      });
    },
    copyClick(row) {
      this.BaseManageData.personId = row.id
      this.copyVisiabled = true
      this.BaseManageData.personId = row.id;
      this.copyVisiabled = true;
    },
    moveClick(row) {
      this.BaseManageData.personId = row.id
      this.moveVisiabled = true
      this.BaseManageData.personId = row.id;
      this.moveVisiabled = true;
    },
    copyClose() {
      this.copyVisiabled = false
      this.BaseManageData.personId = ""
      this.BaseManageData.selectBlacks = []
      this.BaseManageData.selectWhites = []
      this.copyVisiabled = false;
      this.BaseManageData.personId = "";
      this.BaseManageData.selectBlacks = [];
      this.BaseManageData.selectWhites = [];
    },
    moveClose() {
      this.moveVisiabled = false
      this.BaseManageData.personId = ""
      this.BaseManageData.selectBlacks = []
      this.BaseManageData.selectWhites = []
      this.moveVisiabled = false;
      this.BaseManageData.personId = "";
      this.BaseManageData.selectBlacks = [];
      this.BaseManageData.selectWhites = [];
    },
    copySubmit() {
      if (this.BaseManageData.selectBlacks.length === 0 && this.BaseManageData.selectWhites.length === 0) {
      if (
        this.BaseManageData.selectBlacks.length === 0 &&
        this.BaseManageData.selectWhites.length === 0
      ) {
        this.$notify({
          title: "注意",
          message: "请选择要复制到的库",
          type: "warning"
        })
        return
          type: "warning",
        });
        return;
      }
      var resp = this.BaseManageData.copyTo()
      var resp = this.BaseManageData.copyTo();
      resp.then((data) => {
        if (data.success) {
          this.$notify({
            title: "成功",
            message: data.data,
            type: "success"
          })
            type: "success",
          });
        } else {
          this.$notify({
            title: "失败",
            message: data.data,
            type: "error"
          })
            type: "error",
          });
        }
      })
      this.copyVisiabled = false
      this.BaseManageData.personId = ""
      this.BaseManageData.selectBlacks = []
      this.BaseManageData.selectWhites = []
      });
      this.copyVisiabled = false;
      this.BaseManageData.personId = "";
      this.BaseManageData.selectBlacks = [];
      this.BaseManageData.selectWhites = [];
    },
    getDataName: (dataList, key) => {
      let name = ""
      let name = "";
      if (Array.isArray(dataList) && dataList.length > 0) {
        for (let i = 0; i < dataList.length; i++) {
          if (dataList[i].value == key) {
            name = dataList[i].name
            name = dataList[i].name;
          }
        }
      }
      return name
      return name;
    },
    moveSubmit() {
      if (this.BaseManageData.selectBlacks.length === 0 && this.BaseManageData.selectWhites.length === 0) {
      if (
        this.BaseManageData.selectBlacks.length === 0 &&
        this.BaseManageData.selectWhites.length === 0
      ) {
        this.$notify({
          title: "注意",
          message: "请选择要移动到的库",
          type: "warning"
        })
        return
          type: "warning",
        });
        return;
      }
      var resp = this.BaseManageData.moveTo()
      var resp = this.BaseManageData.moveTo();
      resp.then((data) => {
        if (data.success) {
          this.$notify({
            title: "成功",
            message: data.data,
            type: "success"
          })
            type: "success",
          });
        } else {
          this.$notify({
            title: "失败",
            message: data.data,
            type: "error"
          })
            type: "error",
          });
        }
        this.moveVisiabled = false
        this.BaseManageData.personId = ""
        this.BaseManageData.selectBlacks = []
        this.BaseManageData.selectWhites = []
        this.BaseManageData.queryPersonList()
      })
        this.moveVisiabled = false;
        this.BaseManageData.personId = "";
        this.BaseManageData.selectBlacks = [];
        this.BaseManageData.selectWhites = [];
        this.BaseManageData.queryPersonList();
      });
    },
    setLoadSearch(fn) {
      this.AuthData.setLoading("multipleTable", this)
      this.AuthData.setLoading("multipleTable", this);
      fn.then((_) => {
        this.AuthData.closeLoad()
      })
    }
  }
}
        this.AuthData.closeLoad();
      });
    },
  },
};
</script>
<style lang="scss">
.iconStyle1 {
@@ -1418,7 +1652,9 @@
      display: none;
    }
    .el-table--border .el-table__cell,
    .el-table__body-wrapper .el-table--border.is-scrolling-left ~ .el-table__fixed {
    .el-table__body-wrapper
      .el-table--border.is-scrolling-left
      ~ .el-table__fixed {
      border-right: none;
    }
    td {
@@ -1491,10 +1727,115 @@
  padding-right: 0px !important;
}
.copy,
.move {
// .copy,
// .move {
//   .el-dialog__body {
//     padding: 0px !important;
//   }
// }
.el-dialog.copy-dialog {
  width: 550px;
  border-radius: 24px;
  .el-dialog__header {
    text-align: center;
  }
  .el-dialog__headerbtn .el-dialog__close {
    color: #999999;
    font-size: 20px;
  }
  .el-dialog__title {
    line-height: 22px;
    font-size: 16px;
    color: #5f5f5f;
  }
  .el-dialog__body {
    padding: 0px !important;
    padding: 20px 15px;
    color: #5f5f5f;
  }
  .dialog-footer {
    // width: 315px;
    .el-button--info {
      color: #999999;
      background: #fff;
      padding: 9px 37px;
      font-size: 14px;
      border: 1px solid #999999;
      border-radius: 18px;
      width: 150px;
    }
    .el-button--primary {
      background: var(--colorCard) !important;
      padding: 9px 37px;
      color: #fff;
      border: 1px solidvar(--colorCard) !important;
      border-radius: 18px;
      font-size: 14px;
      width: 150px;
    }
  }
  .addToBase1 {
    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%;
      min-height: 150px;
      margin-bottom: 10px;
      .lable {
        font-size: 16px;
        font-weight: bold;
        text-align: left;
        margin-bottom: 10px;
      }
      .baseList {
        height: 100%;
        overflow: auto;
        .base {
          width: 152px;
          padding: 5px 5px 5px 10px;
          line-height: 30px;
          box-sizing: border-box;
          float: left;
          text-align: left;
          background: #eff1f5;
          border-radius: 8px;
          margin: 0 10px;
          margin-bottom: 10px;
          .el-checkbox__input.is-checked .el-checkbox__inner {
            background-color: var(--colorCard);
            border-color: var(--colorCard);
          }
          .el-checkbox {
            width: 100%;
            display: block;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            .el-checkbox__label {
              display: inline !important;
              padding-left: 6px;
              line-height: 20px;
              color: #5f5f5f;
            }
          }
        }
        .white-wrap {
          background: #ffffff;
          box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.16);
        }
      }
    }
  }
}
src/pages/library/components/personList.vue
@@ -14,6 +14,7 @@
        </div>
        <div class="right-btns">
          <span style="margin-right:2px">底库状态(生效/失效)</span>
          <el-switch
            :active-value="1"
            :width="52"
@@ -584,7 +585,6 @@
  deleteDBtablesById
} from "@/api/baseLibrary"
import { getCameraFaceData } from "@/api/es"
// import { checkIDCard } from "@/api/utils";
import { isIDCard } from "../../../scripts/validate"
import axios from "axios"
@@ -1511,7 +1511,6 @@
      }
      .el-button--small:hover {
        // background: "rgba(#{var(--colorCard-rgb)},10%) !important"  ;
        filter: brightness(92%);
      }
      .el-input__suffix {
@@ -1815,7 +1814,7 @@
  }
}
.el-dialog.copy-dialog {
  width: 516px;
  width: 550px;
  border-radius: 24px;
  .el-dialog__header {
    text-align: center;
@@ -1834,7 +1833,7 @@
    color: #5f5f5f;
  }
  .dialog-footer {
    width: 315px;
    // width: 315px;
    .el-button--info {
      color: #999999;
      background: #fff;
@@ -1871,7 +1870,7 @@
    .items {
      width: 100%;
      min-height: 150px;
      margin-bottom: 20px;
      margin-bottom: 10px;
      .lable {
        font-size: 16px;
        font-weight: bold;
@@ -1879,7 +1878,7 @@
        margin-bottom: 10px;
      }
      .baseList {
        height: 100%;
        height: 100%;    overflow: auto;
        .base {
          width: 152px;
          padding: 5px 5px 5px 10px;