<!DOCTYPE html> 
 | 
<html lang="en"> 
 | 
  
 | 
<head> 
 | 
    <meta charset="UTF-8"> 
 | 
    <title>设备监控</title> 
 | 
    <link rel="stylesheet" href="../../static/wcs/css/element.css"> 
 | 
    <script type="text/javascript" src="../../static/wcs/js/jquery/jquery-3.3.1.min.js"></script> 
 | 
    <script type="text/javascript" src="../../static/wcs/js/common.js"></script> 
 | 
    <script type="text/javascript" src="../../static/wcs/js/vue.min.js"></script> 
 | 
    <script type="text/javascript" src="../../static/wcs/js/element.js"></script> 
 | 
    <style> 
 | 
        .crnBox .el-carousel__item:nth-child(1n) { 
 | 
            background: #fff; 
 | 
            border: 1px solid #DCDFE6; 
 | 
            box-shadow: 0 2px 12px 0 rgba(0,0,0,.1); 
 | 
            color: #303133; 
 | 
        } 
 | 
  
 | 
        .devpBox .el-carousel__item:nth-child(1n) { 
 | 
            background: #fff; 
 | 
            border: 1px solid #DCDFE6; 
 | 
            box-shadow: 0 2px 12px 0 rgba(0,0,0,.1); 
 | 
            color: #303133; 
 | 
        } 
 | 
  
 | 
        .deviceContainer { 
 | 
            display: flex; 
 | 
            justify-content: space-around; 
 | 
            flex-wrap: wrap; 
 | 
        } 
 | 
  
 | 
        .deviceBox { 
 | 
            width: 600px; 
 | 
            margin-top: 10px; 
 | 
        } 
 | 
  
 | 
        .devpBox { 
 | 
            margin-top: 20px; 
 | 
        } 
 | 
  
 | 
        .deviceHeader { 
 | 
            text-align: center; 
 | 
            font-size: 24px; 
 | 
        } 
 | 
  
 | 
        .deviceBody { 
 | 
            display: flex; 
 | 
            justify-content: space-around; 
 | 
            align-items: center; 
 | 
            margin-top: 20px; 
 | 
            flex-wrap: wrap; 
 | 
        } 
 | 
  
 | 
        .deviceItem { 
 | 
            width: 200px; 
 | 
            height: 40px; 
 | 
        } 
 | 
  
 | 
        .devpDeviceBox { 
 | 
            width: 230px; 
 | 
            margin-top: 10px; 
 | 
        } 
 | 
  
 | 
        .devpDeviceItem { 
 | 
            width: 110px; 
 | 
        } 
 | 
    </style> 
 | 
</head> 
 | 
  
 | 
<body> 
 | 
<div id="app"> 
 | 
    <el-card class="box-card crnBox"> 
 | 
        <div slot="header" class="clearfix"> 
 | 
            <span>堆垛机</span> 
 | 
        </div> 
 | 
        <div class="deviceContainer"> 
 | 
            <div v-for="(item,index) in crnList" :key="index" class="deviceBox"> 
 | 
                <div class="deviceHeader">{{item.crnNo}}号堆垛机</div> 
 | 
                <div class="deviceBody"> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>堆垛机:</span> 
 | 
                        <span>{{ item.crnNo }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>工作号:</span> 
 | 
                        <span>{{ item.workNo }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>模式:</span> 
 | 
                        <span><el-tag :type="item.statusType == '自动' ? 'success':'danger'">{{ item.statusType }}</el-tag></span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>任务状态:</span> 
 | 
                        <span><el-tag :type="item.wrkStatus == 0 ? '':'success'">{{ item.wrkStatus$ }}</el-tag></span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>设备状态:</span> 
 | 
                        <span><el-tag :type="item.deviceStatus == '自动' ? 'success':'danger'">{{ item.deviceStatus }}</el-tag></span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>有物:</span> 
 | 
                        <span><el-tag :type="item.loading == '无物' ? '':'success'">{{ item.loading }}</el-tag></span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>列:</span> 
 | 
                        <span>{{ item.bay }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>层:</span> 
 | 
                        <span>{{ item.lev }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>故障代码:</span> 
 | 
                        <span>{{ item.warnCode }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>故障描述:</span> 
 | 
                        <span>{{ item.error }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>源站:</span> 
 | 
                        <span>{{ item.sourceStaNo }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>目标站:</span> 
 | 
                        <span>{{ item.staNo }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>源库位:</span> 
 | 
                        <span>{{ item.sourceLocNo }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>目标库位:</span> 
 | 
                        <span>{{ item.locNo }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>货叉定位:</span> 
 | 
                        <span>{{ item.forkOffset }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>载货台定位:</span> 
 | 
                        <span>{{ item.liftPos }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>走行在定位:</span> 
 | 
                        <span>{{ item.walkPos }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>走行速度(m/min):</span> 
 | 
                        <span>{{ item.xspeed }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>升降速度(m/min):</span> 
 | 
                        <span>{{ item.yspeed }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>叉牙速度(m/min):</span> 
 | 
                        <span>{{ item.zspeed }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>走行距离(Km):</span> 
 | 
                        <span>{{ item.xdistance }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>升降距离(Km):</span> 
 | 
                        <span>{{ item.ydistance }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>走行时长(H):</span> 
 | 
                        <span>{{ item.xduration }}</span> 
 | 
                    </div> 
 | 
                    <div class="deviceItem"> 
 | 
                        <span>升降时长(H):</span> 
 | 
                        <span>{{ item.yduration }}</span> 
 | 
                    </div> 
 | 
                </div> 
 | 
            </div> 
 | 
        </div> 
 | 
    </el-card> 
 | 
  
 | 
    <el-card class="box-card devpBox"> 
 | 
        <div slot="header" class="clearfix"> 
 | 
            <span>输送线</span> 
 | 
        </div> 
 | 
        <div v-for="(val,index) in devpList" :key="index" w> 
 | 
            <div style="display: flex;justify-content: space-around;width: 100%;margin-top: 20px;"> 
 | 
                <div v-for="(item,idx) in val" :key="idx" class="devpDeviceBox"> 
 | 
                    <div class="deviceHeader">{{item.devNo}}号站点</div> 
 | 
                    <div class="deviceBody"> 
 | 
                        <div class="devpDeviceItem"> 
 | 
                            <span>站点:</span> 
 | 
                            <span>{{ item.devNo }}</span> 
 | 
                        </div> 
 | 
                        <div class="devpDeviceItem"> 
 | 
                            <span>工作号:</span> 
 | 
                            <span>{{ item.workNo }}</span> 
 | 
                        </div> 
 | 
                        <div class="devpDeviceItem"> 
 | 
                            <span>自动:</span> 
 | 
                            <span>{{ item.autoing }}</span> 
 | 
                        </div> 
 | 
                        <div class="devpDeviceItem"> 
 | 
                            <span>有物:</span> 
 | 
                            <span>{{ item.loading }}</span> 
 | 
                        </div> 
 | 
                        <div class="devpDeviceItem"> 
 | 
                            <span>可入:</span> 
 | 
                            <span>{{ item.inEnable }}</span> 
 | 
                        </div> 
 | 
                        <div class="devpDeviceItem"> 
 | 
                            <span>可出:</span> 
 | 
                            <span>{{ item.outEnable }}</span> 
 | 
                        </div> 
 | 
                        <div class="devpDeviceItem"> 
 | 
                            <span>入库标记:</span> 
 | 
                            <span>{{ item.pakMk }}</span> 
 | 
                        </div> 
 | 
                        <div class="devpDeviceItem"> 
 | 
                            <span>空板信号:</span> 
 | 
                            <span>{{ item.emptyMk }}</span> 
 | 
                        </div> 
 | 
                        <div class="devpDeviceItem"> 
 | 
                            <span>目标站:</span> 
 | 
                            <span>{{ item.staNo }}</span> 
 | 
                        </div> 
 | 
                        <div class="devpDeviceItem"> 
 | 
                            <span>高低库位:</span> 
 | 
                            <span>{{ item.locType1 }}</span> 
 | 
                        </div> 
 | 
                    </div> 
 | 
                </div> 
 | 
            </div> 
 | 
        </div> 
 | 
    </el-card> 
 | 
</div> 
 | 
<script> 
 | 
    var app = new Vue({ 
 | 
        el: '#app', 
 | 
        data: { 
 | 
            crnList: [], 
 | 
            crnListHeight: '200px', 
 | 
            devpList: [], 
 | 
            devpListHeight: '200px', 
 | 
        }, 
 | 
        created() { 
 | 
            this.init() 
 | 
        }, 
 | 
        methods: { 
 | 
            init() { 
 | 
                this.getCrnList() 
 | 
                this.getDevpList() 
 | 
  
 | 
                setInterval(() => { 
 | 
                    this.getCrnList() 
 | 
                    this.getDevpList() 
 | 
                }, 1000) 
 | 
            }, 
 | 
            getCrnList() { 
 | 
                //获取堆垛机list 
 | 
                let that = this 
 | 
                $.ajax({ 
 | 
                    url: baseUrl + "/crn/list/auth", 
 | 
                    headers: { 
 | 
                        'token': localStorage.getItem('token') 
 | 
                    }, 
 | 
                    data: {}, 
 | 
                    dataType: 'json', 
 | 
                    contentType: 'application/json;charset=UTF-8', 
 | 
                    method: 'GET', 
 | 
                    success: function (res) { 
 | 
                        that.crnList = res.data 
 | 
  
 | 
                        that.$nextTick(()=>{ 
 | 
                            that.crnListHeight = that.$refs.crnCarousel[0].offsetHeight + "px" 
 | 
                        }) 
 | 
                    } 
 | 
                }); 
 | 
            }, 
 | 
            getDevpList() { 
 | 
                //获取输送线list 
 | 
                let that = this 
 | 
                $.ajax({ 
 | 
                    url: baseUrl + "/site/list/auth", 
 | 
                    headers: { 
 | 
                        'token': localStorage.getItem('token') 
 | 
                    }, 
 | 
                    data: {}, 
 | 
                    dataType: 'json', 
 | 
                    contentType: 'application/json;charset=UTF-8', 
 | 
                    method: 'GET', 
 | 
                    success: function (res) { 
 | 
                        let list = [] 
 | 
                        let tmp = [] 
 | 
                        res.data.forEach((item,index) => { 
 | 
                            if (index % 5 == 0) { 
 | 
                                if (tmp.length != 0) { 
 | 
                                    list.push(tmp) 
 | 
                                } 
 | 
                                tmp = []; 
 | 
                            } 
 | 
  
 | 
                            tmp.push(item) 
 | 
                        }) 
 | 
  
 | 
                        that.devpList = list 
 | 
                        that.$nextTick(()=>{ 
 | 
                            that.crnListHeight = that.$refs.crnCarousel[0].offsetHeight + "px" 
 | 
                        }) 
 | 
                    } 
 | 
                }); 
 | 
            } 
 | 
        } 
 | 
    }) 
 | 
</script> 
 | 
</body> 
 | 
  
 | 
</html> 
 |