| | |
| | | >{{ this.baseObject.bwType === "1" ? "黑名单" : "白名单" }}</span |
| | | > |
| | | <span class="ok-time" |
| | | >有效时间:{{ this.baseObject.startTime }}--{{ |
| | | >有效时间:{{ this.baseObject.startTime }} -- |
| | | {{ |
| | | 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" |
| | |
| | | v-model="baseObject.enable" |
| | | active-color="#4E94FF" |
| | | inactive-color="#BBBBBB" |
| | | style="margin-right: 25px" |
| | | style="margin-right: 10px" |
| | | :disabled="isDisabled(baseObject)" |
| | | @change="setEnable(baseObject)" |
| | | > |
| | | </el-switch> |
| | | |
| | | <div class="shutiao" v-if="baseObject.enable"></div> |
| | | <div class="shutiao1" v-else></div> |
| | | <el-tooltip content="删除" placement="top" popper-class="atooltip"> |
| | | <span |
| | | class="iconfont iconfont-wrap iconshanchuku-09" |
| | | v-if="isShow('library:set')" |
| | | @click.stop="deleteBase" |
| | | @click.stop="askDelete('base')" |
| | | ></span> |
| | | </el-tooltip> |
| | | |
| | |
| | | </div> |
| | | </div> |
| | | </el-row> |
| | | <!-- <el-row class style="margin: 40px 0 40px 0px"> |
| | | <el-col :span="6"> |
| | | <el-input |
| | | placeholder="姓名/性别/身份证号/手机号" |
| | | autocomplete="off" |
| | | width="100%" |
| | | size="small" |
| | | v-model="BaseManageData.contentValue" |
| | | @keyup.enter.native="handleSearch" |
| | | > |
| | | <upload-icon slot="suffix"></upload-icon> |
| | | </el-input> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <el-button size="small" type="primary" @click="handleSearch" |
| | | >搜索</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :offset="11" :span="3"> |
| | | <fTemplate authority="library:set"> |
| | | <el-button |
| | | size="small" |
| | | class="ml10" |
| | | type="danger" |
| | | @click="deleteBatch" |
| | | v-if="isShow('library:set')" |
| | | >批量删除</el-button |
| | | > |
| | | </fTemplate> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <div class="text-left"> |
| | | <UploadBtn |
| | | limitTypes=".jpg,.png,.jpeg" |
| | | limitSize |
| | | uploadBtntext="上传照片" |
| | | uploadBtnIcon |
| | | v-if="isShow('library:set')" |
| | | uploadBtnSize="small" |
| | | :isDrag="true" |
| | | @addFilesBaBackFN="changeDialog" |
| | | @successFN="getUploadResult" |
| | | :idJson="{ tableId: baseObject.id }" |
| | | /> |
| | | </div> |
| | | </el-col> |
| | | </el-row> --> |
| | | <div class="border-tabl"> |
| | | <div class="head-search"> |
| | | <div class="desc"> |
| | |
| | | > |
| | | <span |
| | | class="iconfont iconfont-wrap iconpiliangshanchu-09" |
| | | title="删除" |
| | | @click="deleteBatch" |
| | | @click="askDelete('batch')" |
| | | v-if="isShow('library:set')" |
| | | ></span> |
| | | </el-tooltip> |
| | |
| | | <el-table |
| | | id="multipleTable" |
| | | ref="multipleTable" |
| | | class="tableBox" |
| | | :data="BaseManageData.personList" |
| | | tooltip-effect="dark" |
| | | style="width: 100%; overflow: auto" |
| | | :fit="true" |
| | | cell-class-name="cell-classname" |
| | | @row-click="pickRow" |
| | | :default-sort="{ prop: 'createTime', order: 'descending' }" |
| | | @selection-change="handleSelectionChange" |
| | | :header-cell-style="{ background: '#f8f8f8', color: '#222222' }" |
| | | border |
| | | :header-cell-style="{ |
| | | background: '#fff', |
| | | color: '#222222', |
| | | padding: '2px 1px', |
| | | borderBottom: 'none', |
| | | }" |
| | | > |
| | | <el-table-column type="selection" width="30"></el-table-column> |
| | | <!-- <el-table-column label="序号" width="60" sortable align="center"> |
| | | <template slot-scope="scope">{{ scope.$index + 1 }}</template> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | prop="personPicUrl" |
| | | label="照片" |
| | | align="center" |
| | | width="120" |
| | | > |
| | | <el-table-column type="selection" width="40"></el-table-column> |
| | | <el-table-column prop="personPicUrl" label="照片" width="120"> |
| | | <template slot-scope="scope"> |
| | | <img |
| | | :src="'/httpImage/' + scope.row.personPicUrl" |
| | |
| | | </p> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="生效状态" align="center" width="80"> |
| | | <el-table-column label="生效状态" min-width="70"> |
| | | <template slot-scope="scope"> |
| | | <el-switch |
| | | v-model="scope.row.enable" |
| | | :active-value="1" |
| | | :disabled="!isShow('library:set')" |
| | | :inactive-value="0" |
| | | active-color="#4E94FF" |
| | | inactive-color="#C4C4C4" |
| | | @change="enable(scope.row)" |
| | | ></el-switch> |
| | | </template> |
| | |
| | | <el-table-column |
| | | prop="personName" |
| | | label="姓名" |
| | | min-width="90" |
| | | min-width="70" |
| | | show-overflow-tooltip |
| | | sortable |
| | | align="center" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="sex" |
| | | label="性别" |
| | | width="70" |
| | | min-width="60" |
| | | sortable |
| | | align="center" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="idCard" |
| | | label="身份证号" |
| | | min-width="170" |
| | | min-width="150" |
| | | show-overflow-tooltip |
| | | sortable |
| | | align="center" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="phoneNum" |
| | | label="手机号" |
| | | width="110" |
| | | min-width="100" |
| | | show-overflow-tooltip |
| | | sortable |
| | | align="center" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="monitorLevel" |
| | | label="等级" |
| | | align="center" |
| | | width="80" |
| | | min-width="50" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="createTime" |
| | | label="入库时间" |
| | | width="140" |
| | | min-width="140" |
| | | show-overflow-tooltip |
| | | sortable |
| | | align="center" |
| | | ></el-table-column> |
| | | <!-- <el-table-column prop="reserved" label="其他" align="center"></el-table-column> --> |
| | | |
| | | <el-table-column label="操作" min-width="200" align="center"> |
| | | <el-table-column label="操作" min-width="130"> |
| | | <template slot-scope="scope"> |
| | | <fTemplate authority="library:set"> |
| | | <el-tooltip |
| | |
| | | popper-class="atooltip" |
| | | > |
| | | <span |
| | | class="iconfont iconfont-wrap iconbianji" |
| | | style="font-size: 15px" |
| | | @click="handleClick(scope.row)" |
| | | class="iconfont iconbianjixinxi-09" |
| | | style="font-size: 24px; cursor: pointer" |
| | | @click="editRow(scope.row)" |
| | | ></span> |
| | | </el-tooltip> |
| | | </fTemplate> |
| | | <el-tooltip |
| | | content="查找此人" |
| | | <el-popover |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | 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> |
| | | <fTemplate authority="library:set"> |
| | | <el-tooltip |
| | | content="复制" |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | > |
| | | <span |
| | | class="iconfont iconfuzhi-09" |
| | | title="复制" |
| | | @click="copyClick(scope.row)" |
| | | ></span> |
| | | </el-tooltip> |
| | | </fTemplate> |
| | | <fTemplate authority="library:set"> |
| | | <el-tooltip |
| | | content="移动" |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | > |
| | | <span |
| | | class="iconfont iconyidong-09" |
| | | title="移动" |
| | | @click="moveClick(scope.row)" |
| | | ></span> |
| | | </el-tooltip> |
| | | </fTemplate> |
| | | <fTemplate authority="library:set" 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> |
| | | </fTemplate> |
| | | <span |
| | | class="iconfont iconsousuoren" |
| | | @click="tosearch(scope.row)" |
| | | slot="reference" |
| | | class="iconfont icongengduocaozuo-09" |
| | | style="font-size: 24px; cursor: pointer" |
| | | ></span> |
| | | </el-tooltip> |
| | | <el-tooltip |
| | | content="查看详情" |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | > |
| | | <span |
| | | class="iconfont iconsousuoren" |
| | | @click="showDetail(scope.row)" |
| | | ></span> |
| | | </el-tooltip> |
| | | <fTemplate authority="library:set"> |
| | | <el-tooltip |
| | | content="复制" |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | > |
| | | <span |
| | | class="iconfont iconfuzhi" |
| | | title="复制" |
| | | @click="copyClick(scope.row)" |
| | | ></span> |
| | | </el-tooltip> |
| | | </fTemplate> |
| | | <fTemplate authority="library:set"> |
| | | <el-tooltip |
| | | content="移动" |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | > |
| | | <span |
| | | class="iconfont iconyidongzhi" |
| | | style="font-size: 15px" |
| | | title="移动" |
| | | @click="moveClick(scope.row)" |
| | | ></span> |
| | | </el-tooltip> |
| | | </fTemplate> |
| | | <fTemplate authority="library:set"> |
| | | <el-tooltip |
| | | content="删除" |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | > |
| | | <span |
| | | class="iconfont iconshanchuku-09" |
| | | style="color: #e74c3c" |
| | | @click="deleteThis(scope.row.id)" |
| | | title="删除" |
| | | ></span> |
| | | </el-tooltip> |
| | | </fTemplate> |
| | | </el-popover> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | :total="BaseManageData.total" |
| | | ></el-pagination> |
| | | </div> |
| | | <!-- <div class="pt5" style="height: 40px; position: relative"> |
| | | <el-pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="refrash" |
| | | :current-page="BaseManageData.page" |
| | | :page-size="BaseManageData.size" |
| | | :page-sizes="[10, 20, 50, 100]" |
| | | style="position: absolute; right: 10px; bottom: 5px" |
| | | layout="total,sizes,prev,pager,next,jumper" |
| | | :total="BaseManageData.total" |
| | | ></el-pagination> |
| | | </div> --> |
| | | <el-dialog |
| | | title="抓拍详情" |
| | | :visible.sync="cameraDetailVisible" |
| | | okText="确定" |
| | | custom-class="zhuapai-dialog" |
| | | > |
| | | <div class="top-bar"> |
| | | <el-date-picker |
| | | size="mini" |
| | | @change="timeChange" |
| | | v-model="timeRange" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | | end-placeholder="结束时间" |
| | | ></el-date-picker> |
| | | <div style="margin: 0 10px; display: flex"> |
| | | <span style="width: 68px">停留时长:</span> |
| | | <el-input |
| | | size="mini" |
| | | style="width: 80px" |
| | | v-model.number="reqCameraParams.thresholdTime" |
| | | ></el-input |
| | | >s |
| | | </div> |
| | | <el-button size="mini" type="primary" @click="postCameraData" |
| | | >查询</el-button |
| | | > |
| | | </div> |
| | | |
| | | <div class="member-info"> |
| | | <label class>人员信息:</label> |
| | | <label class> |
| | | <img src="/images/library/个人信息.png" alt="" srcset="" /> |
| | | </label> |
| | | <ul> |
| | | <li> |
| | | <span>姓名:</span> |
| | | <span>{{ memberInfo.personName }}</span> |
| | | </li> |
| | | <li> |
| | | <span>性别:</span> |
| | | <span>{{ memberInfo.sex }}</span> |
| | | </li> |
| | | <li> |
| | | <span>身份证号:</span> |
| | | <li style="margin-right: 80px"> |
| | | <span>{{ memberInfo.idCard }}</span> |
| | | </li> |
| | | <li> |
| | |
| | | </ul> |
| | | </div> |
| | | |
| | | <el-table :data="cameraDetailData" border> |
| | | <div class="top-bar"> |
| | | <div style="display: flex"> |
| | | <span style="margin-right: 10px">停留时长</span> |
| | | <el-input |
| | | size="mini" |
| | | style="width: 58px; margin-right: 4px" |
| | | v-model.number="reqCameraParams.thresholdTime" |
| | | ></el-input |
| | | >s |
| | | </div> |
| | | <div style="display: flex"> |
| | | <span style="margin-right: 10px">时期</span> |
| | | <el-date-picker |
| | | size="mini" |
| | | popper-class="popper-pick" |
| | | @change="timeChange" |
| | | v-model="timeRange" |
| | | align="center" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="datetimerange" |
| | | range-separator="至" |
| | | start-placeholder="开始时间" |
| | | end-placeholder="结束时间" |
| | | ></el-date-picker> |
| | | </div> |
| | | |
| | | <el-button size="mini" type="primary" @click="postCameraData" |
| | | >查询</el-button |
| | | > |
| | | </div> |
| | | <p style="text-align: right; font-size: 14px; color: #5f5f5f"> |
| | | 共{{ faceDataCount }}条数据 |
| | | </p> |
| | | |
| | | <el-table |
| | | :data="cameraDetailData" |
| | | tooltip-effect="dark" |
| | | :fit="true" |
| | | style="width: 100%; overflow: auto" |
| | | :header-cell-style="{ |
| | | background: '#fff', |
| | | color: '#222222', |
| | | padding: '2px 1px', |
| | | borderBottom: 'none', |
| | | }" |
| | | > |
| | | <el-table-column |
| | | prop="faceImg" |
| | | label="抓拍实景" |
| | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <p style="text-align: right; font-size: 14px"> |
| | | 共{{ faceDataCount }}条数据 |
| | | </p> |
| | | |
| | | <div class="bot-btn"> |
| | | <el-button |
| | | size="mini" |
| | | type="primary" |
| | | @click="cameraDetailVisible = false" |
| | | >关闭</el-button |
| | | > |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="修改信息" |
| | | :visible.sync="dialogFormVisible" |
| | | okText="保存" |
| | | width="30%" |
| | | :before-close="handleClose" |
| | | cancelText="取消" |
| | | > |
| | | <el-drawer title="修改信息" :modal="false" :visible.sync="showInfoDrawer"> |
| | | <el-form |
| | | ref="formForEdit" |
| | | :model="form" |
| | | label-width="120px" |
| | | :model="inputPersonForm" |
| | | label-width="100px" |
| | | :rules="rules" |
| | | > |
| | | <div class="flex-center mb10"> |
| | |
| | | <div |
| | | slot="trigger" |
| | | class="flex-center" |
| | | style="position: absolute; top: 120px" |
| | | style="position: absolute; top: 70px" |
| | | > |
| | | <p |
| | | style=" |
| | | background: rgba(0, 0, 0, 0.35); |
| | | width: 150px; |
| | | width: 100px; |
| | | line-height: 30px; |
| | | color: #fff; |
| | | font-size: 13px; |
| | |
| | | </div> |
| | | </div> |
| | | <img |
| | | v-if="`httpImage/` + form.personPicUrl" |
| | | :src="`/httpImage/` + form.personPicUrl" |
| | | v-if="`httpImage/` + inputPersonForm.personPicUrl" |
| | | :src="`/httpImage/` + inputPersonForm.personPicUrl" |
| | | style=" |
| | | max-height: 150px; |
| | | width: 150px; |
| | | max-height: 100px; |
| | | width: 100px; |
| | | object-fit: contain; |
| | | background: rgba(0, 0, 0, 0.35); |
| | | " |
| | |
| | | </div> |
| | | <el-row> |
| | | <el-col :span="20"> |
| | | <el-form-item label="ID" style="width: 100%; margin-bottom: 10px"> |
| | | <el-form-item label="ID" style="width: 100%; margin-bottom: 20px"> |
| | | <el-input |
| | | size="small" |
| | | v-model="form.id" |
| | | v-model="inputPersonForm.id" |
| | | disabled |
| | | placeholder="请输入" |
| | | ></el-input> |
| | |
| | | <el-form-item |
| | | label="照片标识" |
| | | prop="picDesc" |
| | | style="width: 100%; margin-bottom: 10px" |
| | | style="width: 100%; margin-bottom: 20px" |
| | | > |
| | | <el-input |
| | | size="small" |
| | | v-model="form.picDesc" |
| | | v-model="inputPersonForm.picDesc" |
| | | placeholder="请输入" |
| | | ></el-input> |
| | | </el-form-item> |
| | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="20"> |
| | | <el-form-item label="姓名" style="width: 100%; margin-bottom: 10px"> |
| | | <el-form-item label="姓名" style="width: 100%; margin-bottom: 20px"> |
| | | <el-input |
| | | size="small" |
| | | v-model="form.personName" |
| | | v-model="inputPersonForm.personName" |
| | | placeholder="请输入" |
| | | ></el-input> |
| | | </el-form-item> |
| | |
| | | <el-form-item |
| | | label="性别" |
| | | prop="sex" |
| | | style="width: 100%; margin-bottom: 8px; text-align: left" |
| | | style="width: 100%; margin-bottom: 20px; text-align: left" |
| | | > |
| | | <el-radio-group v-model="form.sex" class="mt10"> |
| | | <el-radio-group v-model="inputPersonForm.sex" class="mt10"> |
| | | <el-radio label="男"></el-radio> |
| | | <el-radio label="女"></el-radio> |
| | | </el-radio-group> |
| | |
| | | <el-col :span="20"> |
| | | <el-form-item |
| | | label="身份证号" |
| | | style="width: 100%; margin-bottom: 10px" |
| | | prop="idCard" |
| | | style="width: 100%; margin-bottom: 20px" |
| | | > |
| | | <el-input |
| | | size="small" |
| | | v-model="form.idCard" |
| | | v-model="inputPersonForm.idCard" |
| | | placeholder="请输入" |
| | | ></el-input> |
| | | </el-form-item> |
| | |
| | | <el-col :span="20"> |
| | | <el-form-item |
| | | label="手机号" |
| | | style="width: 100%; margin-bottom: 10px" |
| | | prop="phoneNum" |
| | | style="width: 100%; margin-bottom: 20px" |
| | | > |
| | | <el-input |
| | | size="small" |
| | | v-model="form.phoneNum" |
| | | v-model="inputPersonForm.phoneNum" |
| | | placeholder="请输入" |
| | | ></el-input> |
| | | </el-form-item> |
| | |
| | | <el-form-item |
| | | label="人员等级" |
| | | prop="monitorLevel" |
| | | style="width: 100%; margin-bottom: 10px" |
| | | style="width: 100%; margin-bottom: 20px" |
| | | > |
| | | <el-select |
| | | size="small" |
| | | v-model="form.monitorLevel" |
| | | v-model="inputPersonForm.monitorLevel" |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | | > |
| | |
| | | <el-col :span="20"> |
| | | <el-form-item |
| | | label="入库位置" |
| | | style="width: 100%; margin-bottom: 10px" |
| | | style="width: 100%; margin-bottom: 20px" |
| | | > |
| | | <el-input |
| | | size="small" |
| | | v-model="form.fromServerId" |
| | | v-model="inputPersonForm.fromServerId" |
| | | disabled |
| | | placeholder="请输入" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-col :span="20"> |
| | | <el-form-item |
| | | label="入库时间" |
| | | style="width: 100%; margin-bottom: 10px" |
| | | style="width: 100%; margin-bottom: 20px" |
| | | > |
| | | <el-input |
| | | size="small" |
| | | v-model="form.createTime" |
| | | v-model="inputPersonForm.createTime" |
| | | disabled |
| | | 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: 10px"> |
| | | <el-form-item label="其他" style="width: 100%; margin-bottom: 20px"> |
| | | <el-input |
| | | size="small" |
| | | v-model="form.reserved" |
| | | v-model="inputPersonForm.reserved" |
| | | placeholder="请输入" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button size="small" @click="handleClose" type="info" |
| | | >取 消</el-button |
| | | <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" type="primary" @click="submit()" |
| | | >确 定</el-button |
| | | <el-button size="small" class="sure-btn" type="primary" @click="submit" |
| | | >确定</el-button |
| | | > |
| | | </div> |
| | | </el-dialog> |
| | | </el-drawer> |
| | | <el-dialog |
| | | title="提示" |
| | | :visible.sync="dialogVisible" |
| | | :close="getPersonList" |
| | | width="30%" |
| | | :center="true" |
| | | custom-class="suc-dialog" |
| | | > |
| | | <div> |
| | | <div class="tl"> |
| | | <div class="suc-icon"> |
| | | <i class="iconfont iconduigou3"></i> |
| | | </div> |
| | | <div class="tt">上传成功</div> |
| | | <div class="flex-box"> |
| | | <span>上传成功的数量:{{ uploadResult.successList.length }}</span> |
| | | </div> |
| | | <div class="flex-box mt10"> |
| | |
| | | </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 |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | <!-- 确认删除对话框 --> |
| | | <el-dialog |
| | | :visible.sync="askDeleteShow" |
| | | :center="true" |
| | | custom-class="del-dialog" |
| | | > |
| | | <div> |
| | | <div class="suc-icon"> |
| | | <i class="iconfont icongantanhao1"></i> |
| | | </div> |
| | | <div class="tt">{{ delText[0] }}</div> |
| | | <div class="flex-box"> |
| | | <span>{{ delText[1] }}</span> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="askDeleteShow = false">取 消</el-button> |
| | | <el-button type="primary" @click="handleDel" :loading="delBtnLoading" |
| | | >确 定</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | <el-dialog |
| | | title="复制到" |
| | | :visible.sync="copyVisiabled" |
| | | okText="保存" |
| | | width="35%" |
| | | class="copy" |
| | | custom-class="copy-dialog" |
| | | cancelText="取消" |
| | | > |
| | | <div class="addToBase1"> |
| | | <div class="items" v-if="baseObject.bwType === '1'"> |
| | | <div class="lable"> |
| | | <p>黑名单 ></p> |
| | | <p>黑名单</p> |
| | | </div> |
| | | <div class="baseList"> |
| | | <el-checkbox-group |
| | |
| | | class="base" |
| | | v-for="(item, index) in BaseManageData.blackList" |
| | | :key="index" |
| | | :class=" |
| | | BaseManageData.selectBlacks.includes(item.value) |
| | | ? 'white-wrap' |
| | | : '' |
| | | " |
| | | > |
| | | <el-checkbox |
| | | :label="item.value" |
| | |
| | | </div> |
| | | <div class="items" v-else> |
| | | <div class="lable"> |
| | | <p>白名单 ></p> |
| | | <p>白名单</p> |
| | | </div> |
| | | <div class="baseList"> |
| | | <el-checkbox-group |
| | |
| | | > |
| | | <div |
| | | class="base" |
| | | :class=" |
| | | BaseManageData.selectWhites.includes(item.value) |
| | | ? 'white-wrap' |
| | | : '' |
| | | " |
| | | v-for="(item, index) in BaseManageData.whiteList" |
| | | :key="index" |
| | | > |
| | |
| | | title="移动至" |
| | | :visible.sync="moveVisiabled" |
| | | okText="保存" |
| | | class="move" |
| | | width="35%" |
| | | custom-class="copy-dialog" |
| | | cancelText="取消" |
| | | > |
| | | <div class="addToBase1"> |
| | | <div class="items"> |
| | | <div class="lable"> |
| | | <p>黑名单 ></p> |
| | | <p>黑名单</p> |
| | | </div> |
| | | <div class="baseList"> |
| | | <el-checkbox-group |
| | |
| | | class="base" |
| | | v-for="(item, index) in BaseManageData.blackList" |
| | | :key="index" |
| | | :class=" |
| | | BaseManageData.selectBlacks.includes(item.value) |
| | | ? 'white-wrap' |
| | | : '' |
| | | " |
| | | > |
| | | <el-checkbox |
| | | :label="item.value" |
| | |
| | | </div> |
| | | <div class="items"> |
| | | <div class="lable"> |
| | | <p>白名单 ></p> |
| | | <p>白名单</p> |
| | | </div> |
| | | <div class="baseList"> |
| | | <el-checkbox-group |
| | |
| | | class="base" |
| | | v-for="(item, index) in BaseManageData.whiteList" |
| | | :key="index" |
| | | :class=" |
| | | BaseManageData.selectWhites.includes(item.value) |
| | | ? 'white-wrap' |
| | | : '' |
| | | " |
| | | > |
| | | <el-checkbox |
| | | :label="item.value" |
| | |
| | | updateBasePerson, |
| | | deleteBasePersons, |
| | | updateDbTableStatus, |
| | | deleteDbPersonById, |
| | | deleteDBtablesById, |
| | | } from "@/api/baseLibrary"; |
| | | import { getCameraFaceData } from "@/api/es"; |
| | | import { isIDCard } from "../../../scripts/validate"; |
| | | |
| | | import axios from "axios"; |
| | | // import { findByType } from '@/server/video.js' |
| | | 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(); |
| | | } else if (value.trim()) { |
| | | var pattern = /^1[345789]\d{9}$/; |
| | | if (pattern.test(value)) { |
| | | return callback(); |
| | | } |
| | | return callback(new Error("输入的手机号错误")); |
| | | } |
| | | } |
| | | Date.prototype.Format = function (fmt) { |
| | | var o = { |
| | | "M+": this.getMonth() + 1, //月份 |
| | |
| | | }; |
| | | |
| | | export default { |
| | | components: { |
| | | UploadBtn, |
| | | fTemplate, |
| | | UploadIcon, |
| | | }, |
| | | props: { |
| | | baseObject: { |
| | | default: () => {}, |
| | | type: Object, |
| | | }, |
| | | syncType: { |
| | | type: String, |
| | | }, |
| | | }, |
| | | computed: { |
| | | isAdmin() { |
| | | if ( |
| | | sessionStorage.getItem("userInfo") && |
| | | sessionStorage.getItem("userInfo") !== "" |
| | | ) { |
| | | let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username; |
| | | return loginName === "superadmin" || loginName === "basic"; |
| | | } |
| | | return false; |
| | | }, |
| | | delText() { |
| | | switch (this.delType) { |
| | | case "base": |
| | | return ["删除底库", "确定删除该底库?"]; |
| | | case "single": |
| | | return ["删除人员", "确定删除该底库人员?"]; |
| | | case "batch": |
| | | return ["批量删除", "确定删除该底库选中人员?"]; |
| | | default: |
| | | return ["", ""]; |
| | | } |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | timeRange: [ |
| | |
| | | idCard: "", |
| | | reserved: "", |
| | | }, |
| | | askDeleteShow: false, |
| | | toDeleteId: "", |
| | | reqCameraParams: { |
| | | startTime: new Date(2020, 7, 25, 8).Format("yyyy-MM-dd HH:mm:ss"), |
| | | endTime: new Date().Format("yyyy-MM-dd HH:mm:ss"), |
| | |
| | | }, |
| | | cameraDetailData: [], |
| | | cameraDetailVisible: false, |
| | | |
| | | dialogFormVisible: false, |
| | | copyVisiabled: false, |
| | | moveVisiabled: false, |
| | | buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [], |
| | |
| | | orderName: "createTime", |
| | | contentValue: "", |
| | | visible: false, |
| | | showInfoDrawer: false, |
| | | selectedRowKeys: [], |
| | | form: { |
| | | id: "", |
| | | sex: "男", |
| | | personName: "呵呵呵", |
| | | tableId: "", |
| | | picDesc: "", |
| | | idCard: "12312938102143253", |
| | | phoneNum: "18712766787", |
| | | monitorLevel: "one", |
| | | faceUrl: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg", |
| | | enable: 0, |
| | | reserved: "", |
| | | }, |
| | | inputPersonForm: {}, |
| | | rules: { |
| | | picDesc: [ |
| | | { required: true, message: "请输入照片标识", trigger: "submit" }, |
| | | { required: true, message: "请输入照片标识", trigger: "change" }, |
| | | ], |
| | | sex: [{ required: true, message: "请勾选性别", trigger: "submit" }], |
| | | sex: [{ required: true, message: "请勾选性别", trigger: "change" }], |
| | | idCard: [{ validator: isIDCard, trigger: "blur" }], |
| | | phoneNum: [{ validator: isPhone, trigger: "blur" }], |
| | | monitorLevel: [ |
| | | { required: true, message: "请选择人员等级", trigger: "submit" }, |
| | | { required: true, message: "请选择人员等级", trigger: "change" }, |
| | | ], |
| | | }, |
| | | tableData: [], |
| | | tableHeight: window.innerHeight - 320, |
| | | multipleSelection: [], |
| | | peoperLevel: [], |
| | | oldWidth: "", |
| | | oldHeight: "", |
| | | delType: "", |
| | | faceDataCount: 0, |
| | | // 上传后的弹框显示 |
| | | dialogVisible: false, |
| | |
| | | multiFaceList: [], |
| | | noFaceList: [], |
| | | }, |
| | | delBtnLoading: false, |
| | | }; |
| | | }, |
| | | computed: { |
| | | isAdmin() { |
| | | if ( |
| | | sessionStorage.getItem("userInfo") && |
| | | sessionStorage.getItem("userInfo") !== "" |
| | | ) { |
| | | let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username; |
| | | return loginName === "superadmin" || loginName === "basic"; |
| | | } |
| | | return false; |
| | | |
| | | watch: { |
| | | "BaseManageData.selectBlacks": function (value) { |
| | | this.blackAngWhite(); |
| | | }, |
| | | "BaseManageData.selectWhites": function (value) { |
| | | this.blackAngWhite(); |
| | | }, |
| | | }, |
| | | methods: { |
| | |
| | | this.cameraDetailVisible = true; |
| | | }, |
| | | isShow(authority) { |
| | | if (this.isAdmin) { |
| | | return true; |
| | | } else if (this.buttonAuthority.indexOf("," + authority + ",") > -1) { |
| | | return true; |
| | | } else { |
| | | return false; |
| | | } |
| | | return ( |
| | | this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1 |
| | | ); |
| | | }, |
| | | pickRow(row, column, event) { |
| | | this.$refs.multipleTable.toggleRowSelection(row); |
| | | }, |
| | | toggleSelection(rows) { |
| | | if (rows) { |
| | |
| | | this.$refs.multipleTable.clearSelection(); |
| | | } |
| | | }, |
| | | deleteThis(id) { |
| | | let token = |
| | | sessionStorage.getItem("loginedInfo") && |
| | | JSON.parse(sessionStorage.getItem("loginedInfo")).access_token; |
| | | this.$confirm("提示:确定删除该底库人员?", { |
| | | center: true, |
| | | cancelButtonClass: "comfirm-class-cancle", |
| | | confirmButtonClass: "comfirm-class-sure", |
| | | }) |
| | | .then((_) => { |
| | | fetch(`/data/api-v/dbperson/deleteDbPersonById?id=${id}`, { |
| | | method: "GET", |
| | | headers: { |
| | | "Content-Type": "application/json", |
| | | Authorization: token, |
| | | }, |
| | | }) |
| | | .then((res) => { |
| | | return res.json(); |
| | | }) |
| | | .then((data) => { |
| | | if (data.success) { |
| | | this.$notify({ |
| | | type: "success", |
| | | message: "该人员删除成功!", |
| | | }); |
| | | } |
| | | this.getPersonList(); |
| | | }) |
| | | .catch((err) => { |
| | | console.log(err); |
| | | }); |
| | | }) |
| | | .catch((_) => {}); |
| | | }, |
| | | sayHello() { |
| | | console.log("hello"); |
| | | askDelete(typ, id) { |
| | | if (typ == "batch") { |
| | | if (this.selectedRowKeys.length === 0) { |
| | | this.$notify({ |
| | | type: "warning", |
| | | message: "请选择要删除的人员", |
| | | duration: 1000000, |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | this.askDeleteShow = true; |
| | | this.delType = typ; |
| | | id && (this.toDeleteId = id); |
| | | }, |
| | | getUploadResult(result) { |
| | | this.uploadResult = result.data; |
| | |
| | | edit() { |
| | | this.$emit("changeShow", this.baseObject, this.syncType); |
| | | }, |
| | | deleteBase() { |
| | | |
| | | deleteThis() { |
| | | debugger; |
| | | let id = this.baseObject.id; |
| | | let token = |
| | | sessionStorage.getItem("loginedInfo") && |
| | | JSON.parse(sessionStorage.getItem("loginedInfo")).access_token; |
| | | this.$confirm("提示:确定删除底库?", { |
| | | center: true, |
| | | cancelButtonClass: "comfirm-class-cancle", |
| | | confirmButtonClass: "comfirm-class-sure", |
| | | }).then(() => { |
| | | fetch(`/data/api-v/dbtable/deleteDBtablesById?id=${id}`, { |
| | | method: "GET", |
| | | headers: { |
| | | "Content-Type": "application/json", |
| | | Authorization: token, |
| | | }, |
| | | }) |
| | | .then((res) => { |
| | | return res.json(); |
| | | }) |
| | | .then((res) => { |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: "success", |
| | | message: "底库删除成功!", |
| | | }); |
| | | } |
| | | this.$emit("onDelete"); |
| | | }) |
| | | .catch((err) => { |
| | | deleteDbPersonById({ id: this.toDeleteId }) |
| | | .then((data) => { |
| | | if (data.success) { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: err, |
| | | type: "success", |
| | | message: "该人员删除成功!", |
| | | }); |
| | | } |
| | | this.getPersonList(); |
| | | }) |
| | | .catch((err) => {}); |
| | | }, |
| | | deleteBase() { |
| | | deleteDBtablesById({ id: this.baseObject.id }) |
| | | .then((res) => { |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: "success", |
| | | message: "底库删除成功!", |
| | | }); |
| | | } |
| | | |
| | | this.$emit("onDelete"); |
| | | }) |
| | | .catch((err) => { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: err, |
| | | }); |
| | | }); |
| | | }, |
| | | async deleteBatch() { |
| | | let ids = []; |
| | | this.selectedRowKeys.map((item, index) => { |
| | | ids.push(item.id); |
| | | }); |
| | | let res = await deleteBasePersons({ ids: ids }); |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: "success", |
| | | message: "删除成功!", |
| | | }); |
| | | this.getPersonList(); |
| | | } else { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: "删除失败!", |
| | | }); |
| | | } |
| | | }, |
| | | async getPersonList() { |
| | | if (this.baseObject.id && this.baseObject.id !== undefined) { |
| | | this.BaseManageData.tableId = this.baseObject.id; |
| | | this.setLoadSearch(this.BaseManageData.queryPersonList()); |
| | | } |
| | | 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()); |
| | | } |
| | | }); |
| | | }, |
| | | changeDialog(data) { |
| | | data.erFileList.map((item, index) => { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: item.errorMsg.message, |
| | | customClass: "PersonListDialog", |
| | | }); |
| | | }); |
| | | }, |
| | | handleClose() { |
| | | this.dialogFormVisible = false; |
| | | this.showInfoDrawer = false; |
| | | }, |
| | | handleSelectionChange(val) { |
| | | this.selectedRowKeys = val; |
| | |
| | | this.getPersonList(); |
| | | }, |
| | | handleSizeChange(val) { |
| | | //this.pageSize = val; |
| | | this.BaseManageData.size = val; |
| | | this.getPersonList(); |
| | | }, |
| | | handleClick(row) { |
| | | this.form = row; |
| | | this.dialogFormVisible = true; |
| | | editRow(row) { |
| | | this.inputPersonForm = { ...row }; |
| | | this.showInfoDrawer = true; |
| | | }, |
| | | async submit() { |
| | | this.$refs["formForEdit"].validate(async (valid) => { |
| | | // console.log("通过验证", valid); |
| | | if (valid) { |
| | | let { ...json } = this.form; |
| | | let { ...json } = this.inputPersonForm; |
| | | delete json["compareScore"]; |
| | | // console.log("修改的参数:", json); |
| | | let res = await updateBasePerson(json); |
| | | // console.log("保存了", res); |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: "success", |
| | | message: "人员修改成功!", |
| | | }); |
| | | this.dialogFormVisible = false; |
| | | this.getPersonList(); |
| | | this.$notify.success("人员修改成功!"); |
| | | this.showInfoDrawer = false; |
| | | } else { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: "人员修改失败,请重试!!", |
| | | }); |
| | | this.$notify.error("人员修改失败,请重试!"); |
| | | } |
| | | } else { |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | confirm() { |
| | | this.$confirm({ |
| | | title: "Confirm", |
| | | content: "Bla bla ...", |
| | | okText: "确认", |
| | | cancelText: "取消", |
| | | }); |
| | | }, |
| | | async enable(item) { |
| | |
| | | handleSearch() { |
| | | this.getPersonList(); |
| | | }, |
| | | async handleDel() { |
| | | this.delBtnLoading = true; |
| | | if (this.delType == "single") { |
| | | await this.deleteThis(); |
| | | } else if (this.delType == "base") { |
| | | await this.deleteBase(); |
| | | } else if (this.delType == "batch") { |
| | | await this.deleteBatch(); |
| | | } |
| | | |
| | | this.delBtnLoading = false; |
| | | this.askDeleteShow = false; |
| | | }, |
| | | searchImg() { |
| | | this.$refs.uploadDrag && this.$refs.uploadDrag.uploadStart(); |
| | | }, |
| | |
| | | } |
| | | }, |
| | | async searchImgList(faceUrl, threshold) { |
| | | // console.log("搜图参数", faceUrl, threshold); |
| | | let json = { |
| | | tableId: this.baseObject.id, |
| | | page: this.current, |
| | |
| | | orderName: this.orderName, |
| | | }; |
| | | let res = await getPersonByPhoto(json); |
| | | // console.log("列表查询", json); |
| | | this.tableData = res.data.datalist; |
| | | this.total = res.data.total; |
| | | this.compare = true; |
| | |
| | | async updateFace(param) { |
| | | const fd = new FormData(); |
| | | fd.append("file", param.file); |
| | | fd.append("id", this.form.id); |
| | | // console.log("换脸了吗", fd); |
| | | fd.append("id", this.inputPersonForm.id); |
| | | let res = await axios({ |
| | | method: "post", |
| | | url: `/data/api-v/dbperson/updateFace`, |
| | |
| | | data: fd, |
| | | }); |
| | | if (res.data.success) { |
| | | this.form.personPicUrl = res.data.data.personPicUrl; |
| | | this.form.faceFeature = res.data.data.faceFeature; |
| | | this.inputPersonForm.persoasyncnPicUrl = res.data.data.personPicUrl; |
| | | this.inputPersonForm.faceFeature = res.data.data.faceFeature; |
| | | } |
| | | }, |
| | | uploadSuccess() { |
| | | console.log("换脸成功了"); |
| | | }, |
| | | uploadError() { |
| | | console.log("换脸失败了"); |
| | | }, |
| | | deleteBatch() { |
| | | // console.log('要删除的', this.selectedRowKeys.length) |
| | | if (this.selectedRowKeys.length === 0) { |
| | | this.$notify({ |
| | | type: "warning", |
| | | message: "请选择要删除的人员", |
| | | }); |
| | | } else { |
| | | this.$confirm("提示:确定删除该底库选中人员?", { |
| | | center: true, |
| | | cancelButtonClass: "comfirm-class-cancle", |
| | | confirmButtonClass: "comfirm-class-sure", |
| | | }).then(async (_) => { |
| | | let ids = []; |
| | | this.selectedRowKeys.map((item, index) => { |
| | | ids.push(item.id); |
| | | }); |
| | | // console.log('批量删除数组', ids) |
| | | let res = await deleteBasePersons(ids); |
| | | // console.log(res, '批量删除结果') |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: "success", |
| | | message: "删除成功!", |
| | | }); |
| | | this.getPersonList(); |
| | | } else { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: "删除失败!", |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | uploadSuccess() {}, |
| | | uploadError() {}, |
| | | async init() { |
| | | await this.BaseManageData.querySyncTables(); |
| | | await this.BaseManageData.queryLocalTables(); |
| | | if (this.baseObject.id && this.baseObject.id !== undefined) { |
| | | // console.log("one;", this.baseObject.id); |
| | | } else if ( |
| | | this.BaseManageData.syncTables[0].id && |
| | | this.BaseManageData.syncTables[0].id !== undefined |
| | |
| | | } else { |
| | | this.BaseManageData.tableId = this.BaseManageData.localTables[0].id; |
| | | this.BaseManageData.queryPersonList(); |
| | | } |
| | | }, |
| | | handleRowStyle({ row, rowIndex }) { |
| | | // console.log(row, rowIndex, "handleRowStyle"); |
| | | if (rowIndex === 0) { |
| | | return "background:#222222;"; |
| | | } |
| | | }, |
| | | blackAngWhite() { |
| | |
| | | } |
| | | } |
| | | }, |
| | | // tosearch(item) { |
| | | // // console.log("跳转地址", item) |
| | | // var curWwwPath = window.document.location.href; |
| | | // var pathname = window.document.location.pathname; |
| | | // var pos = curWwwPath.indexOf(pathname); |
| | | // var localhostPath = curWwwPath.substring(0, pos); //ip+port |
| | | // var href = localhostPath + "/Layout/Searching" |
| | | // let captureId = item.id == "" ? item.personId : item.id |
| | | // var url = item.personPicUrl ? item.personPicUrl : item.personPicUrl |
| | | // // console.log("跳转地址",href,"url",url) |
| | | // var compType = 0 |
| | | // window.open(href + '?showType=findByPic&targetId=' + captureId + '&picSmUrl=' + url + '&compType=' + compType) |
| | | // }, |
| | | tosearch(item) { |
| | | //let captureId = item.id == "" ? item.baseInfo[0].targetId : item.id |
| | | let captureId = item.id == "" ? item.personId : item.id; |
| | |
| | | window.onresize = () => { |
| | | let width = document.body.clientWidth; |
| | | let height = document.body.clientHeight; |
| | | // console.log(width, height, "窗口变化对比", this.oldWidth, this.oldHeight); |
| | | if (width !== this.oldWidth && width < 1750) { |
| | | } |
| | | this.$nextTick(() => { |
| | |
| | | }, |
| | | beforeDestroy() { |
| | | window.onresize = null; |
| | | }, |
| | | watch: { |
| | | baseObject: { |
| | | handler(newVal, oldVal) { |
| | | // console.log(newVal, "监听baseObject"); |
| | | this.BaseManageData.cleanData(); |
| | | this.getPersonList(); |
| | | }, |
| | | deep: true, |
| | | }, |
| | | "BaseManageData.selectBlacks": function (value) { |
| | | this.blackAngWhite(); |
| | | }, |
| | | "BaseManageData.selectWhites": function (value) { |
| | | this.blackAngWhite(); |
| | | }, |
| | | }, |
| | | components: { |
| | | UploadBtn, |
| | | fTemplate, |
| | | UploadIcon, |
| | | }, |
| | | props: { |
| | | baseObject: { |
| | | default: () => {}, |
| | | type: Object, |
| | | }, |
| | | syncType: { |
| | | type: String, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | max-width: none; |
| | | font-size: 14px; |
| | | color: #606266; |
| | | thead { |
| | | background: green !important; |
| | | } |
| | | } |
| | | .avatar-uploader:hover { |
| | | .mask1 { |
| | |
| | | .table-parent { |
| | | height: 100%; |
| | | overflow: visible !important; |
| | | |
| | | .zhuapai-dialog { |
| | | border-radius: 24px; |
| | | top: 50%; |
| | | min-height: 625px; |
| | | .bot-btn { |
| | | position: absolute; |
| | | bottom: 20px; |
| | | left: calc(50% - 75px); |
| | | .el-button--mini { |
| | | padding: 10px 34px; |
| | | font-size: 14px; |
| | | background: var(--colorCard) !important; |
| | | border-color: var(--colorCard) !important; |
| | | width: 150px; |
| | | border-radius: 18px; |
| | | } |
| | | } |
| | | .el-dialog__body { |
| | | padding-top: 0; |
| | | .el-table::before { |
| | | visibility: hidden; |
| | | } |
| | | .el-checkbox__input.is-indeterminate .el-checkbox__inner { |
| | | background-color: var(--colorCard); |
| | | border-color: var(--colorCard); |
| | | } |
| | | .el-checkbox__input.is-checked .el-checkbox__inner { |
| | | background-color: var(--colorCard); |
| | | border-color: var(--colorCard); |
| | | } |
| | | .el-table th.el-table__cell > .cell { |
| | | background: #f7f8fa; |
| | | height: 38px; |
| | | line-height: 38px; |
| | | } |
| | | .el-table__body tr.hover-row > td.el-table__cell { |
| | | background-color: #ffffff !important; |
| | | } |
| | | } |
| | | .el-dialog__header { |
| | | box-shadow: 0px 2px 4px rgb(0 0 0 / 8%); |
| | | text-align: center; |
| | | .el-dialog__title { |
| | | line-height: 22px; |
| | | font-size: 16px; |
| | | color: #5f5f5f; |
| | | } |
| | | .el-dialog__headerbtn .el-dialog__close { |
| | | color: #999999; |
| | | } |
| | | } |
| | | } |
| | | .base-tip { |
| | | text-align: left; |
| | | font-size: 14px; |
| | |
| | | display: flex; |
| | | align-items: center; |
| | | cursor: pointer; |
| | | .shutiao { |
| | | width: 1.73px; |
| | | height: 8.67px; |
| | | background: var(--colorCard); |
| | | border-radius: 1px; |
| | | position: absolute; |
| | | right: 125px; |
| | | transition: 0.5s; |
| | | } |
| | | |
| | | .shutiao1 { |
| | | width: 1.73px; |
| | | height: 8.67px; |
| | | background: #bbbbbb; |
| | | border-radius: 1px; |
| | | position: absolute; |
| | | right: 153px; |
| | | transform: rotate(90deg); |
| | | transition: 0.5s; |
| | | } |
| | | .el-switch__core { |
| | | height: 26px; |
| | | border-radius: 18px; |
| | | } |
| | | .el-switch__core:after { |
| | | width: 22px; |
| | | height: 22px; |
| | | width: 20px; |
| | | height: 20px; |
| | | top: 2px; |
| | | } |
| | | .el-switch.is-checked .el-switch__core::after { |
| | | margin-left: -22px; |
| | | } |
| | | .iconshanchuku-09 { |
| | | color: #fe6d68; |
| | | margin-right: 10px; |
| | | } |
| | | .iconshanchuku-09:hover { |
| | | background: #fe6d68; |
| | |
| | | color: rgb(102, 102, 102); |
| | | } |
| | | .iconbianjiku-09:hover { |
| | | border: 1px solid #4e94ff; |
| | | background: #4e94ff; |
| | | border: 1px solid var(--colorCard); |
| | | background: var(--colorCard); |
| | | color: #fff; |
| | | } |
| | | } |
| | |
| | | color: #ff3d3b; |
| | | } |
| | | } |
| | | .el-drawer { |
| | | box-shadow: -4px 0px 8px rgb(0 0 0 / 16%); |
| | | border-radius: 24px 0px 0px 24px; |
| | | min-width: 380px; |
| | | .el-drawer__header > :first-child { |
| | | font-size: 16px; |
| | | } |
| | | .el-drawer__header { |
| | | padding: 15px 20px; |
| | | box-shadow: 0px 2px 4px rgb(0 0 0 / 8%); |
| | | margin-bottom: 0; |
| | | } |
| | | .el-drawer__body { |
| | | padding: 20px; |
| | | .el-input.is-disabled .el-input__inner { |
| | | border: 1px solid #d4d6d9; |
| | | border-radius: 16px; |
| | | background: #edeff2; |
| | | color: #bbbbbb; |
| | | font-size: 14px; |
| | | } |
| | | .el-form-item.is-error .el-input__inner, |
| | | .el-form-item.is-error .el-input__inner:focus, |
| | | .el-form-item.is-error .el-textarea__inner, |
| | | .el-form-item.is-error .el-textarea__inner:focus, |
| | | .el-message-box__input input.invalid, |
| | | .el-message-box__input input.invalid:focus { |
| | | border-color: #f56c6c; |
| | | } |
| | | .el-radio__input.is-checked .el-radio__inner { |
| | | border-color: var(--colorCard); |
| | | background: var(--colorCard); |
| | | } |
| | | .el-form-item__label { |
| | | line-height: 32px; |
| | | } |
| | | .el-form-item__content { |
| | | line-height: 32px; |
| | | } |
| | | .el-input--small { |
| | | font-size: 14px; |
| | | .el-input__inner { |
| | | border: 1px solid #d4d6d9; |
| | | box-sizing: border-box; |
| | | border-radius: 16px; |
| | | } |
| | | } |
| | | .el-form-item__label { |
| | | color: #999999; |
| | | } |
| | | .el-form-item__error { |
| | | color: #fe6d68; |
| | | padding-top: 2px; |
| | | left: 15px; |
| | | } |
| | | .el-form-item.is-required:not(.is-no-asterisk) |
| | | > .el-form-item__label:before { |
| | | color: #fe6d68; |
| | | } |
| | | .el-col-20 { |
| | | width: 92.3333%; |
| | | } |
| | | .dialog-footer { |
| | | margin-top: 10px; |
| | | .sure-btn { |
| | | padding: 11px 65px; |
| | | font-size: 14px; |
| | | border-radius: 18px; |
| | | border-color: var(--colorCard) !important; |
| | | background: var(--colorCard) !important; |
| | | color: #fff; |
| | | } |
| | | .cancel-btn { |
| | | padding: 11px 65px; |
| | | font-size: 14px; |
| | | border-radius: 18px; |
| | | background: #ffffff; |
| | | border-color: #999999; |
| | | color: #999999; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .text-left { |
| | | .el-upload-list { |
| | | display: none; |
| | | } |
| | | } |
| | | |
| | | .border-tabl { |
| | | border: 1px solid #ebeef5; |
| | | border-bottom: none; |
| | |
| | | padding: 10px; |
| | | margin-top: 8px; |
| | | box-shadow: 0px 0px 6px 1px rgb(143 159 191 / 15%); |
| | | .tableBox { |
| | | border: none; |
| | | &::before, |
| | | &::after { |
| | | display: none; |
| | | } |
| | | .el-table--border .el-table__cell, |
| | | .el-table__body-wrapper |
| | | .el-table--border.is-scrolling-left |
| | | ~ .el-table__fixed { |
| | | border-right: none; |
| | | } |
| | | td { |
| | | border: none; |
| | | } |
| | | } |
| | | .cell-classname { |
| | | background-color: #ffffff; |
| | | } |
| | | .head-search { |
| | | font-size: 14px; |
| | | line-height: 20px; |
| | |
| | | margin: 15px 10px 20px 10px; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | .desc { |
| | | min-width: fit-content; |
| | | margin-right: 20px; |
| | | } |
| | | .right-group { |
| | | display: flex; |
| | | .el-input--small { |
| | |
| | | } |
| | | .iconpiliangshanchu-09 { |
| | | color: #fe6d68; |
| | | margin-right: 10px; |
| | | margin-left: 20px; |
| | | } |
| | | .iconpiliangshanchu-09:hover { |
| | | background: #fe6d68; |
| | |
| | | } |
| | | .el-button--small { |
| | | padding: 8px 45px; |
| | | position: relative; |
| | | font-size: 14px; |
| | | background: #4e94ff !important; |
| | | background: var(--colorCard) !important; |
| | | border-radius: 0px 18px 18px 0px; |
| | | border-color: #4e94ff !important; |
| | | border-color: var(--colorCard) !important; |
| | | color: #fff; |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .el-button--small:hover { |
| | | filter: brightness(92%); |
| | | } |
| | | .el-input__suffix { |
| | | top: 6px; |
| | |
| | | color: #bbbbbb; |
| | | } |
| | | } |
| | | .el-input--small .el-input__inner:focus { |
| | | border: 1px solid var(--colorCard); |
| | | } |
| | | // .compearValue |
| | | .compearValue { |
| | | .el-input-number__decrease, |
| | |
| | | .el-input-number--mini { |
| | | width: 72px; |
| | | } |
| | | } |
| | | .upload-img-box { |
| | | } |
| | | .uploadIconBox .left-section1 .el-input__inner { |
| | | height: 32px; |
| | |
| | | font-weight: bold; |
| | | font-size: 15px; |
| | | } |
| | | } |
| | | .el-table::before { |
| | | visibility: hidden; |
| | | } |
| | | .el-checkbox__input.is-indeterminate .el-checkbox__inner { |
| | | background-color: var(--colorCard); |
| | | border-color: var(--colorCard); |
| | | } |
| | | .el-checkbox__input.is-checked .el-checkbox__inner { |
| | | background-color: var(--colorCard); |
| | | border-color: var(--colorCard); |
| | | } |
| | | .el-table th.el-table__cell > .cell { |
| | | background: #f7f8fa; |
| | | height: 38px; |
| | | line-height: 38px; |
| | | } |
| | | .el-table__body tr.hover-row > td.el-table__cell { |
| | | background-color: #ffffff !important; |
| | | } |
| | | .hover-row { |
| | | cursor: pointer; |
| | | } |
| | | .hover-row:hover { |
| | | td { |
| | | background-color: #fff; |
| | | border-top: 1px solid var(--colorCard); |
| | | border-bottom: 1px solid var(--colorCard); |
| | | |
| | | &:first-child { |
| | | background-color: #fff; |
| | | border-radius: 20px 0 0 20px; |
| | | border-left: 1px solid var(--colorCard); |
| | | border-bottom: 1px solid var(--colorCard); |
| | | } |
| | | |
| | | &:last-child { |
| | | border-radius: 0 20px 20px 0; |
| | | background-color: #fff; |
| | | border-right: 1px solid var(--colorCard); |
| | | border-bottom: 1px solid var(--colorCard); |
| | | } |
| | | } |
| | | } |
| | | .el-table td.el-table__cell div { |
| | | -webkit-box-sizing: border-box; |
| | | box-sizing: border-box; |
| | | line-height: inherit; |
| | | } |
| | | ::-webkit-scrollbar-thumb { |
| | | border-radius: 6px; |
| | |
| | | text-align: center; |
| | | font-size: 23px; |
| | | transition: all 0.2s; |
| | | margin-left: 10px; |
| | | } |
| | | .el-dialog__header { |
| | | padding: 20px 0 10px; |
| | | text-align: left; |
| | | -webkit-box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.07); |
| | | box-shadow: 0 2px 7px 0 rgba(0, 0, 0, 0.07); |
| | | } |
| | | .el-dialog__title { |
| | |
| | | padding-left: 8px !important; |
| | | padding-right: 0px !important; |
| | | } |
| | | .addToBase1 { |
| | | width: 98%; |
| | | height: 350px; |
| | | position: relative; |
| | | .topLabel { |
| | | margin-top: 20px; |
| | | height: 40px; |
| | | border-bottom: 1px solid #eee; |
| | | font-family: PingFangSC-Medium; |
| | | font-size: 20px; |
| | | font-weight: 600; |
| | | line-height: 1rem; |
| | | color: #222222; |
| | | text-align: left; |
| | | margin-left: 15px; |
| | | } |
| | | .items { |
| | | width: 100%; |
| | | height: auto; |
| | | max-height: 35%; |
| | | overflow-y: auto; |
| | | margin: 20px 0px; |
| | | .lable { |
| | | width: 15%; |
| | | margin-top: 10px; |
| | | float: left; |
| | | font-size: 14px; |
| | | font-weight: 600; |
| | | } |
| | | .baseList { |
| | | width: 85%; |
| | | height: 100%; |
| | | float: left; |
| | | .base { |
| | | width: calc(33% - 10px); |
| | | padding: 0px 5px; |
| | | line-height: 30px; |
| | | float: left; |
| | | text-align: left; |
| | | font-size: 12px !important; |
| | | .el-checkbox { |
| | | width: 100%; |
| | | display: block; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | .el-checkbox__label { |
| | | display: inline !important; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .copy, |
| | | .move { |
| | | .el-dialog__body { |
| | | padding: 0px !important; |
| | | } |
| | | } |
| | | |
| | | .avatar-uploader { |
| | | margin: auto; |
| | |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | line-height: 30px; |
| | | margin: 20px 0 10px 0; |
| | | |
| | | color: #999; |
| | | .el-button--mini { |
| | | padding: 8px 15px; |
| | | font-size: 14px; |
| | | border-radius: 3px; |
| | | background: var(--colorCard) !important; |
| | | border-radius: 16px; |
| | | border-color: var(--colorCard) !important; |
| | | width: 128px; |
| | | } |
| | | .el-input--mini .el-input__inner { |
| | | height: 32px; |
| | | line-height: 32px; |
| | | border: 1px solid #d4d5d8; |
| | | border-radius: 16px; |
| | | } |
| | | .el-range-editor--mini.el-input__inner { |
| | | height: 32px; |
| | | border-radius: 16px; |
| | | border: 1px solid #d4d5d8; |
| | | width: 370px; |
| | | } |
| | | .el-range-editor--mini .el-range__icon, |
| | | .el-range-editor--mini .el-range__close-icon { |
| | | line-height: 25px; |
| | | } |
| | | .el-date-range-picker__time-header > .el-icon-arrow-right { |
| | | color: #d4d5d8; |
| | | } |
| | | .el-range-editor--mini .el-range-separator { |
| | | line-height: 32px; |
| | | font-size: 12px; |
| | | height: 32px; |
| | | color: #d4d5d8; |
| | | } |
| | | .el-range-editor--mini .el-range-input { |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | .el-dialog.el-dialog--center.suc-dialog { |
| | | border-radius: 24px; |
| | | height: 290px; |
| | | width: 360px; |
| | | .el-dialog__header { |
| | | box-shadow: none; |
| | | padding: 10px; |
| | | } |
| | | .el-dialog__headerbtn .el-dialog__close { |
| | | color: #999999; |
| | | font-size: 20px; |
| | | } |
| | | .el-dialog__body { |
| | | text-align: center; |
| | | padding: 0 20px 10px 20px; |
| | | } |
| | | .suc-icon { |
| | | margin-bottom: 20px; |
| | | text-align: center; |
| | | |
| | | .iconfont { |
| | | font-size: 40px; |
| | | color: #13ce66; |
| | | } |
| | | } |
| | | .dialog-footer { |
| | | .el-button--default { |
| | | color: #999999; |
| | | background: #fff; |
| | | padding: 9px 37px; |
| | | font-size: 14px; |
| | | border: 1px solid #999999; |
| | | border-radius: 18px; |
| | | width: 150px; |
| | | } |
| | | .el-button--primary { |
| | | background: var(--colorCard) !important; |
| | | padding: 9px 37px; |
| | | color: #fff; |
| | | border: 1px solidvar(--colorCard) !important; |
| | | border-radius: 18px; |
| | | font-size: 14px; |
| | | width: 150px; |
| | | } |
| | | } |
| | | .tt { |
| | | font-weight: bold; |
| | | text-align: center; |
| | | |
| | | font-size: 16px; |
| | | line-height: 22px; |
| | | color: #5f5f5f; |
| | | margin-bottom: 10px; |
| | | } |
| | | .flex-box { |
| | | font-size: 14px; |
| | | line-height: 20px; |
| | | display: flex; |
| | | justify-content: center; |
| | | color: #5f5f5f; |
| | | } |
| | | } |
| | | .el-dialog.copy-dialog { |
| | | width: 550px; |
| | | border-radius: 24px; |
| | | .el-dialog__header { |
| | | text-align: center; |
| | | } |
| | | .el-dialog__headerbtn .el-dialog__close { |
| | | color: #999999; |
| | | font-size: 20px; |
| | | } |
| | | .el-dialog__title { |
| | | line-height: 22px; |
| | | font-size: 16px; |
| | | color: #5f5f5f; |
| | | } |
| | | .el-dialog__body { |
| | | padding: 20px 15px; |
| | | color: #5f5f5f; |
| | | } |
| | | .dialog-footer { |
| | | // width: 315px; |
| | | .el-button--info { |
| | | color: #999999; |
| | | background: #fff; |
| | | padding: 9px 37px; |
| | | font-size: 14px; |
| | | border: 1px solid #999999; |
| | | border-radius: 18px; |
| | | width: 150px; |
| | | } |
| | | .el-button--primary { |
| | | background: var(--colorCard) !important; |
| | | padding: 9px 37px; |
| | | color: #fff; |
| | | border: 1px solidvar(--colorCard) !important; |
| | | border-radius: 18px; |
| | | font-size: 14px; |
| | | width: 150px; |
| | | } |
| | | } |
| | | .addToBase1 { |
| | | position: relative; |
| | | .topLabel { |
| | | margin-top: 20px; |
| | | height: 40px; |
| | | border-bottom: 1px solid #eee; |
| | | font-family: PingFangSC-Medium; |
| | | font-size: 20px; |
| | | font-weight: 600; |
| | | line-height: 1rem; |
| | | color: #222222; |
| | | text-align: left; |
| | | margin-left: 15px; |
| | | } |
| | | .items { |
| | | width: 100%; |
| | | min-height: 150px; |
| | | margin-bottom: 10px; |
| | | .lable { |
| | | font-size: 16px; |
| | | font-weight: bold; |
| | | text-align: left; |
| | | margin-bottom: 10px; |
| | | } |
| | | .baseList { |
| | | height: 100%; |
| | | overflow: auto; |
| | | .base { |
| | | width: 152px; |
| | | padding: 5px 5px 5px 10px; |
| | | line-height: 30px; |
| | | box-sizing: border-box; |
| | | float: left; |
| | | text-align: left; |
| | | background: #eff1f5; |
| | | border-radius: 8px; |
| | | margin: 0 10px; |
| | | margin-bottom: 10px; |
| | | .el-checkbox__input.is-checked .el-checkbox__inner { |
| | | background-color: var(--colorCard); |
| | | border-color: var(--colorCard); |
| | | } |
| | | .el-checkbox { |
| | | width: 100%; |
| | | display: block; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | .el-checkbox__label { |
| | | display: inline !important; |
| | | padding-left: 6px; |
| | | line-height: 20px; |
| | | color: #5f5f5f; |
| | | } |
| | | } |
| | | } |
| | | .white-wrap { |
| | | background: #ffffff; |
| | | box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.16); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .el-dialog.el-dialog--center.del-dialog { |
| | | border-radius: 24px; |
| | | height: 235px; |
| | | width: 360px; |
| | | .el-dialog__header { |
| | | box-shadow: none; |
| | | padding: 10px; |
| | | } |
| | | .el-dialog__headerbtn .el-dialog__close { |
| | | color: #999999; |
| | | font-size: 20px; |
| | | } |
| | | .el-dialog__body { |
| | | text-align: center; |
| | | padding: 0 20px 10px 20px; |
| | | } |
| | | .suc-icon { |
| | | margin-bottom: 20px; |
| | | text-align: center; |
| | | |
| | | .iconfont { |
| | | font-size: 40px; |
| | | color: #fe6d68; |
| | | } |
| | | } |
| | | .dialog-footer { |
| | | .el-button--default { |
| | | color: #999999; |
| | | background: #fff; |
| | | padding: 9px 37px; |
| | | font-size: 14px; |
| | | border: 1px solid #999999; |
| | | border-radius: 18px; |
| | | width: 150px; |
| | | } |
| | | .el-button--primary { |
| | | background: var(--colorCard) !important; |
| | | padding: 9px 37px; |
| | | color: #fff; |
| | | border: 1px solidvar(--colorCard) !important; |
| | | border-radius: 18px; |
| | | font-size: 14px; |
| | | width: 150px; |
| | | } |
| | | } |
| | | .tt { |
| | | font-weight: bold; |
| | | text-align: center; |
| | | |
| | | font-size: 16px; |
| | | line-height: 22px; |
| | | color: #5f5f5f; |
| | | margin-bottom: 10px; |
| | | } |
| | | .flex-box { |
| | | font-size: 14px; |
| | | line-height: 20px; |
| | | display: flex; |
| | | justify-content: center; |
| | | color: #5f5f5f; |
| | | } |
| | | } |
| | | .member-info { |
| | | font-size: 13px; |
| | | margin: 10px 0; |
| | | padding: 20px 0; |
| | | display: flex; |
| | | border-bottom: 1px solid #eff1f5; |
| | | label { |
| | | color: #999; |
| | | margin-right: 6px; |
| | | margin-right: 20px; |
| | | } |
| | | ul { |
| | | display: flex; |
| | | align-items: center; |
| | | li { |
| | | margin-right: 8px; |
| | | margin-right: 20px; |
| | | font-weight: bold; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .el-picker-panel.el-date-range-picker.el-popper.popper-pick { |
| | | border-radius: 8px; |
| | | .el-input--small .el-input__inner { |
| | | border: 1px solid #d4d5d8; |
| | | border-radius: 16px; |
| | | } |
| | | .el-date-range-picker__time-header { |
| | | border-bottom: none; |
| | | } |
| | | .el-picker-panel__footer { |
| | | border-top: none; |
| | | text-align: center; |
| | | padding-bottom: 10px; |
| | | border-radius: inherit; |
| | | } |
| | | .el-date-range-picker .el-picker-panel__content { |
| | | margin: 0; |
| | | padding: 5px 15px; |
| | | } |
| | | .el-button--text { |
| | | color: #999999; |
| | | background: #fff; |
| | | padding: 9px 37px; |
| | | font-size: 14px; |
| | | border: 1px solid #999999; |
| | | border-radius: 18px; |
| | | } |
| | | .el-date-table td.start-date span, |
| | | .el-date-table td.end-date span { |
| | | background-color: var(--colorCard); |
| | | } |
| | | .el-date-table td.in-range div { |
| | | background-color: var(--colorCard) 17; |
| | | } |
| | | .el-button--default { |
| | | background: var(--colorCard); |
| | | padding: 9px 37px; |
| | | color: #fff; |
| | | border: 1px solidvar(--colorCard); |
| | | border-radius: 18px; |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | .el-popover.el-popper.popper-caozuo { |
| | | box-shadow: 0px 0px 10px rgb(0 0 0 / 12%); |
| | | border-radius: 8px; |
| | | padding: 0; |
| | | padding-right: 1px; |
| | | & > span { |
| | | width: 32px; |
| | | height: 32px; |
| | | cursor: pointer; |
| | | display: inline-block; |
| | | text-align: center; |
| | | line-height: 32px; |
| | | border-radius: 8px; |
| | | font-size: 24px; |
| | | .iconfont { |
| | | font-size: 24px; |
| | | } |
| | | .iconshanchu-09 { |
| | | color: #fe6d68; |
| | | } |
| | | } |
| | | & > span:hover { |
| | | background: var(--colorCard); |
| | | color: #fff; |
| | | } |
| | | & > .del-wrap:hover { |
| | | background: #fe6d68; |
| | | .iconshanchu-09 { |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .PersonListDialog { |
| | | width: 360px !important; |
| | | } |
| | | </style> |