Your Name vor 1 Jahr
Ursprung
Commit
e1f1aa2009

+ 10 - 0
package-lock.json

@@ -4253,6 +4253,11 @@
         "assert-plus": "^1.0.0"
       }
     },
+    "dayjs": {
+      "version": "1.11.10",
+      "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
+      "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
+    },
     "de-indent": {
       "version": "1.0.2",
       "resolved": "https://registry.nlark.com/de-indent/download/de-indent-1.0.2.tgz",
@@ -12329,6 +12334,11 @@
       "integrity": "sha1-NOWPtls2z1mvrxT1AyiOXleLFVQ=",
       "dev": true
     },
+    "vue-count-to": {
+      "version": "1.0.13",
+      "resolved": "https://registry.npmjs.org/vue-count-to/-/vue-count-to-1.0.13.tgz",
+      "integrity": "sha512-6R4OVBVNtQTlcbXu6SJ8ENR35M2/CdWt3Jmv57jOUM+1ojiFmjVGvZPH8DfHpMDSA+ITs+EW5V6qthADxeyYOQ=="
+    },
     "vue-eslint-parser": {
       "version": "7.6.0",
       "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-7.6.0.tgz?cache=0&sync_timestamp=1614679548045&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-eslint-parser%2Fdownload%2Fvue-eslint-parser-7.6.0.tgz",

+ 2 - 0
package.json

@@ -10,6 +10,7 @@
     "dependencies": {
         "@videojs/http-streaming": "^2.11.2",
         "core-js": "^3.6.5",
+        "dayjs": "^1.11.10",
         "echarts": "^5.1.2",
         "element-ui": "^2.4.5",
         "flv.js": "^1.6.2",
@@ -21,6 +22,7 @@
         "videojs-contrib-hls": "^5.15.0",
         "videojs-flash": "^2.2.1",
         "vue": "^2.6.11",
+        "vue-count-to": "^1.0.13",
         "vue-router": "^3.2.0",
         "vue-video-player": "^5.0.2",
         "vuex": "^3.4.0"

+ 519 - 0
src/components/SD-school/Spring-frame/XFJZ.vue

@@ -0,0 +1,519 @@
+<template>
+    <div>
+        <el-row class="ba commonWidth" v-if="state"><!--研讨室、接待室、活动区、教室信息弹框-->
+            <el-col class="top">
+                <el-col class="title">
+                    <img src="../../../assets/image/arrow.png" alt="" />
+                    <span>房间信息</span>
+                    <img src="../../../assets/image/icon1.png" alt="" class="equipment-icon"/>
+                </el-col>
+                <p class="close" @click="close"></p>
+            </el-col>
+            <el-col class="contain scroll">
+                <el-col class="title">
+                    <span class="type">设备名称:</span>
+                    <span class="data">{{Message.data.deviceName ? Message.data.deviceName : "--"}}</span>
+                    
+                </el-col>
+
+                <el-col class="title">
+                    <span class="type">设备编号:</span>
+                    <span class="data" >{{Message.data.registerDeviceId ? Message.data.registerDeviceId : "--"}}</span>
+                    
+                </el-col>
+                <el-col class="title">
+                    <span class="type">制冷状态:</span>
+                    <el-switch 
+                        @change="control(SBZLMSZT)"
+                        v-model="SBZLMSZT.value"
+                        active-color="#1C52D8"
+                        inactive-color="#ccc">
+                    </el-switch>
+                </el-col>
+                <el-col class="title">
+                    <span class="type">制热状态:</span>
+                    <el-switch 
+                        @change="control(SBZRMSZT)"
+                        v-model="SBZRMSZT.value"
+                        active-color="#1C52D8"
+                        inactive-color="#ccc">
+                    </el-switch>
+                </el-col>
+                <el-col class="title">
+                    <span class="type">新风阀状态:</span>
+                    <el-switch 
+                        @change="control(XFFYXZT)"
+                        v-model="XFFYXZT.value"
+                        active-color="#1C52D8"
+                        inactive-color="#ccc">
+                    </el-switch>
+                </el-col>
+                <el-col class="title">
+                    <span class="type">回风阀状态:</span>
+                    <el-switch 
+                        @change="control(HFFYXZT)"
+                        v-model="HFFYXZT.value"
+                        active-color="#1C52D8"
+                        inactive-color="#ccc">
+                    </el-switch>
+                </el-col>
+                <el-col class="title">
+                    <span class="type">送风机状态:</span>
+                    <el-switch 
+                        @change="control(SFJYX)"
+                        v-model="SFJYX.value"
+                        active-color="#1C52D8"
+                        inactive-color="#ccc">
+                    </el-switch>
+                </el-col>
+                <el-col class="title">
+                    <span class="type">排风机状态:</span>
+                    <el-switch 
+                        @change="control(PFJYX)"
+                        v-model="PFJYX.value"
+                        active-color="#1C52D8"
+                        inactive-color="#ccc">
+                    </el-switch>
+                </el-col>
+                <el-col class="title">
+                    <span class="type">热水泵状态:</span>
+                    <el-switch 
+                        @change="control(HRSBYX)"
+                        v-model="HRSBYX.value"
+                        active-color="#1C52D8"
+                        inactive-color="#ccc">
+                    </el-switch>
+                </el-col>
+                 <el-col class="title">
+                    <span class="type">冷水阀状态:</span>
+                    <el-switch 
+                        @change="control(LRSFYX)"
+                        v-model="LRSFYX.value"
+                        active-color="#1C52D8"
+                        inactive-color="#ccc">
+                    </el-switch>
+                </el-col>
+                <el-col class="title">
+                    <span class="type">开关状态:</span>
+                    <el-switch 
+                        @change="control(YCQDZT)"
+                        v-model="YCQDZT.value"
+                        active-color="#1C52D8"
+                        inactive-color="#ccc">
+                    </el-switch>
+                </el-col>
+            </el-col>
+        </el-row>
+  </div>
+</template>
+<script>
+import { ba, revise } from "@/plugins/api"
+import { Message } from 'element-ui'
+export default {
+    props:['resInfo'],
+    data() {
+        return {
+            state:false,
+            dev:null,//设备id
+            SBZLMSZT:{
+                name:null,
+                value:false,
+            },//制冷状态
+            SBZRMSZT:{
+                name:null,
+                value:false,
+            },//制热状态
+            XFFYXZT:{
+                name:null,
+                value:false,
+            },//新风阀状态
+            HFFYXZT:{
+                name:null,
+                value:false,
+            },//回风阀状态
+            SFJYX:{
+                name:null,
+                value:false,
+            },//送风机状态
+            PFJYX:{
+                name:null,
+                value:false,
+            },//排风机状态
+            HRSBYX:{
+                name:null,
+                value:false,
+            },//热水泵状态
+            LRSFYX:{
+                name:null,
+                value:false,
+            },//冷水阀门状态
+            YCQDZT:{
+                name:null,
+                value:false,
+            },//开关状态
+            Message:{
+               data:{},
+                sn:undefined,
+            },
+        }
+    },
+    mounted(){
+        this.getData()
+    },
+    methods: {
+        getData(){//获取数据赋值
+            this.Message.data = this.resInfo
+            this.dev = this.resInfo.deviceId
+            this.ba(this.Message.data.registerDeviceId)
+            
+
+        },
+        ba(id){
+            ba({"deviceId":id}).then(res =>{ 
+                this.state = true
+                if(res.data){
+                    this.Message.sn = res.data.remark
+                    let data = JSON.parse(res.data.alarmContent)
+                    for(let i =0; i<data.length; i++){
+                        if(data[i].m.substring(data[i].m.length-9) == "_SBZLMSZT"){
+                            this.SBZLMSZT.name = data[i].m
+                            this.SBZLMSZT.value = data[i].v == "0" ? false : true
+                        }
+                        if(data[i].m.substring(data[i].m.length-9) == "_SBZRMSZT"){
+                            this.SBZRMSZT.name = data[i].m
+                            this.SBZRMSZT.value = data[i].v == "0" ? false : true
+                        }
+                        if(data[i].m.substring(data[i].m.length-8) == "_XFFYXZT"){
+                            this.XFFYXZT.name = data[i].m
+                            this.XFFYXZT.value = data[i].v == "0" ? false : true
+                        }
+                        if(data[i].m.substring(data[i].m.length-8) == "_HFFYXZT"){
+                            this.HFFYXZT.name = data[i].m
+                            this.HFFYXZT.value = data[i].v == "0" ? false : true
+                        }
+                        if(data[i].m.substring(data[i].m.length-6) == "_SFJYX"){
+                            this.SFJYX.name = data[i].m
+                            this.SFJYX.value = data[i].v == "0" ? false : true
+                        }
+                        if(data[i].m.substring(data[i].m.length-6) == "_PFJYX"){
+                            this.PFJYX.name = data[i].m
+                            this.PFJYX.value = data[i].v == "0" ? false : true
+                        }
+                        if(data[i].m.substring(data[i].m.length-7) == "_HRSBYX"){
+                            this.HRSBYX.name = data[i].m
+                            this.HRSBYX.value = data[i].v == "0" ? false : true
+                        }
+                        if(data[i].m.substring(data[i].m.length-7) == "_LRSFYX"){
+                            this.LRSFYX.name = data[i].m
+                            this.LRSFYX.value = data[i].v == "0" ? false : true
+                        }
+                        if(data[i].m.substring(data[i].m.length-7) == "_YCQDZT"){
+                            this.YCQDZT.name = data[i].m
+                            this.YCQDZT.value = data[i].v == "0" ? false : true
+                        }
+
+                    }
+                }
+            })  
+        },
+        control(data){//控制
+            let arr = {
+                "type":"cmd/set",
+                "data":{
+                    "dev":this.dev,
+                    "m":data.name,
+                    "v":data.value == true ? 1 : data.value == false ? 0 : data.value
+                },
+                
+            }
+            revise({"message":JSON.stringify(arr),"sn":this.Message.sn}).then(res =>{ 
+                Message({
+                    message:"信息已提交,请在2分钟后查看信息变更情况",
+                    type: 'success'
+                });
+            })
+        },
+        noPermitInput(e){      
+            var evt = window.event || e ;    
+            if(isIE()){    
+                evt.returnValue=false; //ie 禁止键盘输入    
+            }else{    
+                evt.preventDefault(); //fire fox 禁止键盘输入    
+            }  
+        },   
+        isIE() {    
+            if (window.navigator.userAgent.toLowerCase().indexOf("msie") >= 1)    
+                return true;    
+            else    
+                return false;    
+        },
+        close(){//关闭
+            this.state = false
+            this.$emit("close",false)
+        },
+    },
+};
+</script>
+
+<style lang="scss" scoped>
+.commonWidth{
+    width:450px;
+    display: block;
+    margin:0 auto; 
+    .top{
+        height: 39px;
+        line-height: 35px;
+        background: rgba(28,82,216,.6);
+        border: 1px solid #1C52D8;
+        border-bottom:none;
+        border-radius: 4px 4px  0 0;
+        .title{
+            width:50%;
+            font-size: 16px;
+            margin-left:16px;
+            vertical-align: middle;
+            color:#38E7EE;
+            vertical-align: middle;
+            img{
+                margin-right:4px;
+                vertical-align: middle;
+            }
+            span{
+                margin-left:16px;
+                vertical-align: middle;
+            }
+            .equipment-icon{
+                width:16px;
+                position: absolute;
+                top:14px;
+                right:45%;
+            }
+        }
+        .close{
+            width:16px;
+            height:16px;
+            background: url('../../../assets/image/close.png') ;
+            float:right;
+            margin:12px 6px 0 0;
+        }
+    } 
+    .contain{
+        background-color:rgba(0,22,103,.85);
+        border-radius: 0 0 4px 4px;
+    }
+}
+.ba{
+    .contain{
+        padding: 10px 10px 25px;
+        height:300px;
+        overflow-y:scroll;
+        .title{
+            margin-top:10px;
+            font-size: 14px;
+            letter-spacing: 1px;
+            .type{
+                width:25%;
+                text-align: right;
+                display: inline-block;
+            }
+            .data{
+                width:75%;
+                text-align: left;
+                display: inline-block;
+                vertical-align: top;
+                input{
+                    width:12%;
+                    border-radius: 5px;
+                    padding:0 0 0 6px;
+                     height:20px;
+                    line-height: 20px;
+                }
+               
+                button{
+                    width:40px;
+                    height:25px;
+                    line-height: 25px;
+                    background-color: rgba(28,82,216,.6);
+                    color:#fff;
+                    font-size: 12px;
+                    border:none;
+                    text-align: center;
+                    border-radius: 4px;
+                }
+            }
+        }
+        
+    }
+}
+/deep/ .el-input--small{
+    width:93% !important;
+}
+/deep/ .el-input--small .el-input__inner{
+    height:25px;
+    line-height: 25px;
+}
+/deep/ .el-input__inner{
+    color:#fff;
+    border-color:#fff;
+}
+/deep/ .el-input__icon{
+    color:#fff !important
+}
+/deep/ .el-input__suffix{
+    top:2px
+}
+/deep/ .el-table__row>td {
+  border: none;
+}
+/deep/  .el-input__icon{
+font-size:10px;-webkit-transform:scale(0.4);
+}
+
+/deep/ .el-table::before {
+  height: 0px;
+}
+.scroll{
+    overflow-y: scroll;
+    overflow-x: hidden;
+}
+// ::-webkit-scrollbar {
+//   /*滚动条整体样式*/
+//   width : 0px;  /*高宽分别对应横竖滚动条的尺寸*/
+//   height: 1px;
+//   overflow: hidden;
+// }
+// ::-webkit-scrollbar-thumb {
+//   /*滚动条里面小方块*/
+//   border-radius: 1px;
+//   box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
+//   background   : rgba(28,82,216,1);
+// }
+// ::-webkit-scrollbar-track {
+//   /*滚动条里面轨道*/
+//   box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
+//   border-radius: 1px;
+//   background   : #ededed;
+// }
+
+// 对话框
+/deep/ .el-dialog{
+    background-color: transparent;
+    top:15%;
+}
+/deep/ .el-dialog__header{
+    padding:0;
+    padding-bottom:0;
+}
+/deep/ .el-dialog__body{
+    padding:0;
+}
+/deep/ .el-dialog__headerbtn .el-dialog__close{
+    display: none;
+}
+
+
+// table
+/deep/ .el-table--group, /deep/ .el-table--border{
+    border:none;
+}
+/deep/ .el-table thead{
+    color:#fff;
+    // background-color: rgba(28,82,216,.2);
+}
+
+/deep/ .el-table--border th{
+    border:1px solid #fff;
+    border-bottom:none;
+}
+
+/deep/ .el-table--border td{
+    border:1px solid #fff
+}
+ /deep/  .el-table, .el-table__expanded-cell {
+    background-color: transparent;//这是设置透明背景色
+    color:#fff;
+    border-collapse: collapse;
+    
+  }
+
+/deep/ .el-table__empty-text{
+    color:#fff;
+    font-size: 10px;
+    letter-spacing: 2px;
+}
+
+
+// data
+/deep/ .el-date-editor{
+    border:1px solid #ccc;
+    background-color: transparent;
+    height:25px;
+    line-height: 20px;
+    padding:0;
+    margin-top:2px;
+    box-sizing: border-box;
+}
+/deep/ .el-range-input, /deep/ .el-input__icon el-range__close-icon{
+    background-color: transparent;
+    color:#fff;
+    font-size: 12px;
+    text-align: top;
+    padding:0;
+    position: relative;
+    top:-4px
+}
+/deep/ .el-range__icon{
+    display: none;
+}
+/deep/ .el-date-editor--datetimerange.el-input__inner{
+    width:77%;
+    
+    display: inline-block;
+    
+}
+/deep/ ::placeholder{
+    color:#fff
+}
+/deep/ .el-range-separator{
+    color:#fff;
+    position: relative;
+    top:-4px
+}
+/deep/table,/deep/ tr,/deep/ td{
+    border-collapse: collapse !important;
+}
+/deep/ tr:hover, /deep/ td:hover, /deep/ table:hover{
+    background-color: none !important;
+}
+/deep/ .el-table__empty-block{
+    border:1px solid #fff;
+}
+/deep/ .el-table tbody tr:hover>td { 
+    background-color:transparent
+}
+
+::-webkit-scrollbar {
+  /*滚动条整体样式*/
+  width : 0px;  /*高宽分别对应横竖滚动条的尺寸*/
+  height: 0px;
+  }
+::-webkit-scrollbar-thumb {
+  /*滚动条里面小方块*/
+  border-radius: 0px;
+  box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
+  background   : #535353;
+  }
+ ::-webkit-scrollbar-track {
+  /*滚动条里面轨道*/
+  box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
+  border-radius: 0px;
+  background   : #ededed;
+  }
+
+::-webkit-scrollbar {
+	    display: none
+	  }
+      /deep/.el-table--scrollable-y ::-webkit-scrollbar {
+  display: none;
+}
+</style>

+ 7 - 1
src/components/SD-school/Spring-frame/ba.vue

@@ -218,7 +218,13 @@ export default {
     methods: {
         getData(){//获取数据赋值
             this.Message.baMessage1 = this.resInfo
-            this.ba(this.Message.baMessage1.registerDeviceId)
+            console.log(this.Message.baMessage1)
+            if(this.Message.baMessage1.deviceName.indexOf("机组")){
+                this.ba(this.Message.baMessage1.registerDeviceId)
+            }else{
+                this.ba(this.Message.baMessage1.registerDeviceId)
+            }
+            
 
         },
         ba(id){

+ 0 - 1256
src/components/SD-school/Spring-frame/index copy.vue

@@ -1,1256 +0,0 @@
-<template>
-    <div class="Spring-frame">
-        <!-- <el-dialog :visible.sync="centerDialogVisible"> -->
-            <el-row class="warning alert" v-if="warning.state"><!--告警推送弹框-->
-                <el-col class="contain">
-                    <el-col class="title">{{warning.warningMessage.deviceName ? "设备名称:" + warning.warningMessage.deviceName : "设备名称:--"}}</el-col>
-                    <el-col class="content">{{warning.warningMessage.alarmContent ? "告警信息:" + warning.warningMessage.alarmContent : "告警信息:--"}}</el-col>
-                    <el-col class="time">{{warning.warningMessage.createTime ? "告警时间:" + warning.warningMessage.createTime : "告警时间:--"}}</el-col>
-                </el-col>
-            </el-row>
-            <el-row class="meeting commonWidth" v-if="meeting.state"><!--会议信息弹框-->
-                <el-col class="top">
-                    <el-col class="title">
-                        <img src="../../../assets/image/arrow.png" alt="" />
-                        xxx会议室
-                    </el-col>
-                    <p class="close" @click="close"></p>
-                </el-col>
-                <el-col class="contain">
-                    <el-col class="section1 section" >
-                        <el-col class="title">会议预约列表</el-col>
-                        <el-table :data="meeting.meetingMessage.order" border style="width: 100%;height:104px" class="scroll"  id="table1" v-infinite-scroll="moremeetingMsg1">
-                            <el-table-column prop="meetingStartTime,meetingEndTime" label="预约使用日期" width="240">
-                                <template  slot-scope="scope">
-                                    {{scope.row.meetingStartTime}} ~ {{scope.row.meetingEndTime}}
-                                </template>  
-                            </el-table-column>
-                            <el-table-column prop="meetingRoomName" label="会议名称" width="80"></el-table-column>
-                            <el-table-column prop="markPerson" label="预约人"> </el-table-column>
-                        </el-table>
-                    </el-col>
-                    <el-col class="section2 section">
-                        <el-col class="title" style="width:20%">历史会议信息</el-col>
-                        <el-date-picker
-                            v-model="time"
-                            type="datetimerange"
-                            range-separator="~"
-                            start-placeholder="开始时间"
-                            end-placeholder="结束时间"
-                            @change="changeDate"
-                            >
-                        </el-date-picker>
-                        <el-table :data="meeting.meetingMessage.history" border style="width: 100%;height:80px" class="scroll"  v-infinite-scroll="moreMeetingMsg2">
-                            <el-table-column prop="meetingRoomName" label="会议名称" width="64"></el-table-column>
-                            <el-table-column prop="meetingStartTime,meetingEndTime" label="会议时间" width="234">
-                                <template  slot-scope="scope">
-                                    {{scope.row.meetingStartTime}} ~ {{scope.row.meetingEndTime}}
-                                </template>
-                            </el-table-column>
-                            <el-table-column prop="signPerson" label="应到人数" width="64"> </el-table-column>
-                            <el-table-column prop="realityPerson" label="实到人数" width="64"> </el-table-column>
-                        </el-table>
-                    </el-col>
-                </el-col> 
-            </el-row>
-            <el-row class="equipment commonWidth" v-if="equipment.state"><!--设备信息弹框-->
-                <el-col class="top">
-                    <el-col class="title">
-                        <img src="../../../assets/image/arrow.png" alt="" />
-                        <span>设备信息</span>
-                        <img src="../../../assets/image/icon1.png" alt="" class="equipment-icon"/>
-                    </el-col>
-                    <p class="close" @click="close"></p>
-                </el-col>
-                <el-col class="contain">
-                    <el-col class="title"><span class="type">设备名称:</span><span class="data">{{equipment.equipmentMessage.deviceName ? equipment.equipmentMessage.deviceName : "--"}}</span></el-col>
-                    <el-col class="title"><span class="type">设备类型:</span><span class="data">{{equipment.equipmentMessage.deviceType ? equipment.equipmentMessage.deviceType : "--"}}</span></el-col>
-                    <el-col class="title"><span class="type">设备编号:</span><span class="data">{{equipment.equipmentMessage.registerDeviceId ? equipment.equipmentMessage.registerDeviceId : "--"}}</span></el-col>
-                    <el-col class="title"><span class="type">楼层:</span><span class="data">{{equipment.equipmentMessage.floorUuid ? equipment.equipmentMessage.floorUuid : "--"}}</span></el-col>
-                    <el-col class="title"><span class="type">绑定时间:</span><span class="data">{{equipment.equipmentMessage.createTime ? equipment.equipmentMessage.createTime : "--"}}</span></el-col>
-                </el-col>
-            </el-row>
-            <el-row class="xinfa commonWidth" v-if="xinfa.state"><!--信发设备信息弹框-->
-                <el-col class="top">
-                    <el-col class="title">
-                        <img src="../../../assets/image/arrow.png" alt="" />
-                        <span>{{xinfa.name}}</span>
-                    </el-col>
-                    <p class="close" @click="close"></p>
-                </el-col>
-                <el-col class="contain">
-                    <el-col class="module1">
-                        <div class="title">设备工况:</div>
-                        <div class="wrap" >
-                            <span class="span1" :style="xinfa.bgc"></span>
-                            <span class="span2" :style="xinfa.color">{{xinfa.text}}</span>
-                        </div>
-                    </el-col>
-                    <el-col class="module2" v-if="xinfa.sbState">
-                        <div class="title">设备控制:</div>
-                        <div class="wrap">
-                            <el-button type="success" round size="mini" class="open" @click="xinfaSwitch('open')">唤醒</el-button>
-                            <el-button type="danger" round size="mini" class="off" @click="xinfaSwitch('off')">休眠</el-button>
-                        </div>
-                    </el-col>
-                </el-col>
-            </el-row>
-            <el-row class="ba commonWidth" v-if="ba.state"><!--ba设备信息弹框-->
-                <el-col class="top">
-                    <el-col class="title">
-                        <img src="../../../assets/image/arrow.png" alt="" />
-                        <span>设备信息</span>
-                        <img src="../../../assets/image/icon1.png" alt="" class="equipment-icon"/>
-                    </el-col>
-                    <p class="close" @click="close"></p>
-                </el-col>
-                <el-col class="contain scroll">
-                    <el-col class="title">
-                        <span class="type">设备名称:</span>
-                        <span class="data">{{ba.baMessage1.deviceName ? ba.baMessage1.deviceName : "--"}}</span>
-                        
-                    </el-col>
-                    <el-col class="title">
-                        <span class="type">设备类型:</span>
-                        <span class="data" v-if="ba.baMessage2">{{ba.baMessage1.deviceType ? ba.baMessage1.deviceType : "--"}}</span>
-                        <span class="data" v-else>--</span>
-                    </el-col>
-                    <el-col class="title">
-                        <span class="type">设备编号:</span>
-                        <span class="data" >{{ba.baMessage1.registerDeviceId ? ba.baMessage1.registerDeviceId : "--"}}</span>
-                        
-                    </el-col>
-                    <el-col class="title">
-                        <span class="type">楼层:</span>
-                        <span class="data" >{{ba.baMessage1.floorUuid ? ba.baMessage1.floorUuid : "--"}}</span>
-                        
-                    </el-col>
-                    <el-col class="title">
-                        <span class="type">绑定时间:</span>
-                        <span class="data" >{{ba.baMessage1.createTime ? ba.baMessage1.createTime : "--"}}</span>
-                        
-                    </el-col>
-
-                    <el-col class="title">
-                        <span class="type">冷阀反馈:</span>
-                        <span class="data" v-if="ba.baMessage2.length>1">{{ba.baMessage2.find(val=>val.m === '01LFFK') && (ba.baMessage2.find(val=>val.m === '01LFFK').v == "0"  ? "关闭" : ba.baMessage2.find(val=>val.m === '01LFFK').v == "1"  ? "开启" : '--')}}</span>
-                        <span class="data" v-else>--</span>
-                    </el-col>
-                    <el-col class="title">
-                        <span class="type">热阀反馈:</span>
-                        <span class="data" v-if="ba.baMessage2.length>1">{{ba.baMessage2.find(val=>val.m === '02RFFK') && (ba.baMessage2.find(val=>val.m === '02RFFK').v == "0"  ? "关闭" : ba.baMessage2.find(val=>val.m === '02RFFK').v == "1"  ? "开启" : '--')}}</span>
-                        <span class="data" v-else>--</span>
-                    </el-col>
-                    <el-col class="title">
-                        <span class="type">室内温度:</span>
-                        <span class="data" v-if="ba.baMessage2.length>1">{{ba.baMessage2.find(val=>val.m === '03SNWD') && (ba.baMessage2.find(val=>val.m === '03SNWD').v  ? Number(ba.baMessage2.find(val=>val.m === '03SNWD').v).toFixed(1) + "℃" : "--")}}</span>
-                        <span class="data" v-else>--</span>
-                    </el-col>
-                    <el-col class="title">
-                        <span class="type">风机速度:</span>
-                        <span class="data" v-if="ba.baMessage2.length>1"> {{ba.baMessage2.find(val=>val.m === '04FJSD') && (ba.baMessage2.find(val=>val.m === '04FJSD').v  ? ba.baMessage2.find(val=>val.m === '04FJSD').v + "%" : "--")}}</span>
-                        <span class="data" v-else>--</span>
-                    </el-col>
-                    <el-col class="title">
-                        <span class="type">风机启停:</span>
-                        <span class="data" v-if="ba.baMessage2.length>1">{{ba.baMessage2.find(val=>val.m === '05FJQT') && (ba.baMessage2.find(val=>val.m === '05FJQT').v == "0" ? "停止" : ba.baMessage2.find(val=>val.m === '05FJQT').v == "0" ? "启动" : '--')}}</span>
-                        <span class="data" v-else>--</span>
-                    </el-col>
-                   <el-col class="title">
-                        <span class="type">温度设定:</span>
-                        <span class="data" v-if="ba.baMessage2.length>1">
-                            {{ba.baMessage2.find(val=>val.m === '06WDSD') 
-                            && (ba.baMessage2.find(val=>val.m === '06WDSD').v  ? Number(ba.baMessage2.find(val=>val.m === '06WDSD').v).toFixed(1) + "℃(调整精度0.5℃)" : "--")}}
-                        </span>
-                        <span class="data" v-else>--</span>
-                    </el-col>
-                    <el-col class="title"><span class="type">模式选择:</span>
-                        <span class="data" v-if="ba.baMessage2.length>1">
-                            {{ba.baMessage2.find(val=>val.m === '07MSXZ') 
-                            && 
-                            ba.baMessage2.find(val=>val.m === '07MSXZ').v == "0" ? 
-                            "制冷" : ba.baMessage2.find(val=>val.m === '07MSXZ').v == "1" ? 
-                            "制热" : ba.baMessage2.find(val=>val.m === '07MSXZ').v == "2" ? 
-                            "除湿" : ba.baMessage2.find(val=>val.m === '07MSXZ').v == "3" ? 
-                            "通风" : "--" }}</span>
-                        <span class="data" v-else>--</span>
-                        </el-col>
-                    <el-col class="title">
-                        <span class="type">风机模式:</span>
-                        <span class="data" v-if="ba.baMessage2.length>1">{{ba.baMessage2.find(val=>val.m === '08FJMS') && (ba.baMessage2.find(val=>val.m === '08FJMS').v == "0"  ? "自动" : ba.baMessage2.find(val=>val.m === '08FJMS').v == "1"  ? "手动" : '--')}}</span>
-                        <span class="data" v-else>--</span>
-                    </el-col>
-                    <el-col class="title">
-                        <span class="type">风速设定:</span>
-                        <span class="data" v-if="ba.baMessage2.length>1">{{ba.baMessage2.find(val=>val.m === '09FSSD') && (ba.baMessage2.find(val=>val.m === '09FSSD').v  ? Number(ba.baMessage2.find(val=>val.m === '09FSSD').v).toFixed(0) + "%" : "--")}}</span>
-                        <span class="data" v-else>--</span>
-                    </el-col>
-                </el-col>
-            </el-row>
-            <el-row class="entranceGuard commonWidth" v-if="entranceGuard.state"><!--门禁设备信息弹框-->
-                <el-col class="top">
-                    <el-col class="title">
-                        <img src="../../../assets/image/arrow.png" alt="" />
-                        <span>{{entranceGuard.entranceGuardMessage.name}}</span>
-                    </el-col>
-                    <p class="close" @click="close"></p>
-                </el-col>
-                <el-col class="contain">
-                    <el-col class="day">今日累计:</el-col>
-                    <div class="wrap">
-                        <div class="section">
-                            <span class="text">进</span>
-                            <span class="num" style="color:#FDC51A">{{entranceGuard.entranceGuardMessage.into || 0}}</span>
-                        </div>
-                        <div class="section">
-                            <span class="text">出</span>
-                            <span class="num" style="color:#1AF3FD">{{entranceGuard.entranceGuardMessage.out || 0}}</span>
-                        </div>
-                    </div>
-                    <!-- <p class="tableTitle">最新记录</p> -->
-                    <el-table 
-                    height="200"
-                   :header-cell-style="{background:'rgba(22, 55, 163, 0.5)',color:'#fff',border:'none'}"
-                    :row-class-name="tableRowClassName"
-                    :data="entranceGuard.entranceGuardMessage.tableList"   style="width: 100%;height:110px" class="success-row table2 scroll" >
-                        <el-table-column prop="id" label="序号" width="80"></el-table-column>
-                        <el-table-column prop="opdt" label="刷卡时间" > </el-table-column>
-                        <el-table-column prop="outid" label="学工号" width="80"> </el-table-column>
-                        <el-table-column prop="name" label="姓名" width="80"> </el-table-column>
-                        <el-table-column prop="rectype" label="记录类型" width="120"> </el-table-column>
-                        <el-table-column prop="ioflag" label="进出状态" width="80"> </el-table-column>
-                        <el-table-column prop="termname" label="终端编号" > </el-table-column>
-                        <!-- <el-table-column prop="cardsnr" label="卡序列号" > </el-table-column> -->
-                        
-                    </el-table>
-                </el-col>
-            </el-row>
-            
-            <el-row class="music commonWidth" v-if="music.state"><!--背景音乐弹框-->
-                <el-col class="top">
-                    <el-col class="title">
-                        <img src="../../../assets/image/arrow.png" alt="" />
-                        <span class="title">背景音乐</span>
-                    </el-col>
-                    <p class="close" @click="close" ></p>
-					<!-- <p class="close" @click="centerDialogVisible = false" data="22"></p> -->
-                </el-col>
-                <el-col class="contain scroll" >
-                    <el-col class="section1 section">
-                        <el-table :data="music.musicTableData" border style="width: 100%;" >
-                            <el-table-column prop="playTime" label="播放时间" width="220"></el-table-column>
-                            <el-table-column prop="playContent" label="播放内容" ></el-table-column>
-                        </el-table>
-                    </el-col>
-                </el-col>
-            </el-row>
-            <el-row class="video commonWidth" v-if="video.state"><!--视屏监控弹框-->
-                <el-col class="top">
-                    <el-col class="title">
-                        <img src="../../../assets/image/arrow.png" alt="" />
-                        <span>视频监控</span>
-                        <img src="../../../assets/image/icon2.png" alt="" class="equipment-icon"/>
-                    </el-col>
-                    <p class="close" @click="close"></p>
-                </el-col>
-                <el-col class="contain">
-                    <video v-if="video.play"
-                        :id="video.videoId"  
-                        class="video-js vjs-default-skin videoPaly" 
-                        preload="auto" 
-                        autoplay="autoplay" 
-                        :src="video.videoUrl" type="application/x-mpegURL">
-                    </video>
-                    <div class="videoNo" v-if="video.videoNo">
-                        <img src="../../../assets/image/video.png"   alt="">
-                        <p>摄像头设备参数暂未接入</p>
-                    </div>
-                    
-                </el-col>
-                
-            </el-row>
-        <!-- </el-dialog> -->
-  </div>
-</template>
-<script>
-import axios from 'axios'
-import 'video.js/dist/video-js.css'
-import videojs from 'video.js'
-import 'videojs-contrib-hls'
-import "@videojs/http-streaming"
-import { meetingPageApi, meetingStatusApi, videoUrl, xinfaToken, ba, accessControlListApi} from "@/plugins/api"
-export default {
-    props:['resInfo',"close2"],
-    data() {
-        return {
-            centerDialogVisible: true,
-            warning:{//推送告警
-                "state":false,
-                "warningMessage":{},
-            },
-            equipment:{//设备信息
-                "state":false,
-                "equipmentMessage":{
-                    "deviceName": undefined,
-                    "deviceType": undefined,
-                    "createTime": undefined,
-                    "registerDeviceId":undefined,
-                },
-            },
-            meeting:{//会议
-                "state":false,
-                "meetingMessage":{ 
-                    "status":undefined,
-                    "meeting":false, //
-                    "order":[], //预约列表数据
-                    "history":[], //历史信息列表数据
-                    "meetingForm1":{ //预约列表form
-                        current:1,
-                        size:10,
-                        startTime:undefined,
-                        endTime:undefined,
-                        roomId:109,
-                    }, 
-                    "meetingForm2":{ //历史信息列表form
-                        current:1,
-                        size:10,
-                        startTime:undefined,
-                        endTime:undefined,
-                        roomId:109,
-                    }, 
-                    "moreHistoryNo":false,
-                    "moreOrderNo":false,
-                },
-
-            },
-            video:{//视频
-                "state":false,
-                "play":false,
-                "videoId":undefined,
-                "videoUrl":false,
-                "videoNo":false,
-                "videoImg":require("../../../assets/image/video.jpg"),
-                "vedioData":[
-                    // {"title": "3层东楼梯","cameraIndexCode":"4db3dfbea6894b02a24673147a64d6c5","path":"",},
-                ]
-            },
-            music:{//音乐
-                "state":false,
-                "musicTableData":[
-                    {"playTime":"2021-11-15 09:00:00","playContent":"时光对面的我"},
-                    {"playTime":"2021-11-15 10:00:00","playContent":"守护我的光"},  
-                ],
-            },
-            xinfa:{//信发
-                "text":false,
-                "state":false,
-                "xinfaMessage":{},
-                "bgc":{
-                    "background":undefined, 
-                },
-                "color":{
-                    "color":undefined
-                },
-                "cMarks":undefined,
-                "sbState":true,
-                "name":undefined,
-            },
-            ba:{//ba
-                "state":false,
-                "baMessage1":{},
-                "baMessage2":{},
-            },
-            entranceGuard:{//门禁
-                state:false,
-                entranceGuardMessage:{
-                    "tableList":[
-                        {"id":"1","outid":"11111", "name":"张三","termname":"154sdt", "cardsnr":"154sdtsadawee", "opdt":"2021-12-20 00:00:00", "rectype":"正常超时","ioflag":"进"},
-                        {"id":"1","outid":"11111", "name":"张三","termname":"154sdt", "cardsnr":"154sdtsadawee", "opdt":"2021-12-20 00:00:00", "rectype":"正常超时","ioflag":"进"},
-                        {"id":"1","outid":"11111", "name":"张三","termname":"154sdt", "cardsnr":"154sdtsadawee", "opdt":"2021-12-20 00:00:00", "rectype":"正常超时","ioflag":"进"},
-                        {"id":"1","outid":"11111", "name":"张三","termname":"154sdt", "cardsnr":"154sdtsadawee", "opdt":"2021-12-20 00:00:00", "rectype":"正常超时","ioflag":"进"},
-                        {"id":"1","outid":"11111", "name":"张三","termname":"154sdt", "cardsnr":"154sdtsadawee", "opdt":"2021-12-20 00:00:00", "rectype":"正常超时","ioflag":"进"},
-                        {"id":"1","outid":"11111", "name":"张三","termname":"154sdt", "cardsnr":"154sdtsadawee", "opdt":"2021-12-20 00:00:00", "rectype":"正常超时","ioflag":"进"},
-                        {"id":"1","outid":"11111", "name":"张三","termname":"154sdt", "cardsnr":"154sdtsadawee", "opdt":"2021-12-20 00:00:00", "rectype":"正常超时","ioflag":"进"},
-                        {"id":"1","outid":"11111", "name":"张三","termname":"154sdt", "cardsnr":"154sdtsadawee", "opdt":"2021-12-20 00:00:00", "rectype":"正常超时","ioflag":"进"},
-                        {"id":"1","outid":"11111", "name":"张三","termname":"154sdt", "cardsnr":"154sdtsadawee", "opdt":"2021-12-20 00:00:00", "rectype":"正常超时","ioflag":"进"},
-                        {"id":"1","outid":"11111", "name":"张三","termname":"154sdt", "cardsnr":"154sdtsadawee", "opdt":"2021-12-20 00:00:00", "rectype":"正常超时","ioflag":"进"},
-                        
-                    ],
-                    "Into":30,
-                    "out":20,
-                    "name":"一层大厅1#通道"
-                },
-            },
-            time:[],
-        }
-    },
-    watch: {
-        resInfo(){
-            this.getData()
-        },
-        close2(){
-            this.close()
-        },
-        // immediate: true
-        // deep: true,//深度监听
-    },
-    mounted(){
-        this.getData()
-    },
-    methods: {
-    videoPlay(){
-        this.$nextTick(() => {
-            let list = videojs(this.video.videoId , {
-            events: [],
-            // playbackRates: [0.7, 1.0, 1.5, 2.0], // 播放速度
-            autoplay: "true", // 如果true,浏览器准备好时开始回放。
-            controls: true, //  控制条
-            preload: 'auto', // 视频预加载
-            muted: true, //  默认情况下将会消除任何音频。
-            loop: false, // 导致视频一结束就重新开始。
-            language: 'zh-CN',
-            controlBar: {
-              timeDivider: true,
-              durationDisplay: true
-            },
-            aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
-            fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
-            sources: [{
-              type: 'application/x-mpegURL',
-              src: this.video.videoUrl
-            }],
-            hls: true, // 启用hls?
-            poster: 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fhbimg.b0.upaiyun.com%2F945cad7c7105d352aa3c513c94846bb0c2f1a61342067-OWFZcE_fw658&refer=http%3A%2F%2Fhbimg.b0.upaiyun.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1638947006&t=9cd1ab4df990ba151fcd5f0378f6e8cf', // 你的封面地址
-            width: document.documentElement.clientWidth,
-            notSupportedMessage: '此视频暂无法播放,请稍后再试'
-            // autoplay:true,
-            // controls:false,
-            // bigPlayButton: false,
-            // textTrackDisplay: false,
-            // posterImage: true,
-            // errorDisplay: false,
-            // controlBar: true,
-            // muted: true //静音模式 、、 解决首次页面加载播放。
-          }, function () {
-            this.play() // 自动播放
-          })
-        })
-        
-            // let list = videojs(this.video.videoId , {
-            //     events: [],
-            //     playbackRates: [0.7, 1.0, 1.5, 2.0], // 播放速度
-            //     autoplay: "true", // 如果true,浏览器准备好时开始回放。
-            //     controls: true, //  控制条
-            //     preload: 'auto', // 视频预加载
-            //     muted: true, //  默认情况下将会消除任何音频。
-            //     loop: false, // 导致视频一结束就重新开始。
-            //     language: 'zh-CN',
-            //     controlBar: {
-            //         timeDivider: true,
-            //         durationDisplay: true
-            //     },
-            //     aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
-            //     fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
-            //     sources: [{
-            //         type: 'application/x-mpegURL',
-            //         src: this.videoUrl
-            //     }],
-            //     hls: true, // 启用hls?
-            //     poster: video.videoImg, // 你的封面地址
-            //     width: document.documentElement.clientWidth,
-            //     notSupportedMessage: '此视频暂无法播放,请稍后再试'
-            // }, function () {
-            //     this.play() // 自动播放
-            // })
-        
-    },
-    getData(){
-        // 
-        if(this.resInfo.warningState){//推送告警
-            this.warning.state = true
-		    this.warning.warningMessage = this.resInfo.warningMessage
-            if(this.timeout){
-                clearTimeout(this.timeout)
-            }
-            this.timeout = setTimeout(() => {
-                this.warning.state = false
-                this.close()
-            }, 3000);
-        }else if(this.resInfo.meetingState){//会议
-            //console.log("会议更新")
-            //会议状态
-            meetingStatusApi({"rootName":this.meeting.meetingMessage.meetingForm1.roomId}).then(res =>{
-                // this.meeting.state = res.data
-            })
-            //会议列表、历史会议
-            var myDate = new Date();
-            let Year = myDate.getFullYear();
-            let Month = myDate.getMonth() + 1;
-            let Day= myDate.getDate()
-            if(Month<10){
-                Month = '0' + Month
-            }else{
-                Month = Month
-            }
-            if(Day<10){
-                Day = '0' + Day
-            }else{
-                Day = Day
-            }
-            this.meeting.meetingMessage.meetingForm1.current = 1
-            this.meeting.meetingMessage.meetingForm2.current = 1
-            this.meeting.meetingMessage.meetingForm1.startTime = Year + '-' + Month + '-' + Day + " 00:00:00"
-            this.meeting.meetingMessage.meetingForm1.endTime = Year + '-' + Month + '-' + Day + " 23:59:59"
-            meetingPageApi(this.meeting.meetingMessage.meetingForm1).then(res =>{
-                this.meeting.meetingMessage.meeting = true
-                this.meeting.meetingMessage.order = res.data.records
-            })
-            meetingPageApi(this.meeting.meetingMessage.meetingForm2).then(res =>{
-                this.meeting.meetingMessage.history = res.data.records
-            })
-        }else if(this.resInfo.equipmentState){//设备
-            //console.log("点位设备")
-            this.equipment.state = true
-            if(this.resInfo.equipmentMessage){
-                this.equipment.equipmentMessage = this.resInfo.equipmentMessage
-            }else{
-
-            }
-            
-        }else if(this.resInfo.videoState){//视频
-            if(this.resInfo.videoMessage){
-                videoUrl({"cameraIndexCode":this.resInfo.videoMessage.registerDeviceId,"protocol":"hls"}).then(res =>{ // 点位摄像头视频
-                    //console.log("摄像头绑定")
-                    if(res.data != null){
-                        this.video.videoId = "video" + Date.now()
-                        this.video.videoUrl = res.data.url
-                        this.video.state = true
-                        this.video.play = true
-                        this.videoNo = false
-                        this.videoPlay()
-                    }
-                })
-            }else{
-                //console.log("摄像头未绑定")
-                this.video.state = true
-                this.video.videoNo = true
-                this.video.play = false
-            }
-        }else if(this.resInfo.xinfaState){//信发
-            let cMark = this.resInfo.xinfaMessage.registerDeviceId
-            this.xinfa.cMarks = cMark 
-            xinfaToken().then(res =>{ //信发设备
-				//console.log("信发设备")
-				let access_token = res.data.authToken
-				let secret = res.data.secret
-				let acces_secret_md5 = this.$md5(secret)
-				let timestamp = Date.parse(new Date()) / 1000;
-				let sign = this.$md5(access_token + acces_secret_md5 + timestamp);
-				axios({
-					method: 'get',
-					url: 'http://10.108.35.105:8780/adc/sdk/dev_get_devstatus',
-					params: {
-						access_token: access_token,
-						timestamp: timestamp,
-						sign:sign,
-						cMark:cMark
-					},
-					timeout: 3000,
-				}).then(res =>{
-					this.xinfa.state = true
-                    if(res.data.result == "failed"){
-                        this.xinfa.text = res.data.retInfo
-                        this.xinfa.bgc.background = "#E22323"
-						this.xinfa.color.color = "#E22323"
-                        this.xinfa.name = this.resInfo.xinfaMessage.deviceName + this.resInfo.xinfaMessage.deviceType
-                    }else if(res.data.online == 0){
-						this.xinfa.text = "不在线"
-						this.xinfa.bgc.background = "#E22323"
-						this.xinfa.color.color = "#E22323"
-                        this.xinfa.sbState = false
-                        this.xinfa.name = this.resInfo.xinfaMessage.deviceName + this.resInfo.xinfaMessage.deviceType
-					}else{
-						this.xinfa.text = "在线"
-						this.xinfa.bgc.background = "#46C00B"
-						this.xinfa.color.color = "#46C00B"
-                        this.xinfa.name = this.resInfo.xinfaMessage.deviceName + this.resInfo.xinfaMessage.deviceType
-					}
-				}).catch(err =>{
-                    this.xinfa.text = "不在线"
-					this.xinfa.bgc.background = "#E22323"
-					this.xinfa.color.color = "#E22323"
-                    this.xinfa.sbState = false
-                    this.xinfa.sbState = false
-                    this.xinfa.name = this.resInfo.xinfaMessage.deviceName + this.resInfo.xinfaMessage.deviceType
-
-                });
-			})  
-        }else if(this.resInfo.baState){//ba
-            this.ba.baMessage1 = this.resInfo.baMessage
-            ba({"deviceCode":this.resInfo.baMessage.registerDeviceId}).then(res =>{ 
-                //console.log("ba设备")
-                this.ba.state = true
-                if(res.data){
-                    let data = JSON.parse(res.data.devDetails)
-                    this.ba.baMessage2 = data
-                }
-                //console.log(this.ba.baMessage2)
-            }) 
-        }else if(this.resInfo.entranceGuardState){//门禁
-            this.ba.baMessage1 = this.resInfo.baMessage
-            accessControlListApi({"deviceCode":this.resInfo.baMessage.registerDeviceId}).then(res =>{ 
-                //console.log("门禁设备")
-                // this.entranceGuard.state = true
-                // if(res.data){
-                //     let data = JSON.parse(res.data.devDetails)
-                //     this.entranceGuard.entranceGuardMessage = data
-                // }
-            }) 
-        }else{
-
-        }
-    },
-    changeDate(){
-        this.meeting.meetingMessage.meetingForm2.current = 1
-		this.dataChange()
-        meetingPageApi(this.meeting.meetingMessage.meetingForm2).then(res =>{
-            this.meeting.meetingMessage.history = res.data.records
-        })
-    },
-    dataChange(){//时间转化
-        if(this.time.length>0){
-            var myDate1 = this.time[0];
-            let Year1 = myDate1.getFullYear();
-            let Month1 = myDate1.getMonth() + 1;
-            let Day1= myDate1.getDate()
-            if(Month1<10){
-            Month1 = '0' + Month1
-            }else{
-            Month1 = Month1
-            }
-            if(Day1<10){
-            Day1 = '0' + Day1
-            }else{
-            Day1 = Day1
-            }
-            this.meeting.meetingMessage.meetingForm2.startTime = Year1 + '-' + Month1 + '-' + Day1 + " 00:00:00"
-            var myDate2 = this.time[1];
-            let Year2 = myDate2.getFullYear();
-            let Month2 = myDate2.getMonth() + 1;
-            let Day2= myDate2.getDate()
-            
-            if(Month2<10){
-            Month2 = '0' + Month2
-            }else{
-            Month2 = Month2
-            }
-            if(Day2<10){
-            Day2 = '0' + Day2
-            }else{
-            Day2 = Day2
-            }
-            this.meeting.meetingMessage.meetingForm2.endTime = Year2 + '-' + Month2 + '-' + Day2 + " 23:59:59"
-        }
-	},
-    moremeetingMsg1() { //预约列表滑动加载
-		//console.log('触发预约列表滑动加载事件')
-		this.meeting.meetingMessage.meetingForm1.current ++
-		meetingPageApi(this.meeting.meetingMessage.meetingForm1).then(res =>{
-			if(res.data.records.length>0){
-                let data = res.data.records
-                for(let i =0;i<data.length; i++){
-                    this.meeting.meetingMessage.order.push(data[i])
-                }
-			}else{
-				this.meeting.meetingMessage.meetingForm1.current --
-			}
-		})
-	},
-    moremeetingMsg2() { //历史会议信息列表滑动加载
-		//console.log('触发历史会议信息滑动加载事件')
-        this.dataChange()
-		this.meeting.meetingMessage.meetingForm2.current ++
-		meetingPageApi(this.meeting.meetingMessage.meetingForm2).then(res =>{
-			if(res.data.records.length>0){
-                let data = res.data.records
-                for(let i =0;i<data.length; i++){
-                    this.meeting.meetingMessage.history.push(data[i])
-                }
-			}else{
-				this.meeting.meetingMessage.meetingForm2.current --
-			}
-		})
-	},
-    xinfaSwitch(e){
-            xinfaToken().then(res =>{ //信发设备
-				//console.log("信发设备")
-				let access_token = res.data.authToken
-				let secret = res.data.secret
-				let acces_secret_md5 = this.$md5(secret)
-				let timestamp = Date.parse(new Date()) / 1000;
-				let sign = this.$md5(access_token + acces_secret_md5 + timestamp);
-                if(e == "open"){
-                    var sCmd ={
-                        paramType:17,
-                        onoff:1,//1:立即唤醒;0:立即休眠
-                        subcmd:'ctrl_lcd_onoff_ontime'
-                    }
-                }else{
-                    var sCmd ={
-                        paramType:17,
-                        onoff:0,//1:立即唤醒;0:立即休眠
-                        subcmd:'ctrl_lcd_onoff_ontime'
-                    }
-                }
-                
-                axios({
-					method: 'get',
-					url: 'http://10.108.35.105:8780/adc/sdk/sendClientParams',
-					params: {
-						access_token: access_token,
-						timestamp: timestamp,
-						sign:sign,
-                        paramType:"17",
-                        cMarks:this.xinfa.cMarks,
-                        params:JSON.stringify(sCmd),
-                        retry:"0"
-					},
-					timeout: 3000,
-				}).then(res =>{
-                    if(res.data.result =="success"){
-                        if(e == "open"){
-                            this.$message({
-                                showClose: true,
-                                message: '设备唤醒成功',
-                                type: 'success'
-                            });
-                        }else{
-                            this.$message({
-                                showClose: true,
-                                message: '设备已进入休眠状态',
-                                type: 'success'
-                            });
-                        }
-                        
-                    }
-				})
-            })
-       
-    },
-	close(){
-		this.warning.state = false
-		this.music.state = false
-		this.meeting.meetingMessage.meeting = false
-        this.equipment.state = false
-        this.video.state = false
-        this.video.play = false
-        this.video.videoId = false
-        this.video.videoNo = false
-        this.xinfa.state = false
-        this.entranceGuard.state = false
-        this.$emit("close",false)
-	},
-    tableRowClassName({row, rowIndex}) {
-        if (rowIndex%2=== 1)  //=>这里可以改成 rowIndex%2=== 1,后面直接else即可达到隔行变色效果。
-        { 
-          return 'success-row';
-        }
-        return '';
-    }
-  },
-};
-</script>
-
-<style lang="scss" scoped>
-
-
-/deep/ .el-table .success-row {
-    background: rgba(22, 55, 163, 0.5) !important;//这里可以修改颜色
-}
-.Spring-frame {
-    position: absolute;
-	width:50%;
-	top:20%;
-	left:25%;
-	margin:0 auto;
-    .warning{
-        width:389px;
-        height:126px;
-        margin:0 auto;
-        background: url('../../../assets/image/warning-bg.png') ;
-        background-size: 389px 126px;
-        .contain{
-            width:58%;
-            margin:6% 0 0 35%;
-            line-height: 22px;
-            color:#fff;
-            font-size: 12px;
-            .title{
-                font-size: 12px;
-            }
-            .content{
-                margin-top:0px;
-            }
-        }
-		// .close{
-		//     width:16px;
-		//     height:16px;
-		//     background: url('../../../assets/image/close2.png') no-repeat;
-		//     position: absolute;
-		// 	top:8px;right:6px;
-		// }
-    }
-    .commonWidth{
-        width:450px;
-        display: block;
-        margin:0 auto; 
-        .top{
-            height: 39px;
-            line-height: 35px;
-            background: rgba(28,82,216,.5);
-            border: 1px solid #1C52D8;
-            border-bottom:none;
-            border-radius: 4px 4px  0 0;
-            .title{
-                width:50%;
-                font-size: 16px;
-                margin-left:16px;
-                vertical-align: middle;
-                color:#38E7EE;
-                vertical-align: middle;
-                img{
-                    margin-right:4px;
-                    vertical-align: middle;
-                }
-                span{
-                    margin-left:16px;
-                    vertical-align: middle;
-                }
-                .equipment-icon{
-                    width:16px;
-                    position: absolute;
-                    top:16px;
-                    right:45%;
-                }
-            }
-            .close{
-                width:16px;
-                height:16px;
-                background: url('../../../assets/image/close.png') ;
-                float:right;
-                margin:12px 6px 0 0;
-            }
-        } 
-        .contain{
-            background-color:rgba(0,22,103,.85);
-            border-radius: 0 0 4px 4px;
-        }
-    }
-    .meeting,.music{
-        height:300px;
-        .contain{
-            height:300px;
-            overflow: hidden;
-            .section{
-                padding:10px;
-                font-size: 14px;
-                font-family: Microsoft YaHei Regular, Microsoft YaHei Regular-Regular;
-                font-weight: bold;
-                text-align: left;
-                color: #ffffff;
-                line-height: 30px;
-                
-            }
-            .title{
-                margin-bottom:4px;
-            }
-            .section2 .title{
-                width:auto;
-                display: inline-block;
-                margin-right:10px;
-                vertical-align: middle;
-                // margin-bottom:2px;
-            }
-        }
-        
-        /deep/ .el-table tr, /deep/ .el-table th, /deep/ .el-table td{
-            background-color: transparent;//这是设置透明背景色
-            font-size: 10px;
-            padding:0;
-        }
-    }
-    .meeting .title{
-        font-size: 12px;
-    }
-    .equipment,.ba{
-        .contain{
-            padding: 10px 10px 25px;
-            overflow: hidden;
-            .title{
-                margin-top:10px;
-                font-size: 14px;
-                letter-spacing: 1px;
-                .type{
-                    width:25%;
-                    text-align: right;
-                    display: inline-block;
-                }
-                .data{
-                    width:75%;
-                    text-align: left;
-                    display: inline-block;
-                    vertical-align: top;
-                }
-            }
-            
-        }
-    }
-    .ba {
-       .contain{
-           height:300px;
-           overflow-y:scroll;
-       } 
-    }
-    .video{
-        .contain{
-            overflow: hidden;
-            .videoPaly{
-                width:100%;
-            }
-            .videoNo{
-                margin: 10% auto;
-                img{
-                    height:97px;
-                    width:102px;
-                    display: block;
-                    margin: 0 auto;
-                }
-                p{
-                    text-align: center;
-                    font-size: 12px;
-                    color:#fff;
-                    margin-top:3%;
-                }
-                
-            }
-        }
-        
-    }
-    .xinfa{
-        width:290px !important;
-        .top{
-           
-            .title{
-                width:80% !important;
-            }
-        }
-        .contain{
-            height:140px;
-            padding:35px 10px;
-            overflow: hidden;
-            .module1{
-                .title{
-                    font-size: 14px;
-                    color:#fff;
-                    text-align: left;
-                    display: inline-block;
-                    vertical-align: middle;
-                }
-                .wrap{
-                    vertical-align: middle;
-                    display: inline-block;
-                    .span1{
-                        width:12px;
-                        height:12px;
-                        border-radius: 50%;
-                        background-color: red;
-                        display: inline-block;
-                        vertical-align: middle;
-                    }
-                    .span2{
-                        font-size: 14px;
-                        margin-left:5px;
-                        display: inline-block;
-                        vertical-align: middle;
-                    }
-                }
-
-            }
-            .module2{
-                margin-top:30px;
-                .title{
-                    font-size: 14px;
-                    color:#fff;
-                    text-align: left;
-                    display: inline-block;
-                    vertical-align: middle;
-                }
-                .wrap{
-                    .open,.off{
-                        width:60px;
-                        height:26px;
-                    }
-                    .off{
-                        margin-left:25px;
-                    }
-                    vertical-align: middle;
-                    display: inline-block;
-                    
-                }
-
-            }
-            .videoNo{
-                margin: 10% auto;
-                img{
-                    height:97px;
-                    width:102px;
-                    display: block;
-                    margin: 0 auto;
-                }
-                p{
-                    text-align: center;
-                    font-size: 12px;
-                    color:#fff;
-                    margin-top:3%;
-                }
-                
-            }
-        }
-    }
-    
-    .entranceGuard{
-        width:85%;
-        .contain{
-            height:350px;
-            padding:15px 10px;
-            overflow: hidden;
-            .day{
-                font-size: 14px;
-                color:#fff;
-                text-align: left;
-                margin-left:4px;
-            }
-            .wrap{
-                width:100%;
-                .section{
-                    width:45.5%;
-                    display: inline-block;
-                    background: url(../../../assets/image/entranceGuard.png) no-repeat;
-                    background-size: 100% 100%;
-                    align-items: center;
-                    justify-content: center;
-                    padding:20px 0;
-                    margin-top:6px;
-                    vertical-align: middle;
-                    .text{
-                        font-size: 16px;
-                        color:#fff;
-                        margin-left:40px;
-                        vertical-align: middle;
-
-                    }
-                    .num{
-                        font-size: 25px;
-                        margin-left:100px;
-                        vertical-align: middle;
-                    }
-                }
-                .section:nth-child(2){
-                    margin-left:9%;
-                }
-            }
-            .tableTitle{
-                width:96.2% !important;
-                margin:0 auto;
-                font-size: 16px;
-                padding:6px 0;
-                background-color: #1637A3;
-                padding-left:8px;
-                margin-top:14px;
-            }
-            .table2{
-                width:98% !important;
-                margin:0 auto;
-                margin-top:10px;
-                thead{
-                    tr{
-                        font-size: 30px !important;
-                    }
-                }
-                th{
-                    height:30px;
-                   
-                    border-bottom: none;
-                    
-                }
-                /deep/ tr{
-                    //background-color: transparent;//这是设置透明背景色
-                    padding:6px 0;
-                    border:none
-                }
-                /deep/ .cell{
-                    font-size: 14px;
-                }
-                /deep/ td{
-                    padding:4px 0;
-                }
-            }
-            /deep/ .el-table tr, /deep/ .el-table th, /deep/ .el-table td{
-                background-color: transparent;//这是设置透明背景色
-                
-            }
-        }
-    }
-}
-/deep/ .el-table__row>td {
-  border: none;
-}
-
-/deep/ .el-table::before {
-  height: 0px;
-}
-.scroll{
-    overflow-y: scroll;
-    overflow-x: hidden;
-}
-// ::-webkit-scrollbar {
-//   /*滚动条整体样式*/
-//   width : 0px;  /*高宽分别对应横竖滚动条的尺寸*/
-//   height: 1px;
-//   overflow: hidden;
-// }
-// ::-webkit-scrollbar-thumb {
-//   /*滚动条里面小方块*/
-//   border-radius: 1px;
-//   box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
-//   background   : rgba(28,82,216,1);
-// }
-// ::-webkit-scrollbar-track {
-//   /*滚动条里面轨道*/
-//   box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
-//   border-radius: 1px;
-//   background   : #ededed;
-// }
-
-// 对话框
-/deep/ .el-dialog{
-    background-color: transparent;
-    top:15%;
-}
-/deep/ .el-dialog__header{
-    padding:0;
-    padding-bottom:0;
-}
-/deep/ .el-dialog__body{
-    padding:0;
-}
-/deep/ .el-dialog__headerbtn .el-dialog__close{
-    display: none;
-}
-
-
-// table
-/deep/ .el-table--group, /deep/ .el-table--border{
-    border:none;
-}
-/deep/ .el-table thead{
-    color:#fff;
-    // background-color: rgba(28,82,216,.2);
-}
-
-/deep/ .el-table--border th{
-    border:1px solid #fff;
-    border-bottom:none;
-}
-
-/deep/ .el-table--border td{
-    border:1px solid #fff
-}
- /deep/  .el-table, .el-table__expanded-cell {
-    background-color: transparent;//这是设置透明背景色
-    color:#fff;
-    border-collapse: collapse;
-    
-  }
-
-/deep/ .el-table__empty-text{
-    color:#fff;
-    font-size: 10px;
-    letter-spacing: 2px;
-}
-
-
-// data
-/deep/ .el-date-editor{
-    border:1px solid #ccc;
-    background-color: transparent;
-    height:25px;
-    line-height: 20px;
-    padding:0;
-    margin-top:2px;
-    box-sizing: border-box;
-}
-/deep/ .el-range-input, /deep/ .el-input__icon el-range__close-icon{
-    background-color: transparent;
-    color:#fff;
-    font-size: 12px;
-    text-align: top;
-    padding:0;
-    position: relative;
-    top:-4px
-}
-/deep/ .el-range__icon{
-    display: none;
-}
-/deep/ .el-date-editor--datetimerange.el-input__inner{
-    width:77%;
-    
-    display: inline-block;
-    
-}
-/deep/ ::placeholder{
-    color:#fff
-}
-/deep/ .el-range-separator{
-    color:#fff;
-    position: relative;
-    top:-4px
-}
-/deep/table,/deep/ tr,/deep/ td{
-    border-collapse: collapse !important;
-}
-/deep/ tr:hover, /deep/ td:hover, /deep/ table:hover{
-    background-color: none !important;
-}
-/deep/ .el-table__empty-block{
-    border:1px solid #fff;
-}
-/deep/ .el-table tbody tr:hover>td { 
-    background-color:transparent
-}
-
-::-webkit-scrollbar {
-  /*滚动条整体样式*/
-  width : 0px;  /*高宽分别对应横竖滚动条的尺寸*/
-  height: 0px;
-  }
-::-webkit-scrollbar-thumb {
-  /*滚动条里面小方块*/
-  border-radius: 0px;
-  box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
-  background   : #535353;
-  }
- ::-webkit-scrollbar-track {
-  /*滚动条里面轨道*/
-  box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
-  border-radius: 0px;
-  background   : #ededed;
-  }
-
-::-webkit-scrollbar {
-	    display: none
-	  }
-      /deep/.el-table--scrollable-y ::-webkit-scrollbar {
-  display: none;
-}
-</style>

+ 20 - 1
src/components/SD-school/Spring-frame/index.vue

@@ -36,6 +36,12 @@
             </transition>
             <transition name="fade">
                 <room v-if="room" :resInfo="item" @close="itemClose"/><!--房间信息弹框-->
+            </transition>
+             <transition name="fade">
+                <roomXinfeng v-if="roomXF" :resInfo="item" @close="itemClose"/><!--新风研讨室信息弹框-->
+            </transition>
+            <transition name="fade">
+                <XFJZ v-if="XFJZState" :resInfo="item" @close="itemClose"/><!--新风机组信息弹框-->
             </transition>
             <transition name="fade">
                 <computerRoom v-if="computerRoom" :resInfo="item" @close="itemClose"/><!--机房设备信息弹框-->
@@ -75,6 +81,8 @@ import vehicleInformation from "./vehicleInformation";
 import yongtian from "./yongtian";
 import energy from "./energy";
 import room from './room.vue';
+import roomXinfeng from './roomXinfeng.vue';
+import XFJZ from './XFJZ.vue';
 import computerRoom from './computerRoom.vue';
 export default {
     props:['resInfo',"close2"],
@@ -90,6 +98,8 @@ export default {
         vehicleInformation,
         energy,
         room,
+        roomXinfeng,
+        XFJZ,
         computerRoom,
     },
     data() {
@@ -108,6 +118,8 @@ export default {
             yongtian:false,
             energy:false,
             room:false,
+            roomXF:false,
+            XFJZState:false,
             computerRoom:false,
             time:[],
             
@@ -161,7 +173,14 @@ export default {
         }else if(this.resInfo.roomState){//房间
             this.room = true
             this.item = this.resInfo.roomMessage
-         }else if(this.resInfo.computerRoomState){//房间
+        }else if(this.resInfo.roomXFState){//研讨室、接待区、、房间
+            this.roomXF = true
+            this.item = this.resInfo.roomXFMessage
+        }else if(this.resInfo.XFJZState){//研讨室、接待区、、房间
+            this.XFJZState = true
+            this.item = this.resInfo.XFJZMessage
+            console.log(1212)
+        }else if(this.resInfo.computerRoomState){//房间
             this.computerRoom= true
             this.item = this.resInfo.computerRoomMessage
         }else{

+ 106 - 2
src/components/SD-school/Spring-frame/room.vue

@@ -257,6 +257,48 @@
                         </span>
                         <span class="data" v-else>--</span>
                     </el-col>
+
+
+
+                    <el-col class="title" :span="12">
+                        <span class="type">新风启停:</span>
+                        <el-switch v-if="Message.xfqt"
+                            @change="control(xfqt,Message.xfqt.value,Message.xfqt.id)"
+                            v-model="xfqt"
+                            active-color="#1C52D8"
+                            inactive-color="#ccc">
+                        </el-switch>
+                        <span class="data" v-else>--</span>
+                    </el-col>
+                    <el-col class="title" :span="12" >
+                        <span class="type">新风挡位:</span>
+                        <div class="data" v-if="Message.xfdw">
+                            <el-select
+                            v-model="xfdw"
+                            placeholder="选择"
+                            size="small"
+                            style="width: 90px"
+                            @change="control(undefined,xfdw,Message.xfdw.id)"
+                            >
+                            <el-option
+                                v-for="dict in xfdwOptions"
+                                :key="dict.dictValue"
+                                :label="dict.dictLabel"
+                                :value="dict.dictValue"
+                            />
+                            </el-select>
+                        </div>
+                        <span class="data" v-else> -- </span>
+                    </el-col>
+                    <!-- <el-col class="title" :span="12">
+                        <span class="type">新风空调温度:</span>
+                        <span class="data" v-if="Message.xfwd">
+                            <input v-model="Message.xfwd.value"  type="number" min="10" max="60" style="ime-mode:disabled" onkeypress="noPermitInput(event)">
+                            {{"℃"}}
+                            <button @click="control(undefined,Message.xfwd.value,Message.xfwd.id)">提交</button>
+                        </span>
+                        <span class="data" v-else>--</span>
+                    </el-col> -->
                 </col-row>
             </el-col> 
         </el-row>
@@ -294,6 +336,30 @@ export default {
                     dictValue:2
                 },
             ],
+            xfqtOptions:[
+                {
+                     dictLabel:"关机",
+                    dictValue:0
+                },
+                {
+                     dictLabel:"开机",
+                    dictValue:1
+                },
+            ],
+            xfdwOptions:[
+                {
+                     dictLabel:"抵挡",
+                    dictValue:1
+                },
+                {
+                     dictLabel:"中档",
+                    dictValue:2
+                },
+                {
+                     dictLabel:"高档",
+                    dictValue:3
+                },
+            ],
             ktflOptions:[
                 {
                     dictLabel:"低速",
@@ -332,6 +398,9 @@ export default {
             ystd:undefined,
             yd:undefined,
             whbl:undefined,
+            xfqt:undefined,
+            xfdw:undefined,
+            xfwd:undefined,
 
 
         }
@@ -370,7 +439,11 @@ export default {
             arr.ktfl = {}
             arr.yd = {}
             arr.whbl = {}
+            arr.xfqt = {}
+            arr.xfdw = {}
+            arr.xfwd = {}
             let data = this.resInfo.data
+            console.log(data)
             for(let i = 0;i<data.length;i++){
                 if(data[i].name == "总开"){
                     arr.zk.name = data[i].name
@@ -585,6 +658,37 @@ export default {
                         this.whbl = true
                     }
                 }
+                    // 新风
+                if(data[i].name == "新风系统-开关"){
+                    arr.xfqt.name = data[i].name
+                    arr.xfqt.id = data[i].deviceId
+                    if(data[i].value == "0"){
+                        arr.xfqt.value = false
+                        this.xfqt = false
+                    }else{
+                        arr.xfqt.value = true
+                        this.xfqt = true
+                    }
+                }
+                if(data[i].name == "新风系统-挡位"){
+                    arr.xfdw.name = data[i].name
+                    arr.xfdw.id = data[i].deviceId
+                    if(data[i].value == 0){
+                        arr.xfdw.value = undefined
+                        this.xfdw = undefined
+                    }else{
+                        arr.xfdw.value = data[i].value
+                        this.xfdw = data[i].value
+                    }
+                }
+                // if(data[i].name == "新风系统-室内温度"){
+                //     arr.xfwd.name = data[i].name
+                //     arr.xfwd.id = data[i].deviceId
+                //     arr.xfwd.value = data[i].value
+                //     this.xfwd = data[i].value
+                // }
+
+                
                 
             }
             this.Message = arr
@@ -683,8 +787,8 @@ export default {
 }
 .ba{
     .contain{
-        padding: 10px 10px 25px;
-        height:360px;
+        padding: 10px 10px 55px;
+        height:400px;
         overflow-y:scroll;
         .title{
             margin-top:10px;

+ 501 - 0
src/components/SD-school/Spring-frame/roomXinfeng.vue

@@ -0,0 +1,501 @@
+<template>
+    <div>
+        <el-row class="ba commonWidth" v-if="state"><!--研讨室、接待室、活动区、教室信息弹框-->
+            <el-col class="top">
+                <el-col class="title">
+                    <img src="../../../assets/image/arrow.png" alt="" />
+                    <span>房间信息</span>
+                    <img src="../../../assets/image/icon1.png" alt="" class="equipment-icon"/>
+                </el-col>
+                <p class="close" @click="close"></p>
+            </el-col>
+            <el-col class="contain scroll">
+                <el-col class="title">
+                    <span class="type">设备名称:</span>
+                    <span class="data">{{Message.data.deviceName ? Message.data.deviceName : "--"}}</span>
+                    
+                </el-col>
+
+                <el-col class="title">
+                    <span class="type">设备编号:</span>
+                    <span class="data" >{{Message.data.registerDeviceId ? Message.data.registerDeviceId : "--"}}</span>
+                    
+                </el-col>
+                <el-col class="title">
+                    <span class="type">楼层:</span>
+                    <span class="data" >{{Message.data.floorUuid ? Message.data.floorUuid : "--"}}</span>
+                    
+                </el-col>
+                <el-col class="title">
+                    <span class="type">室内温度:</span>
+                    <span class="data">{{SNWD  ? Number(SNWD).toFixed(1) + "℃" : "--"}}</span>
+                </el-col>
+                <el-col class="title">
+                    <span class="type">室内湿度:</span>
+                    <span class="data">{{SNSD  ? Number(SNSD).toFixed(1) + "%" : "--"}}</span>
+                </el-col>
+                <el-col class="title">
+                    <span class="type">室内CO2:</span>
+                    <span class="data">{{CO2  ? Number(CO2).toFixed(1) + "PPM" : "--"}}</span>
+                </el-col>
+                <el-col class="title">
+                    <span class="type">PM2.5:</span>
+                    <span class="data">{{PM2  ? Number(PM2).toFixed(1) + "μg/m³" : "--"}}</span>
+                </el-col>
+                <el-col class="title">
+                    <span class="type">运行状态:</span>
+                    <el-switch 
+                        @change="control('YXZT',YXZT)"
+                        v-model="YXZT"
+                        active-color="#1C52D8"
+                        inactive-color="#ccc">
+                    </el-switch>
+                </el-col>
+                <el-col class="title">
+                    <span class="type">运行模式:</span>
+                    <el-select
+                        v-model="YXMS"
+                        placeholder="运行模式"
+                        size="small"
+                        style="width: 100px"
+                        @change="control('YXMS',YXMS)"
+                        >
+                        <el-option
+                            v-for="dict in YXMSOptions"
+                            :key="dict.dictValue"
+                            :label="dict.dictLabel"
+                            :value="dict.dictValue"
+                        />
+                        </el-select>
+                </el-col>
+                 <el-col class="title">
+                    <span class="type">风量挡位:</span>
+                    <el-select
+                        v-model="FLDW"
+                        placeholder="风量挡位"
+                        size="small"
+                        style="width: 100px"
+                        @change="control('FLDW',FLDW)"
+                        >
+                        <el-option
+                            v-for="dict in FLDWOptions"
+                            :key="dict.dictValue"
+                            :label="dict.dictLabel"
+                            :value="dict.dictValue"
+                        />
+                        </el-select>
+                </el-col>
+            </el-col>
+        </el-row>
+  </div>
+</template>
+<script>
+import { ba, revise } from "@/plugins/api"
+import { Message } from 'element-ui'
+export default {
+    props:['resInfo'],
+    data() {
+        return {
+            state:false,
+            dev:null,//设备id
+            attributePrefix:null,//属性前缀
+            YXZT:null,//运行状态
+            YXMS:null,//运行模式
+            CO2:null,//
+            FLDW:null,//风量挡位
+            PM2:null,//pm2.5
+            SNSD:null,//室内湿度
+            SNWD:null,//室内温度
+            VOC:null,//室内VOC等级
+            FLDWOptions:[
+                {
+                    dictLabel:"抵挡",
+                    dictValue:"1"
+                },
+                {
+                    dictLabel:"中档",
+                    dictValue:"2"
+                },
+                {
+                    dictLabel:"高档",
+                    dictValue:"3"
+                },
+            ],
+            YXMSOptions:[
+                {
+                    dictLabel:"手动",
+                    dictValue:"0"
+                },
+                {
+                    dictLabel:"自动",
+                    dictValue:"1"
+                },
+            ],
+            YXZTOptions:[
+                {
+                    dictLabel:"关机",
+                    dictValue:"0"
+                },
+                {
+                    dictLabel:"开机",
+                    dictValue:"1"
+                },
+            ],
+            Message:{
+               data:{},
+                sn:undefined,
+
+
+            },
+        }
+    },
+    mounted(){
+        this.getData()
+    },
+    methods: {
+        getData(){//获取数据赋值
+            this.Message.data = this.resInfo
+            this.dev = this.resInfo.deviceId
+            this.ba(this.Message.data.registerDeviceId)
+            
+
+        },
+        ba(id){
+            ba({"deviceId":id}).then(res =>{ 
+                this.state = true
+                if(res.data){
+                    this.Message.sn = res.data.remark
+                    let data = JSON.parse(res.data.alarmContent)
+                    this.attributePrefix = `${data[0].m.split("_")[0]}_${data[0].m.split("_")[1]}_`
+                    for(let i =0; i<data.length; i++){
+                        let attribute = data[i].m.split("_")[2]
+                        if(attribute == "YXZT"){
+                            this.YXZT = data[i].v == 0 ? false : true
+                        }
+                        if(attribute == "YXMS"){
+                            this.YXMS = data[i].v
+                        }
+                        if(attribute == "FLDW"){
+                            this.FLDW = data[i].v
+                        }
+                        if(attribute == "SNWD"){
+                            this.SNWD = data[i].v
+                        }
+                        if(attribute == "SNSD"){
+                            this.SNSD = data[i].v
+                        }
+                        if(attribute == "PM2"){
+                            this.PM2 = data[i].v
+                        }
+                        if(attribute == "CO2"){
+                            this.CO2 = data[i].v
+                        }
+                        if(attribute == "VOC"){
+                            this.VOC = data[i].v
+                        }
+                       
+                    }
+                }
+            })  
+        },
+        control(m,v){//控制
+            let arr = {
+                "type":"cmd/set",
+                "data":{
+                    "dev":this.dev,
+                    "m":`${this.attributePrefix}${m}`,
+                    "v":v == true ? 1 : v == false ? 0 : v
+                },
+                
+            }
+            revise({"message":JSON.stringify(arr),"sn":this.Message.sn}).then(res =>{ 
+                Message({
+                    message:"信息已提交,请在2分钟后查看信息变更情况",
+                    type: 'success'
+                });
+            })
+        },
+        noPermitInput(e){      
+            var evt = window.event || e ;    
+            if(isIE()){    
+                evt.returnValue=false; //ie 禁止键盘输入    
+            }else{    
+                evt.preventDefault(); //fire fox 禁止键盘输入    
+            }  
+        },   
+        isIE() {    
+            if (window.navigator.userAgent.toLowerCase().indexOf("msie") >= 1)    
+                return true;    
+            else    
+                return false;    
+        },
+        close(){//关闭
+            this.state = false
+            this.$emit("close",false)
+        },
+    },
+};
+</script>
+
+<style lang="scss" scoped>
+.commonWidth{
+    width:450px;
+    display: block;
+    margin:0 auto; 
+    .top{
+        height: 39px;
+        line-height: 35px;
+        background: rgba(28,82,216,.6);
+        border: 1px solid #1C52D8;
+        border-bottom:none;
+        border-radius: 4px 4px  0 0;
+        .title{
+            width:50%;
+            font-size: 16px;
+            margin-left:16px;
+            vertical-align: middle;
+            color:#38E7EE;
+            vertical-align: middle;
+            img{
+                margin-right:4px;
+                vertical-align: middle;
+            }
+            span{
+                margin-left:16px;
+                vertical-align: middle;
+            }
+            .equipment-icon{
+                width:16px;
+                position: absolute;
+                top:14px;
+                right:45%;
+            }
+        }
+        .close{
+            width:16px;
+            height:16px;
+            background: url('../../../assets/image/close.png') ;
+            float:right;
+            margin:12px 6px 0 0;
+        }
+    } 
+    .contain{
+        background-color:rgba(0,22,103,.85);
+        border-radius: 0 0 4px 4px;
+    }
+}
+.ba{
+    .contain{
+        padding: 10px 10px 25px;
+        height:300px;
+        overflow-y:scroll;
+        .title{
+            margin-top:10px;
+            font-size: 14px;
+            letter-spacing: 1px;
+            .type{
+                width:25%;
+                text-align: right;
+                display: inline-block;
+            }
+            .data{
+                width:75%;
+                text-align: left;
+                display: inline-block;
+                vertical-align: top;
+                input{
+                    width:12%;
+                    border-radius: 5px;
+                    padding:0 0 0 6px;
+                     height:20px;
+                    line-height: 20px;
+                }
+               
+                button{
+                    width:40px;
+                    height:25px;
+                    line-height: 25px;
+                    background-color: rgba(28,82,216,.6);
+                    color:#fff;
+                    font-size: 12px;
+                    border:none;
+                    text-align: center;
+                    border-radius: 4px;
+                }
+            }
+        }
+        
+    }
+}
+/deep/ .el-input--small{
+    width:93% !important;
+}
+/deep/ .el-input--small .el-input__inner{
+    height:25px;
+    line-height: 25px;
+}
+/deep/ .el-input__inner{
+    color:#fff;
+    border-color:#fff;
+}
+/deep/ .el-input__icon{
+    color:#fff !important
+}
+/deep/ .el-input__suffix{
+    top:2px
+}
+/deep/ .el-table__row>td {
+  border: none;
+}
+/deep/  .el-input__icon{
+font-size:10px;-webkit-transform:scale(0.4);
+}
+
+/deep/ .el-table::before {
+  height: 0px;
+}
+.scroll{
+    overflow-y: scroll;
+    overflow-x: hidden;
+}
+// ::-webkit-scrollbar {
+//   /*滚动条整体样式*/
+//   width : 0px;  /*高宽分别对应横竖滚动条的尺寸*/
+//   height: 1px;
+//   overflow: hidden;
+// }
+// ::-webkit-scrollbar-thumb {
+//   /*滚动条里面小方块*/
+//   border-radius: 1px;
+//   box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
+//   background   : rgba(28,82,216,1);
+// }
+// ::-webkit-scrollbar-track {
+//   /*滚动条里面轨道*/
+//   box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
+//   border-radius: 1px;
+//   background   : #ededed;
+// }
+
+// 对话框
+/deep/ .el-dialog{
+    background-color: transparent;
+    top:15%;
+}
+/deep/ .el-dialog__header{
+    padding:0;
+    padding-bottom:0;
+}
+/deep/ .el-dialog__body{
+    padding:0;
+}
+/deep/ .el-dialog__headerbtn .el-dialog__close{
+    display: none;
+}
+
+
+// table
+/deep/ .el-table--group, /deep/ .el-table--border{
+    border:none;
+}
+/deep/ .el-table thead{
+    color:#fff;
+    // background-color: rgba(28,82,216,.2);
+}
+
+/deep/ .el-table--border th{
+    border:1px solid #fff;
+    border-bottom:none;
+}
+
+/deep/ .el-table--border td{
+    border:1px solid #fff
+}
+ /deep/  .el-table, .el-table__expanded-cell {
+    background-color: transparent;//这是设置透明背景色
+    color:#fff;
+    border-collapse: collapse;
+    
+  }
+
+/deep/ .el-table__empty-text{
+    color:#fff;
+    font-size: 10px;
+    letter-spacing: 2px;
+}
+
+
+// data
+/deep/ .el-date-editor{
+    border:1px solid #ccc;
+    background-color: transparent;
+    height:25px;
+    line-height: 20px;
+    padding:0;
+    margin-top:2px;
+    box-sizing: border-box;
+}
+/deep/ .el-range-input, /deep/ .el-input__icon el-range__close-icon{
+    background-color: transparent;
+    color:#fff;
+    font-size: 12px;
+    text-align: top;
+    padding:0;
+    position: relative;
+    top:-4px
+}
+/deep/ .el-range__icon{
+    display: none;
+}
+/deep/ .el-date-editor--datetimerange.el-input__inner{
+    width:77%;
+    
+    display: inline-block;
+    
+}
+/deep/ ::placeholder{
+    color:#fff
+}
+/deep/ .el-range-separator{
+    color:#fff;
+    position: relative;
+    top:-4px
+}
+/deep/table,/deep/ tr,/deep/ td{
+    border-collapse: collapse !important;
+}
+/deep/ tr:hover, /deep/ td:hover, /deep/ table:hover{
+    background-color: none !important;
+}
+/deep/ .el-table__empty-block{
+    border:1px solid #fff;
+}
+/deep/ .el-table tbody tr:hover>td { 
+    background-color:transparent
+}
+
+::-webkit-scrollbar {
+  /*滚动条整体样式*/
+  width : 0px;  /*高宽分别对应横竖滚动条的尺寸*/
+  height: 0px;
+  }
+::-webkit-scrollbar-thumb {
+  /*滚动条里面小方块*/
+  border-radius: 0px;
+  box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
+  background   : #535353;
+  }
+ ::-webkit-scrollbar-track {
+  /*滚动条里面轨道*/
+  box-shadow   : inset 0 0 5px rgba(0, 0, 0, 0.2);
+  border-radius: 0px;
+  background   : #ededed;
+  }
+
+::-webkit-scrollbar {
+	    display: none
+	  }
+      /deep/.el-table--scrollable-y ::-webkit-scrollbar {
+  display: none;
+}
+</style>

+ 0 - 226
src/components/SD-school/Spring-frame/video 原始vue

@@ -1,226 +0,0 @@
-<template>
-    <div>
-        <el-row class="video commonWidth" v-if="state">
-            <el-col class="top">
-                <el-col class="title">
-                    <img src="../../../assets/image/arrow.png" alt="" />
-                    <span>视频监控</span>
-                    <img src="../../../assets/image/icon2.png" alt="" class="equipment-icon"/>
-                </el-col>
-                <p class="close" @click="close"></p>
-            </el-col>
-            <el-col class="contain">
-                <video v-if="Message.play"
-                    :id="Message.videoId"  
-                    class="video-js vjs-default-skin videoPaly" 
-                    preload="auto" 
-                    autoplay="autoplay" 
-                    v-on:error.prevent="videoLoadError(Message.videoId)"
-                    :src="Message.videoUrl" type="application/x-mpegURL">
-                </video>
-                <div class="videoNo" v-if="Message.videoNo">
-                    <img src="../../../assets/image/video.png"   alt="">
-                    <p>摄像头设备参数暂未接入</p>
-                </div>
-            </el-col>
-        </el-row>
-  </div>
-</template>
-<script>
-import 'video.js/dist/video-js.css'
-import videojs from 'video.js'
-import 'videojs-contrib-hls'
-import "@videojs/http-streaming"
-import {  videoUrl } from "@/plugins/api"
-
-export default {
-    props:['resInfo'],
-    data() {
-        return {
-            state:false,
-            Message:{
-                "play":false,
-                "videoId":undefined,
-                "videoUrl":false,
-                "videoNo":false,
-                "videoImg":require("../../../assets/image/video.jpg"),
-                "vedioData":[]
-            },
-        }
-    },
-    mounted(){
-        this.getData()
-    },
-    methods: {
-        getData(){//获取数据赋值
-            if(this.resInfo.code){
-                videoUrl({"cameraIndexCode":this.resInfo.code,"protocol":"hls"}).then(res =>{ // 点位摄像头视频
-                    if(res.data != null){
-                        this.Message.videoId = "video" + Date.now()
-                        this.Message.videoUrl = res.data.url
-                        this.Message.play = true
-                        this.state = true
-                        this.Message.videoNo = false
-                        this.videoPlay()
-                    }
-                })
-            }else{
-                console.log("摄像头未绑定")
-                this.Message.videoNo = true
-                this.Message.play = false
-            }
-        },
-        videoPlay(){//播发
-            this.$nextTick(() => {
-                let list = videojs(this.Message.videoId , {
-                    events: [],
-                    // playbackRates: [0.7, 1.0, 1.5, 2.0], // 播放速度
-                    autoplay: "true", // 如果true,浏览器准备好时开始回放。
-                    controls: true, //  控制条
-                    preload: 'auto', // 视频预加载
-                    muted: true, //  默认情况下将会消除任何音频。
-                    loop: false, // 导致视频一结束就重新开始。
-                    language: 'zh-CN',
-                    controlBar: {
-                        timeDivider: true,
-                        durationDisplay: true
-                    },
-                    aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
-                    fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
-                    sources: [{
-                        type: 'application/x-mpegURL',
-                        src: this.Message.videoUrl
-                    }],
-                    hls: true, // 启用hls?
-                    //poster: 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fhbimg.b0.upaiyun.com%2F945cad7c7105d352aa3c513c94846bb0c2f1a61342067-OWFZcE_fw658&refer=http%3A%2F%2Fhbimg.b0.upaiyun.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1638947006&t=9cd1ab4df990ba151fcd5f0378f6e8cf', // 你的封面地址
-                    width: document.documentElement.clientWidth,
-                    notSupportedMessage: '此视频暂无法播放,请稍后再试'
-                }, function () {
-                    this.play() // 自动播放
-                })
-            })
-        },
-        videoLoadError(id){
-            this.videoPlay()
-            // setTimeout(()=>{
-            //     console.log(id)
-            //     let list = videojs(id, {
-            //         events: [],
-            //         // playbackRates: [0.7, 1.0, 1.5, 2.0], // 播放速度
-            //         autoplay: "true", // 如果true,浏览器准备好时开始回放。
-            //         controls: true, //  控制条
-            //         preload: 'auto', // 视频预加载
-            //         muted: true, //  默认情况下将会消除任何音频。
-            //         loop: false, // 导致视频一结束就重新开始。
-            //         language: 'zh-CN',
-            //         controlBar: {
-            //         timeDivider: true,
-            //         durationDisplay: true
-            //         },
-            //         aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
-            //         fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
-            //         sources: [{
-            //         type: 'application/x-mpegURL',
-            //             src: this.Message.videoUrl
-            //         }],
-            //         hls: true, // 启用hls?
-            //         //poster: 'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fhbimg.b0.upaiyun.com%2F945cad7c7105d352aa3c513c94846bb0c2f1a61342067-OWFZcE_fw658&refer=http%3A%2F%2Fhbimg.b0.upaiyun.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1638947006&t=9cd1ab4df990ba151fcd5f0378f6e8cf', // 你的封面地址
-            //         width: document.documentElement.clientWidth,
-            //         notSupportedMessage: '此视频暂无法播放,请稍后再试'
-            //     }, function () {
-            //         this.play() // 自动播放
-            //     })
-            // },100)
-        },
-        close(){//关闭
-            this.state = false
-            this.Message.play = false
-            this.Message.videoId = false
-            this.Message.videoNo = false
-            this.$emit("close",false)
-        },
-    },
-};
-</script>
-
-<style lang="scss" scoped>
-.commonWidth{
-    width:450px;
-    display: block;
-    margin:0 auto; 
-    .top{
-        height: 39px;
-        line-height: 35px;
-        background: rgba(28,82,216,.5);
-        border: 1px solid #1C52D8;
-        border-bottom:none;
-        border-radius: 4px 4px  0 0;
-        .title{
-            width:50%;
-            font-size: 16px;
-            margin-left:16px;
-            margin-top:-2px;
-            vertical-align: middle;
-            color:#38E7EE;
-            vertical-align: middle;
-            img{
-                margin-right:4px;
-                vertical-align: middle;
-            }
-            span{
-                margin-left:16px;
-                vertical-align: middle;
-            }
-            .equipment-icon{
-                width:16px;
-                position: absolute;
-                top:14px;
-                right:45%;
-            }
-        }
-        .close{
-            width:16px;
-            height:16px;
-            background: url('../../../assets/image/close.png') ;
-            float:right;
-            margin:10px 6px 0 0;
-        }
-    } 
-    .contain{
-        background-color:rgba(0,22,103,.85);
-        border-radius: 0 0 4px 4px;
-        height:252px;
-        background-color: #000;
-    }
-}
-.video{
-    .contain{
-        overflow: hidden;
-        .videoPaly{
-            width:100%;
-        }
-        .videoNo{
-            margin: 10% auto;
-            img{
-                height:97px;
-                width:102px;
-                display: block;
-                margin: 0 auto;
-            }
-            p{
-                text-align: center;
-                font-size: 12px;
-                color:#fff;
-                margin-top:3%;
-            }
-            
-        }
-    }
-    
-}
-/deep/ .video-js .vjs-big-play-button{
-  top: 40% !important;
-  left: 50% !important;
-  margin-left: -1.5em !important;
-}
-</style>

+ 1 - 1
src/components/SD-school/energy/index.vue

@@ -142,7 +142,7 @@ export default {
                 for(let i =0;i<data.length;i++){
                   if(data[i].deviceType == "1"){
                     if(data[i].deviceName == "A1-1#进线柜" || data[i].deviceName == "A17-2#进线柜" || data[i].deviceName == "B1-3#进线柜"){
-                      console.log(data[i])
+                      // console.log(data[i])
                       // 01A00
                       arrz11.push(data[i])
                       arrz1 += (Math.abs(data[i].powerVal))

+ 21 - 1
src/components/SD-school/give-an-alarm/index.vue

@@ -66,6 +66,7 @@
 </template>
 <script>
 import { typeApi, shebeifyApi } from "@/plugins/api";
+import axios from 'axios'
 export default {
   props: ["websocket"],
   data() {
@@ -83,7 +84,7 @@ export default {
         endTime: "",
         systemCode: "",
         current: "1",
-        size: "10",
+        size: "100",
       },
       resList: [],
       headerData: [
@@ -161,7 +162,24 @@ export default {
           this.moreNo = true;
           this.formS.current--;
         }
+        
       });
+        axios.post('http://park.usky.cn:13210/prod-api/service-iot/baseAlarm/page_notoken',{
+                "current": 1,
+                "size": 10,
+                "productCode":"511_XFFJ"
+        }).then(Response=>{
+            let arr = Response.data.data.records
+            let da = []
+            for(let i=0;i<arr.length;i++){
+              da[i] = {
+                createTime:arr[i].alarmTime,
+                alarmContent:arr[i].alarmObject + arr[i].alarmContent,
+                systemCode:arr[i].alarmAttribute,
+              }
+              this.resList.unshift(da[i])
+            }
+        })
     },
     changeSelect(val) {
       this.systemCode = val;
@@ -297,6 +315,7 @@ export default {
             }
           }
           this.resList.unshift(data);
+          
         } else {
           //websocket加入不同类型
           if (this.websocket.describe == "infoAdd") {
@@ -361,6 +380,7 @@ export default {
           }
         }
         this.resList.unshift(data);
+        
       }
       this.$emit("giveAnAlarmClick", data);
     },

+ 5 - 5
src/components/SD-school/header-view/index.vue

@@ -6,16 +6,16 @@
       <el-col class="weather">
         <!-- <img v-if="weatherObj.weather_pic" :src="weatherObj.weather_pic || ''" alt="" />
         <span v-if="weatherObj.weather">{{ weatherObj.weather }} {{ weatherObj.temperature }}℃</span> -->
-        <img :src="weatherObj.weather_pic || ''" alt="" />
+        <!-- <img :src="weatherObj.weather_pic || ''" alt="" /> -->
       </el-col>
-      <el-col>{{weatherObj.weather || ''}}{{weatherObj.temperature || ''}}℃</el-col>
+      <!-- <el-col>{{weatherObj.weather || ''}}{{weatherObj.temperature || ''}}℃</el-col>
       <el-col>{{weatherObj.wind_direction || ''}}{{weatherObj.wind_power || ''}}</el-col>
-      <el-col>PM2.5<span>{{weatherObj.aqiDetail && weatherObj.aqiDetail.pm2_5 || ''}}</span></el-col>
+      <el-col>PM2.5<span>{{weatherObj.aqiDetail && weatherObj.aqiDetail.pm2_5 || ''}}</span></el-col> -->
     </el-row>
     <el-row class="headerCenterBox" title="中共山东省委党校(山东行政学院) 东校区二期综合培训楼">中共山东省委党校(山东行政学院)</el-row>
     <el-row class="headerRowBox"> 
-      <el-col>空气质量:{{weatherObj.aqi || ''}}</el-col>
-      <el-col>相对湿度:{{weatherObj.sd || ''}}</el-col>
+      <!-- <el-col>空气质量:{{weatherObj.aqi || ''}}</el-col>
+      <el-col>相对湿度:{{weatherObj.sd || ''}}</el-col> -->
       <!-- <p v-if="isOff" @click="musicBgcontrol">背景音乐开启 {{musicTitle}}</p>
       <p v-else @click="musicBgcontrol">背景音乐关闭{{musicTitle}}</p> -->
     </el-row>

+ 32 - 8
src/components/SD-school/info/echart.js

@@ -1,16 +1,40 @@
+import axios from 'axios'
 export default function getData(data, type) {
     let totle = data.reduce((a, b) => {
         return a + b.typeCount
     }, 0)
-    // 真实数据
-    // let params = data.map(val => {
-    //     return {
-    //         value: ((val.typeCount / totle) * 100).toFixed(2),
-    //         name: val.alarmDeviceName
-    //     }
-    // })
+    //真实数据
+        // let params = data.map(val => {
+        //     return {
+        //         value: ((val.typeCount / totle) * 100).toFixed(2),
+        //         name: val.alarmDeviceName
+        //     }
+        // })
+        // axios.post('http://park.usky.cn:13210/prod-api/service-iot/baseAlarm/statistic_notoken',{
+        //         "current": 1,
+        //         "size": 10,
+        //         "productName":"新风"
+        // }).then(Response=>{
+        //     console.log(11,Response.data.data.records)
+        //     let data =Response.data?.data?.records
+        //     let xfParams = {
+        //         value:0,
+        //         name:"新风系统"
+        //     }
+        //     if(data && data.length>0){
+        //         for(let i=0;i<data.length;i++){
+        //             xfParams.value = data[i].total + xfParams.value
+        //         }
+        //         totle = totle + xfParams.value
+        //         xfParams.value = (xfParams.value / totle).toFixed(2)
+        //         params.unshift(xfParams)
+        //     }
+            
+        // })
+    
     // 测试数据
     let params = [
+        { value: '2', name: '新风系统' },
         { value: '10', name: '消防应急' },
         { value: '11', name: '门禁系统' },
         { value: '17.20', name: '停车系统' },
@@ -19,7 +43,7 @@ export default function getData(data, type) {
         { value: '14.00', name: '视频系统' },
         { value: '13.00', name: '设备故障' },
         { value: '11.30', name: '建筑智能' },
-        { value: '10.40', name: '动环系统' },
+        { value: '8.40', name: '动环系统' },
     ]
     return {
         color: [

Datei-Diff unterdrückt, da er zu groß ist
+ 518 - 346
src/components/SD-school/monitor/index.vue


+ 207 - 0
src/components/SD-school/xinfen/index.vue

@@ -0,0 +1,207 @@
+<template>
+  <el-row class="mianBox">
+    <el-row class="headerBox">
+      <el-col class="title">
+        <img src="../../../assets/image/arrow.png" alt="" />
+        新风当日平均数据
+      </el-col>
+    </el-row>
+    <el-row class="content">
+      <el-col class="Bot" :span=12 v-if="status">
+          <div class="title">室内</div>
+          <el-row v-for="(item,index) in shinei" :key="index">
+            <el-col :span=8>{{item.name}}</el-col>
+            <!-- <el-col :span=8 v-if="item.name != 'voc:'"><CountTo :decimal='2' startVal=0 :endVal="item.value" :duration='3000'>{{item.value}}</CountTo></el-col> -->
+            <el-col :span=8 >{{item.value}}</el-col>
+            <el-col :span=8 >{{item.unit}}</el-col>
+          </el-row>
+      </el-col>
+      <el-col class="Bot" :span=12 v-if="status">
+        <div class="title">室外</div>
+        <el-row v-for="(item,index) in shiwai" :key="index" >
+            <el-col :span=8>{{item.name}}</el-col>
+            <el-col :span=8>{{item.value}}</el-col>
+            <el-col :span=8>{{item.unit}}</el-col>
+          </el-row>
+      </el-col>
+    </el-row>
+  </el-row>
+</template>
+
+<script>
+import axios from 'axios'
+import dayjs from "dayjs"
+import CountTo from 'vue-count-to'
+export default {
+  data() {
+    return {
+      isCheck: "alarm",
+      // resList:{alarm:[],deviceStatus:[]},
+      resList2:[],
+      totleNumber:0,
+      annormalNumber:0,
+      shinei:[
+        {name:"co2:",value:0,unit:"PPM"},
+        {name:"PM2.5:",value:0,unit:"ug/m³"},
+        {name:"温度:",value:0,unit:"℃"},
+        {name:"湿度:",value:0,unit:"RH%"},
+        {name:"voc:",value:"优",unit:""},
+      ],
+      shiwai:[
+        {name:"PM2.5:",value:0,unit:"ug/m³"},
+        {name:"温度:",value:0,unit:"℃"},
+        {name:"湿度:",value:0,unit:"RH%"},
+        {name:"空气质量:",value:"优",unit:""},
+      ],
+      status:true,
+    };
+  },
+  components: {
+    CountTo
+  },
+  mounted(){
+    this.getData()
+  },
+  methods:{
+    async getData(){
+
+        axios({
+            method: 'post',
+            url: 'http://gateway.usky.cn/prod-api/usky-backend/dataQuery/deviceDataAverage',
+            headers:{
+              Authorization:localStorage.getItem("token")
+            },
+            data: {
+              attributeNames: ["wd", "sd", "pm2_5", "co2", "voc"],
+              dataType:"Day",
+              deviceType: "511",
+              endTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
+              groupType: "Total",
+              productCode: "511_XFFJ",
+              startTime: (dayjs().format('YYYY-MM-DD HH:mm:ss')).split(" ")[0] + " 00:00:00"
+            },
+            timeout: 3000,
+        }).then(res=>{
+          if(res.data.data.length>0){
+            let data1 = res.data.data[0]
+            this.shinei[0].value = data1.co2
+            this.shinei[1].value = data1.pm2_5
+            this.shinei[2].value = data1.wd
+            this.shinei[3].value = data1.sd
+            this.shinei[4].value = data1.voc
+          }
+        })
+        axios({
+            method: 'post',
+            url: 'http://gateway.usky.cn/prod-api/usky-backend/dataQuery/deviceDataAverage',
+            headers:{
+              Authorization:localStorage.getItem("token")
+            },
+            data: {
+              attributeNames: ["wd", "sd", "pm2_5", "quality"],
+              deviceIds:["weather0001"],
+              dataType:"Day",
+              deviceType: "511",
+              endTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
+              groupType: "Each",
+              productCode: "511_XFFJ",
+              startTime: (dayjs().format('YYYY-MM-DD HH:mm:ss')).split(" ")[0] + " 00:00:00"
+            },
+            timeout: 3000,
+        }).then(res=>{
+          if(res.data.data.length>0){
+            let data2 = res.data.data[0]
+            this.shiwai[0].value = data2.pm2_5
+            this.shiwai[1].value = data2.wd
+            this.shiwai[2].value = data2.sd
+            this.shiwai[3].value = data2.quality
+          }
+        })
+    },
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.mianBox {
+  background: url("../../../assets/image/view1.png") no-repeat;
+  background-size: 100% 100%;
+  .el-row {
+    flex: none;
+  }
+  .content {
+    flex: 1;
+    width: 100%;
+    padding:10px;
+    box-sizing: border-box;
+    .Bot{
+      .title{
+        text-align: center;
+      }
+      .el-row{
+        .el-col{
+          font-size: 14px;
+          margin-top:16px;
+          height:30px;
+          line-height: 30px;
+        }
+        .el-col:nth-child(1){
+          text-align: right;
+        }
+        .el-col:nth-child(2){
+          background: #143B8F;
+          text-align: center;
+          // line-height: 20px;
+          color:#00E4FF;
+        }
+        .el-col:nth-child(3){
+          text-align: left;
+          display: block;
+          padding-left:4px;
+        }
+      }
+      
+    }
+  }
+  .bot {
+    height: 90px;
+    width: 100%;
+    padding: 0 15px;
+    display: flex;
+    justify-content: space-between;
+    & > .el-col {
+      width: 45%;
+      color: #FFF;
+      background: url("../../../assets/image/box1.png") no-repeat;
+      background-size: 100% 100%;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+      .el-col{
+          width: auto;
+      }
+    }
+    .leftBot{
+        &>.el-col:first-child{
+            color: #00FE24;
+            font-size: 28px;
+            font-family: Impact Regular, Impact Regular-Regular;
+        }
+        &>.el-col:last-child{
+            font-size: 16px;
+        }
+    }
+    .rightBot{
+        &>.el-col:first-child{
+            color: #FF7112;
+            font-size: 28px;
+            font-family: Impact Regular, Impact Regular-Regular;
+        }
+        &>.el-col:last-child{
+            font-size: 16px;
+        }
+    }
+  }
+}
+</style>

+ 9 - 0
src/plugins/api.js

@@ -338,4 +338,13 @@ export function movingRing(data) { //动环
     })
 }
 
+//========  saas    =================
+export function login(data) { //登录接口
+    return request({
+        url: '/sealHead/result',
+        method: 'get',
+        params: data
+    })
+}
+
 

+ 38 - 4
src/views/Home.vue

@@ -4,7 +4,8 @@
 		<div class="btn" @click="btn2" >消防物联网</div>
 		<el-row class="contentClass contnetLift">
 			<template>
-				<info class="info" :resInfo="data.info" :websocket="data.winfo" />
+				<!-- <info class="info" :resInfo="data.info" :websocket="data.winfo" /> -->
+				<xinfen class="info" />
 				<parking-lot class="parkingLot"  :resInfo="data.parkingLot" :websocket="data.wparkingLot" />
 				<monitor class="monitor" @monitorChange="monitorChange" v-if="monitorStatus" />
 				
@@ -12,6 +13,8 @@
 		</el-row>
 		<el-row class="contnetCenter" >
 			<iframe src="https://www.thingjs.com/s/cd7b1592538e0f4a9572c55e?params=105b0f77fd24654d4eebc434e9" frameborder="0" id="iframe" ></iframe>
+			<!-- <iframe src="https://www.thingjs.com/s/2d2a05bd655726c54d2a5369?params=105b0f77fd24654d4eebc434e9" frameborder="0" id="iframe" ></iframe> -->
+							
 		</el-row>
 		<el-row class="contentClass contnetRight">
 			<energy class="energy"   @energyClick="energyClick" />
@@ -31,7 +34,8 @@
 </template>
 <script>
 // 党校
-import info from "../components/SD-school/info"; // 综合信息统计
+import xinfen from "../components/SD-school/xinfen"; // 新风数据
+// import info from "../components/SD-school/info"; // 综合信息统计
 import accessControl from "../components/SD-school/access-control"; // 门禁进出入统计
 import parkingLot from "../components/SD-school/parking-lot"; // 停车场统计
 import monitor from "../components/SD-school/monitor"; // 视频监控
@@ -59,7 +63,6 @@ import {
 export default {
   	name: "Home",
   	components: {
-		info,
 		parkingLot,
 		monitor,
 		emergencyDisasterPrevention,
@@ -67,7 +70,8 @@ export default {
 		computerRoom,
 		giveAnAlarm,
 		SpringFrame,
-		energy
+		energy,
+		xinfen
   	},
   	data() {
 		return {
@@ -108,6 +112,8 @@ export default {
 				"yongtianState":false,
 				"energyState":false,
 				"roomState":false,
+				"roomXFState":false,
+				"XFJZState":false,
 				"computerRoomState":false,
 
 				"warningMessage":{},
@@ -126,6 +132,8 @@ export default {
 				"yongtianMessage":undefined,
 				"energyMessage":undefined,
 				"roomMessage":undefined,
+				"roomXFMessage":undefined,
+				"XFJZMessage":undefined,//新风机组
 				"computerRoomMessage":undefined
 				
 				// "alertMessage":{ //
@@ -139,6 +147,7 @@ export default {
 		};
 	},
 	created() {
+		this.getToken()
 		this.getData()
 		this.getComputerRoom()//机房数据单独获取
 		//this.ceshi() //测试宿舍设备
@@ -147,6 +156,7 @@ export default {
 	mounted() {
 		var that = this;
 		window.addEventListener("message",function (event) {
+			console.log(event)
 			var isDOM = typeof event.data === "object";
 			// // 监听父窗口发送过来的数据向服务器发送post请求
 			var data = event.data;
@@ -265,6 +275,14 @@ export default {
 										that.springFrameState = true
 										that.item.computerRoomState = true
 										that.item.computerRoomMessage = res.data
+									}else if(res.data.manufacturer == 51103){//研讨室、活动室、接待区、教室
+										that.springFrameState = true
+										that.item.roomXFState = true
+										that.item.roomXFMessage = res.data
+									}else if(res.data.manufacturer == 51101){//研讨室、活动室、接待区、教室
+										that.springFrameState = true
+										that.item.XFJZState = true
+										that.item.XFJZMessage = res.data
 									}else{
 										//console.log("除永天设备、信发、摄像头、ba、门禁外设备")
 										that.springFrameState = true
@@ -289,6 +307,22 @@ export default {
 		},false)
 	},
 	methods: {
+		//获取token
+		getToken(){
+			axios({
+				method: 'post',
+				url: 'http://gateway.usky.cn/prod-api/system/appLogin',
+				data: {
+					username: "YT_admin",
+						password: "YT_admin",
+						tenantId: "1042",
+				},
+				timeout: 3000,
+			}).then(res=>{
+				localStorage.setItem("token",res.data.data.access_token)
+			})
+		},
+      
 		ceshi(){
 			//let id = (data.param.id).split("/")[0]
 			let params = {

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.