zhangzengfei
2022-07-20 4a800a8fc83c6bd1f86a8e847b079a51a7532c09
src/pages/library/components/personList.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"
@@ -37,7 +44,11 @@
          </el-tooltip>
          <el-tooltip content="编辑" placement="top" popper-class="atooltip">
            <span class="iconfont iconfont-wrap iconbianjiku-09" @click.stop="edit" v-if="isShow('library:set')"></span>
            <span
              class="iconfont iconfont-wrap iconbianjiku-09"
              @click.stop="edit"
              v-if="isShow('library:set')"
            ></span>
          </el-tooltip>
        </div>
      </div>
@@ -60,8 +71,14 @@
          >
            <upload-icon slot="suffix"></upload-icon>
          </el-input>
          <el-button size="small" type="primary" @click="handleSearch">搜索</el-button>
          <el-tooltip content="批量删除" placement="top" popper-class="atooltip">
          <el-button size="small" type="primary" @click="handleSearch"
            >搜索</el-button
          >
          <el-tooltip
            content="批量删除"
            placement="top"
            popper-class="atooltip"
          >
            <span
              class="iconfont iconfont-wrap iconpiliangshanchu-09"
              @click="askDelete('batch')"
@@ -69,7 +86,11 @@
            ></span>
          </el-tooltip>
          <el-tooltip content="上传照片" placement="top" popper-class="atooltip">
          <el-tooltip
            content="上传照片"
            placement="top"
            popper-class="atooltip"
          >
            <UploadBtn
              limitTypes=".jpg,.png,.jpeg"
              limitSize
@@ -102,7 +123,7 @@
          background: '#fff',
          color: '#222222',
          padding: '2px 1px',
          borderBottom: 'none'
          borderBottom: 'none',
        }"
      >
        <el-table-column type="selection" width="40"></el-table-column>
@@ -113,7 +134,9 @@
              style="width: 84px; height: 84px; object-fit: contain"
              alt
            />
            <p class="text-center fb f16" v-show="haveScore(scope.row)">{{ scope.row.compareScore }}%</p>
            <p class="text-center fb f16" v-show="haveScore(scope.row)">
              {{ scope.row.compareScore }}%
            </p>
          </template>
        </el-table-column>
        <el-table-column label="生效状态" min-width="70">
@@ -129,8 +152,19 @@
            ></el-switch>
          </template>
        </el-table-column>
        <el-table-column prop="personName" label="姓名" min-width="70" show-overflow-tooltip sortable></el-table-column>
        <el-table-column prop="sex" label="性别" min-width="60" sortable></el-table-column>
        <el-table-column
          prop="personName"
          label="姓名"
          min-width="70"
          show-overflow-tooltip
          sortable
        ></el-table-column>
        <el-table-column
          prop="sex"
          label="性别"
          min-width="60"
          sortable
        ></el-table-column>
        <el-table-column
          prop="idCard"
          label="身份证号"
@@ -145,7 +179,11 @@
          show-overflow-tooltip
          sortable
        ></el-table-column>
        <el-table-column prop="monitorLevel" label="等级" min-width="50"></el-table-column>
        <el-table-column
          prop="monitorLevel"
          label="等级"
          min-width="50"
        ></el-table-column>
        <el-table-column
          prop="createTime"
          label="入库时间"
@@ -156,7 +194,11 @@
        <el-table-column label="操作" min-width="130">
          <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"
@@ -164,26 +206,67 @@
                ></span>
              </el-tooltip>
            </fTemplate>
            <el-popover placement="top" trigger="click" popper-class="popper-caozuo">
              <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-caozuo"
            >
              <el-tooltip
                content="查找此人"
                placement="top"
                popper-class="atooltip"
              >
                <span
                  class="iconfont iconchazhaociren-09"
                  @click="tosearch(scope.row)"
                ></span>
              </el-tooltip>
              <el-tooltip content="查看详情" placement="top" popper-class="atooltip">
                <span class="iconfont iconchakanxiangqing-09" @click="showDetail(scope.row)"></span>
              <el-tooltip
                content="查看详情"
                placement="top"
                popper-class="atooltip"
              >
                <span
                  class="iconfont iconchakanxiangqing-09"
                  @click="showDetail(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" class="del-wrap">
                <el-tooltip content="删除" placement="top" popper-class="atooltip">
                  <span class="iconfont iconshanchu-09" @click="askDelete('single', scope.row.id)"></span>
                <el-tooltip
                  content="删除"
                  placement="top"
                  popper-class="atooltip"
                >
                  <span
                    class="iconfont iconshanchu-09"
                    @click="askDelete('single', scope.row.id)"
                  ></span>
                </el-tooltip>
              </fTemplate>
              <span
@@ -206,7 +289,12 @@
        :total="BaseManageData.total"
      ></el-pagination>
    </div>
    <el-dialog title="抓拍详情" :visible.sync="cameraDetailVisible" okText="确定" custom-class="zhuapai-dialog">
    <el-dialog
      title="抓拍详情"
      :visible.sync="cameraDetailVisible"
      okText="确定"
      custom-class="zhuapai-dialog"
    >
      <div class="member-info">
        <label class>
          <img src="/images/library/个人信息.png" alt="" srcset="" />
@@ -254,9 +342,13 @@
          ></el-date-picker>
        </div>
        <el-button size="mini" type="primary" @click="postCameraData">查询</el-button>
        <el-button size="mini" type="primary" @click="postCameraData"
          >查询</el-button
        >
      </div>
      <p style="text-align: right; font-size: 14px; color: #5f5f5f">共{{ faceDataCount }}条数据</p>
      <p style="text-align: right; font-size: 14px; color: #5f5f5f">
        共{{ faceDataCount }}条数据
      </p>
      <el-table
        :data="cameraDetailData"
@@ -267,10 +359,15 @@
          background: '#fff',
          color: '#222222',
          padding: '2px 1px',
          borderBottom: 'none'
          borderBottom: 'none',
        }"
      >
        <el-table-column prop="faceImg" label="抓拍实景" width="160" align="center">
        <el-table-column
          prop="faceImg"
          label="抓拍实景"
          width="160"
          align="center"
        >
          <template slot-scope="scope">
            <div>
              <img
@@ -287,10 +384,28 @@
            </div>
          </template>
        </el-table-column>
        <el-table-column prop="cameraName" label="摄像机名称" width="100" align="center"></el-table-column>
        <el-table-column prop="startTime" label="开始时间" align="center"></el-table-column>
        <el-table-column prop="endTime" label="结束时间" align="center"></el-table-column>
        <el-table-column prop="stayTime" label="停留时长" width="99" align="center">
        <el-table-column
          prop="cameraName"
          label="摄像机名称"
          width="100"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="startTime"
          label="开始时间"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="endTime"
          label="结束时间"
          align="center"
        ></el-table-column>
        <el-table-column
          prop="stayTime"
          label="停留时长"
          width="99"
          align="center"
        >
          <template slot-scope="scope">
            <span>{{ scope.row.stayTime }} 秒</span>
          </template>
@@ -298,11 +413,21 @@
      </el-table>
      <div class="bot-btn">
        <el-button size="mini" type="primary" @click="cameraDetailVisible = false">关闭</el-button>
        <el-button
          size="mini"
          type="primary"
          @click="cameraDetailVisible = false"
          >关闭</el-button
        >
      </div>
    </el-dialog>
    <el-drawer title="修改信息" :modal="false" :visible.sync="showInfoDrawer">
      <el-form ref="formForEdit" :model="inputPersonForm" label-width="100px" :rules="rules">
      <el-form
        ref="formForEdit"
        :model="inputPersonForm"
        label-width="100px"
        :rules="rules"
      >
        <div class="flex-center mb10">
          <el-upload
            class="avatar-uploader"
@@ -314,7 +439,11 @@
            :on-error="uploadError"
          >
            <div class="mask1">
              <div slot="trigger" class="flex-center" style="position: absolute; top: 70px">
              <div
                slot="trigger"
                class="flex-center"
                style="position: absolute; top: 70px"
              >
                <p
                  style="
                    background: rgba(0, 0, 0, 0.35);
@@ -345,27 +474,48 @@
        <el-row>
          <el-col :span="20">
            <el-form-item label="ID" style="width: 100%; margin-bottom: 20px">
              <el-input size="small" v-model="inputPersonForm.id" disabled placeholder="请输入"></el-input>
              <el-input
                size="small"
                v-model="inputPersonForm.id"
                disabled
                placeholder="请输入"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="照片标识" prop="picDesc" style="width: 100%; margin-bottom: 20px">
              <el-input size="small" v-model="inputPersonForm.picDesc" placeholder="请输入"></el-input>
            <el-form-item
              label="照片标识"
              prop="picDesc"
              style="width: 100%; margin-bottom: 20px"
            >
              <el-input
                size="small"
                v-model="inputPersonForm.picDesc"
                placeholder="请输入"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="姓名" style="width: 100%; margin-bottom: 20px">
              <el-input size="small" v-model="inputPersonForm.personName" placeholder="请输入"></el-input>
              <el-input
                size="small"
                v-model="inputPersonForm.personName"
                placeholder="请输入"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="性别" prop="sex" style="width: 100%; margin-bottom: 20px; text-align: left">
            <el-form-item
              label="性别"
              prop="sex"
              style="width: 100%; margin-bottom: 20px; text-align: left"
            >
              <el-radio-group v-model="inputPersonForm.sex" class="mt10">
                <el-radio label="男"></el-radio>
                <el-radio label="女"></el-radio>
@@ -375,22 +525,47 @@
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="身份证号" prop="idCard" style="width: 100%; margin-bottom: 20px">
              <el-input size="small" v-model="inputPersonForm.idCard" placeholder="请输入"></el-input>
            <el-form-item
              label="身份证号"
              prop="idCard"
              style="width: 100%; margin-bottom: 20px"
            >
              <el-input
                size="small"
                v-model="inputPersonForm.idCard"
                placeholder="请输入"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="手机号" prop="phoneNum" style="width: 100%; margin-bottom: 20px">
              <el-input size="small" v-model="inputPersonForm.phoneNum" placeholder="请输入"></el-input>
            <el-form-item
              label="手机号"
              prop="phoneNum"
              style="width: 100%; margin-bottom: 20px"
            >
              <el-input
                size="small"
                v-model="inputPersonForm.phoneNum"
                placeholder="请输入"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="人员等级" prop="monitorLevel" style="width: 100%; margin-bottom: 20px">
              <el-select size="small" v-model="inputPersonForm.monitorLevel" placeholder="请选择" style="width: 100%">
            <el-form-item
              label="人员等级"
              prop="monitorLevel"
              style="width: 100%; margin-bottom: 20px"
            >
              <el-select
                size="small"
                v-model="inputPersonForm.monitorLevel"
                placeholder="请选择"
                style="width: 100%"
              >
                <el-option
                  v-for="item in VideoPhotoData.dictionary.MONITORLEVEL"
                  :key="item.value"
@@ -403,33 +578,64 @@
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="入库位置" style="width: 100%; margin-bottom: 20px">
              <el-input size="small" v-model="inputPersonForm.fromServerId" disabled></el-input>
            <el-form-item
              label="入库位置"
              style="width: 100%; margin-bottom: 20px"
            >
              <el-input
                size="small"
                v-model="inputPersonForm.fromServerId"
                disabled
              ></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="入库时间" style="width: 100%; margin-bottom: 20px">
              <el-input size="small" v-model="inputPersonForm.createTime" disabled></el-input>
            <el-form-item
              label="入库时间"
              style="width: 100%; margin-bottom: 20px"
            >
              <el-input
                size="small"
                v-model="inputPersonForm.createTime"
                disabled
              ></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="20">
            <el-form-item label="其他" style="width: 100%; margin-bottom: 20px">
              <el-input size="small" v-model="inputPersonForm.reserved" placeholder="请输入"></el-input>
              <el-input
                size="small"
                v-model="inputPersonForm.reserved"
                placeholder="请输入"
              ></el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div class="dialog-footer">
        <!-- {{BaseManageData.personList[1].idCard}} -->
        <el-button size="small" class="cancel-btn" @click="handleClose" type="info">取消</el-button>
        <el-button size="small" class="sure-btn" type="primary" @click="submit">确定</el-button>
        <el-button
          size="small"
          class="cancel-btn"
          @click="handleClose"
          type="info"
          >取消</el-button
        >
        <el-button size="small" class="sure-btn" type="primary" @click="submit"
          >确定</el-button
        >
      </div>
    </el-drawer>
    <el-dialog :visible.sync="dialogVisible" :close="getPersonList" :center="true" custom-class="suc-dialog">
    <el-dialog
      :visible.sync="dialogVisible"
      :close="getPersonList"
      :center="true"
      custom-class="suc-dialog"
    >
      <div>
        <div class="suc-icon">
          <i class="iconfont iconduigou3"></i>
@@ -440,31 +646,53 @@
        </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>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
        <el-button type="primary" @click="dialogVisible = false"
          >确 定</el-button
        >
      </span>
    </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>
@@ -476,27 +704,45 @@
      </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>
    <el-dialog title="复制到" :visible.sync="copyVisiabled" okText="保存" custom-class="copy-dialog" cancelText="取消">
    <el-dialog
      title="复制到"
      :visible.sync="copyVisiabled"
      okText="保存"
      custom-class="copy-dialog"
      cancelText="取消"
    >
      <div class="addToBase1">
        <div class="items" v-if="baseObject.bwType === '1'">
          <div class="lable">
            <p>黑名单</p>
          </div>
          <div class="baseList">
            <el-checkbox-group v-model="BaseManageData.selectBlacks" @change="blackAngWhite">
            <el-checkbox-group
              v-model="BaseManageData.selectBlacks"
              @change="blackAngWhite"
            >
              <div
                class="base"
                v-for="(item, index) in BaseManageData.blackList"
                :key="index"
                :class="BaseManageData.selectBlacks.includes(item.value) ? 'white-wrap' : ''"
                :class="
                  BaseManageData.selectBlacks.includes(item.value)
                    ? 'white-wrap'
                    : ''
                "
              >
                <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>
@@ -506,16 +752,26 @@
            <p>白名单</p>
          </div>
          <div class="baseList">
            <el-checkbox-group v-model="BaseManageData.selectWhites" @change="blackAngWhite">
            <el-checkbox-group
              v-model="BaseManageData.selectWhites"
              @change="blackAngWhite"
            >
              <div
                class="base"
                :class="BaseManageData.selectWhites.includes(item.value) ? 'white-wrap' : ''"
                :class="
                  BaseManageData.selectWhites.includes(item.value)
                    ? 'white-wrap'
                    : ''
                "
                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>
@@ -523,27 +779,46 @@
      </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>
    <el-dialog title="移动至" :visible.sync="moveVisiabled" okText="保存" custom-class="copy-dialog" cancelText="取消">
    <el-dialog
      title="移动至"
      :visible.sync="moveVisiabled"
      okText="保存"
      custom-class="copy-dialog"
      cancelText="取消"
    >
      <div class="addToBase1">
        <div class="items">
          <div class="lable">
            <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"
                :class="BaseManageData.selectBlacks.includes(item.value) ? 'white-wrap' : ''"
                :class="
                  BaseManageData.selectBlacks.includes(item.value)
                    ? 'white-wrap'
                    : ''
                "
              >
                <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>
@@ -553,16 +828,27 @@
            <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"
                :class="BaseManageData.selectWhites.includes(item.value) ? 'white-wrap' : ''"
                :class="
                  BaseManageData.selectWhites.includes(item.value)
                    ? 'white-wrap'
                    : ''
                "
              >
                <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>
@@ -570,7 +856,9 @@
      </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>
  </div>
@@ -581,28 +869,27 @@
  deleteBasePersons,
  updateDbTableStatus,
  deleteDbPersonById,
  deleteDBtablesById
} from "@/api/baseLibrary"
import { getCameraFaceData } from "@/api/es"
// import { checkIDCard } from "@/api/utils";
import { isIDCard } from "../../../scripts/validate"
  deleteDBtablesById,
} from "@/api/baseLibrary";
import { getCameraFaceData } from "@/api/es";
import { isIDCard } from "../../../scripts/validate";
import axios from "axios"
import UploadBtn from "./upload"
import fTemplate from "@/components/fTemplate"
import UploadIcon from "@/components/searching/UploadIcon.vue"
import axios from "axios";
import UploadBtn from "./upload";
import fTemplate from "@/components/fTemplate";
import UploadIcon from "@/components/searching/UploadIcon.vue";
function isPhone(rule, value, callback) {
  if (!value) {
    return callback()
    return callback();
  } else if (value.trim()) {
    var pattern = /^1[345789]\d{9}$/
    var pattern = /^1[345789]\d{9}$/;
    if (pattern.test(value)) {
      return callback()
      return callback();
    }
    return callback(new Error("输入的手机号错误"))
    return callback(new Error("输入的手机号错误"));
  }
}
Date.prototype.Format = function(fmt) {
Date.prototype.Format = function (fmt) {
  var o = {
    "M+": this.getMonth() + 1, //月份
    "d+": this.getDate(), //日
@@ -610,59 +897,72 @@
    "m+": this.getMinutes(), //分
    "s+": this.getSeconds(), //秒
    "q+": Math.floor((this.getMonth() + 3) / 3), //季度
    S: this.getMilliseconds() //毫秒
  }
  if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length))
    S: this.getMilliseconds(), //毫秒
  };
  if (/(y+)/.test(fmt))
    fmt = fmt.replace(
      RegExp.$1,
      (this.getFullYear() + "").substr(4 - RegExp.$1.length)
    );
  for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt))
      fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length))
  return fmt
}
      fmt = fmt.replace(
        RegExp.$1,
        RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)
      );
  return fmt;
};
export default {
  components: {
    UploadBtn,
    fTemplate,
    UploadIcon
    UploadIcon,
  },
  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() {
    return {
      timeRange: [new Date(2020, 7, 25, 8), new Date(new Date().setHours(23, 59, 59))],
      timeRange: [
        new Date(2020, 7, 25, 8),
        new Date(new Date().setHours(23, 59, 59)),
      ],
      memberInfo: {
        personName: "",
        sex: "",
        idCard: "",
        reserved: ""
        reserved: "",
      },
      askDeleteShow: false,
      toDeleteId: "",
@@ -670,7 +970,7 @@
        startTime: new Date(2020, 7, 25, 8).Format("yyyy-MM-dd HH:mm:ss"),
        endTime: new Date().Format("yyyy-MM-dd HH:mm:ss"),
        thresholdTime: 10,
        faceId: []
        faceId: [],
      },
      cameraDetailData: [],
      cameraDetailVisible: false,
@@ -690,11 +990,15 @@
      selectedRowKeys: [],
      inputPersonForm: {},
      rules: {
        picDesc: [{ required: true, message: "请输入照片标识", trigger: "change" }],
        picDesc: [
          { required: true, message: "请输入照片标识", trigger: "change" },
        ],
        sex: [{ required: true, message: "请勾选性别", trigger: "change" }],
        idCard: [{ validator: isIDCard, trigger: "blur" }],
        phoneNum: [{ validator: isPhone, trigger: "blur" }],
        monitorLevel: [{ required: true, message: "请选择人员等级", trigger: "change" }]
        monitorLevel: [
          { required: true, message: "请选择人员等级", trigger: "change" },
        ],
      },
      tableData: [],
      oldWidth: "",
@@ -708,55 +1012,57 @@
        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();
    },
  },
  methods: {
    postCameraData() {
      getCameraFaceData(this.reqCameraParams).then((res) => {
        if (res && res.rtnCode == 1) {
          this.cameraDetailData = res.rtnData
          this.faceDataCount = res.rtnData.length
          this.cameraDetailData = res.rtnData;
          this.faceDataCount = res.rtnData.length;
        }
      })
      });
    },
    timeChange(val) {
      this.reqCameraParams.startTime = val[0]
      this.reqCameraParams.endTime = val[1]
      this.reqCameraParams.startTime = val[0];
      this.reqCameraParams.endTime = val[1];
    },
    showDetail(row) {
      this.cameraDetailData = []
      this.memberInfo.reserved = row.reserved
      this.memberInfo.idCard = row.idCard
      this.memberInfo.personName = row.personName
      this.memberInfo.sex = row.sex
      this.reqCameraParams.faceId = row.id
      this.cameraDetailVisible = true
      this.cameraDetailData = [];
      this.memberInfo.reserved = row.reserved;
      this.memberInfo.idCard = row.idCard;
      this.memberInfo.personName = row.personName;
      this.memberInfo.sex = row.sex;
      this.reqCameraParams.faceId = row.id;
      this.cameraDetailVisible = true;
    },
    isShow(authority) {
      return this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1
      return (
        this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1
      );
    },
    pickRow(row, column, event) {
      this.$refs.multipleTable.toggleRowSelection(row)
      this.$refs.multipleTable.toggleRowSelection(row);
    },
    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();
      }
    },
    askDelete(typ, id) {
@@ -765,64 +1071,68 @@
          this.$notify({
            type: "warning",
            message: "请选择要删除的人员",
            duration: 1000000
          })
          return
            duration: 1000000,
          });
          return;
        }
      }
      this.askDeleteShow = true
      this.delType = typ
      id && (this.toDeleteId = id)
      this.askDeleteShow = true;
      this.delType = typ;
      id && (this.toDeleteId = id);
    },
    getUploadResult(result) {
      this.uploadResult = result.data
      this.dialogVisible = true
      this.getPersonList()
      this.uploadResult = result.data;
      this.dialogVisible = true;
      this.getPersonList();
    },
    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: "底库变更生效状态失败!",
        });
      }
    },
    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;
    },
    edit() {
      this.$emit("changeShow", this.baseObject, this.syncType)
      this.$emit("changeShow", this.baseObject, this.syncType);
    },
    deleteThis() {
      debugger;
      deleteDbPersonById({ id: this.toDeleteId })
        .then((data) => {
          if (data.success) {
            this.$notify({
              type: "success",
              message: "该人员删除成功!"
            })
              message: "该人员删除成功!",
            });
          }
          this.getPersonList()
          this.getPersonList();
        })
        .catch((err) => {})
        .catch((err) => {});
    },
    deleteBase() {
      deleteDBtablesById({ id: this.baseObject.id })
@@ -830,90 +1140,92 @@
          if (res.success) {
            this.$notify({
              type: "success",
              message: "底库删除成功!"
            })
              message: "底库删除成功!",
            });
          }
          this.$emit("onDelete")
          this.$emit("onDelete");
        })
        .catch((err) => {
          this.$notify({
            type: "error",
            message: err
          })
        })
            message: err,
          });
        });
    },
    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.getPersonList()
          message: "删除成功!",
        });
        this.getPersonList();
      } else {
        this.$notify({
          type: "error",
          message: "删除失败!"
        })
          message: "删除失败!",
        });
      }
    },
    async getPersonList() {
      console.log(this.baseObject);
      this.$nextTick(() => {
        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,
          customClass: "PersonListDialog",
        });
      });
    },
    handleClose() {
      this.showInfoDrawer = false
      this.showInfoDrawer = false;
    },
    handleSelectionChange(val) {
      this.selectedRowKeys = val
      this.selectedRowKeys = val;
    },
    refrash(current, pageSize) {
      this.current = current
      this.BaseManageData.page = current
      this.getPersonList()
      this.current = current;
      this.BaseManageData.page = current;
      this.getPersonList();
    },
    handleSizeChange(val) {
      this.BaseManageData.size = val
      this.getPersonList()
      this.BaseManageData.size = val;
      this.getPersonList();
    },
    editRow(row) {
      this.inputPersonForm = { ...row }
      this.showInfoDrawer = true
      this.inputPersonForm = { ...row };
      this.showInfoDrawer = true;
    },
    async submit() {
      this.$refs["formForEdit"].validate(async (valid) => {
        if (valid) {
          let { ...json } = this.inputPersonForm
          delete json["compareScore"]
          let res = await updateBasePerson(json)
          let { ...json } = this.inputPersonForm;
          delete json["compareScore"];
          let res = await updateBasePerson(json);
          if (res.success) {
            this.getPersonList()
            this.$notify.success("人员修改成功!")
            this.showInfoDrawer = false
            this.getPersonList();
            this.$notify.success("人员修改成功!");
            this.showInfoDrawer = false;
          } else {
            this.$notify.error("人员修改失败,请重试!")
            this.$notify.error("人员修改失败,请重试!");
          }
        } else {
          return false
          return false;
        }
      })
      });
    },
    async enable(item) {
      let res = await updateBasePerson({
@@ -926,44 +1238,44 @@
        phoneNum: item.phoneNum,
        monitorLevel: item.monitorLevel,
        personPicUrl: item.personPicUrl,
        reserved: item.reserved
      })
        reserved: item.reserved,
      });
      if (res.success === true) {
        this.$notify({
          type: "success",
          message: "底库人员成功变更生效状态!"
        })
          message: "底库人员成功变更生效状态!",
        });
      } else {
        this.$notify({
          type: "error",
          message: "底库人员变更生效状态失败!"
        })
          message: "底库人员变更生效状态失败!",
        });
      }
    },
    handleSearch() {
      this.getPersonList()
      this.getPersonList();
    },
    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;
    },
    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 true;
      } else {
        return false
        return false;
      }
    },
    async searchImgList(faceUrl, threshold) {
@@ -974,199 +1286,214 @@
        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.inputPersonForm.id)
      const fd = new FormData();
      fd.append("file", param.file);
      fd.append("id", this.inputPersonForm.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.inputPersonForm.persoasyncnPicUrl = res.data.data.personPicUrl
        this.inputPersonForm.faceFeature = res.data.data.faceFeature
        this.inputPersonForm.persoasyncnPicUrl = res.data.data.personPicUrl;
        this.inputPersonForm.faceFeature = res.data.data.faceFeature;
      }
    },
    uploadSuccess() {},
    uploadError() {},
    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();
      }
    },
    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) {
      //let captureId = item.id == "" ? item.baseInfo[0].targetId : item.id
      let captureId = item.id == "" ? item.personId : item.id
      let imgUrl = item.personPicUrl ? item.personPicUrl : item.personPicUrl
      let compType = 0
      let captureId = item.id == "" ? item.personId : item.id;
      let imgUrl = item.personPicUrl ? item.personPicUrl : item.personPicUrl;
      let compType = 0;
      let message =
        "toSearch?showType=findByPic&targetId=" + captureId + "&picSmUrl=" + imgUrl + "&compType=" + compType
        "toSearch?showType=findByPic&targetId=" +
        captureId +
        "&picSmUrl=" +
        imgUrl +
        "&compType=" +
        compType;
      window.parent.postMessage(
        {
          msg: message
          msg: message,
        },
        "*"
      )
      );
    },
    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 = [];
    },
    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();
      });
    },
  },
  mounted() {
    this.getPersonList()
    this.VideoPhotoData.queryDictionary()
    this.BaseManageData.queryTagList()
    this.oldWidth = document.body.clientWidth
    this.oldHeight = document.body.clientHeight
    this.blackAngWhite()
    this.getPersonList();
    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;
  },
};
</script>
<style lang="scss">
.activeRow {
@@ -1413,7 +1740,8 @@
        padding-top: 2px;
        left: 15px;
      }
      .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before {
      .el-form-item.is-required:not(.is-no-asterisk)
        > .el-form-item__label:before {
        color: #fe6d68;
      }
      .el-col-20 {
@@ -1464,7 +1792,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 {
@@ -1511,7 +1841,6 @@
      }
      .el-button--small:hover {
        // background: "rgba(#{var(--colorCard-rgb)},10%) !important"  ;
        filter: brightness(92%);
      }
      .el-input__suffix {
@@ -1815,7 +2144,7 @@
  }
}
.el-dialog.copy-dialog {
  width: 516px;
  width: 550px;
  border-radius: 24px;
  .el-dialog__header {
    text-align: center;
@@ -1834,7 +2163,7 @@
    color: #5f5f5f;
  }
  .dialog-footer {
    width: 315px;
    // width: 315px;
    .el-button--info {
      color: #999999;
      background: #fff;
@@ -1871,7 +2200,7 @@
    .items {
      width: 100%;
      min-height: 150px;
      margin-bottom: 20px;
      margin-bottom: 10px;
      .lable {
        font-size: 16px;
        font-weight: bold;
@@ -1880,6 +2209,7 @@
      }
      .baseList {
        height: 100%;
        overflow: auto;
        .base {
          width: 152px;
          padding: 5px 5px 5px 10px;
@@ -2072,4 +2402,8 @@
    }
  }
}
.PersonListDialog {
  width: 360px !important;
}
</style>