<template lang="pug"> <div class="animation"> <div class='info-title'>当前资源点关联摄像头 <el-button icon="el-icon-close" style="float:right;" type="text" @click="closeQueryDetailVisible"></el-button> </div> <div style="height:40px; width:100%;padding-top:10px"> <div style="width:80px; float:left; line-height:40px; padding-left:10px;">关联监控:</div> <div style="float:left"> <el-select v-model="camera" placeholder="请选择" @change="cameraChange"> <el-option v-for="item in dataForm.list" :key="item.id" :label="item.name" :value="item.id"></el-option> </el-select> </div> </div> <div class='info-video'> <img v-if="video1 == 0" class="video" src="@/assets/images/videoImg.png" alt=""> <video v-if="video1 == 1" class="video" ref="video" muted autoplay controls></video> </div> <div class="info-form"> <div class="operate"> <div class="btns"> <img v-show="imgUrl == ''" src="@/assets/images/btns.png" alt=""> <img v-show="imgUrl == 's'" src="@/assets/images/s.png" alt=""> <img v-show="imgUrl == 'x'" src="@/assets/images/x.png" alt=""> <img v-show="imgUrl == 'z'" src="@/assets/images/z.png" alt=""> <img v-show="imgUrl == 'y'" src="@/assets/images/y.png" alt=""> <img v-show="imgUrl == 'ys'" src="@/assets/images/ys.png" alt=""> <img v-show="imgUrl == 'yx'" src="@/assets/images/yx.png" alt=""> <img v-show="imgUrl == 'zs'" src="@/assets/images/zs.png" alt=""> <img v-show="imgUrl == 'zx'" src="@/assets/images/zx.png" alt=""> <div class="fx">方向</div> <div class="zs" @mousedown="clickPTZControl(25,0,'zs')" @mouseup="clickPTZControl(25,1)" title="云台左上"> </div> <div class="s" @mousedown="clickPTZControl(21,0,'s')" @mouseup="clickPTZControl(21,1)" title="云台上仰"> </div> <div class="ys" @mousedown="clickPTZControl(26,0,'ys')" @mouseup="clickPTZControl(26,1)" title="云台右上"> </div> <div class="y" @mousedown="clickPTZControl(24,0,'y')" @mouseup="clickPTZControl(24,1)" title="云台右转"> </div> <div class="yx" @mousedown="clickPTZControl(28,0,'yx')" @mouseup="clickPTZControl(24,1)" title="云台右下"> </div> <div class="x" @mousedown="clickPTZControl(22,0,'x')" @mouseup="clickPTZControl(22,1)" title="云台下转"> </div> <div class="zx" @mousedown="clickPTZControl(27,0,'zx')" @mouseup="clickPTZControl(27,1)" title="云台左下"> </div> <div class="z" @mousedown="clickPTZControl(23,0,'z')" @mouseup="clickPTZControl(23,1)" title="云台左转"> </div> </div> <div class="ytBox ytBox2"> <div class="bbBtn"> <div @mousedown="clickPTZControl(11,0,'right')" @mouseup="clickPTZControl(11,1,'right')" title="变倍+"> <img v-show="imgRightUrl11" src="@/assets/images/r1.png" alt=""> <img v-show="!imgRightUrl11" src="@/assets/images/r1b.png" alt=""> </div> <div @mousedown="clickPTZControl(12,0,'right')" @mouseup="clickPTZControl(12,1,'right')" title="变倍-"> <img v-show="imgRightUrl12" src="@/assets/images/r2.png" alt=""> <img v-show="!imgRightUrl12" src="@/assets/images/r2b.png" alt=""> </div> </div> <div class="bbBtn"> <div @mousedown="clickPTZControl(13,0,'right')" @mouseup="clickPTZControl(13,1,'right')" title="变焦+"> <img v-show="imgRightUrl13" src="@/assets/images/r3.png" alt=""> <img v-show="!imgRightUrl13" src="@/assets/images/r3b.png" alt=""> </div> <div @mousedown="clickPTZControl(14,0,'right')" @mouseup="clickPTZControl(14,1,'right')" title="变焦-"> <img v-show="imgRightUrl14" src="@/assets/images/r4.png" alt=""> <img v-show="!imgRightUrl14" src="@/assets/images/r4b.png" alt=""> </div> </div> <div class="bbBtn"> <div @mousedown="clickPTZControl(15,0,'right')" @mouseup="clickPTZControl(15,1,'right')" title="光圈+"> <img v-show="imgRightUrl15" src="@/assets/images/r5.png" alt=""> <img v-show="!imgRightUrl15" src="@/assets/images/r5b.png" alt=""> </div> <div @mousedown="clickPTZControl(16,0,'right')" @mouseup="clickPTZControl(16,1,'right')" title="光圈-"> <img v-show="imgRightUrl16" src="@/assets/images/r6.png" alt=""> <img v-show="!imgRightUrl16" src="@/assets/images/r6b.png" alt=""> </div> </div> </div> </div> </div> <div class='info-title'>资源点信息查询</div> <div class='info-form'> <el-button type="primary" style='margin-left:30px;' @click="dialogList1">出入记录查询</el-button> <el-button type="primary" @click="dialogList2">历史指令查询</el-button> </div> <el-dialog :title="dataForm.name" width="1200px" :close-on-click-modal='false' :visible.sync='visible1' :modal-append-to-body='false'> div(slot='title') span.title-bold {{dataForm.name}} <div class="instuctions_content"> <el-form :inline="true" :model="formData1" size="mini" style="margin:20px 0 20px 17px "> <el-form-item label="人员姓名:"> <el-input v-model="formData1.name" placeholder="请输入人员姓名" clearable></el-input> </el-form-item> <el-form-item label="门禁设备:"> <el-select v-model="formData1.id" placeholder="请选择"> <el-option v-for="(item, index) in options" :key="index" :label="item.name" :value="item.id" placeholder="请选择"> </el-option> </el-select> //- <el-autocomplete class="inline-input" v-model="formData1.username" :fetch-suggestions="querySearch1" placeholder="请输入内容"></el-autocomplete> </el-form-item> <el-form-item label="查询时间:"> <el-date-picker type="datetime" class="inputWidth" style="width:175px;" v-model="formData1.startTime" placeholder="选择日期时间" clearable ></el-date-picker> </el-form-item> <el-form-item label="至"> <el-date-picker type="datetime" class="inputWidth" style="width:175px;" v-model="formData1.endTime" placeholder="选择日期时间" clearable ></el-date-picker> </el-form-item> <el-button @click="getDataList1()" type="primary" size="mini" icon="el-icon-search">查询</el-button> </el-form> <el-table :data="dataList1" v-loading="dataListLoading" :stripe="true" :header-cell-style="{background:'#D5D9E0',color:'#fff'}" style="width: 100%;"> <el-table-column type="index" header-align="center" align="center" width='80' label="序号"> <template scope="scope"><span>{{scope.$index+(pageIndex1 - 1) * pageSize1 + 1}} </span></template> </el-table-column> <el-table-column prop="instruction" header-align="center" align="center" label="姓名"></el-table-column> <el-table-column prop="resourceName" header-align="center" align="center" label="部门"></el-table-column> <el-table-column prop="type" header-align="center" align="center" label="岗位"></el-table-column> <el-table-column prop="actionName" header-align="center" align="center" label="卡序列号"></el-table-column> <el-table-column prop="createUser" header-align="center" align="center" label="刷卡时间"></el-table-column> <el-table-column header-align="center" align="center" label="操作"> <template slot-scope="scope"> <div>{{scope.row.result==1?'成功':'失败'}}</div> </template> </el-table-column> </el-table> <el-pagination @size-change="sizeChangeHandle1" @current-change="currentChangeHandle1" :current-page="pageIndex1" :page-sizes="[10, 20, 50, 100]" :page-size="pageSize1" :total="totalPage1" layout="total, sizes, prev, pager, next, jumper" ></el-pagination> </div> </el-dialog> <el-dialog width="1200px" :close-on-click-modal='false' :visible.sync='visible2' :modal-append-to-body='false'> div(slot='title') span.title-bold 历史指令 <div class="instuctions_content"> <el-form :inline="true" :model="formData2" size="mini" style="margin:20px 0 20px 17px "> <el-form-item label="操作ID:"> <el-input v-model="formData2.instruction" placeholder="请输入内容" clearable></el-input> </el-form-item> <el-form-item label="门禁设备:"> <el-select v-model="formData2.resourceId" placeholder="请选择"> <el-option v-for="(item, index) in options" :key="index" :label="item.name" :value="item.id" placeholder="请选择"> </el-option> </el-select> //- <el-autocomplete class="inline-input" v-model="formData1.username" :fetch-suggestions="querySearch1" placeholder="请输入内容"></el-autocomplete> </el-form-item> <el-form-item label="执行时间:"> <el-date-picker type="datetime" class="inputWidth" style="width:175px;" value-format="yyyy-MM-dd HH:mm:ss" v-model="formData2.startTime" placeholder="选择日期时间" clearable ></el-date-picker> </el-form-item> <el-form-item label="至"> <el-date-picker type="datetime" class="inputWidth" style="width:175px;" value-format="yyyy-MM-dd HH:mm:ss" v-model="formData2.endTime" placeholder="选择日期时间" clearable ></el-date-picker> </el-form-item> <el-button @click="getDataList2()" type="primary" size="mini" icon="el-icon-search">查询</el-button> </el-form> <el-table :data="dataList2" @sort-change='sortChange2' v-loading="dataListLoading" :stripe="true" :header-cell-style="{background:'#D5D9E0',color:'#fff'}" style="width: 100%;"> <el-table-column type="index" header-align="center" align="center" width='100' label="序号"> <template scope="scope"><span>{{scope.$index+(pageIndex2 - 1) * pageSize2 + 1}} </span></template> </el-table-column> <el-table-column prop="instruction" width='200' sortable="custom" header-align="center" align="center" label="指令ID"> <template slot-scope="scope"> <font :title="scope.row.instruction">{{scope.row.instruction}}</font> </template> </el-table-column> <el-table-column prop="resourceName" sortable="custom" width='150' column-key='resource_name' header-align="center" align="center" label="资源点名称"></el-table-column> <el-table-column prop="deployLocation" sortable="custom" width='150' header-align="center" align="center" label="部署位置"></el-table-column> <el-table-column prop="actionName" sortable="custom" column-key='action_name' header-align="center" align="center" label="动作"></el-table-column> <el-table-column prop="createUser" sortable="custom" column-key='create_user' header-align="center" align="center" label="操作人"></el-table-column> <el-table-column prop="createTime" sortable="custom" width='200' column-key='create_time' header-align="center" align="center" label="操作时间"> <template slot-scope="scope"> <font :title="scope.row.createTime">{{scope.row.createTime}}</font> </template> </el-table-column> <el-table-column sortable="custom" column-key='result' width='100' header-align="center" align="center" label="执行结果"> <template slot-scope="scope"> <div>{{scope.row.result==1?'成功':'失败'}}</div> </template> </el-table-column> </el-table> <el-pagination @size-change="sizeChangeHandle2" @current-change="currentChangeHandle2" :current-page="pageIndex2" :page-sizes="[10, 20, 50, 100]" :page-size="pageSize2" :total="totalPage2" layout="total, sizes, prev, pager, next, jumper" ></el-pagination> </div> </el-dialog> </div> </template> <script> import { mapState } from 'vuex' import { isAuth } from '../../../util' export default { computed: { ...mapState('d2admin/user', [ 'info' ]) }, data () { return { video1: 0, flvPlayer: null, options: [], stationId: '', //11=焦距变大,12=焦距变小,13=焦点前调,14=焦点后调,15=光圈扩大,16=光圈扩小 //21=上仰,22=下俯,23=左转,24=右转,25=左上,26=右上,27=左下,28=右下,29=自动扫描 actionList: ['', '', '', '', '', '', '', '', '', '', '', '变倍+', '变倍-', '变焦+', '变焦-', '光圈+', '光圈-', '', '', '', '', '上仰', '下俯', '左转', '右转', '左上', '右上', '左下', '右下', '自动扫描'], imgUrl: '', imgRightUrl11: false, imgRightUrl12: false, imgRightUrl13: false, imgRightUrl14: false, imgRightUrl15: false, imgRightUrl16: false, monitorList: [{ value: '1', label: '监控1' }, { value: '2', label: '监控2' }], monitorValue: '监控1', videoSrc: '', clickFlag: false, visible1: false, visible2: false, sysOrgList: [], dataListLoading: false, dataList1: [], dataList2: [], formData1: {}, formData2: {}, dataListSelections: [], lineList: [], stationList: [], typeList: [], systemList: [], tierList: [], camera: '', pageIndex1: 1, pageSize1: 10, totalPage1: 0, pageIndex2: 1, pageSize2: 10, totalPage2: 0, order2: '', sort2: '', restaurants: [], cameraCur: {}, dataForm: { id: 0, name: '', type: 1, lineId: '', lineName: '', stationId: '', stationName: '', tierId: '', subSystem: '', code: '', subCode: '', addressCode: '', port: '', username: '', password: '', remark: '', status: 1 } } }, watch: { totalPage1() { //注意这个函数的名字必须和你监听data中的属性的名字一样,这样才能当你data中的属性发生变化时,触发这个函数 let pages = Math.ceil(this.totalPage1 / this.pageSize1)//新数据总页数 //总页数小于当前页数则重新加载列表数据 if (pages < this.pageIndex1) { this.pageIndex1 = pages || 1 this.getDataList()//获取表格数据的方法 } }, totalPage2() { //注意这个函数的名字必须和你监听data中的属性的名字一样,这样才能当你data中的属性发生变化时,触发这个函数 let pages = Math.ceil(this.totalPage2 / this.pageSize2)//新数据总页数 //总页数小于当前页数则重新加载列表数据 if (pages < this.pageIndex2) { this.pageIndex2 = pages || 1 this.getDataList2()//获取表格数据的方法 } } }, created() { }, methods: { init (id, stationId) { this.stationId = stationId this.getAllEq() this.clickFlag = false this.dataForm.id = id this.formData1.id = id this.cameraCur = {} this.camera = '' this.initResource() this.dataForm.operatorName = this.info.name }, //门禁查询 getDataList1() { console.log('门禁出入记录查询') }, //历史指令查询 getDataList2() { // console.log('历史指令查询') // if (new Date(this.formData2.startTime).getTime() > new Date(this.formData2.endTime).getTime()) { // this.$message.warning('开始时间不能大于结束时间') // return false // } this.dataListLoading = true this.$http({ url: this.$http.adornUrlEq('/orGate/list'), method: 'post', data: { stationId: this.stationId, page: this.pageIndex2, rows: this.pageSize2, startTime: this.formData2.startTime, endTime: this.formData2.endTime, instruction: this.formData2.instruction, resourceId: this.formData2.resourceId, sort: this.sort2, order: this.order2 } }).then(data => { //console.log('data', data) if (data && data.code === 0) { this.dataList2 = data.page.rows this.totalPage2 = data.page.total } else { this.dataList2 = [] this.totalPage = 0 } this.dataListLoading = false }) }, initResource() { this.video1 = 0//初始化显示默认图片 this.$http({ url: this.$http.adornUrlEq(`/liResource/getResourceDetails/${this.dataForm.id}`), method: 'get', params: this.$http.adornParams() }).then(data => { if (data && data.code === 0) { this.dataForm = data.bean console.log(this.dataForm, '---------') if (this.dataForm.list && this.dataForm.list.length > 0) { this.cameraCur = this.dataForm.list[0] this.camera = this.cameraCur.id this.video1 = 1 //视频直播 var src = '' this.$http({ url: this.$http.adornUrlEq('/camera/camerasPlay'), method: 'post', data: { id: this.cameraCur.id, stationId: data.bean.stationId, userId: localStorage.getItem('userId'), levelType: 1, controlType: 3 } }).then(data => { if (data && data.code === 0) { src = data.url //视频连接 if (flvjs.isSupported()) { this.flvPlayer = flvjs.createPlayer({ type: 'flv', enableWorker: true, //浏览器端开启flv.js的worker,多进程运行flv.js isLive: true, //直播模式 hasAudio: false, //关闭音频 hasVideo: true, stashInitialSize: 128, enableStashBuffer: false, //播放flv时,设置是否启用播放缓存,只在直播起作用。 url: src }) this.$nextTick(function () { this.flvPlayer.attachMediaElement(this.$refs.video) try { this.flvPlayer.load() this.flvPlayer.play() } catch (error) { console.log(error) } }) } } }) } } }) }, //查询所有设备 getAllEq() { // console.log('---', this.stationId) this.$http({ url: this.$http.adornUrlEq('/liResource/getAllEq'), method: 'get', params: { stationId: this.stationId, subCode: '02' } }).then(data => { if (data && data.code === 0) { this.options = data.list // console.log('所有设备', data.list) } }) }, closeQueryDetailVisible() { this.$emit('closeQ') }, querySearch1(queryString, cb) { let restaurants = this.restaurants let results = queryString ? restaurants.filter(this.createFilter1(queryString)) : restaurants // 调用 callback 返回建议列表的数据 cb(results) }, createFilter1(queryString) { return (restaurant) => { return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0) } }, querySearch2(queryString, cb) { let restaurants = this.restaurants let results = queryString ? restaurants.filter(this.createFilter2(queryString)) : restaurants // 调用 callback 返回建议列表的数据 cb(results) }, createFilter2(queryString) { return (restaurant) => { return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0) } }, dialogList1() { this.visible1 = true this.getDataList1() }, dialogList2() { this.visible2 = true this.$set(this.formData2, 'resourceId', this.dataForm.id) this.getDataList2() }, //排序 sortChange2 (column) { if (column.order === 'descending') { this.order2 = 'desc' } else { this.order2 = 'asc' } if (column.column.columnKey) { this.sort2 = column.column.columnKey } else { this.sort2 = column.prop } this.getDataList2() }, // 每页数 sizeChangeHandle1(val) { this.pageSize1 = val this.pageIndex1 = 1 this.getDataList() }, // 当前页 currentChangeHandle1(val) { this.pageIndex1 = val this.getDataList() }, // 每页数 sizeChangeHandle2(val) { this.pageSize2 = val this.pageIndex2 = 1 this.getDataList2() }, // 当前页 currentChangeHandle2(val) { this.pageIndex2 = val this.getDataList2() }, clickPTZControl(ptz, dwStop, img) { if (!this.camera || (this.cameraCur.type !== 'ece0b8b2db27411886254e81134988a3' && (ptz < 11 || ptz > 16))) { return } if (!isAuth('access:point:corona')) { this.$message({ type: 'warning', message: '没有操作权限,请联系管理员', duration: 1000 }) return } if (img && img != 'right') { this.imgUrl = img } if (dwStop) { this.imgUrl = '' } if (img && img == 'right') { this['imgRightUrl' + ptz] = true } if (dwStop && img == 'right') { this['imgRightUrl' + ptz] = false } this.$http({ url: this.$http.adornUrlEq('/camera/ptzControl'), method: 'post', data: { ip: this.cameraCur.addressCode, //ip地址 port: this.cameraCur.port, //端口 username: this.cameraCur.username, //账号 password: this.cameraCur.password, //密码 channel: this.cameraCur.byx1, //通道 stream: 'main', //主码流 dwPtzCommand: ptz, //云台控制命令 dwStop: dwStop //云台控制0开始和1结束 } }).then(data => { if (data && data.code === 0) { if (dwStop == 0) { //云台控制0开始和1结束 this.saveLog(1, ptz)// 执行结果 成功 1 失败 2 this.$message.success(data.msg) } } else { if (dwStop == 0) { //云台控制0开始和1结束 this.saveLog(2, ptz)// 执行结果 成功 1 失败 2 this.$message.error(data.msg) } } }) }, //调用日志保存记录操作指令 saveLog (result, ptz) { this.$http({ url: this.$http.adornUrlEq('/orVideoMonitor/save'), method: 'post', data: { source: 1, actionName: this.actionList[ptz], resourceId: this.cameraCur.id, stationId: this.stationId, type: this.cameraCur.type, result: result } }).then(data => { }) }, cameraChange (id) { if (id) { this.camera = id this.dataForm.list.forEach(res => { if (res.id === id) { this.cameraCur = res } }) if (this.flvPlayer) { this.flvPlayer.pause() this.flvPlayer.unload() this.flvPlayer.detachMediaElement() this.flvPlayer.destroy() this.flvPlayer = null } this.$http({ url: this.$http.adornUrlEq('/camera/camerasPlay'), method: 'post', data: { id: this.cameraCur.id, stationId: this.cameraCur.stationId, userId: localStorage.getItem('userId'), levelType: 1, controlType: 3 } }).then(data => { //视频直播 var src = data.url // var src = 'ws://10.20.72.26:8000/live/' + this.cameraCur.byx1 + '.flv' //视频连接 if (flvjs.isSupported()) { this.flvPlayer = flvjs.createPlayer({ type: 'flv', enableWorker: true, //浏览器端开启flv.js的worker,多进程运行flv.js isLive: true, //直播模式 hasAudio: false, //关闭音频 hasVideo: true, stashInitialSize: 128, enableStashBuffer: false, //播放flv时,设置是否启用播放缓存,只在直播起作用。 url: src }) this.$nextTick(function () { this.flvPlayer.attachMediaElement(this.$refs.video) try { this.flvPlayer.load() this.flvPlayer.play() } catch (error) { console.log(error) } }) } }) } } } } </script> <style lang="scss" scoped> .el-table__header { width: 100% !important; } .el-table__body { width: 100% !important; } .info-title{ line-height: 40px; height: 40px; padding: 0 20px; background-color: #e1edf4; border-bottom: 1px solid #cccccc; font-size:16px; font-family:Microsoft YaHei; font-weight:bold; } .info-video{ padding: 10px; height: 160px; } .info-form{ padding: 10px; } .info-block{ border: 1px solid #cccccc; } .el-select{ width: 100%; } .video{ width: 100%;height: 180px; } .animation{ animation: myfirst 1s; position: absolute; top: 50px;right: 0; width: 330px; background-color: #F4F4F4; z-index: 11; border: 1px solid rgba(195, 195, 195, 1); box-shadow:0 2px 8px 8px rgba(0,0,0,0.2) } @keyframes myfirst{ from {right: -500px} to {right: 0} } .quDetailM{ width: 100%; } .leftP{ height: 30px; line-height: 30px; margin: 0; width: 100%; font-size: 14px; span{ color: #46b6f9; } } .operate{ padding:5px 0; font-size:14px; font-family:Microsoft YaHei; font-weight:400; color:rgba(0,0,0,1); border-image:linear-gradient(90deg, rgba(255, 255, 255, 0.5), rgba(213, 213, 213, 0.5), rgba(255, 255, 255, 0.5), rgba(218, 218, 218, 0.5), rgba(255, 255, 255, 0.5)) 2 2; border-radius:10px; overflow: hidden; display: flex; justify-content: flex-start; .btns{ width:194px; height:194px; position:relative; img{ width:100%; height:100%; } div{ cursor: pointer; padding: 10px; } .s{ position: absolute; top:10px; left: 75px; width: 24px; height: 24px; } .x{ position: absolute; bottom:10px; left: 75px; width: 24px; height: 24px; } .z{ position: absolute; top:75px; left: 10px; width: 24px; height: 24px; } .y{ position: absolute; top:75px; right:10px; width: 24px; height: 24px; } .zs{ position: absolute; top:32px; left: 32px; width: 24px; height: 24px; } .zx{ position: absolute; bottom:32px; left: 32px; width: 24px; height: 24px; } .ys{ position: absolute; top:32px; right:32px; width: 24px; height: 24px; } .yx{ position: absolute; bottom:32px; right:32px; width: 24px; height: 24px; } .fx{ position: absolute; padding: 0; cursor: default; top: 50%; left: 50%; width: 65px; height: 65px; background:#ececec; border-radius: 50%; line-height: 65px; text-align: center; color: #969696; transform: translate(-50%,-50%); } } .ytBox{ width:90px; font-size: 16px; padding: 10px 0 10px 0; box-sizing: border-box; display: flex; flex-direction: column; justify-content: space-around; align-items: center; .mllx{ display: flex; justify-content: space-between; width: 90%; span{ line-height: 40px; text-align: center; width: 35%; } } .bbBtn{ height: 40px; display: flex; margin-left: 10px; justify-content: flex-start; div{ width: 40px; height: 40px; cursor: pointer; img{ width: 100%; height: 100%; } } } } } .el-icon-wq-r1{ background: url(~@/assets/images/r1.png) center no-repeat; background-size: 65%; } .el-icon-wq-r1:before{ content: ""; font-size: 16px; } .el-icon-wq-r2{ background: url(~@/assets/images/r2.png) center no-repeat; background-size: 65%; } .el-icon-wq-r2:before{ content: ""; font-size: 16px; } .el-icon-wq-r3{ background: url(~@/assets/images/r3.png) center no-repeat; background-size: 65%; } .el-icon-wq-r3:before{ content: ""; font-size: 16px; } .el-icon-wq-r5{ background: url(~@/assets/images/r5.png) center no-repeat; background-size: 65%; } .el-icon-wq-r5:before{ content: ""; font-size: 16px; } .el-icon-wq-r6{ background: url(~@/assets/images/r6.png) center no-repeat; background-size: 65%; } .el-icon-wq-r6:before{ content: ""; font-size: 16px; } .el-icon-wq-r1b{ background: url(~@/assets/images/r1b.png) center no-repeat; height: 35px; width: 35px; background-size: 65%; } .el-icon-wq-r1b:before{ content: ""; font-size: 16px; } .el-icon-wq-r2b{ background: url(~@/assets/images/r2b.png) center no-repeat; height: 35px; width: 35px; background-size: 65%; } .el-icon-wq-r2b:before{ content: ""; font-size: 16px; } .el-icon-wq-r3b{ background: url(~@/assets/images/r3b.png) center no-repeat; height: 35px; width: 35px; background-size: 65%; } .el-icon-wq-r3b:before{ content: ""; font-size: 16px; } .el-icon-wq-r5b{ background: url(~@/assets/images/r5b.png) center no-repeat; height: 35px; width: 35px; background-size: 65%; } .el-icon-wq-r5b:before{ content: ""; font-size: 16px; } .el-icon-wq-r6b{ background: url(~@/assets/images/r6b.png) center no-repeat; height: 35px; width: 35px; background-size: 65%; } .el-icon-wq-r6b:before{ content: ""; font-size: 16px; } </style> <style lang="scss"> .instuctions_content{ table{ th{ background: #eef8ff !important; color: #333333 !important; } } } </style>