Selaa lähdekoodia

信发设备接口对接

wangtao 3 vuotta sitten
vanhempi
commit
b71fb8688a

+ 5 - 0
package-lock.json

@@ -7276,6 +7276,11 @@
       "integrity": "sha1-9OaGxd4eofhn28rT1G2WlCjfmMQ=",
       "dev": true
     },
+    "js-md5": {
+      "version": "0.7.3",
+      "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz",
+      "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ=="
+    },
     "js-message": {
       "version": "1.0.7",
       "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.7.tgz",

+ 1 - 0
package.json

@@ -14,6 +14,7 @@
         "element-ui": "^2.4.5",
         "flv.js": "^1.6.2",
         "hls": "0.0.1",
+        "js-md5": "^0.7.3",
         "videojs-contrib-hls": "^5.15.0",
         "videojs-flash": "^2.2.1",
         "vue": "^2.6.11",

BIN
src/assets/image/entranceGuard.png


+ 418 - 73
src/components/SD-school/Spring-frame/index.vue

@@ -8,7 +8,7 @@
                     <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-row class="meeting commonWidth" v-if="meeting.state"><!--会议信息弹框-->
                 <el-col class="top">
                     <el-col class="title">
                         <img src="../../../assets/image/arrow.png" alt="" />
@@ -16,10 +16,10 @@
                     </el-col>
                     <p class="close" @click="close"></p>
                 </el-col>
-                <!-- <el-col class="contain">
+                <el-col class="contain">
                     <el-col class="section1 section" >
                         <el-col class="title">会议预约列表</el-col>
-                        <el-table :data="meetimgMsg.order" border style="width: 100%;height:104px" class="scroll"  id="table1" v-infinite-scroll="moreMeetimgMsg1">
+                        <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}}
@@ -40,7 +40,7 @@
                             @change="changeDate"
                             >
                         </el-date-picker>
-                        <el-table :data="meetimgMsg.history" border style="width: 100%;height:80px" class="scroll"  v-infinite-scroll="moreMeetimgMsg2">
+                        <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">
@@ -51,7 +51,7 @@
                             <el-table-column prop="realityPerson" label="实到人数" width="64"> </el-table-column>
                         </el-table>
                     </el-col>
-                </el-col> -->
+                </el-col> 
             </el-row>
             <el-row class="equipment commonWidth" v-if="equipment.state"><!--设备信息弹框-->
                 <el-col class="top">
@@ -70,32 +70,62 @@
                     <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-row class="xinfa commonWidth" v-if="xinfa.state">><!--信发设备信息弹框-->
                 <el-col class="top">
                     <el-col class="title">
                         <img src="../../../assets/image/arrow.png" alt="" />
-                        <span>2楼东电梯信息终端</span>
-                        <img src="../../../assets/image/icon1.png" alt="" class="equipment-icon"/>
+                        <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"></span>
-                            <span class="span2"></span>
+                        <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">
-                        <div class="title">设备控制</div>
+                    <el-col class="module2" v-if="xinfa.sbState">
+                        <div class="title">设备控制</div>
                         <div class="wrap">
-                            <span class="span1"></span>
-                            <span class="span2"></span>
+                            <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>
+            <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 
+                    :show-header="false" 
+                    :row-class-name="tableRowClassName"
+                    :data="entranceGuard.entranceGuardMessage.tableList"   style="width: 100%;height:110px" class="table2 scroll"  v-infinite-scroll="moreMeetingMsg2">
+                        <el-table-column prop="time" label="" ></el-table-column>
+                        <el-table-column prop="type" label="" > </el-table-column>
+                        <el-table-column prop="name" 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">
@@ -143,11 +173,12 @@
   </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 } from "@/plugins/api"
+import { meetingPageApi, meetingStatusApi, videoUrl, xinfaToken } from "@/plugins/api"
 export default {
     props:['resInfo',"close2"],
     data() {
@@ -167,8 +198,8 @@ export default {
                 },
             },
             meeting:{//会议
-                "meetingState":false,
-                "meetimgMessage":{ 
+                "state":true,
+                "meetingMessage":{ 
                     "status":undefined,
                     "meeting":false, //
                     "order":[], //预约列表数据
@@ -210,14 +241,41 @@ export default {
                     {"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,
+            },
+            entranceGuard:{//门禁
+                state:false,
+                entranceGuardMessage:{
+                    "tableList":[
+                        {"time":"09:20", "type":"进", "name":"张三"},
+                        {"time":"09:40", "type":"进", "name":"张三三"},
+                        {"time":"09:20", "type":"进", "name":"张三"},
+                        {"time":"09:40", "type":"进", "name":"张三三"},
+                        {"time":"09:20", "type":"进", "name":"张三"},
+                        {"time":"09:40", "type":"进", "name":"张三三"},
+                        {"time":"09:20", "type":"进", "name":"张三"},
+                        {"time":"09:40", "type":"进", "name":"张三三"},
+                    ],
+                    "Into":30,
+                    "out":20,
+                    "name":"一层大厅1#通道"
+                },
+            },
             time:[],
         }
     },
-    // computed:{
-    //     resInfo(){
-    //         return this.getData()
-    //     },
-    // },
     watch: {
         resInfo(){
             this.getData()
@@ -227,7 +285,6 @@ export default {
         },
         // immediate: true
         // deep: true,//深度监听
-        // immediate: true//immediate设为true后,则监听的这个对象会立即输出,也就是说一刷新页面就会在控制台输出,
     },
     mounted(){
         this.getData()
@@ -278,9 +335,10 @@ export default {
         }else if(this.resInfo.meetingState){//会议
             console.log("会议更新")
             //会议状态
-                meetingStatusApi({"rootName":this.meetimg.meetimgMessage.meetingForm1.roomId}).then(res =>{
-                    this.meetimg.state = res.data
-                })
+            meetingStatusApi({"rootName":this.meeting.meetingMessage.meetingForm1.roomId}).then(res =>{
+                console.log(res)
+                // this.meeting.state = res.data
+            })
             //会议列表、历史会议
             var myDate = new Date();
             let Year = myDate.getFullYear();
@@ -296,26 +354,24 @@ export default {
             }else{
                 Day = Day
             }
-            this.meetimg.meetimgMessage.meetingForm1.current = 1
-            this.meetimg.meetimgMessage.meetingForm2.current = 1
-            this.meetimg.meetimgMessage.meetingForm1.startTime = Year + '-' + Month + '-' + Day + " 00:00:00"
-            this.meetimg.meetimgMessage.meetingForm1.endTime = Year + '-' + Month + '-' + Day + " 23:59:59"
-                meetingPageApi(this.meetimg.meetimgMessage.meetingForm1).then(res =>{
-                    this.meetimg.meetimgMessage.meeting = true
-                    this.meetimg.meetimgMessage.order = res.data.records
-                })
-                meetingPageApi(this.meetimg.meetimgMessage.meetingForm2).then(res =>{
-                    this.meetimg.meetimgMessage.history = res.data.records
-                })
-            
-            
+            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
             this.equipment.equipmentMessage = this.resInfo.equipmentMessage
         }else if(this.resInfo.videoState){//视频
             if(this.resInfo.videoMessage){
-                videoUrl({"cameraIndexCode":this.resInfo.videoMessage.data.registerDeviceId,"protocol":"hls"}).then(res =>{ // 点位摄像头视频
+                videoUrl({"cameraIndexCode":this.resInfo.videoMessage.registerDeviceId,"protocol":"hls"}).then(res =>{ // 点位摄像头视频
                     console.log("摄像头绑定")
                     if(res.data != null){
                         this.video.videoUrl = res.data.url
@@ -331,15 +387,65 @@ export default {
                 this.video.videoNo = true
                 this.video.play = false
             }
-        }else{
+        }else if(this.resInfo.xinfaState){//信发
+            console.log(this.resInfo,this.resInfo.xinfaMessage.registerDeviceId)
+            this.xinfa.cMarks = this.resInfo.xinfaMessage.registerDeviceI
+            let cMark = this.resInfo.xinfaMessage.registerDeviceId
+            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 =>{
+					console.log(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
 
+                });
+			})
+            
         }
     },
     changeDate(){
-        this.meetimg.meetimgMessage.meetingForm2.current = 1
+        this.meeting.meetingMessage.meetingForm2.current = 1
 		this.dataChange()
-        meetingPageApi(this.meetimg.meetimgMessage.meetingForm2).then(res =>{
-            this.meetimg.meetimgMessage.history = res.data.records
+        meetingPageApi(this.meeting.meetingMessage.meetingForm2).then(res =>{
+            this.meeting.meetingMessage.history = res.data.records
         })
     },
     dataChange(){//时间转化
@@ -358,7 +464,7 @@ export default {
             }else{
             Day1 = Day1
             }
-            this.meetimg.meetimgMessage.meetingForm2.startTime = Year1 + '-' + Month1 + '-' + Day1 + " 00:00:00"
+            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;
@@ -374,55 +480,126 @@ export default {
             }else{
             Day2 = Day2
             }
-            this.meetimg.meetimgMessage.meetingForm2.endTime = Year2 + '-' + Month2 + '-' + Day2 + " 23:59:59"
+            this.meeting.meetingMessage.meetingForm2.endTime = Year2 + '-' + Month2 + '-' + Day2 + " 23:59:59"
         }
 	},
-    moreMeetimgMsg1() { //预约列表滑动加载
+    moremeetingMsg1() { //预约列表滑动加载
 		console.log('触发预约列表滑动加载事件')
-		this.meetimg.meetimgMessage.meetingForm1.current ++
-		meetingPageApi(this.meetimg.meetimgMessage.meetingForm1).then(res =>{
+		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.meetimg.meetimgMessage.order.push(data[i])
+                    this.meeting.meetingMessage.order.push(data[i])
                 }
 			}else{
-				this.meetimg.meetimgMessage.meetingForm1.current --
+				this.meeting.meetingMessage.meetingForm1.current --
 			}
 		})
 	},
-    moreMeetimgMsg2() { //历史会议信息列表滑动加载
+    moremeetingMsg2() { //历史会议信息列表滑动加载
 		console.log('触发历史会议信息滑动加载事件')
         this.dataChange()
-		this.meetimg.meetimgMessage.meetingForm2.current ++
-		meetingPageApi(this.meetimg.meetimgMessage.meetingForm2).then(res =>{
+		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.meetimg.meetimgMessage.history.push(data[i])
+                    this.meeting.meetingMessage.history.push(data[i])
                 }
 			}else{
-				this.meetimg.meetimgMessage.meetingForm2.current --
+				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",
+                        cMark:this.xinfa.cMarks,
+                        params:JSON.stringify(sCmd),
+                        retry:"0"
+					},
+					timeout: 3000,
+				}).then(res =>{
+					console.log(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(){
         console.log(11)
 		this.warning.state = false
 		this.music.state = false
-		this.meeting.meetimgMessage.meeting = 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%;
@@ -497,13 +674,15 @@ export default {
                 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;
-            background-color:rgba(0,22,103,.85);
-            border-radius: 0 0 4px 4px;
             overflow: hidden;
             .section{
                 padding:10px;
@@ -526,12 +705,19 @@ export default {
                 // 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{
         .contain{
             padding: 10px 10px 25px;
-            background-color:rgba(0,22,103,.85);
-            border-radius: 0 0 4px 4px;
             overflow: hidden;
             .title{
                 margin-top:10px;
@@ -553,8 +739,6 @@ export default {
     }
     .video{
         .contain{
-            background-color:rgba(0,22,103,.85);
-            border-radius: 0 0 4px 4px;
             overflow: hidden;
             .videoPaly{
                 width:100%;
@@ -578,6 +762,171 @@ export default {
         }
         
     }
+    .xinfa{
+        width:290px !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{
+        .contain{
+            height:300px;
+            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:20px;
+                        vertical-align: middle;
+
+                    }
+                    .num{
+                        font-size: 25px;
+                        margin-left:50px;
+                        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;
@@ -625,7 +974,7 @@ export default {
 }
 /deep/ .el-table thead{
     color:#fff;
-    background-color: rgba(28,82,216,.2);
+    // background-color: rgba(28,82,216,.2);
 }
 
 /deep/ .el-table--border th{
@@ -642,11 +991,7 @@ export default {
     border-collapse: collapse;
     
   }
-/deep/ .el-table tr, /deep/ .el-table th, /deep/ .el-table td{
-      background-color: transparent;//这是设置透明背景色
-      font-size: 10px;
-      padding:0;
-}
+
 /deep/ .el-table__empty-text{
     color:#fff;
     font-size: 10px;

+ 1 - 1
src/components/SD-school/emergency-disaster-prevention/echart.js

@@ -41,7 +41,7 @@ export default function getData(data, type) {
             // name: '访问来源',
             type: 'pie',
             radius: ['50%', '80%'],
-            center: ["40%", "50%"],
+            center: ["40%", "48%"],
             avoidLabelOverlap: false,
             label: {
                 show: type === 'alarm',

+ 6 - 5
src/components/SD-school/emergency-disaster-prevention/index.vue

@@ -8,16 +8,16 @@
     </el-row>
     <el-row class="content-wrap">
       <el-row class="content">
-          <div ref="echartD" style="width:100%;height:150px;"></div>
+          <div ref="echartD" style="width:100%;height:200%;"></div>
       </el-row>
       <el-row class="bot">
-          <el-col class="leftBot">
+          <el-col class="leftBot" >
               <el-col>待处理数</el-col>
-              <el-col>{{resList[0].value}}</el-col>
+              <el-col>{{resList[0].value || 0}}</el-col>
           </el-col>
           <el-col class="rightBot">
               <el-col>已处理数</el-col>
-              <el-col>{{resList[1].value}}</el-col>
+              <el-col>{{resList[1].value || 0}}</el-col>
           </el-col>
       </el-row>
     </el-row>
@@ -89,6 +89,7 @@ export default {
   .content-wrap{
     display: flex;
     padding:0px 30px;
+    height:100%;
     .content {
       flex: 1;
       width: 100%;
@@ -100,7 +101,7 @@ export default {
       height: 90px;
       // width: 50%;
       & > .el-col {
-        padding: 15px;
+        padding: 15px 15px;
         color: #FFF;
         background: url("../../../assets/image/box2.png") no-repeat;
         background-size: 100% 100%;

+ 109 - 54
src/components/SD-school/give-an-alarm/index.vue

@@ -108,16 +108,24 @@ export default {
 			if(res.data.records.length>0){
 				this.moreNo = false
 				for(let i =0; i<res.data.records.length; i++){
-					if(res.data.records[i].systemCode == 1){
-						res.data.records[i].systemCode = "Ba"
+					if(res.data.records[i].systemCode == 0){
+						res.data.records[i].systemCode = "门禁"
+					}else if(res.data.records[i].systemCode == 1){
+						res.data.records[i].systemCode = "停车"
 					}else if(res.data.records[i].systemCode == 2){
-						res.data.records[i].systemCode = "停车场"
+						res.data.records[i].systemCode = "消防应急"
 					}else if(res.data.records[i].systemCode == 3){
-						res.data.records[i].systemCode = "应急防灾"
+						res.data.records[i].systemCode = "用户采购"
 					}else if(res.data.records[i].systemCode == 4){
-						res.data.records[i].systemCode = "门禁"
+						res.data.records[i].systemCode = "会议系统"
 					}else if(res.data.records[i].systemCode == 5){
-						res.data.records[i].systemCode = "视频监控"
+						res.data.records[i].systemCode = "机房系统"
+					}else if(res.data.records[i].systemCode == 6){
+						res.data.records[i].systemCode = "音乐系统"
+					}else if(res.data.records[i].systemCode == 7){
+						res.data.records[i].systemCode = "视频系统"
+					}else if(res.data.records[i].systemCode == 8){
+						res.data.records[i].systemCode = "设备故障"
 					}
 					if(res.data.records[i].alarmContent){
 						if(this.isJSON(res.data.records[i].alarmContent)){
@@ -140,23 +148,31 @@ export default {
 		
 	  },  
 	  changeSelect(val){
-		  this.resList = []
+		//   this.resList = []
 		  this.systemCode = val
 		  this.formS.current = 1
 		  this.dataChange()
 		  this.formS.systemCode = val
 		  shebeifyApi(this.formS).then(res =>{
 			for(let i =0; i<res.data.records.length; i++){
-				if(res.data.records[i].systemCode == 1){
-					res.data.records[i].systemCode = "Ba"
+				if(res.data.records[i].systemCode == 0){
+					res.data.records[i].systemCode = "门禁"
+				}else if(res.data.records[i].systemCode == 1){
+					res.data.records[i].systemCode = "停车"
 				}else if(res.data.records[i].systemCode == 2){
-					res.data.records[i].systemCode = "停车场"
+					res.data.records[i].systemCode = "消防应急"
 				}else if(res.data.records[i].systemCode == 3){
-					res.data.records[i].systemCode = "应急防灾"
+					res.data.records[i].systemCode = "用户采购"
 				}else if(res.data.records[i].systemCode == 4){
-					res.data.records[i].systemCode = "门禁"
+					res.data.records[i].systemCode = "会议系统"
 				}else if(res.data.records[i].systemCode == 5){
-					res.data.records[i].systemCode = "视频监控"
+					res.data.records[i].systemCode = "机房系统"
+				}else if(res.data.records[i].systemCode == 6){
+					res.data.records[i].systemCode = "音乐系统"
+				}else if(res.data.records[i].systemCode == 7){
+					res.data.records[i].systemCode = "视频系统"
+				}else if(res.data.records[i].systemCode == 8){
+					res.data.records[i].systemCode = "设备故障"
 				}
 				if(this.isJSON(res.data.records[i].alarmContent)){
 					let alarmContent = JSON.parse(res.data.records[i].alarmContent)
@@ -203,23 +219,31 @@ export default {
 		  }
 	  },
 	  changeDate(val){
-		this.resList = []
+		// this.resList = []
 		this.formS.current = 1
 		this.dataChange()
 		shebeifyApi(this.formS).then(res =>{
 			for(let i =0; i<res.data.records.length; i++){
-			  if(res.data.records[i].systemCode == 1){
-				res.data.records[i].systemCode = "Ba"
-			  }else if(res.data.records[i].systemCode == 2){
-				res.data.records[i].systemCode = "停车场"
-			  }else if(res.data.records[i].systemCode == 3){
-				res.data.records[i].systemCode = "应急防灾"
-			  }else if(res.data.records[i].systemCode == 4){
-				res.data.records[i].systemCode = "门禁"
-			  }else if(res.data.records[i].systemCode == 5){
-				res.data.records[i].systemCode = "视频监控"
-			  }
-			  if(this.isJSON(res.data.records[i].alarmContent)){
+			  	if(res.data.records[i].systemCode == 0){
+					res.data.records[i].systemCode = "门禁"
+				}else if(res.data.records[i].systemCode == 1){
+					res.data.records[i].systemCode = "停车"
+				}else if(res.data.records[i].systemCode == 2){
+					res.data.records[i].systemCode = "消防应急"
+				}else if(res.data.records[i].systemCode == 3){
+					res.data.records[i].systemCode = "用户采购"
+				}else if(res.data.records[i].systemCode == 4){
+					res.data.records[i].systemCode = "会议系统"
+				}else if(res.data.records[i].systemCode == 5){
+					res.data.records[i].systemCode = "机房系统"
+				}else if(res.data.records[i].systemCode == 6){
+					res.data.records[i].systemCode = "音乐系统"
+				}else if(res.data.records[i].systemCode == 7){
+					res.data.records[i].systemCode = "视频系统"
+				}else if(res.data.records[i].systemCode == 8){
+					res.data.records[i].systemCode = "设备故障"
+				}
+			  	if(this.isJSON(res.data.records[i].alarmContent)){
 					let alarmContent = JSON.parse(res.data.records[i].alarmContent)
 					res.data.records[i].alarmContent = alarmContent.dp[0].property
 					// + " " +  alarmContent[0].dp[0].serial + " " +  alarmContent[0].dp[0].value + " " +  alarmContent[0].dp[0].status
@@ -233,10 +257,10 @@ export default {
          var  date =  new  Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
          var Y = date.getFullYear() +  '-' ;
          var M = (date.getMonth()+1 < 10 ?  '0' +(date.getMonth()+1) : date.getMonth()+1) +  '-' ;
-         var D = date.getDate() +  ' ' ;
-         var h = date.getHours() +  ':' ;
-         var m = date.getMinutes() +  ':' ;
-         var s = date.getSeconds();
+         var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) +  ' ' ;
+         var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours())  +  ':' ;
+         var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : +  date.getMinutes()) + ':' ;
+         var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
          return  Y+M+D+h+m+s;
      },
 
@@ -271,17 +295,25 @@ export default {
 			this.type = res.data
 		})
 		for(let i =0; i<this.resInfo.length; i++){
-		  if(this.resInfo[i].systemCode == 1){
-			this.resInfo[i].systemCode = "Ba"
-		  }else if(this.resInfo[i].systemCode == 2){
-			this.resInfo[i].systemCode = "停车场"
-		  }else if(this.resInfo[i].systemCode == 3){
-			this.resInfo[i].systemCode = "应急防灾"
-		  }else if(this.resInfo[i].systemCode == 4){
-			this.resInfo[i].systemCode = "门禁"
-		  }else if(this.resInfo[i].systemCode == 5){
-			this.resInfo[i].systemCode = "视频监控"
-		  }
+			if(this.resInfo[i].systemCode == 0){
+				this.resInfo[i].systemCode = "门禁"
+			}else if(this.resInfo[i].systemCode == 1){
+				this.resInfo[i].systemCode = "停车"
+			}else if(this.resInfo[i].systemCode == 2){
+				this.resInfo[i].systemCode = "消防应急"
+			}else if(this.resInfo[i].systemCode == 3){
+				this.resInfo[i].systemCode = "用户采购"
+			}else if(this.resInfo[i].systemCode == 4){
+				this.resInfo[i].systemCode = "会议系统"
+			}else if(this.resInfo[i].systemCode == 5){
+				this.resInfo[i].systemCode = "机房系统"
+			}else if(this.resInfo[i].systemCode == 6){
+				this.resInfo[i].systemCode = "音乐系统"
+			}else if(this.resInfo[i].systemCode == 7){
+				this.resInfo[i].systemCode = "视频系统"
+			}else if(this.resInfo[i].systemCode == 8){
+				this.resInfo[i].systemCode = "设备故障"
+			}
 
 			if(this.isJSON(this.resInfo[i].alarmContent)){
 				let alarmContent = JSON.parse(this.resInfo[i].alarmContent)
@@ -294,19 +326,29 @@ export default {
     },
 	async getDataAdd(){
 		console.log(this.websocket)
+			
 		if(this.websocket.data?.systemCode){
-			if(this.websocket.data.systemCode == 1){
-				this.websocket.data.systemCode = "Ba"
+
+			if(this.websocket.data.systemCode == 0){
+				this.websocket.data.systemCode = "门禁"
+			}else if(this.websocket.data.systemCode == 1){
+				this.websocket.data.systemCode = "停车"
 			}else if(this.websocket.data.systemCode == 2){
-				this.websocket.data.systemCode = "停车场"
+				this.websocket.data.systemCode = "消防应急"
 			}else if(this.websocket.data.systemCode == 3){
-				this.websocket.data.systemCode = "应急防灾"
+				this.websocket.data.systemCode = "用户采购"
 			}else if(this.websocket.data.systemCode == 4){
-				this.websocket.data.systemCode = "门禁"
+				this.websocket.data.systemCode = "会议系统"
 			}else if(this.websocket.data.systemCode == 5){
-				this.websocket.data.systemCode = "视频监控"
+				this.websocket.data.systemCode = "机房系统"
+			}else if(this.websocket.data.systemCode == 6){
+				this.websocket.data.systemCode = "音乐系统"
+			}else if(this.websocket.data.systemCode == 7){
+				this.websocket.data.systemCode = "视频系统"
+			}else if(this.websocket.data.systemCode == 8){
+				this.websocket.data.systemCode = "设备故障"
 			}else{
-				
+
 			}
 		}
 		console.log(this.systemCode,this.websocket.data.systemCode)
@@ -340,17 +382,30 @@ export default {
 					this.websocket.data.alarmContent = alarmContent[0].dp[0].property 
 					// + " " +  alarmContent[0].dp[0].serial + " " +  alarmContent[0].dp[0].value + " " +  alarmContent[0].dp[0].status
 				}else{
-					if(this.websocket.data.alarams[0].deviceType == "01"){
-						this.websocket.data.systemCode ="Ba"
+
+					if(this.websocket.data.alarams[0].deviceType == "00"){
+						this.websocket.data.systemCode = "门禁"
+					}else if(this.websocket.data.alarams[0].deviceType == "01"){
+						this.websocket.data.systemCode = "停车"
 					}else if(this.websocket.data.alarams[0].deviceType == "02"){
-						this.websocket.data.systemCode ="停车场"
+						this.websocket.data.systemCode = "消防应急"
 					}else if(this.websocket.data.alarams[0].deviceType == "03"){
-						this.websocket.data.systemCode ="应急防灾"
+						this.websocket.data.systemCode = "用户采购"
 					}else if(this.websocket.data.alarams[0].deviceType == "04"){
-						this.websocket.data.systemCode ="门禁"
+						this.websocket.data.systemCode = "会议系统"
 					}else if(this.websocket.data.alarams[0].deviceType == "05"){
-						this.websocket.data.systemCode ="视频监控"
+						this.websocket.data.systemCode = "机房系统"
+					}else if(this.websocket.data.alarams[0].deviceType == "06"){
+						this.websocket.data.systemCode = "音乐系统"
+					}else if(this.websocket.data.alarams[0].deviceType == "07"){
+						this.websocket.data.systemCode = "视频系统"
+					}else if(this.websocket.data.alarams[0].deviceType == "08"){
+						this.websocket.data.systemCode = "设备故障"
+					}else{
+
 					}
+
+
 					this.websocket.data.createTime = this.timeFormat(this.websocket.data.timeStamp)
 					this.websocket.data.alarmContent = this.websocket.data.alarams[0].dp[0].property
 				}

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

@@ -148,9 +148,7 @@ export default {
         if (res.showapi_res_code === 0) {
           this.weatherObj = res.showapi_res_body.now;
         }
-        
       })
-      
     },
   },
   };

+ 3 - 0
src/components/SD-school/info/echart.js

@@ -47,7 +47,10 @@ export default function getData(data, type) {
             top: 0,
             itemGap: 6,
             formatter: function(param) {
+
                 return param + '    ' + params.find(val => val.name === param).value + '%';
+
+
             },
             // tooltip: {
             //     show: true

+ 2 - 2
src/components/SD-school/info/index.vue

@@ -17,11 +17,11 @@
     </el-row>
     <el-row class="bot">
         <el-col class="leftBot">
-            <el-col>{{resInfo && resInfo.checkCount || ''}}</el-col>
+            <el-col>{{resInfo && resInfo.checkCount || 0}}</el-col>
             <el-col>已处理</el-col>
         </el-col>
         <el-col class="rightBot">
-            <el-col>{{resInfo && resInfo.noCheckCount || ''}}</el-col>
+            <el-col>{{resInfo && resInfo.noCheckCount || 0}}</el-col>
             <el-col>待处理</el-col>
         </el-col>
     </el-row>

+ 2 - 2
src/components/SD-school/parking-lot/index.vue

@@ -12,7 +12,7 @@
           <img src="../../../assets/image/car2.png" alt="" />
         </el-col>
         <el-col class="carNumbderLot">
-          <span class="green">{{resList && resList.totalNum || ""}}</span>
+          <span class="green">{{resList && resList.totalNum || 0}}</span>
           <span>车位总数</span>
         </el-col>
       </el-col>
@@ -21,7 +21,7 @@
           <img src="../../../assets/image/car1.png" alt="" />
         </el-col>
         <el-col class="carNumbderLot">
-          <span class="yellow">{{resList && resList.tiatlFreeNum || ""}}</span>
+          <span class="yellow">{{resList && resList.tiatlFreeNum || 0}}</span>
           <span>空闲车位总数</span>
         </el-col>
       </el-col>

+ 3 - 0
src/main.js

@@ -8,6 +8,8 @@ import querystring from 'querystring';
 import hls from 'videojs-contrib-hls'
 import store from './store'
 import './assets/font/index.scss'
+import md5 from 'js-md5';
+
 Date.prototype.Format = function(fmt) {
     let o = {
         'M+': this.getMonth() + 1, // 月份
@@ -24,6 +26,7 @@ Date.prototype.Format = function(fmt) {
     }
     return fmt;
 };
+Vue.prototype.$md5 = md5;
 // 在main.js文件钟准备一个滚动加载指令
 Vue.directive('loadmore', {
     bind(el, binding) {

+ 4 - 2
src/plugins/api.js

@@ -1,4 +1,6 @@
 import request from '@/plugins/request'
+// import { service, request1 } from '@/plugins/request'
+// import { serviceXinfa, request2 } from '@/plugins/request'
 
 //天气
 export function aliWeather(query) {
@@ -147,8 +149,8 @@ export function tbDevice(query) { //设备编号  查看设备详情
 }
 
 
-//立方
-export function xf(query) { //设备编号  查看设备详情
+//xinfa
+export function xinfaToken(query) { //设备编号  查看设备详情
     return request({
         url: 'xftoken',
         method: 'get'

+ 63 - 1
src/plugins/request.js

@@ -3,6 +3,14 @@ import axios from 'axios'
 axios.defaults.headers['Content-Type'] = 'application/json;multipart/form-data;charset=utf-8'
     // 创建axios实例
 const service = axios.create({
+    // axios中请求配置有baseURL选项,表示请求URL公共部分
+    //baseURL: "http://101.133.214.75:81/sdpart/", //内测试
+    baseURL: "http://172.16.120.104:8089/", //本地
+    //baseURL: "http://10.108.34.2:80/sdpart/", //山东
+    // 超时
+    timeout: 10000
+})
+const serviceXinfa = axios.create({
         // axios中请求配置有baseURL选项,表示请求URL公共部分
         //baseURL: "http://101.133.214.75:81/sdpart/", //内测试
         baseURL: "http://172.16.120.104:8089/", //本地
@@ -50,6 +58,45 @@ service.interceptors.request.use(config => {
     Promise.reject(error)
 })
 
+serviceXinfa.interceptors.request.use(config => {
+    // 是否需要设置 token
+    // const isToken = (config.headers || {}).isToken === false
+    // if (getToken() && !isToken) {
+    //     config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
+    // }
+    // 导出请求blob类型或设置其他类型
+    if (config.responseType) {
+        config.responseType = config.responseType
+    }
+    // get请求映射params参数
+    if (config.method === 'get' && config.params) {
+        let url = config.url + '?';
+        for (const propName of Object.keys(config.params)) {
+            const value = config.params[propName];
+            var part = encodeURIComponent(propName) + "=";
+            if (value !== null && typeof(value) !== "undefined") {
+                if (typeof value === 'object') {
+                    for (const key of Object.keys(value)) {
+                        let params = propName + '[' + key + ']';
+                        var subPart = encodeURIComponent(params) + "=";
+                        url += subPart + encodeURIComponent(value[key]) + "&";
+                    }
+                } else {
+                    url += part + encodeURIComponent(value) + "&";
+                }
+            }
+        }
+        url = url.slice(0, -1);
+        config.params = {};
+        config.url = url;
+
+    }
+    return config
+}, error => {
+    console.log(error)
+    Promise.reject(error)
+})
+
 // 响应拦截器
 service.interceptors.response.use(res => {
         return res.data
@@ -60,9 +107,24 @@ service.interceptors.response.use(res => {
     }
 )
 
+serviceXinfa.interceptors.response.use(res => {
+        return res.data
+    },
+    error => {
+        console.log('err' + error)
+        return Promise.reject(error)
+    }
+)
+
 
 
 
 
 
-export default service
+export default service
+// export function request1(service) {
+//     return service;
+// }
+// export function request2(serviceXinfa) {
+//     return serviceXinfa;
+// }

+ 34 - 22
src/views/Home.vue

@@ -12,7 +12,7 @@
 			</template>
 		</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/cd7b1592538e0f4a9572c55e?params=105b0f77fd24654d4eebc434e9" frameborder="0" id="iframe"></iframe> -->
 		</el-row>
 		<el-row class="contentClass contnetRight">
 			<emergencyDisasterPrevention class="emergencyDisasterPrevention" :resInfo="data.emergencyDisasterPrevention"  />
@@ -44,7 +44,6 @@ import {
 	typeApi,
 	shebeifyApi,
 	tbDevice,
-	xf,
 } from "@/plugins/api";
 export default {
   	name: "Home",
@@ -84,10 +83,10 @@ export default {
 				"wgiveAnAlarm":[],
 				
 			},
-			springFrameState:false,//弹框
+			springFrameState:true,//弹框
 			item:{ //弹框下各系统板块
 				"warningState":false,
-				"meetingState":false,
+				"meetingState":true,
 				"equipmentState":false,
 				"videoState":false,
 				"xinfaState":false,
@@ -97,7 +96,8 @@ export default {
 				"videoMessage":{},
 				"xinfaMessage":{},
 				"time":null,
-				"close":false
+				"close":false,
+				"xinfaMessage":{},
 				
 				// "alertMessage":{ //
 				// 	name:null,
@@ -122,25 +122,26 @@ export default {
 			if (isDOM == true) {
 				if ("param" in data == true) {
 					if (data.param.name === "1楼会议室" && data.param.id === "109") { //会议室弹框开启
-						setTimeout(()=>{
-							that.springFrameState = false
-						},1)
-						setTimeout(()=>{
-							that.springFrameState = true
-							that.item.meetingState = true
-						},2)
-						console.log("会议室")
+						// setTimeout(()=>{
+						// 	that.springFrameState = false
+						// },1)
+						// setTimeout(()=>{
+						// 	that.springFrameState = true
+						// 	that.item.meetingState = true
+						// },2)
+						console.log("会议室弹框暂时关闭")
 					}else if(data.param.id =="B1" || data.param.id =="F1" || data.param.id =="F2" || data.param.id =="F3" || data.param.id =="F4" 
 						|| data.param.id =="F5" || data.param.id =="F6" || data.param.id =="F7" || data.param.id =="F8" || data.param.id =="F9" 
 						|| data.param.id =="F10" || data.param.id =="F11" || data.param.id =="F12" || data.param.id =="F13"){ //楼层id过滤
 						console.log("楼层")
 					}else{
 						tbDevice(data.param.id).then(res =>{ //设备信息查询
+						console.log(res)
 							setTimeout(()=>{
 								that.springFrameState = false
 							},1)
 							setTimeout(()=>{
-								console.log(res)
+								console.log(res.data.detail)
 								let name = data.param.name
 								if(name.indexOf("摄像头")>-1){ //摄像头
 									console.log("摄像头")
@@ -149,9 +150,24 @@ export default {
 									that.item.videoMessage = res.data.detail
 								}else{//设备
 									console.log("设备")
-									that.springFrameState = true
-									that.item.equipmentState = true
-									that.item.equipmentMessage = res.data.detail
+									if(res.data.detail){
+										if(res.data.detail.manufacturer == 3){
+											console.log("信发")
+											that.springFrameState = true
+											that.item.xinfaState = true
+											that.item.xinfaMessage = res.data.detail
+										}else{
+											console.log("信发、摄像头外设备")
+											that.springFrameState = true
+											that.item.equipmentState = true
+											that.item.equipmentMessage = res.data.detail
+										}
+									}else{
+										console.log("信发、摄像头外设备")
+										that.springFrameState = true
+										that.item.equipmentState = true
+										that.item.equipmentMessage = res.data.detail
+									}
 								}
 							},2)
 							
@@ -168,11 +184,7 @@ export default {
 			myframe.contentWindow.postMessage({ state: false, name: "门禁" }, "*"); //childDomain是子页面的源(协议+主机+端口号)
 		},
 		async getData(){
-			xf().then(res =>{ //信发设备
-				console.log(res)
-				// authToken: "1027d408-cb99-11e8-aaa2-00163e046949"
-				// secret: "c614157"
-			})
+			
 			accessControlApi().then(res =>{ // 门禁进出入统计
 				this.data.accessControl = res.data
 			})