| | |
| | | <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" |
| | |
| | | </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> |
| | |
| | | > |
| | | <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')" |
| | |
| | | ></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 |
| | |
| | | background: '#fff', |
| | | color: '#222222', |
| | | padding: '2px 1px', |
| | | borderBottom: 'none' |
| | | borderBottom: 'none', |
| | | }" |
| | | > |
| | | <el-table-column type="selection" width="40"></el-table-column> |
| | |
| | | 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"> |
| | |
| | | ></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="身份证号" |
| | |
| | | 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="入库时间" |
| | |
| | | <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" |
| | |
| | | ></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 |
| | |
| | | :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="" /> |
| | |
| | | ></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" |
| | |
| | | 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 |
| | |
| | | </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> |
| | |
| | | </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" |
| | |
| | | :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); |
| | |
| | | <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> |
| | |
| | | </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" |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | 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(), //日 |
| | |
| | | "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: "", |
| | |
| | | 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, |
| | |
| | | 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: "", |
| | |
| | | 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) { |
| | |
| | | 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 }) |
| | |
| | | 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({ |
| | |
| | | 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) { |
| | |
| | | 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 { |
| | |
| | | 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 { |
| | |
| | | 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 { |
| | |
| | | } |
| | | |
| | | .el-button--small:hover { |
| | | // background: "rgba(#{var(--colorCard-rgb)},10%) !important" ; |
| | | filter: brightness(92%); |
| | | } |
| | | .el-input__suffix { |
| | |
| | | } |
| | | } |
| | | .el-dialog.copy-dialog { |
| | | width: 516px; |
| | | width: 550px; |
| | | border-radius: 24px; |
| | | .el-dialog__header { |
| | | text-align: center; |
| | |
| | | color: #5f5f5f; |
| | | } |
| | | .dialog-footer { |
| | | width: 315px; |
| | | // width: 315px; |
| | | .el-button--info { |
| | | color: #999999; |
| | | background: #fff; |
| | |
| | | .items { |
| | | width: 100%; |
| | | min-height: 150px; |
| | | margin-bottom: 20px; |
| | | margin-bottom: 10px; |
| | | .lable { |
| | | font-size: 16px; |
| | | font-weight: bold; |
| | |
| | | } |
| | | .baseList { |
| | | height: 100%; |
| | | overflow: auto; |
| | | .base { |
| | | width: 152px; |
| | | padding: 5px 5px 5px 10px; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .PersonListDialog { |
| | | width: 360px !important; |
| | | } |
| | | </style> |