| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809 |
- <template>
- <div class="max-big-box">
- <div v-if="newModifyPageType==1" class="big-max-box">
- <!--操作按钮-->
- <div class="top-box">
- <div class="input-box">
- <div class="dropdown-box" v-for="(item,index) in downList" :key="index">
- <p class="dropdown-left-title">{{item.name}}:</p>
- <div class="dropdown-right-box cursor_pointer"
- @mouseenter="dropdownClickOpen(index,'1')" @mouseleave="dropdownClickOpen(index,'2')">
- <p class="dropdown-text">{{downList[index].downText}}</p>
- <div class="dropdown-for-max" v-if="downList[index].downType">
- <p v-for="(item,indexTwo) in downList[index].list" :key="indexTwo"
- :class="{'color-A':downList[index].mouseColor == item}"
- @mouseenter="colorTypeEnter(index,item)" @mouseleave="colorTypeLeave(index)"
- @click="dropdownClick(index,item)">{{item}}</p>
- </div>
- </div>
- </div>
- <div class="button-box cursor_pointer" @click="clickQuery">
- <img src="~@/assets/images/icon_27.png">
- <p class="cursor_pointer">查询</p>
- </div>
- </div>
- <p class="add-button cursor_pointer" @click="clickPageType" v-if="userPermsData.indexOf('business:controlInfo:add')!=-1">新增摄像头</p>
- <p class="del-button cursor_pointer" @click="allDel" v-if="userPermsData.indexOf('business:controlInfo:remove')!=-1">批量删除</p>
- <p class="text-p">已选择{{tableNum}}条</p>
- </div>
- <!--表格-->
- <div class="table-box">
- <el-table
- ref="multipleTable"
- :row-key="getRowKey"
- :data="tableData"
- tooltip-effect="dark"
- style="width: 100%"
- @select-all="handleSelectionChange"
- @select="handleSelectionChange">
- <el-table-column
- :reserve-selection="true"
- type="selection"
- width="51">
- </el-table-column>
- <el-table-column
- type="index"
- :index="indexMethod"
- label="序号"
- width="80">
- </el-table-column>
- <el-table-column
- prop="repertoryName"
- label="仓库名称"
- width="135">
- </el-table-column>
- <el-table-column
- prop="cameraNum"
- label="摄像头数量"
- width="140">
- </el-table-column>
- <el-table-column
- prop="cameraCompany"
- label="摄像头厂家"
- width="132">
- </el-table-column>
- <el-table-column
- prop="cameraInfo"
- label="摄像头信息"
- width="282">
- </el-table-column>
- <el-table-column
- label="查看监控"
- width="135">
- <template slot-scope="scope">
- <p class="button-p" @click="goPage(scope.row)">查看</p>
- </template>
- </el-table-column>
- <el-table-column
- prop="remark"
- label="备注"
- width="254">
- </el-table-column>
- <el-table-column
- prop="createTime"
- label="创建时间"
- width="241">
- </el-table-column>
- <el-table-column
- label="操作"
- width="260">
- <template slot-scope="scope">
- <div class="table-min-button">
- <div class="cursor_pointer"
- v-if="userPermsData.indexOf('business:controlInfo:edit')!=-1"
- @click="handleEdit(scope.$index, scope.row)">
- <img src="~@/assets/images/icon_37.png">
- <p>编辑</p>
- </div>
- <div class="cursor_pointer"
- v-if="userPermsData.indexOf('business:controlInfo:remove')!=-1"
- @click="handleDelete(scope.$index, scope.row)">
- <img src="~@/assets/images/icon_38.png">
- <p>删除</p>
- </div>
- </div>
- </template>
- </el-table-column>
- </el-table>
- </div>
- <el-pagination
- background
- @current-change="handleCurrentChange"
- layout="prev, pager, next"
- :current-page="currentPage"
- :page-size="pagesize"
- :total="total">
- </el-pagination>
- </div>
- <new-modify
- v-if="newModifyPageType==2"
- :newModifyData="newModifyData"
- @newModifyLeftClick="newModifyLeftClick"
- @newModifyRightClick="newModifyRightClick"
- ></new-modify>
- <warehouse-monitoring-information
- :deviceIds="deviceIds"
- v-if="newModifyPageType==3">
- </warehouse-monitoring-information>
- <interactive-window
- v-if="windowType"
- :windowData="windowData"
- @windowLeftClick="windowLeftClick"
- @windowRightClick="windowRightClick"
- ></interactive-window>
- </div>
- </template>
- <script>
- import { deptListOrg,controlInfoList,controlInfoDel,businessControlInfo,businessControlInfoPut } from '@/api/userApi'
- export default {
- name: "videoMonitoring",//视频监控
- components:{
- newModify: resolve => {require(['@/components/newModify'], resolve)},//新建-修改组件
- interactiveWindow: resolve => {require(['@/components/interactiveWindow'], resolve)},//提示弹窗
- warehouseMonitoringInformation: resolve => {require(['@/components/combatReadinessFacilityStatusMonitoring/videoMonitoringView/warehouseMonitoringInformation'], resolve)},//仓库监控信息
- },
- data () {
- return {
- userPermsData:localStorage.getItem('userPerms'),
- //下拉框
- downList:[
- {
- name:"请选择类型",
- downType:false,
- downText:"全部",
- mouseColor:"",
- list:[],
- idType:[],
- },
- ],
- //表格限制
- pagesize: 8,
- currentPage:1,
- //列表总数
- total:0,
- /*数据*/
- tableData:[],
- //选中数据
- multipleSelection:[],
- // 弹窗状态
- windowType:false,
- //弹窗组件数据
- windowData:{},
- //勾选数量
- tableNum:0,
- // 新增-修改页面状态
- newModifyPageType:1,
- //新增-修改页面数据
- newModifyData:{},
- deviceIds:'',
- }
- },
- created(){
- },
- mounted() {
- this.deptListOrg();
- },
- methods: {
- //点击查询
- clickQuery(){
- this.currentPage = 1;
- this.getListData();
- },
- // 单独删除
- async clickDel(id){
- let ids = [];
- ids.push(id)
- const { data } = await controlInfoDel(ids);
- if(data.code==200){
- this.windowData = {
- type:"2",
- title:"提示",
- text:"操作成功",
- };
- this.windowType = !this.windowType;
- this.$refs.multipleTable.clearSelection();
- this.getListData();
- }
- },
- //批量删除
- async clickAllDel () {
- let self = this;
- let ids = [];
- for(let i=0;i<self.multipleSelection.length;i++){
- ids.push(self.multipleSelection[i].id)
- }
- const { data } = await controlInfoDel(ids);
- if(data.code==200){
- this.windowData = {
- type:"2",
- title:"提示",
- text:"操作成功",
- };
- this.windowType = !this.windowType;
- this.$refs.multipleTable.clearSelection();
- this.getListData();
- }
- },
- //接收单位-下拉列表
- async deptListOrg () {
- let self = this;
- const { data } = await deptListOrg();
- if(data.code==200){
- let list = [];
- let idType = [];
- list.push("全部");
- idType.push("");
- for(let i=0;i<data.data.length;i++){
- list.push(data.data[i].deptName);
- idType.push(data.data[i].deptId);
- }
- self.downList[0].list = list;
- self.downList[0].idType = idType;
- this.getListData();
- }
- },
- //数据列表
- async getListData () {
- let self = this;
- let obj={
- pageSize:self.pagesize,
- pageNum:self.currentPage,
- "params[beginTime]":self.playTime=="请选择时间"?"":self.playTime,
- "params[endTime]":self.endTime=="请选择时间"?"":self.endTime,
- };
- for(let i=0;i<self.downList[0].list.length;i++){
- if(self.downList[0].downText==self.downList[0].list[i]){
- obj.repertoryId = self.downList[0].idType[i];
- }
- }
- const { data } = await controlInfoList(obj);
- if(data.code==200){
- this.tableData = data.rows;
- this.total = data.total;
- this.tableNum = 0;
- this.$forceUpdate();
- }
- },
- //视频查看頁面
- goPage(row){
- console.log('row',row);
- this.$set(this,'deviceIds',row.cameraInfo);
- this.newModifyPageType = 3;
- },
- //供子方法调用
- outPage(){
- this.newModifyPageType = 1;
- },
- //下拉菜单进入悬浮状态
- colorTypeEnter(type,item){
- this.downList[type].mouseColor=item;
- },
- //下拉菜单离开悬浮状态
- colorTypeLeave(type){
- this.downList[type].mouseColor = "";
- },
- // 下拉菜单选项悬浮事件
- dropdownClickOpen(type,state){
- if(state==1){
- this.downList[type].downType = true
- }else if(state==2){
- this.downList[type].downType = false
- }
- },
- // 下拉菜单点击事件
- dropdownClick(type,item){
- this.downList[type].downText = item;
- this.downList[type].downType = false;
- },
- //新建组件状态切换
- clickPageType(){
- let self = this;
- let list = JSON.parse(JSON.stringify(self.downList[0].list));
- list.splice(0,1);
- let newData = {
- title:"新增摄像头",
- list:[
- {
- name:"仓库名称",
- value:"",
- list:list,
- },
- {
- name:"摄像头数量",
- value:"1",
- elNumber:true,
- },
- {
- name:"摄像头厂家",
- value:"",
- list:["大华","海康"],
- },
- {
- name:"摄像头Id",
- value:"",
- },
- {
- name:"备注",
- value:"",
- textArea:true,
- },
- ]
- };
- this.newModifyData = {...newData};
- this.newModifyPageType = 2;
- },
- // 批量删除
- allDel(){
- if(this.multipleSelection[0]){
- this.windowData = {
- type:"1",
- title:"提示",
- text:"确定要批量删除这些信息吗?",
- leftButton:"取消",
- rightButton:"确定",
- cType:"1",
- };
- this.windowType = !this.windowType;
- }else{
- this.windowData = {
- type:"3",
- title:"提示",
- text:"您没有勾选任何数据!",
- leftButton:"取消",
- rightButton:"确定",
- };
- this.windowType = !this.windowType;
- }
- },
- //表格绑定ID
- getRowKey (row) {
- return row.id
- },
- indexMethod(index) {
- return (this.currentPage-1)*this.pagesize+index+1;
- },
- //翻页
- handleCurrentChange(val) {
- console.log(`当前页: `,val);
- this.currentPage = val;
- this.getListData();
- },
- //编辑
- handleEdit(index, row) {
- let self = this;
- let list = JSON.parse(JSON.stringify(self.downList[0].list));
- list.splice(0,1);
- let newData = {
- title:"编辑",
- id:row.id,
- list:[
- {
- name:"仓库名称",
- value:row.repertoryName,
- list:list,
- },
- {
- name:"摄像头数量",
- value:row.cameraNum,
- elNumber:true,
- },
- {
- name:"摄像头厂家",
- value:row.cameraCompany,
- list:["大华","海康"],
- },
- {
- name:"摄像头Id",
- value:row.cameraInfo,
- },
- {
- name:"备注",
- value:row.remark,
- textArea:true,
- },
- ]
- };
- this.newModifyData = {...newData};
- this.newModifyPageType = 2;
- },
- // 删除
- handleDelete(index, row) {
- this.windowData = {
- type:"1",
- title:"提示",
- text:"确定要删除这条信息吗?",
- leftButton:"取消",
- rightButton:"确定",
- cType:"2",
- newId:row.id
- };
- this.windowType = !this.windowType;
- },
- //勾选
- handleSelectionChange(val) {
- this.multipleSelection = val;
- this.tableNum = this.multipleSelection.length
- },
- //弹窗组件左侧按钮方法-对应取消方法
- windowLeftClick(){
- this.windowType = !this.windowType;
- },
- //弹窗组件右侧按钮方法
- windowRightClick(data){
- this.windowType = false;
- if(data.cType==1){
- this.clickAllDel();
- }else if(data.cType==2){
- this.clickDel(data.newId);
- }
- },
- //新增-修改组件内左侧按钮事件
- newModifyLeftClick(){
- this.newModifyPageType = 1;
- },
- //新增-修改组件内左侧按钮事件
- newModifyRightClick(data){
- if(data.id){
- this.businessControlInfoPut(data);
- }else {
- this.businessControlInfo(data);
- }
- },
- //新增
- async businessControlInfo (obj) {
- let self = this;
- console.log("右键传值",obj);
- let newObj = {};
- for(let i=0;i<obj.list.length;i++){
- if(obj.list[i].name == '仓库名称'){
- for(let o=0;o<self.downList[0].list.length;o++){
- if(self.downList[0].list[o] == obj.list[i].value){
- newObj.repertoryName = self.downList[0].list[o];
- newObj.repertoryId = self.downList[0].idType[o];
- }
- }
- }else if(obj.list[i].name == '摄像头数量'){
- newObj.cameraNum = obj.list[i].value;
- }else if(obj.list[i].name == '摄像头厂家'){
- newObj.cameraCompany = obj.list[i].value;
- }else if(obj.list[i].name == '摄像头Id'){
- newObj.cameraInfo = obj.list[i].value;
- }else if(obj.list[i].name == '备注'){
- newObj.remark = obj.list[i].value;
- }
- }
- const { data } = await businessControlInfo(newObj);
- if(data.code==200){
- this.newModifyPageType = 1;
- this.windowData = {
- type:"2",
- title:"提示",
- text:"操作成功",
- leftButton:"取消",
- rightButton:"确定",
- };
- this.windowType = !this.windowType;
- this.getListData();
- }
- },
- //编辑
- async businessControlInfoPut (obj) {
- let self = this;
- let newObj = {
- id:obj.id
- };
- for(let i=0;i<obj.list.length;i++){
- if(obj.list[i].name == '仓库名称'){
- for(let o=0;o<self.downList[0].list.length;o++){
- if(self.downList[0].list[o] == obj.list[i].value){
- newObj.repertoryName = self.downList[0].list[o];
- newObj.repertoryId = self.downList[0].idType[o];
- }
- }
- }else if(obj.list[i].name == '摄像头数量'){
- newObj.cameraNum = obj.list[i].value;
- }else if(obj.list[i].name == '摄像头厂家'){
- newObj.cameraCompany = obj.list[i].value;
- }else if(obj.list[i].name == '摄像头Id'){
- newObj.cameraInfo = obj.list[i].value;
- }else if(obj.list[i].name == '备注'){
- newObj.remark = obj.list[i].value;
- }
- }
- const { data } = await businessControlInfoPut(newObj);
- if(data.code==200){
- this.newModifyPageType = 1;
- this.windowData = {
- type:"2",
- title:"提示",
- text:"操作成功",
- leftButton:"取消",
- rightButton:"确定",
- };
- this.windowType = !this.windowType;
- this.getListData();
- }
- },
- }
- }
- </script>
- <style scoped lang="stylus">
- .max-big-box
- display flex
- flex-direction column
- flex:1;
- .big-max-box
- display flex
- flex-direction column
- flex:1;
- //搜索与操作按钮
- .top-box
- height:30px;
- display flex
- .input-box
- width:1370px;
- display flex
- margin-left:105px;
- .search-input
- height:28px;
- width:290px;
- border:1px solid $theme;
- padding-left:10px;
- .dropdown-box
- display flex
- color:$color_ff;
- z-index:1;
- margin-left:30px;
- .dropdown-left-title
- line-height:30px;
- font-size:$font_14;
- .dropdown-right-box
- font-size:$font_12;
- .dropdown-text
- width:160px;
- height:30px;
- line-height:30px;
- background:url("~@/assets/images/button_15.png");
- background-size:100% 100%;
- .dropdown-for-max
- background:$backColor1;
- border-bottom-right-radius 4px
- border-bottom-left-radius 4px
- p
- width:160px;
- height:30px;
- line-height:30px;
- .color-A
- /*
- background:$backColor2 !important;
- color:$color_ff !important;
- */
- color:$theme !important;
- border-bottom-right-radius 4px
- border-bottom-left-radius 4px
- .time-box
- width:400px;
- display flex
- margin-left:20px;
- p
- color:$color_ff;
- p:nth-child(1)
- width:120px;
- line-height:30px;
- font-size:$font_14;
- p:nth-child(2)
- width:120px;
- height:30px;
- background url("~@/assets/images/button_08.png")
- background-size 100% 100%
- font-size:$font_12;
- line-height:30px;
- p:nth-child(3)
- width:27px;
- line-height:30px;
- p:nth-child(4)
- width:120px;
- height:30px;
- background url("~@/assets/images/button_08.png")
- background-size 100% 100%
- line-height:30px;
- font-size:$font_12;
- .button-box
- margin-left:32px;
- display flex
- height:30px;
- width:80px;
- background:url("~@/assets/images/button_03.png");
- background-size:100% 100%;
- img
- display block
- height:20px;
- width:20px;
- margin:5px 6px 0 13px;
- p
- line-height:30px;
- font-size:$font_12;
- color:$color_ff;
- .add-button
- width:110px;
- height:30px;
- background:url("~@/assets/images/button_06_1.png");
- background-size:100% 100%;
- line-height:30px
- color:$color_ff;
- font-size:$font_12;
- padding-left:40px;
- text-align left
- .del-button
- margin-left:30px;
- width:110px;
- height:30px;
- background:url("~@/assets/images/button_05_1.png");
- background-size:100% 100%;
- line-height:30px
- color:$color_ff;
- font-size:$font_12;
- padding-left:41px;
- text-align left
- .text-p
- width:90px;
- color:$color_ff;
- line-height:30px
- font-size:$font_12;
- //表格
- .table-box
- width:1710px !important;
- margin:20px 105px;
- text-align center !important
- .button-p
- width:60px;
- height:20px;
- margin:0 auto;
- color:#333;
- background:url("~@/assets/images/button_03.png");
- background-size 100% 100%
- border-radius:4px;
- cursor:pointer
- .colorA
- color:$theme3;
- .colorB
- color:$theme2;
- .colorC
- color:$theme1;
- .table-min-button
- width:140px;
- margin:0 auto;
- display flex
- div:nth-child(1)
- height:20px;
- width:60px;
- font-size:$font_14;
- color:$theme;
- display flex
- margin-right:11px;
- img
- display block
- height:20px;
- width:20px;
- margin-right:4px;
- div:nth-child(2)
- height:20px;
- width:70px;
- font-size:$font_14;
- color:$theme3;
- display flex
- img
- display block
- height:20px;
- width:20px;
- margin-right:4px;
- //时间日历
- .time-max-big-box
- z-index 6
- height:100%;
- width:100%;
- position: absolute
- top:0;
- left:0;
- background:rgba(0,0,0,0.3);
- .time-big-box
- z-index 6
- height:750px;
- width:660px;
- position: absolute
- top:50%;
- left:50%;
- transform :translate3d(-50%,-50%,0)
- margin:auto;
- background $color_ff
- border-radius:8px;
- border:4px solid $theme;
- .button-box
- display flex
- color:$color_ff;
- width:260px;
- margin:20px auto;
- p:nth-child(1)
- height:30px;
- line-height:30px;
- width:120px;
- background:url("~@/assets/images/button_10.png");
- background-size 100% 100%
- p:nth-child(2)
- margin-left:20px;
- height:30px;
- line-height:30px;
- width:120px;
- background:url("~@/assets/images/button_05.png");
- background-size 100% 100%
- p:nth-child(3)
- margin-left:20px;
- height:30px;
- line-height:30px;
- width:120px;
- background:url("~@/assets/images/button_02.png");
- background-size 100% 100%
- //修改日期选择样式
- /*
- .el-calendar
- background $color_ff
- */
- //修改table表格样式
- .el-table
- background rgba(6,177,240,0.2)
- .el-table /deep/ tr
- .el-table /deep/ th
- background rgba(6,177,240,0)
- .el-table::before
- height:0;
- .el-table /deep/ .cell
- max-height:46px;
- display: -webkit-box;
- -webkit-box-orient: vertical;
- -webkit-line-clamp: 2;
- overflow: hidden;
- .el-table /deep/ td
- .el-table /deep/ th.is-leaf
- border-bottom:0!important;
- .el-table /deep/ .el-checkbox__inner
- //background rgba(6,177,240,0.2)
- border 1px solid #216f93 !important
- .el-table /deep/ thead
- color:$color_ff;
- .el-table
- color:$color_a1
- .el-table /deep/ th
- text-align-last: center;
- .el-table /deep/ td
- text-align-last: center;
- .el-table /deep/ tbody tr:hover > td
- background rgba(6,177,240,0.2)
- color:$theme;
- .el-table /deep/ .el-checkbox
- width:14px;
- margin:0 auto;
- display block
- //修改动作条样式
- .el-pagination.is-background /deep/ .btn-next
- .el-pagination.is-background /deep/ .btn-prev
- .el-pagination.is-background /deep/ .el-pager li
- background:url("~@/assets/images/button_13.png");
- color:$color_ff;
- .el-pagination.is-background /deep/ .el-pager li:not(.disabled).active
- background:url("~@/assets/images/button_14.png");
- color:$color_ff;
- .colorA
- color :$theme;
- ::-webkit-input-placeholder
- color: $border_1;
- ::-moz-placeholder
- color: $border_1;
- ::-ms-input-placeholder
- color: $border_1;
- </style>
|