| | |
| | | <template> |
| | | <div class="table-parent"> |
| | | <el-row class style="margin:20px"> |
| | | <!-- <el-col :span="4" class="tl"> |
| | | <b class="f14">{{this.baseObject.tableName}}</b> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <b class="f14">{{this.baseObject.bwType === '1'?'黑名单':'白名单'}}</b> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <b class="f14">有效时间:{{this.baseObject.startTime}}--{{this.baseObject.endTime?this.baseObject.endTime:'永久有效'}}</b> |
| | | </el-col>--> |
| | | <div class="tl"> |
| | | <span |
| | | class="f14" |
| | | style="color:#000000;" |
| | | >{{this.baseObject.tableName?this.baseObject.tableName + '/ ':''}}</span> |
| | | <span |
| | | class="f14" |
| | | style="color:#000000;" |
| | | >{{this.baseObject.bwType === '1'?'黑名单/ ':'白名单/ '}}</span> |
| | | <span |
| | | class="f14" |
| | | style="color:#000000;" |
| | | >有效时间:{{this.baseObject.startTime}}--{{this.baseObject.endTime?this.baseObject.endTime:'永久有效'}}</span> |
| | | <el-row> |
| | | <div class="base-tip"> |
| | | <div class="left-tips"> |
| | | <span class="ku-name">{{ this.baseObject.tableName }}</span> |
| | | <span |
| | | class="list" |
| | | :class=" |
| | | this.baseObject.bwType === '1' ? 'black-list' : 'white-list' |
| | | " |
| | | >{{ this.baseObject.bwType === "1" ? "黑名单" : "白名单" }}</span |
| | | > |
| | | <span class="ok-time" |
| | | >有效时间:{{ this.baseObject.startTime }} -- |
| | | {{ |
| | | this.baseObject.endTime ? this.baseObject.endTime : "永久有效" |
| | | }}</span |
| | | > |
| | | </div> |
| | | |
| | | <div class="right-btns"> |
| | | <el-switch |
| | | :active-value="1" |
| | | :width="52" |
| | | :inactive-value="0" |
| | | v-model="baseObject.enable" |
| | | active-color="#4E94FF" |
| | | inactive-color="#BBBBBB" |
| | | style="margin-right: 10px" |
| | | :disabled="isDisabled(baseObject)" |
| | | @change="setEnable(baseObject)" |
| | | > |
| | | </el-switch> |
| | | <div class="shutiao" v-if="baseObject.enable"></div> |
| | | <div class="shutiao1" v-else></div> |
| | | <el-tooltip content="删除" placement="top" popper-class="atooltip"> |
| | | <span |
| | | class="iconfont iconfont-wrap iconshanchuku-09" |
| | | v-if="isShow('library:set')" |
| | | @click.stop="askDelete('base')" |
| | | ></span> |
| | | </el-tooltip> |
| | | |
| | | <el-tooltip content="编辑" placement="top" popper-class="atooltip"> |
| | | <span |
| | | class="iconfont iconfont-wrap iconbianjiku-09" |
| | | @click.stop="edit" |
| | | v-if="isShow('library:set')" |
| | | ></span> |
| | | </el-tooltip> |
| | | </div> |
| | | </div> |
| | | </el-row> |
| | | <el-row class style="margin:40px 0 40px 20px"> |
| | | <el-col :span="6"> |
| | | <el-input |
| | | placeholder="姓名/性别/身份证号/手机号" |
| | | autocomplete="off" |
| | | width="100%" |
| | | size="small" |
| | | v-model="BaseManageData.contentValue" |
| | | @keyup.enter.native="handleSearch" |
| | | ></el-input> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <el-button size="small" type="primary" @click="handleSearch">搜索</el-button> |
| | | </el-col> |
| | | <el-col :offset="8" :span="3"> |
| | | <fTemplate authority="videoTable:edit"> |
| | | <el-button |
| | | |
| | | <div style="display: flex" class="border-tabl"> |
| | | <div class="head-search"> |
| | | <div class="desc"> |
| | | 本库共有 |
| | | <span class="nums">{{ BaseManageData.total }}条</span> |
| | | 数据 |
| | | </div> |
| | | <div class="right-group"> |
| | | <el-input |
| | | placeholder="姓名/性别/身份证号/手机号" |
| | | autocomplete="off" |
| | | width="100%" |
| | | size="small" |
| | | class="ml10" |
| | | type="danger" |
| | | @click="deleteBatch" |
| | | v-if="isShow('videoTable:edit')" |
| | | >批量删除</el-button> |
| | | </fTemplate> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <div class="text-left"> |
| | | <el-button size="small" class="ml10" type="primary" @click="addCar">添加车辆</el-button> |
| | | <el-drawer |
| | | title="车辆信息" |
| | | :modal="false" |
| | | :destroy-on-close="true" |
| | | :append-to-body="true" |
| | | :visible.sync="addDrawer" |
| | | :direction="direction" |
| | | :before-close="handleClose1" |
| | | v-model="BaseManageData.contentValue" |
| | | @keyup.enter.native="handleSearch" |
| | | ></el-input> |
| | | <el-button size="small" type="primary" @click="handleSearch" |
| | | >搜索</el-button |
| | | > |
| | | <div class="drawerSpace"> |
| | | <div class="uploadLine"> |
| | | <div class="car-picture"> |
| | | <el-upload |
| | | action |
| | | :http-request="uploadCar" |
| | | accept="image/*" |
| | | list-type="picture-card" |
| | | :file-list="form.carUrls" |
| | | :before-remove="handleRemoveCarPic" |
| | | > |
| | | <i class="el-icon-plus" style="margin-top:25px"></i> |
| | | <div>上传车辆照片</div> |
| | | </el-upload> |
| | | </div> |
| | | <div class="person-picture"> |
| | | <el-upload |
| | | action |
| | | :http-request="uploadPerson" |
| | | list-type="picture-card" |
| | | accept="image/*" |
| | | :limit="1" |
| | | :file-list="form.faceUrl" |
| | | :on-remove="handleRemoveFacePic" |
| | | > |
| | | <i class="el-icon-plus" style="margin-top:25px"></i> |
| | | <div>上传车主照片</div> |
| | | </el-upload> |
| | | </div> |
| | | </div> |
| | | <el-form |
| | | ref="formForCar" |
| | | :model="form" |
| | | label-width="100px" |
| | | style="margin-top:20px;margin-bottom: 50px" |
| | | :rule="rules" |
| | | > |
| | | <el-form-item label="*车牌号:"> |
| | | <el-input placeholder="请输入车牌号" v-model="form.carNo" class="inputWidth"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="车辆类型:"> |
| | | <el-select v-model="form.carType" placeholder="请选择车辆类型" class="inputWidth"> |
| | | <el-option |
| | | v-for="item in VideoPhotoData.dictionary.CARTYPE" |
| | | :key="item.value" |
| | | :label="item.name" |
| | | :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="车辆品牌:"> |
| | | <el-select v-model="form.carBrand" placeholder="请选择车辆品牌" class="inputWidth"> |
| | | <el-option |
| | | v-for="item in VideoPhotoData.dictionary.BRAND" |
| | | :key="item.value" |
| | | :label="item.name" |
| | | :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="车身颜色:"> |
| | | <el-select v-model="form.carColor" placeholder="请选择车身颜色" class="inputWidth"> |
| | | <el-option |
| | | v-for="item in VideoPhotoData.dictionary.nColor" |
| | | :key="item.value" |
| | | :label="item.name" |
| | | :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="车主姓名:"> |
| | | <el-input v-model="form.personName" class="inputWidth"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="车主性别:"> |
| | | <el-radio-group v-model="form.sex"> |
| | | <el-radio label="男"></el-radio> |
| | | <el-radio label="女"></el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号:"> |
| | | <el-input v-model="form.idCard" class="inputWidth"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="手机号:"> |
| | | <el-input v-model="form.phoneNum" class="inputWidth"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="其他:"> |
| | | <el-input v-model="form.reserved" class="inputWidth"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="text-align:tight"> |
| | | <el-button type="primary" @click="submitCar" style="margin-left:120px">保存</el-button> |
| | | <el-button @click="resetForm">取消</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </el-drawer> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <div class="text-left"> |
| | | <el-button size="small" class="ml10" type="primary" @click="addBatch">批量上传车牌</el-button> |
| | | <el-drawer |
| | | title="上传车牌" |
| | | :modal="false" |
| | | :append-to-body="true" |
| | | :visible.sync="addBatchDrawer" |
| | | :direction="direction" |
| | | :before-close="handleClose2" |
| | | |
| | | <el-tooltip |
| | | content="批量删除" |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | > |
| | | <div class="drawerSpace"> |
| | | <div class="plateAttach"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="25" |
| | | v-model="plates" |
| | | style="width:90%" |
| | | placeholder="请输入车牌号" |
| | | ></el-input> |
| | | <p>车牌号以逗号或回车键隔开,单次最多支持100条上传,例如:京YAB123,京F34Y87</p> |
| | | <el-button type="primary" @click="platesBatch" style="margin-left:210px">保存</el-button> |
| | | <el-button @click="resetForm('ruleForm')">取消</el-button> |
| | | </div> |
| | | </div> |
| | | </el-drawer> |
| | | <fTemplate authority="library:set"> |
| | | <span |
| | | class="iconfont iconfont-wrap iconpiliangshanchu-09" |
| | | @click="askDelete('batch')" |
| | | v-if="isShow('library:set')" |
| | | ></span> |
| | | </fTemplate> |
| | | </el-tooltip> |
| | | |
| | | <el-tooltip |
| | | content="添加车辆" |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | > |
| | | <span |
| | | class="iconfont iconfont-wrap icontianjiacheliang-09" |
| | | @click="addCar" |
| | | ></span> |
| | | </el-tooltip> |
| | | |
| | | <el-tooltip |
| | | content="批量上传车牌" |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | > |
| | | <span |
| | | class="iconfont iconfont-wrap iconshangchuanchepai-09" |
| | | @click="addBatch" |
| | | ></span> |
| | | </el-tooltip> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <div style="display:flex;" class="border-tabl ml20"> |
| | | </div> |
| | | |
| | | <el-table |
| | | id="multipleTable" |
| | | class="tableBox" |
| | | ref="multipleTable" |
| | | :data="BaseManageData.personList" |
| | | tooltip-effect="dark" |
| | | style="width: 100%;" |
| | | style="width: 100%; overflow: auto" |
| | | :fit="true" |
| | | :max-height="tableHeight" |
| | | :default-sort="{prop: 'createTime', order: 'descending'}" |
| | | border |
| | | :default-sort="{ prop: 'createTime', order: 'descending' }" |
| | | @selection-change="handleSelectionChange" |
| | | :header-cell-style="{background:'#f8f8f8',color:'#222222'}" |
| | | :header-cell-style="{ |
| | | background: '#fff', |
| | | color: '#222222', |
| | | padding: '2px 1px', |
| | | borderBottom: 'none', |
| | | }" |
| | | > |
| | | <el-table-column type="selection" width="30"></el-table-column> |
| | | <el-table-column label="序号" width="70" sortable align="center"> |
| | | <template slot-scope="scope">{{scope.$index+1}}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="carNo" label="车牌号" sortable align="center" width="120"></el-table-column> |
| | | <el-table-column |
| | | prop="carType" |
| | | label="车辆类型" |
| | | width="100" |
| | | show-overflow-tooltip |
| | | sortable |
| | | align="center" |
| | | ></el-table-column> |
| | | <el-table-column prop="carBrand" label="车辆品牌" min-width="100" sortable align="center"></el-table-column> |
| | | <el-table-column |
| | | prop="carColor" |
| | | label="车身颜色" |
| | | width="100" |
| | | show-overflow-tooltip |
| | | sortable |
| | | align="center" |
| | | > |
| | | <template |
| | | slot-scope="scope" |
| | | >{{getDataName(VideoPhotoData.dictionary.nColor,scope.row.carColor)}}</template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="personName" |
| | | label="车主姓名" |
| | | min-width="110" |
| | | show-overflow-tooltip |
| | | sortable |
| | | align="center" |
| | | ></el-table-column> |
| | | <el-table-column prop="sex" label="车主性别" align="center" width="80"></el-table-column> |
| | | <el-table-column |
| | | prop="carUrls" |
| | | label="车辆照片" |
| | |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-carousel |
| | | style="height:100px;" |
| | | style="height: 100px" |
| | | :autoplay="false" |
| | | indicator-position="none" |
| | | :arrow="scope.row.carUrls.length > 1 ? 'always' : 'never'" |
| | | > |
| | | <el-carousel-item v-for="(item, index) in scope.row.carUrls" :key="index"> |
| | | <img style="width:100px;height:100px;object-fit:contain;" :src="item.url" alt /> |
| | | <el-carousel-item |
| | | v-for="(item, index) in scope.row.carUrls" |
| | | :key="index" |
| | | > |
| | | <img |
| | | style="width: 100px; height: 100px; object-fit: contain" |
| | | :src="item.url" |
| | | alt |
| | | /> |
| | | </el-carousel-item> |
| | | </el-carousel> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="生效状态" align="center" width="80"> |
| | | <template slot-scope="scope"> |
| | | <el-switch |
| | | v-model="scope.row.enable" |
| | | :active-value="1" |
| | | :disabled="!isShow('library:set')" |
| | | :inactive-value="0" |
| | | @change="enable(scope.row)" |
| | | ></el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="carNo" |
| | | label="车牌号" |
| | | sortable |
| | | align="center" |
| | | width="120" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="carType" |
| | | label="车辆类型" |
| | | width="100" |
| | | show-overflow-tooltip |
| | | sortable |
| | | align="center" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="carBrand" |
| | | label="车辆品牌" |
| | | min-width="100" |
| | | sortable |
| | | align="center" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="carColor" |
| | | label="车身颜色" |
| | | width="100" |
| | | show-overflow-tooltip |
| | | sortable |
| | | align="center" |
| | | > |
| | | <template slot-scope="scope">{{ |
| | | getDataName(VideoPhotoData.dictionary.nColor, scope.row.carColor) |
| | | }}</template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="personName" |
| | | label="车主姓名" |
| | | min-width="110" |
| | | show-overflow-tooltip |
| | | sortable |
| | | align="center" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="sex" |
| | | label="车主性别" |
| | | align="center" |
| | | width="80" |
| | | ></el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="createTime" |
| | | label="入库时间" |
| | |
| | | sortable |
| | | align="center" |
| | | ></el-table-column> |
| | | <!-- <el-table-column prop="reserved" label="其他" align="center"></el-table-column> --> |
| | | <el-table-column label="生效状态" align="center" width="80"> |
| | | <template slot-scope="scope"> |
| | | <el-switch |
| | | v-model="scope.row.enable" |
| | | :active-value="1" |
| | | :disabled="!isShow('videoTable:edit')" |
| | | :inactive-value="0" |
| | | @change="enable(scope.row)" |
| | | ></el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="操作" min-width="200" align="center"> |
| | | <template slot-scope="scope"> |
| | | <fTemplate authority="videoTable:edit"> |
| | | <el-tooltip content="编辑" placement="top" popper-class="atooltip"> |
| | | <fTemplate authority="library:set"> |
| | | <el-tooltip |
| | | content="编辑" |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | > |
| | | <span |
| | | class="iconfont iconbianji iconStyle1" |
| | | style="font-size:15px;" |
| | | class="iconfont iconbianjixinxi-09" |
| | | style=" font-size: 24px;cursor: pointer" |
| | | @click="handleClick(scope.row)" |
| | | ></span> |
| | | </el-tooltip> |
| | | </fTemplate> |
| | | <el-tooltip content="查找此人" placement="top" popper-class="atooltip"> |
| | | <span class="iconfont iconsousuoren iconStyle1" @click="tosearch(scope.row)"></span> |
| | | <el-popover |
| | | placement="top" |
| | | trigger="click" |
| | | popper-class="popper-caozuo1" |
| | | > |
| | | <el-tooltip |
| | | content="查找此车" |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | > |
| | | <span |
| | | class="iconfont iconchazhaociren-09" |
| | | @click="tosearch(scope.row)" |
| | | ></span> |
| | | </el-tooltip> |
| | | <fTemplate authority="videoTable:edit"> |
| | | <el-tooltip content="复制" placement="top" popper-class="atooltip"> |
| | | <fTemplate authority="library:set"> |
| | | <el-tooltip |
| | | content="复制" |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | > |
| | | <span |
| | | class="iconfont iconfuzhi iconStyle1" |
| | | class="iconfont iconfuzhi-09" |
| | | title="复制" |
| | | @click="copyClick(scope.row)" |
| | | ></span> |
| | | </el-tooltip> |
| | | </fTemplate> |
| | | <fTemplate authority="videoTable:edit"> |
| | | <el-tooltip content="移动" placement="top" popper-class="atooltip"> |
| | | <fTemplate authority="library:set"> |
| | | <el-tooltip |
| | | content="移动" |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | > |
| | | <span |
| | | class="iconfont iconyidongzhi iconStyle1" |
| | | style="font-size:15px;" |
| | | class="iconfont iconyidong-09" |
| | | title="移动" |
| | | @click="moveClick(scope.row)" |
| | | ></span> |
| | | </el-tooltip> |
| | | </fTemplate> |
| | | <fTemplate authority="videoTable:edit"> |
| | | <el-tooltip content="删除" placement="top" popper-class="atooltip"> |
| | | <fTemplate authority="library:set"> |
| | | <el-tooltip |
| | | content="删除" |
| | | placement="top" |
| | | popper-class="atooltip" |
| | | > |
| | | <span |
| | | class="iconfont iconshanchu iconStyle1" |
| | | style="color:#E74C3C;" |
| | | class="iconfont iconshanchu-09" |
| | | style="color: #e74c3c" |
| | | @click="deleteThis(scope.row.id)" |
| | | title="删除" |
| | | ></span> |
| | | </el-tooltip> |
| | | </fTemplate> |
| | | <span |
| | | slot="reference" |
| | | class="iconfont icongengduocaozuo-09" |
| | | style="font-size: 24px; cursor: pointer" |
| | | ></span> |
| | | </el-popover> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="pt5 pb20" style="height:40px;position:relative"> |
| | | <el-pagination |
| | | @current-change="refrash" |
| | | :current-page="BaseManageData.page" |
| | | :page-size="BaseManageData.size" |
| | | style="position:absolute;right:10px;bottom:5px" |
| | | style="margin-top: 10px" |
| | | :total="BaseManageData.total" |
| | | ></el-pagination> |
| | | </div> |
| | |
| | | > |
| | | <div> |
| | | <div class="tl"> |
| | | <span>上传成功的数量:{{uploadResult.successList.length}}</span> |
| | | <span>上传成功的数量:{{ uploadResult.successList.length }}</span> |
| | | </div> |
| | | <div class="flex-box mt10"> |
| | | <span>上传失败的数量:{{uploadResult.failList.length}}</span> |
| | | <div class="ml20" v-for="(i,index) in uploadResult.failList" :key="index">{{i}}</div> |
| | | <span>上传失败的数量:{{ uploadResult.failList.length }}</span> |
| | | <div |
| | | class="ml20" |
| | | v-for="(i, index) in uploadResult.failList" |
| | | :key="index" |
| | | > |
| | | {{ i }} |
| | | </div> |
| | | </div> |
| | | <div class="flex-box mt10"> |
| | | <span>包含多张人脸的图片数量:{{uploadResult.multiFaceList.length}}</span> |
| | | <div class="ml20" v-for="(i,index) in uploadResult.multiFaceList" :key="index">{{i}}</div> |
| | | <span |
| | | >包含多张人脸的图片数量:{{ |
| | | uploadResult.multiFaceList.length |
| | | }}</span |
| | | > |
| | | <div |
| | | class="ml20" |
| | | v-for="(i, index) in uploadResult.multiFaceList" |
| | | :key="index" |
| | | > |
| | | {{ i }} |
| | | </div> |
| | | </div> |
| | | <div class="flex-box mt10"> |
| | | <span>不含人脸的图片数量:{{uploadResult.noFaceList.length}}</span> |
| | | <div class="ml20" v-for="(i,index) in uploadResult.noFaceList" :key="index">{{i}}</div> |
| | | <span>不含人脸的图片数量:{{ uploadResult.noFaceList.length }}</span> |
| | | <div |
| | | class="ml20" |
| | | v-for="(i, index) in uploadResult.noFaceList" |
| | | :key="index" |
| | | > |
| | | {{ i }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | |
| | | <p>黑名单 ></p> |
| | | </div> |
| | | <div class="baseList"> |
| | | <el-checkbox-group v-model="BaseManageData.selectBlacks" @change="blackAngWhite"> |
| | | <div class="base" v-for="(item, index) in BaseManageData.blackList" :key="index"> |
| | | <el-checkbox-group |
| | | v-model="BaseManageData.selectBlacks" |
| | | @change="blackAngWhite" |
| | | > |
| | | <div |
| | | class="base" |
| | | v-for="(item, index) in BaseManageData.blackList" |
| | | :key="index" |
| | | > |
| | | <el-checkbox |
| | | :label="item.value" |
| | | :title="item.title" |
| | | :disabled="item.disabled" |
| | | >{{item.title}}</el-checkbox> |
| | | >{{ item.title }}</el-checkbox |
| | | > |
| | | </div> |
| | | </el-checkbox-group> |
| | | </div> |
| | |
| | | <p>白名单 ></p> |
| | | </div> |
| | | <div class="baseList"> |
| | | <el-checkbox-group v-model="BaseManageData.selectWhites" @change="blackAngWhite"> |
| | | <div class="base" v-for="(item, index) in BaseManageData.whiteList" :key="index"> |
| | | <el-checkbox-group |
| | | v-model="BaseManageData.selectWhites" |
| | | @change="blackAngWhite" |
| | | > |
| | | <div |
| | | class="base" |
| | | v-for="(item, index) in BaseManageData.whiteList" |
| | | :key="index" |
| | | > |
| | | <el-checkbox |
| | | :label="item.value" |
| | | :title="item.title" |
| | | :disabled="item.disabled" |
| | | >{{item.title}}</el-checkbox> |
| | | >{{ 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> |
| | | |
| | |
| | | @change="blackAngWhite" |
| | | :max="1" |
| | | > |
| | | <div class="base" v-for="(item, index) in BaseManageData.blackList" :key="index"> |
| | | <div |
| | | class="base" |
| | | v-for="(item, index) in BaseManageData.blackList" |
| | | :key="index" |
| | | > |
| | | <el-checkbox |
| | | :label="item.value" |
| | | :title="item.title" |
| | | :disabled="item.disabled" |
| | | >{{item.title}}</el-checkbox> |
| | | >{{ item.title }}</el-checkbox |
| | | > |
| | | </div> |
| | | </el-checkbox-group> |
| | | </div> |
| | |
| | | @change="blackAngWhite" |
| | | :max="1" |
| | | > |
| | | <div class="base" v-for="(item, index) in BaseManageData.whiteList" :key="index"> |
| | | <div |
| | | class="base" |
| | | v-for="(item, index) in BaseManageData.whiteList" |
| | | :key="index" |
| | | > |
| | | <el-checkbox |
| | | :label="item.value" |
| | | :title="item.title" |
| | | :disabled="item.disabled" |
| | | >{{item.title}}</el-checkbox> |
| | | >{{ 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> |
| | | |
| | | <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">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | <el-drawer |
| | | title="车辆信息" |
| | | :modal="false" |
| | | :destroy-on-close="true" |
| | | custom-class="add-car" |
| | | :visible.sync="addDrawer" |
| | | :direction="direction" |
| | | :before-close="handleClose1" |
| | | > |
| | | <div class="uploadLine"> |
| | | <div class="car-picture"> |
| | | <div class="car-text">上传车辆照片</div> |
| | | <el-upload |
| | | action |
| | | :http-request="uploadCar" |
| | | accept="image/*" |
| | | list-type="picture-card" |
| | | :file-list="form.carUrls" |
| | | :before-remove="handleRemoveCarPic" |
| | | > |
| | | <i class="el-icon-plus" style="margin-top: 25px"></i> |
| | | </el-upload> |
| | | </div> |
| | | <div class="person-picture"> |
| | | <div class="car-text">上传车主照片</div> |
| | | <el-upload |
| | | action |
| | | :http-request="uploadPerson" |
| | | list-type="picture-card" |
| | | accept="image/*" |
| | | :limit="1" |
| | | :file-list="form.faceUrl" |
| | | :on-remove="handleRemoveFacePic" |
| | | > |
| | | <i class="el-icon-plus" style="margin-top: 25px"></i> |
| | | </el-upload> |
| | | </div> |
| | | </div> |
| | | <el-form |
| | | ref="formForCar" |
| | | :model="form" |
| | | label-width="80px" |
| | | style="margin-top: 20px; margin-bottom: 30px" |
| | | :rule="rules" |
| | | > |
| | | <el-form-item label="车牌号" prop="carNo"> |
| | | <el-input |
| | | placeholder="请输入车牌号" |
| | | v-model="form.carNo" |
| | | class="inputWidth" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="车辆类型"> |
| | | <el-select |
| | | v-model="form.carType" |
| | | placeholder="请选择车辆类型" |
| | | class="inputWidth" |
| | | > |
| | | <el-option |
| | | v-for="item in VideoPhotoData.dictionary.CARTYPE" |
| | | :key="item.value" |
| | | :label="item.name" |
| | | :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="车辆品牌"> |
| | | <el-select |
| | | v-model="form.carBrand" |
| | | placeholder="请选择车辆品牌" |
| | | class="inputWidth" |
| | | > |
| | | <el-option |
| | | v-for="item in VideoPhotoData.dictionary.BRAND" |
| | | :key="item.value" |
| | | :label="item.name" |
| | | :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="车身颜色"> |
| | | <el-select |
| | | v-model="form.carColor" |
| | | placeholder="请选择车身颜色" |
| | | class="inputWidth" |
| | | > |
| | | <el-option |
| | | v-for="item in VideoPhotoData.dictionary.nColor" |
| | | :key="item.value" |
| | | :label="item.name" |
| | | :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="车主姓名"> |
| | | <el-input v-model="form.personName" class="inputWidth"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="车主性别"> |
| | | <el-radio-group v-model="form.sex"> |
| | | <el-radio label="男"></el-radio> |
| | | <el-radio label="女"></el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号"> |
| | | <el-input v-model="form.idCard" class="inputWidth"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="手机号"> |
| | | <el-input v-model="form.phoneNum" class="inputWidth"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="其他"> |
| | | <el-input v-model="form.reserved" class="inputWidth"></el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item style="text-align: tight"> |
| | | <el-button |
| | | type="primary" |
| | | @click="submitCar" |
| | | style="margin-left: 120px" |
| | | >保存</el-button |
| | | > |
| | | <el-button @click="resetForm">取消</el-button> |
| | | </el-form-item> --> |
| | | </el-form> |
| | | <div class="dialog-footer"> |
| | | <el-button |
| | | size="small" |
| | | class="sure-btn" |
| | | type="primary" |
| | | @click="submitCar" |
| | | >确 定</el-button |
| | | > |
| | | <el-button |
| | | size="small" |
| | | class="cancel-btn" |
| | | @click="resetForm" |
| | | type="info" |
| | | >取 消</el-button |
| | | > |
| | | </div> |
| | | </el-drawer> |
| | | |
| | | <el-drawer |
| | | title="上传车牌" |
| | | :modal="false" |
| | | :visible.sync="addBatchDrawer" |
| | | :direction="direction" |
| | | custom-class="upload-pai" |
| | | :before-close="handleClose2" |
| | | > |
| | | <div class="drawerSpace"> |
| | | <div class="plateAttach"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="25" |
| | | v-model="plates" |
| | | style="width: 90%" |
| | | placeholder="请输入车牌号" |
| | | ></el-input> |
| | | <p> |
| | | 车牌号以逗号或回车键隔开,单次最多支持100条上传,例如:京YAB123,京F34Y87 |
| | | </p> |
| | | <!-- <el-button |
| | | type="primary" |
| | | @click="platesBatch" |
| | | style="margin-left: 210px" |
| | | >保存</el-button |
| | | > |
| | | <el-button @click="resetForm('ruleForm')">取消</el-button> --> |
| | | </div> |
| | | </div> |
| | | <div class="dialog-footer"> |
| | | <el-button |
| | | size="small" |
| | | class="sure-btn" |
| | | type="primary" |
| | | @click="platesBatch" |
| | | >保存</el-button |
| | | > |
| | | <el-button |
| | | size="small" |
| | | class="cancel-btn" |
| | | @click="resetForm('ruleForm')" |
| | | type="info" |
| | | >取消</el-button |
| | | > |
| | | </div> |
| | | </el-drawer> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { addBaseCar, updateBaseCar, deleteBasePersons, plateBatch } from "@/api/baseLibrary"; |
| | | import { |
| | | addBaseCar, |
| | | updateBaseCar, |
| | | deleteBasePersons, |
| | | plateBatch, |
| | | updateDbTableStatus, |
| | | } from "@/api/baseLibrary"; |
| | | import axios from "axios"; |
| | | // import { findByType } from '@/server/video.js' |
| | | import Upload from "./upload"; |
| | | import fTemplate from "@/components/fTemplate"; |
| | | import request from "@/scripts/httpRequest" |
| | | import request from "@/scripts/httpRequest"; |
| | | export default { |
| | | components: { |
| | | // httpImg, |
| | | fTemplate |
| | | fTemplate, |
| | | }, |
| | | props: { |
| | | baseObject: { |
| | | default: () => { }, |
| | | type: Object |
| | | } |
| | | default: () => {}, |
| | | type: Object, |
| | | }, |
| | | syncType: { |
| | | type: String, |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | addDrawer: false, |
| | | plates: "", |
| | | addBatchDrawer: false, |
| | | direction: 'rtl', |
| | | dialogImageUrl: '', |
| | | fileList: [{ name: "fasjido.jpg", url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg" }, { name: "fasjido.jpg", url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg" }], |
| | | provinces: [{ name: '京', value: 1 }, { name: '津', value: 2 }, { name: '冀', value: 3 }], |
| | | direction: "rtl", |
| | | dialogImageUrl: "", |
| | | fileList: [ |
| | | { |
| | | name: "fasjido.jpg", |
| | | url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg", |
| | | }, |
| | | { |
| | | name: "fasjido.jpg", |
| | | url: "group2/M00/0A/D7/wKgBnFyjH0-AUE5eAAC8hSMP2Yw110.jpg", |
| | | }, |
| | | ], |
| | | copyVisiabled: false, |
| | | moveVisiabled: false, |
| | | buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [], |
| | | searchName: "", |
| | | current: 1, |
| | | compare: false, |
| | | pageSize: 10, |
| | |
| | | idCard: "", |
| | | phoneNum: "", |
| | | monitorLevel: "one", |
| | | carUrls: [], //{url:"/httpImage/192.168.20.10:6701/818,56d0122c44f069"},{url:"/httpImage/192.168.20.10:6701/818,56d0122c44f069"} |
| | | carUrls: [], |
| | | faceUrl: [], |
| | | faceFeature: "", |
| | | carPicUrls: "", |
| | |
| | | carBrand: "0", |
| | | carNo: "", |
| | | enable: 0, |
| | | reserved: "" |
| | | reserved: "", |
| | | }, |
| | | rules: { |
| | | picDesc: [ |
| | | { required: true, message: "请输入照片标识", trigger: "change" } |
| | | ], |
| | | sex: [{ required: true, message: "请勾选性别", trigger: "change" }], |
| | | monitorLevel: [ |
| | | { required: true, message: "请选择人员等级", trigger: "change" } |
| | | ] |
| | | carNo: [{ required: true, message: "请输入车牌号", trigger: "change" }], |
| | | // sex: [{ required: true, message: "请勾选性别", trigger: "change" }], |
| | | // monitorLevel: [ |
| | | // { required: true, message: "请选择人员等级", trigger: "change" }, |
| | | // ], |
| | | }, |
| | | tableData: [], |
| | | tableHeight: window.innerHeight - 320, |
| | | multipleSelection: [], |
| | | peoperLevel: [], |
| | | oldWidth: "", |
| | | oldHeight: "", |
| | | // 上传后的弹框显示 |
| | | askDeleteShow: false, |
| | | delType: "", |
| | | toDeleteId: "", |
| | | dialogVisible: false, |
| | | // 批量上传后的返回结果 |
| | | uploadResult: { failList: [], successList: [], multiFaceList: [], noFaceList: [] } |
| | | uploadResult: { |
| | | failList: [], |
| | | successList: [], |
| | | multiFaceList: [], |
| | | noFaceList: [], |
| | | }, |
| | | }; |
| | | }, |
| | | computed: { |
| | | isAdmin() { |
| | | if ( |
| | | sessionStorage.getItem('userInfo') && |
| | | sessionStorage.getItem('userInfo') !== '' |
| | | sessionStorage.getItem("userInfo") && |
| | | sessionStorage.getItem("userInfo") !== "" |
| | | ) { |
| | | let loginName = JSON.parse(sessionStorage.getItem('userInfo')).username |
| | | return ( |
| | | loginName === 'superadmin' || loginName === 'basic' |
| | | ) |
| | | 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 ["", ""]; |
| | | } |
| | | }, |
| | | }, |
| | | methods: { |
| | | handleRemoveCarPic(file, fileList) { |
| | | console.log("删除文件", file, fileList); |
| | | var index = fileList.findIndex(item => { |
| | | if (item.uid == file.uid) { |
| | | return true |
| | | } |
| | | handleDel() { |
| | | if (this.delType == "single") { |
| | | this.deleteThis(); |
| | | } else if (this.delType == "base") { |
| | | this.deleteBase(); |
| | | } else if (this.delType == "batch") { |
| | | this.deleteBatch(); |
| | | } |
| | | }, |
| | | deleteBase() { |
| | | let token = |
| | | sessionStorage.getItem("loginedInfo") && |
| | | JSON.parse(sessionStorage.getItem("loginedInfo")).access_token; |
| | | fetch(`/data/api-v/dbtable/deleteDBtablesById?id=${this.baseObject.id}`, { |
| | | method: "GET", |
| | | headers: { |
| | | "Content-Type": "application/json", |
| | | Authorization: token, |
| | | }, |
| | | }) |
| | | console.log("删除的索引", index) |
| | | this.form.carUrls.splice(index, 1) |
| | | console.log("删除后的fileList:", this.fileList) |
| | | .then((res) => { |
| | | return res.json(); |
| | | }) |
| | | .then((res) => { |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: "success", |
| | | message: "底库删除成功!", |
| | | }); |
| | | } |
| | | this.$emit("onDelete"); |
| | | }) |
| | | .catch((err) => { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: err, |
| | | }); |
| | | }); |
| | | }, |
| | | handleRemoveCarPic(file, fileList) { |
| | | var index = fileList.findIndex((item) => { |
| | | if (item.uid == file.uid) { |
| | | return true; |
| | | } |
| | | }); |
| | | this.form.carUrls.splice(index, 1); |
| | | }, |
| | | isDisabled(item) { |
| | | var flag = true; |
| | | if (this.isShow("library:set")) { |
| | | if (item.endTime == "") { |
| | | flag = false; |
| | | } else { |
| | | flag = !this.$moment(new Date()).isBetween( |
| | | item.startTime, |
| | | item.endTime |
| | | ); |
| | | } |
| | | } |
| | | return flag; |
| | | }, |
| | | handleRemoveFacePic(file, fileList) { |
| | | this.form.faceUrl.splice(0, 1) |
| | | console.log("删除后的faceUrl:", this.fileList) |
| | | this.form.faceUrl.splice(0, 1); |
| | | }, |
| | | beforeUoload() { |
| | | |
| | | edit() { |
| | | this.$emit("changeShow", this.baseObject, this.syncType); |
| | | }, |
| | | // beforeUoload() {}, |
| | | handlePictureCardPreview(file) { |
| | | this.dialogImageUrl = file.url; |
| | | this.dialogVisible = true; |
| | | }, |
| | | async uploadCar(param) { |
| | | const fd = new FormData() |
| | | console.log("文件参数:", param) |
| | | fd.append('file', param.file) |
| | | fd.append('picType', '0') |
| | | console.log("参数:", fd) |
| | | const fd = new FormData(); |
| | | fd.append("file", param.file); |
| | | fd.append("picType", "0"); |
| | | let res = await request({ |
| | | method: 'post', |
| | | method: "post", |
| | | url: `/data/api-v/dbperson/fileupload`, |
| | | data: fd |
| | | }) |
| | | console.log("图片上传结果:", res.success) |
| | | data: fd, |
| | | }); |
| | | if (res.success) { |
| | | this.form.carUrls.push({ url: "/httpImage/" + res.data.picUrl }) |
| | | console.log("carUrl:", this.form.carUrls) |
| | | this.form.carUrls.push({ url: "/httpImage/" + res.data.picUrl }); |
| | | } |
| | | }, |
| | | async uploadPerson(param) { |
| | | const fd = new FormData() |
| | | fd.append('file', param.file) |
| | | fd.append('picType', '1') |
| | | const fd = new FormData(); |
| | | fd.append("file", param.file); |
| | | fd.append("picType", "1"); |
| | | let res = await request({ |
| | | method: 'post', |
| | | method: "post", |
| | | url: `/data/api-v/dbperson/fileupload`, |
| | | data: fd |
| | | }) |
| | | data: fd, |
| | | }); |
| | | if (res.success) { |
| | | this.form.faceUrl.push({ url: "/httpImage/" + res.data.picUrl }) |
| | | this.form.faceFeature = res.data.faceFeature |
| | | console.log("faceUrl:", this.form.faceUrl) |
| | | this.form.faceUrl.push({ url: "/httpImage/" + res.data.picUrl }); |
| | | this.form.faceFeature = res.data.faceFeature; |
| | | } |
| | | }, |
| | | addCar() { |
| | | this.addDrawer = true |
| | | this.addDrawer = true; |
| | | }, |
| | | addBatch() { |
| | | this.addBatchDrawer = true |
| | | this.addBatchDrawer = true; |
| | | }, |
| | | resetForm() { |
| | | |
| | | }, |
| | | resetForm() {}, |
| | | handleClose1(done) { |
| | | this.form = { |
| | | (this.form = { |
| | | id: "", |
| | | sex: "男", |
| | | name: "", |
| | |
| | | idCard: "", |
| | | phoneNum: "", |
| | | monitorLevel: "one", |
| | | carUrls: [], //{url:"/httpImage/192.168.20.10:6701/818,56d0122c44f069"},{url:"/httpImage/192.168.20.10:6701/818,56d0122c44f069"} |
| | | carUrls: [], |
| | | faceUrl: [], |
| | | faceFeature: "", |
| | | carPicUrls: "", |
| | |
| | | carBrand: "0", |
| | | carNo: "", |
| | | enable: 0, |
| | | reserved: "" |
| | | }, |
| | | done() |
| | | // this.$confirm('确认关闭?') |
| | | // .then(_ => { |
| | | // done(); |
| | | // }) |
| | | // .catch(_ => {}); |
| | | reserved: "", |
| | | }), |
| | | done(); |
| | | }, |
| | | handleClose2(done) { |
| | | done() |
| | | // this.$confirm('确认关闭?') |
| | | // .then(_ => { |
| | | // done(); |
| | | // }) |
| | | // .catch(_ => {}); |
| | | done(); |
| | | }, |
| | | isShow(authority) { |
| | | if (this.isAdmin) { |
| | | return true |
| | | } else if ( |
| | | this.buttonAuthority.indexOf(',' + authority + ',') > -1 |
| | | ) { |
| | | return true |
| | | } else { |
| | | return false |
| | | } |
| | | return ( |
| | | this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1 |
| | | ); |
| | | }, |
| | | toggleSelection(rows) { |
| | | if (rows) { |
| | | rows.forEach(row => { |
| | | rows.forEach((row) => { |
| | | this.$refs.multipleTable.toggleRowSelection(row); |
| | | }); |
| | | } else { |
| | | this.$refs.multipleTable.clearSelection(); |
| | | } |
| | | }, |
| | | deleteThis(id) { |
| | | deleteThis() { |
| | | let token = |
| | | sessionStorage.getItem("loginedInfo") && |
| | | JSON.parse(sessionStorage.getItem("loginedInfo")).access_token; |
| | | this.$confirm("提示:确定删除该底库人员?", { |
| | | center: true, |
| | | cancelButtonClass: "comfirm-class-cancle", |
| | | confirmButtonClass: "comfirm-class-sure" |
| | | fetch(`/data/api-v/dbperson/deleteDbPersonById?id=${this.toDeleteId}`, { |
| | | method: "GET", |
| | | headers: { |
| | | "Content-Type": "application/json", |
| | | Authorization: token, |
| | | }, |
| | | }) |
| | | .then(_ => { |
| | | fetch(`/data/api-v/dbperson/deleteDbPersonById/${id}`, { |
| | | method: "POST", |
| | | headers: { |
| | | "Content-Type": "application/json", |
| | | Authorization: token |
| | | } |
| | | }) |
| | | .then(res => { |
| | | return res.json(); |
| | | }) |
| | | .then(data => { |
| | | // console.log(data.data); |
| | | if (data.success) { |
| | | this.$notify({ |
| | | type: "success", |
| | | message: "该人员删除成功!" |
| | | }); |
| | | } |
| | | this.getCarList(); |
| | | }) |
| | | .catch(err => { |
| | | console.log(err); |
| | | }); |
| | | .then((res) => { |
| | | return res.json(); |
| | | }) |
| | | .catch(_ => { }); |
| | | }, |
| | | sayHello() { |
| | | console.log("hello"); |
| | | .then((data) => { |
| | | if (data.success) { |
| | | this.$notify({ |
| | | type: "success", |
| | | message: "该人员删除成功!", |
| | | }); |
| | | } |
| | | this.getCarList(); |
| | | }) |
| | | .catch((err) => {}); |
| | | }, |
| | | getUploadResult(result) { |
| | | console.log(result, "上传的返回"); |
| | | this.uploadResult = result.data; |
| | | this.dialogVisible = true; |
| | | this.getCarList(); |
| | | }, |
| | | async getCarList() { |
| | | // console.log("执行了刷新函数", this.BaseManageData.syncTables[0]); |
| | | if (this.baseObject.id && this.baseObject.id !== undefined) { |
| | | // console.log("底库id", this.baseObject.id); |
| | | this.BaseManageData.tableId = this.baseObject.id; |
| | | // this.BaseManageData.queryPersonList(); |
| | | this.setLoadSearch(this.BaseManageData.queryPersonList()) |
| | | this.setLoadSearch(this.BaseManageData.queryPersonList()); |
| | | } |
| | | }, |
| | | changeDialog(data) { |
| | | data.erFileList.map((item, index) => { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: item.errorMsg.message |
| | | message: item.errorMsg.message, |
| | | }); |
| | | }); |
| | | }, |
| | | handleClose() { |
| | | //this.getCarList(); |
| | | this.dialogFormVisible = false; |
| | | }, |
| | | handleSelectionChange(val) { |
| | |
| | | handleClick(row) { |
| | | this.form = row; |
| | | // 这块儿后台的字典value值有问题,需要前端来回转 |
| | | this.form.carColor += "" |
| | | this.form.carType += "" |
| | | this.form.carBrand += "" |
| | | console.log("this.form", this.form) |
| | | this.form.carColor += ""; |
| | | this.form.carType += ""; |
| | | this.form.carBrand += ""; |
| | | this.addDrawer = true; |
| | | }, |
| | | async submit() { |
| | | this.$refs["formForEdit"].validate(async valid => { |
| | | // console.log("通过验证", valid); |
| | | this.$refs["formForEdit"].validate(async (valid) => { |
| | | if (valid) { |
| | | let { ...json } = this.form; |
| | | delete (json["compareScore"]) |
| | | // console.log("修改的参数:", json); |
| | | delete json["compareScore"]; |
| | | let res = await updateBasePerson(json); |
| | | // console.log("保存了", res); |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: "success", |
| | | message: "人员修改成功!" |
| | | message: "人员修改成功!", |
| | | }); |
| | | this.dialogFormVisible = false; |
| | | } else { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: "人员修改失败,请重试!!" |
| | | message: "人员修改失败,请重试!!", |
| | | }); |
| | | } |
| | | } else { |
| | |
| | | title: "Confirm", |
| | | content: "Bla bla ...", |
| | | okText: "确认", |
| | | cancelText: "取消" |
| | | cancelText: "取消", |
| | | }); |
| | | }, |
| | | async enable(item) { |
| | |
| | | phoneNum: item.phoneNum, |
| | | monitorLevel: item.monitorLevel, |
| | | personPicUrl: item.personPicUrl, |
| | | reserved: item.reserved |
| | | reserved: item.reserved, |
| | | }); |
| | | if (res.success === true) { |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: "success", |
| | | message: "底库人员成功变更生效状态!" |
| | | message: "底库人员成功变更生效状态!", |
| | | }); |
| | | } else { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: "底库人员变更生效状态失败!" |
| | | message: "底库人员变更生效状态失败!", |
| | | }); |
| | | } |
| | | }, |
| | |
| | | this.$refs.uploadDrag && this.$refs.uploadDrag.uploadStart(); |
| | | }, |
| | | haveScore(row) { |
| | | if (row.compareScore && row.compareScore !== "") { |
| | | return true |
| | | return row.compareScore && row.compareScore !== ""; |
| | | }, |
| | | async setEnable(item) { |
| | | let res = await updateDbTableStatus({ |
| | | id: item.id, |
| | | enable: item.enable, |
| | | }); |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: "success", |
| | | message: "底库成功变更生效状态!", |
| | | }); |
| | | } else { |
| | | return false |
| | | this.$notify({ |
| | | type: "error", |
| | | message: "底库变更生效状态失败!", |
| | | }); |
| | | } |
| | | }, |
| | | async searchImgList(faceUrl, threshold) { |
| | | // console.log("搜图参数", faceUrl, threshold); |
| | | let json = { |
| | | tableId: this.baseObject.id, |
| | | page: this.current, |
| | |
| | | faceUrl: faceUrl, |
| | | threshold: threshold, |
| | | orderType: this.orderType, |
| | | orderName: this.orderName |
| | | orderName: this.orderName, |
| | | }; |
| | | let res = await getPersonByPhoto(json); |
| | | // console.log("列表查询", json); |
| | | this.tableData = res.data.datalist; |
| | | this.total = res.data.total; |
| | | this.compare = true; |
| | | }, |
| | | updateThreshold() { }, |
| | | // updateThreshold() {}, |
| | | async updateFace(param) { |
| | | const fd = new FormData(); |
| | | fd.append("file", param.file); |
| | | fd.append("id", this.form.id); |
| | | // console.log("换脸了吗", fd); |
| | | let res = await axios({ |
| | | method: "post", |
| | | url: `/data/api-v/dbperson/updateFace`, |
| | | headers: { |
| | | 'Authorization': sessionStorage.getItem('loginedInfo') && JSON.parse(sessionStorage.getItem('loginedInfo')).access_token |
| | | Authorization: |
| | | sessionStorage.getItem("loginedInfo") && |
| | | JSON.parse(sessionStorage.getItem("loginedInfo")).access_token, |
| | | }, |
| | | data: fd |
| | | data: fd, |
| | | }); |
| | | if (res.data.success) { |
| | | this.form.personPicUrl = res.data.data.personPicUrl; |
| | | this.form.faceFeature = res.data.data.faceFeature; |
| | | } |
| | | }, |
| | | uploadSuccess() { |
| | | console.log("换脸成功了"); |
| | | }, |
| | | uploadError() { |
| | | console.log("换脸失败了"); |
| | | }, |
| | | deleteBatch() { |
| | | // console.log('要删除的', this.selectedRowKeys.length) |
| | | if (this.selectedRowKeys.length === 0) { |
| | | async deleteBatch() { |
| | | let ids = []; |
| | | this.selectedRowKeys.map((item, index) => { |
| | | ids.push(item.id); |
| | | }); |
| | | let res = await deleteBasePersons(ids); |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: "warning", |
| | | message: "请选择要删除的人员" |
| | | type: "success", |
| | | message: "删除成功!", |
| | | }); |
| | | this.getCarList(); |
| | | } else { |
| | | this.$confirm("提示:确定删除该底库选中人员?", { |
| | | center: true, |
| | | cancelButtonClass: "comfirm-class-cancle", |
| | | confirmButtonClass: "comfirm-class-sure" |
| | | }).then(async _ => { |
| | | let ids = []; |
| | | this.selectedRowKeys.map((item, index) => { |
| | | ids.push(item.id); |
| | | }); |
| | | // console.log('批量删除数组', ids) |
| | | let res = await deleteBasePersons(ids); |
| | | // console.log(res, '批量删除结果') |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: "success", |
| | | message: "删除成功!" |
| | | }); |
| | | this.getCarList(); |
| | | } else { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: "删除失败!" |
| | | }); |
| | | } |
| | | this.$notify({ |
| | | type: "error", |
| | | message: "删除失败!", |
| | | }); |
| | | } |
| | | }, |
| | |
| | | await this.BaseManageData.querySyncTables(); |
| | | await this.BaseManageData.queryLocalTables(); |
| | | if (this.baseObject.id && this.baseObject.id !== undefined) { |
| | | // console.log("one;", this.baseObject.id); |
| | | } else if ( |
| | | this.BaseManageData.syncTables[0].id && |
| | | this.BaseManageData.syncTables[0].id !== undefined |
| | |
| | | this.BaseManageData.queryPersonList(); |
| | | } |
| | | }, |
| | | handleRowStyle({ row, rowIndex }) { |
| | | // console.log(row, rowIndex, "handleRowStyle"); |
| | | if (rowIndex === 0) { |
| | | return "background:#222222;"; |
| | | askDelete(typ, id) { |
| | | if (typ == "batch") { |
| | | if (this.selectedRowKeys.length === 0) { |
| | | this.$notify({ |
| | | type: "warning", |
| | | message: "请选择要删除的人员", |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | this.askDeleteShow = true; |
| | | this.delType = typ; |
| | | id && (this.toDeleteId = id); |
| | | }, |
| | | blackAngWhite() { |
| | | if (this.BaseManageData.selectBlacks.length > 0) { |
| | | for (let i = 0; i < this.BaseManageData.whiteList.length; i++) { |
| | | //this.VideoPhotoData.whiteList[i].disabled = true |
| | | this.$set(this.BaseManageData.whiteList[i], 'disabled', true) |
| | | this.$set(this.BaseManageData.whiteList[i], "disabled", true); |
| | | } |
| | | } |
| | | if (this.BaseManageData.selectBlacks.length == 0) { |
| | | for (let i = 0; i < this.BaseManageData.whiteList.length; i++) { |
| | | //this.VideoPhotoData.whiteList[i].disabled = false |
| | | this.$set(this.BaseManageData.whiteList[i], 'disabled', false) |
| | | this.$set(this.BaseManageData.whiteList[i], "disabled", false); |
| | | } |
| | | } |
| | | if (this.BaseManageData.selectWhites.length > 0) { |
| | | for (let i = 0; i < this.BaseManageData.blackList.length; i++) { |
| | | // this.VideoPhotoData.blackList[i].disabled = true |
| | | this.$set(this.BaseManageData.blackList[i], 'disabled', true) |
| | | // this.VideoPhotoData.blackList[i].disabled = true |
| | | this.$set(this.BaseManageData.blackList[i], "disabled", true); |
| | | } |
| | | } |
| | | if (this.BaseManageData.selectWhites.length == 0) { |
| | | for (let i = 0; i < this.BaseManageData.blackList.length; i++) { |
| | | //this.VideoPhotoData.blackList[i].disabled = false |
| | | this.$set(this.BaseManageData.blackList[i], 'disabled', false) |
| | | //this.VideoPhotoData.blackList[i].disabled = false |
| | | this.$set(this.BaseManageData.blackList[i], "disabled", false); |
| | | } |
| | | } |
| | | }, |
| | | tosearch(item) { |
| | | // console.log("跳转地址", item) |
| | | var curWwwPath = window.document.location.href; |
| | | var pathname = window.document.location.pathname; |
| | | var pos = curWwwPath.indexOf(pathname); |
| | | var localhostPath = curWwwPath.substring(0, pos); //ip+port |
| | | var 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) |
| | | var href = localhostPath + "/Layout/Searching"; |
| | | let captureId = item.id == "" ? item.personId : item.id; |
| | | var url = item.personPicUrl ? item.personPicUrl : item.personPicUrl; |
| | | var compType = 0; |
| | | window.open( |
| | | href + |
| | | "?showType=findByPic&targetId=" + |
| | | captureId + |
| | | "&picSmUrl=" + |
| | | url + |
| | | "&compType=" + |
| | | compType |
| | | ); |
| | | }, |
| | | async platesBatch() { |
| | | var temp = this.plates.split(/[\n,]/g); |
| | | var reg = /[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]{1}[A-Z]{1}[A-Z0-9]{5,6}/; |
| | | for (let i = 0; i < temp.length; i++) { |
| | | if (temp[i] == '') { |
| | | temp.splice(i, 1) |
| | | i-- |
| | | if (temp[i] == "") { |
| | | temp.splice(i, 1); |
| | | i--; |
| | | } else { |
| | | if (!reg.test(temp[i])) { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: "车牌号:" + temp[i] + "不符合规则,请检查!" |
| | | }) |
| | | return |
| | | message: "车牌号:" + temp[i] + "不符合规则,请检查!", |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | if (temp.length == 0) { |
| | | this.$notify({ |
| | | type: 'error', |
| | | message: '请输入车牌号', |
| | | }) |
| | | return |
| | | type: "error", |
| | | message: "请输入车牌号", |
| | | }); |
| | | return; |
| | | } |
| | | let param = { |
| | | tableId: this.baseObject.id, |
| | | carNos: temp |
| | | } |
| | | let resp = await plateBatch(param) |
| | | console.log("resp:", resp) |
| | | carNos: temp, |
| | | }; |
| | | let resp = await plateBatch(param); |
| | | if (resp && resp.success) { |
| | | // 刷新car列表 |
| | | this.$notify({ |
| | | type: "success", |
| | | message: resp.msg |
| | | message: resp.msg, |
| | | }); |
| | | this.getCarList(); |
| | | this.addBatchDrawer = false; |
| | | } else { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: resp.msg |
| | | message: resp.msg, |
| | | }); |
| | | } |
| | | |
| | | }, |
| | | async submitCar() { |
| | | this.$refs["formForCar"].validate(async valid => { |
| | | // console.log("通过验证", valid); |
| | | this.$refs["formForCar"].validate(async (valid) => { |
| | | if (valid) { |
| | | let { ...json } = this.form; |
| | | |
| | | for (let index in json.carUrls) { |
| | | if (index == 0) { |
| | | json.carPicUrls += json.carUrls[index].url.substring(11) |
| | | json.carPicUrls += json.carUrls[index].url.substring(11); |
| | | } else { |
| | | json.carPicUrls += ";" + json.carUrls[index].url.substring(11) |
| | | json.carPicUrls += ";" + json.carUrls[index].url.substring(11); |
| | | } |
| | | } |
| | | json.carColor = parseInt(json.carColor) |
| | | json.carType = parseInt(json.carType) |
| | | json.carBrand = parseInt(json.carBrand) |
| | | json.personPicUrl = json.faceUrl[0].url.substring(11) |
| | | json.tableId = this.baseObject.id |
| | | console.log("表单的json化:", json) |
| | | delete (json["compareScore"]) |
| | | // console.log("修改的参数:", json); |
| | | let res |
| | | json.carColor = parseInt(json.carColor); |
| | | json.carType = parseInt(json.carType); |
| | | json.carBrand = parseInt(json.carBrand); |
| | | json.personPicUrl = json.faceUrl[0].url.substring(11); |
| | | json.tableId = this.baseObject.id; |
| | | delete json["compareScore"]; |
| | | let res; |
| | | if (json.id == "") { |
| | | res = await addBaseCar(json); |
| | | } else { |
| | | res = await updateBaseCar(json); |
| | | } |
| | | console.log("保存了", res); |
| | | if (res.success) { |
| | | this.$notify({ |
| | | type: "success", |
| | | message: res.data.msg |
| | | message: res.data.msg, |
| | | }); |
| | | this.getCarList(); |
| | | this.addDrawer = false; |
| | | } else { |
| | | this.$notify({ |
| | | type: "error", |
| | | message: res.data.msg |
| | | message: res.data.msg, |
| | | }); |
| | | } |
| | | } else { |
| | |
| | | }); |
| | | }, |
| | | 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() |
| | | resp.then(data => { |
| | | var resp = this.BaseManageData.copyTo(); |
| | | resp.then((data) => { |
| | | if (data.success) { |
| | | this.$notify({ |
| | | title: "成功", |
| | | message: data.data, |
| | | type: "success" |
| | | }) |
| | | type: "success", |
| | | }); |
| | | } else { |
| | | this.$notify({ |
| | | title: "失败", |
| | | message: data.data, |
| | | type: "error" |
| | | }) |
| | | type: "error", |
| | | }); |
| | | } |
| | | }) |
| | | this.copyVisiabled = false |
| | | this.BaseManageData.personId = "" |
| | | this.BaseManageData.selectBlacks = [] |
| | | this.BaseManageData.selectWhites = [] |
| | | }); |
| | | this.copyVisiabled = false; |
| | | this.BaseManageData.personId = ""; |
| | | this.BaseManageData.selectBlacks = []; |
| | | this.BaseManageData.selectWhites = []; |
| | | }, |
| | | getDataName: (dataList, key) => { |
| | | let name = "" |
| | | let name = ""; |
| | | if (Array.isArray(dataList) && dataList.length > 0) { |
| | | for (let i = 0; i < dataList.length; i++) { |
| | | if (dataList[i].value == key) { |
| | | name = dataList[i].name |
| | | name = dataList[i].name; |
| | | } |
| | | } |
| | | } |
| | | return name |
| | | return name; |
| | | }, |
| | | moveSubmit() { |
| | | if (this.BaseManageData.selectBlacks.length === 0 && this.BaseManageData.selectWhites.length === 0) { |
| | | if ( |
| | | this.BaseManageData.selectBlacks.length === 0 && |
| | | this.BaseManageData.selectWhites.length === 0 |
| | | ) { |
| | | this.$notify({ |
| | | title: "注意", |
| | | message: "请选择要移动到的库", |
| | | type: "warning" |
| | | }) |
| | | return |
| | | type: "warning", |
| | | }); |
| | | return; |
| | | } |
| | | var resp = this.BaseManageData.moveTo() |
| | | resp.then(data => { |
| | | 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); |
| | | fn.then(_ => { |
| | | fn.then((_) => { |
| | | this.AuthData.closeLoad(); |
| | | }) |
| | | } |
| | | }); |
| | | }, |
| | | }, |
| | | mounted() { |
| | | this.getCarList(); |
| | |
| | | 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(() => { |
| | |
| | | watch: { |
| | | baseObject: { |
| | | handler(newVal, oldVal) { |
| | | // console.log(newVal, "监听baseObject"); |
| | | this.BaseManageData.cleanData(); |
| | | this.getCarList(); |
| | | }, |
| | | deep: true |
| | | deep: true, |
| | | }, |
| | | "BaseManageData.selectBlacks": function (value) { |
| | | this.blackAngWhite() |
| | | this.blackAngWhite(); |
| | | }, |
| | | "BaseManageData.selectWhites": function (value) { |
| | | this.blackAngWhite() |
| | | this.blackAngWhite(); |
| | | }, |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss"> |
| | |
| | | max-width: none; |
| | | font-size: 14px; |
| | | color: #606266; |
| | | thead { |
| | | background: green !important; |
| | | } |
| | | } |
| | | .avatar-uploader:hover { |
| | | .mask1 { |
| | |
| | | } |
| | | .mask1 { |
| | | position: absolute; |
| | | width: 150px; |
| | | height: 150px; |
| | | width: 100px; |
| | | height: 100px; |
| | | background: rgba(0, 0, 0, 0.35); |
| | | backdrop-filter: blur(1px) brightness(100%); |
| | | text-align: center; |
| | |
| | | display: none; |
| | | } |
| | | .table-parent { |
| | | // position: relative; |
| | | height: 90%; |
| | | height: 100%; |
| | | overflow: visible !important; |
| | | .picture { |
| | | .el-carousel__item { |
| | |
| | | height: 25px; |
| | | } |
| | | } |
| | | .el-drawer.ltr, |
| | | .el-drawer.rtl { |
| | | width: 27% !important; |
| | | height: 90%; |
| | | top: 9%; |
| | | .el-drawer.add-car { |
| | | width: 380px; |
| | | .el-drawer__header { |
| | | border-bottom: 2px solid #eee; |
| | | padding-bottom: 10px; |
| | | font-size: 16px; |
| | | margin-bottom: 0px; |
| | | margin-bottom: 0; |
| | | padding: 20px; |
| | | box-shadow: 0px 2px 4px rgb(0 0 0 / 8%); |
| | | font-size: 14px; |
| | | } |
| | | .el-drawer__body { |
| | | .uploadLine { |
| | | padding-left: 10px; |
| | | |
| | | .el-upload-list--picture-card .el-upload-list__item { |
| | | background-color: #fff; |
| | | border: 2px solid #d4d6d9; |
| | | border-radius: 8px; |
| | | width: 100px; |
| | | height: 100px; |
| | | } |
| | | .el-upload--picture-card { |
| | | background-color: #fff; |
| | | border: 2px solid #d4d6d9; |
| | | border-radius: 8px; |
| | | width: 100px; |
| | | height: 100px; |
| | | line-height: 100px; |
| | | } |
| | | .car-text { |
| | | color: #999999; |
| | | font-size: 14px; |
| | | line-height: 20px; |
| | | text-align: left; |
| | | margin-bottom: 5px; |
| | | } |
| | | .car-picture { |
| | | margin-bottom: 20px; |
| | | & > div { |
| | | display: flex; |
| | | } |
| | | } |
| | | .person-picture { |
| | | margin-bottom: 20px; |
| | | & > div { |
| | | display: flex; |
| | | } |
| | | } |
| | | } |
| | | .el-select { |
| | | width: 100%; |
| | | } |
| | | .el-radio-group { |
| | | width: 100%; |
| | | text-align: left; |
| | | } |
| | | .el-form-item { |
| | | margin-bottom: 18px; |
| | | } |
| | | } |
| | | } |
| | | .el-drawer.upload-pai { |
| | | width: 380px; |
| | | .el-drawer__header { |
| | | margin-bottom: 0; |
| | | padding: 20px; |
| | | box-shadow: 0px 2px 4px rgb(0 0 0 / 8%); |
| | | font-size: 14px; |
| | | } |
| | | .el-drawer__body { |
| | | } |
| | | } |
| | | } |
| | |
| | | .border-tabl { |
| | | border: 1px solid #ebeef5; |
| | | border-bottom: none; |
| | | // border-bottom: none; |
| | | height: calc(100% - 100px); |
| | | overflow: auto; |
| | | .tableBox { |
| | | border: none; |
| | | &::before, |
| | | &::after { |
| | | display: none; |
| | | } |
| | | .el-table--border .el-table__cell, |
| | | .el-table__body-wrapper |
| | | .el-table--border.is-scrolling-left |
| | | ~ .el-table__fixed { |
| | | border-right: none; |
| | | } |
| | | td { |
| | | border: none; |
| | | } |
| | | } |
| | | .head-search { |
| | | .desc { |
| | | min-width: fit-content; |
| | | margin-right: 20px; |
| | | } |
| | | .right-group { |
| | | .iconshangchuanchepai-09:hover, |
| | | .icontianjiacheliang-09:hover { |
| | | border: 1px solid var(--colorCard); |
| | | background: var(--colorCard); |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .el-dialog__header { |
| | | padding: 20px 0 10px; |
| | |
| | | font-size: 14px; |
| | | word-break: break-all; |
| | | } |
| | | .dialog-footer { |
| | | text-align: center; |
| | | } |
| | | // .dialog-footer { |
| | | // text-align: center; |
| | | // } |
| | | .comfirm-class-sure { |
| | | background: #f53d3d; |
| | | border-radius: 2px; |
| | |
| | | padding-left: 8px !important; |
| | | padding-right: 0px !important; |
| | | } |
| | | .addToBase1 { |
| | | width: 98%; |
| | | height: 350px; |
| | | position: relative; |
| | | .topLabel { |
| | | margin-top: 20px; |
| | | height: 40px; |
| | | border-bottom: 1px solid #eee; |
| | | font-family: PingFangSC-Medium; |
| | | font-size: 20px; |
| | | font-weight: 600; |
| | | line-height: 1rem; |
| | | color: #222222; |
| | | text-align: left; |
| | | margin-left: 15px; |
| | | } |
| | | .items { |
| | | width: 100%; |
| | | height: auto; |
| | | max-height: 35%; |
| | | overflow-y: auto; |
| | | margin: 20px 0px; |
| | | .lable { |
| | | width: 15%; |
| | | margin-top: 10px; |
| | | float: left; |
| | | //font-family: PingFangSC-Medium; |
| | | font-size: 14px; |
| | | font-weight: 600; |
| | | } |
| | | .baseList { |
| | | width: 85%; |
| | | height: 100%; |
| | | float: left; |
| | | .base { |
| | | width: calc(33% - 10px); |
| | | padding: 0px 5px; |
| | | line-height: 30px; |
| | | float: left; |
| | | text-align: left; |
| | | font-size: 12px !important; |
| | | .el-checkbox { |
| | | width: 100%; |
| | | display: block; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | .el-checkbox__label { |
| | | display: inline !important; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .copy, |
| | | .move { |
| | | .el-dialog__body { |
| | |
| | | } |
| | | |
| | | .avatar-uploader { |
| | | max-width: 150px; |
| | | min-width: 150px; |
| | | min-height: 152px; |
| | | max-width: 100px; |
| | | min-width: 100px; |
| | | min-height: 100px; |
| | | border: 1px solid #eee; |
| | | } |
| | | |
| | | .inputWidth { |
| | | width: 270px !important; |
| | | } |
| | | .rightInputWidth { |
| | | max-width: 270px; |
| | | } |
| | | |
| | | .el-drawer.ltr, |
| | | .el-drawer.rtl { |
| | | min-width: 450px; |
| | | width: 25% !important; |
| | | height: 90%; |
| | | min-height: 1100px; |
| | | top: 9%; |
| | | .el-drawer__header { |
| | | border-bottom: 2px solid #eee; |
| | | padding-bottom: 10px; |
| | | font-size: 16px; |
| | | margin-bottom: 0px; |
| | | :focus { |
| | | outline: 0; |
| | | .el-popover.el-popper.popper-caozuo1 { |
| | | box-shadow: 0px 0px 10px rgb(0 0 0 / 12%); |
| | | border-radius: 8px; |
| | | padding: 0; |
| | | padding-right: 1px; |
| | | & > span { |
| | | width: 32px; |
| | | height: 32px; |
| | | cursor: pointer; |
| | | display: inline-block; |
| | | text-align: center; |
| | | line-height: 32px; |
| | | border-radius: 8px; |
| | | font-size: 24px; |
| | | .iconfont { |
| | | font-size: 24px; |
| | | } |
| | | .iconshanchu-09 { |
| | | color: #fe6d68; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .drawerSpace { |
| | | height: 900px; |
| | | margin-bottom: 30px; |
| | | overflow-y: scroll; |
| | | .uploadLine { |
| | | height: 280px; |
| | | |
| | | .car-picture { |
| | | float: left; |
| | | margin: 15px; |
| | | border: 1px solid #eee; |
| | | width: 280px; |
| | | height: 260px; |
| | | overflow: hidden; |
| | | .el-upload--picture-card { |
| | | margin: 10px; |
| | | width: 110px; |
| | | height: 110px; |
| | | line-height: 35px; |
| | | } |
| | | .el-upload-list--picture-card { |
| | | .el-upload-list__item { |
| | | margin: 10px; |
| | | width: 110px; |
| | | height: 110px; |
| | | img { |
| | | object-fit: contain; |
| | | } |
| | | } |
| | | .el-progress--circle { |
| | | width: 30px !important; |
| | | } |
| | | } |
| | | } |
| | | .person-picture { |
| | | float: left; |
| | | margin-top: 15px; |
| | | width: 120px; |
| | | height: 120px; |
| | | overflow: hidden; |
| | | .el-upload--picture-card { |
| | | width: 110px; |
| | | height: 110px; |
| | | line-height: 35px; |
| | | } |
| | | .el-upload-list__item { |
| | | margin: 10px; |
| | | width: 110px; |
| | | height: 110px; |
| | | img { |
| | | object-fit: contain; |
| | | } |
| | | } |
| | | } |
| | | & > span:hover { |
| | | background: var(--colorCard); |
| | | color: #fff; |
| | | } |
| | | .plateAttach { |
| | | width: calc(100% -40px); |
| | | height: calc(100% -40px); |
| | | padding: 20px; |
| | | p { |
| | | margin-top: 20px; |
| | | width: 400px; |
| | | line-height: 20px; |
| | | & > .del-wrap:hover { |
| | | background: #fe6d68; |
| | | .iconshanchu-09 { |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |