// 库位图 
 | 
let total = [], 
 | 
    rack = '', 
 | 
    racks = '', 
 | 
    rackDesc = '', 
 | 
    rackDescs = '', 
 | 
    crn = '', 
 | 
    crns = '', 
 | 
    track = '', 
 | 
    tracks = '', 
 | 
    stn = '', 
 | 
    stns = '', 
 | 
    stnArr = [], 
 | 
    floorBtn = '', 
 | 
    floorBtns = '', 
 | 
    floorBtnss = '', 
 | 
    floorInfo='';  // 库区信息 
 | 
let rackss = mapInfo.racks, 
 | 
    rackDescss = mapInfo.rackDescs, 
 | 
    crnss = mapInfo.crns, 
 | 
    areas = mapInfo.areas[0].floors, 
 | 
    floorId; 
 | 
function getMap() { 
 | 
    // 货架 
 | 
    for (let i = 0;i < rackss.length;i++) { 
 | 
        let bay ='' // 单个库位 
 | 
        let bays = '' // 库位集合 
 | 
        let bayWidth = rackss[i].width / (rackss[i].maxBayNo / rackss[i].minBayNo) 
 | 
        let maxBayNo = rackss[i].maxBayNo // 最大库位号 
 | 
        let minBayNo = rackss[i].minBayNo // 最小库位号 
 | 
        let bLen = maxBayNo / minBayNo // 库位个数 
 | 
        let bNum // 库位号码 
 | 
        // hpPosition 0 表示货架序号 左->右 1 表示货架序号 右->左 
 | 
        if (mapInfo.hpPosition == 1) { 
 | 
            bNum = maxBayNo 
 | 
            for (let j = bLen; j > 0; j--) { 
 | 
                bay = "<button class='item' style='width: "+ bayWidth +"px'>" + bNum + "</button>" 
 | 
                bays = bays + bay 
 | 
                bNum = bNum - minBayNo; 
 | 
            } 
 | 
        }else { 
 | 
            bNum = minBayNo 
 | 
            let hiddenArr = []; 
 | 
            if (rackss[i].hiddenArr != undefined) { 
 | 
                hiddenArr = rackss[i].hiddenArr 
 | 
            } 
 | 
            for (let j = 0; j < bLen; j++) { 
 | 
                bay = "<button class='item' style='width: "+ bayWidth +"px'>" + bNum + "</button>"; 
 | 
                if (hiddenArr.indexOf(bNum) != -1) { 
 | 
                    bay = "<button class='item' style='width: "+ bayWidth +"px;visibility: hidden'>" + bNum + "</button>"; 
 | 
                } 
 | 
                bays = bays + bay; 
 | 
                bNum = bNum + minBayNo; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        rack = "<div class='rack' id='" + rackss[i].id + 
 | 
            "'style='width:"+ rackss[i].width + 
 | 
            "px;height: "+ rackss[i].height+ 
 | 
            "px;top: "+ rackss[i].top + 
 | 
            "px;left: "+ rackss[i].left + 
 | 
            "px'>" + bays + "</div>" 
 | 
        racks = racks + rack 
 | 
        // getCrnInfo(minBayNo); 
 | 
    } 
 | 
    // // 货架描述 
 | 
    // for (let i = 0;i < rackDescss.length;i++) { 
 | 
    //     rackDesc = "<div class='rackDescs' id='" + rackDescss[i].id + 
 | 
    //         "'style='width:"+ rackDescss[i].width + 
 | 
    //         "px;height: "+ rackDescss[i].height+ 
 | 
    //         "px;line-height: "+ rackDescss[i].height+ 
 | 
    //         "px;top: "+ rackDescss[i].top + 
 | 
    //         "px;left: "+ rackDescss[i].left + 
 | 
    //         "px'>" + rackDescss[i].text + "</div>" 
 | 
    //     rackDescs = rackDescs + rackDesc 
 | 
    // } 
 | 
    // 堆垛机和地轨 
 | 
    for (let i = 0;i < crnss.length;i++) { 
 | 
        if (crnss[i].type == "crane") { 
 | 
            crn = "<div class='machine' id='" + crnss[i].id + 
 | 
                "'style='width:"+ crnss[i].width + 
 | 
                "px;height: "+ crnss[i].height+ 
 | 
                "px;top: "+ crnss[i].top + 
 | 
                "px;left: "+ crnss[i].left + 
 | 
                "px'></div>" 
 | 
            crns = crns + crn 
 | 
        } else { 
 | 
            track = "<div class='track' id='" + crnss[i].id + 
 | 
                "'style='width:"+ crnss[i].width + 
 | 
                "px;height: "+ crnss[i].height+ 
 | 
                "px;top: "+ crnss[i].top + 
 | 
                "px;left: "+ crnss[i].left + 
 | 
                "px'>" + crnss[i].text + "</div>" 
 | 
            tracks = tracks + track 
 | 
        } 
 | 
    } 
 | 
    // 楼层 
 | 
    for (let i = 0; i < areas.length;i++) { 
 | 
  
 | 
        let stnss = areas[i].stns 
 | 
        let floor = areas[i].text 
 | 
        console.log(areas[i].top) 
 | 
        floorId = areas[i].id 
 | 
        var position = (i+1)*100 
 | 
        floorBtn = 
 | 
            "<button class='floorBtn btn-16' onclick='changFloor("+i+")' style='top: "+position+"px;'>" + floor +"</button>" 
 | 
        console.log(mapInfo.areas[0].floors.length) 
 | 
        if (mapInfo.areas[0].floors.length == 1) { 
 | 
            floorBtnss = '' 
 | 
        } else { 
 | 
            floorBtnss =  floorBtnss + floorBtn 
 | 
        } 
 | 
        // 每层的 输送线站点 
 | 
        var index = i 
 | 
        var n = 1 
 | 
        stnArr[index] = '' 
 | 
        total[index] = '' 
 | 
        for (let j = 0; j < stnss.length; j++) { 
 | 
            if (stnss[j].type == "stn") { 
 | 
                stn = "<div class='site' id='" + stnss[j].id + 
 | 
                    "'style='width:"+ stnss[j].width + 
 | 
                    "px;height: "+ stnss[j].height+ 
 | 
                    "px;line-height: "+ stnss[j].height+ 
 | 
                    "px;top: "+ stnss[j].top + 
 | 
                    "px;left: "+ stnss[j].left + 
 | 
                    "px'>" + stnss[j].text + "</div>" 
 | 
                stnArr[i] = stnArr[i] + stn 
 | 
                total[i] = n++ 
 | 
            } else if(stnss[j].type == "track"){ 
 | 
                stn = "<div class='track' id='" + stnss[j].id + 
 | 
                    "'style='width:"+ stnss[j].width + 
 | 
                    "px;height: "+ stnss[j].height+ 
 | 
                    "px;line-height: "+ stnss[j].height+ 
 | 
                    "px;top: "+ stnss[j].top + 
 | 
                    "px;left: "+ stnss[j].left + 
 | 
                    "px'>" + stnss[j].text  + "</div>" 
 | 
                stnArr[i] = stnArr[i] + stn 
 | 
            } 
 | 
  
 | 
        } 
 | 
  
 | 
    } 
 | 
    floorInfo = racks + rackDescs + tracks + crns + stnArr[0] + floorBtnss 
 | 
  
 | 
    $(".main-part").append(floorInfo) 
 | 
    $("#line-total").html(total[0]) 
 | 
    // listenChange(); 
 | 
  
 | 
} 
 | 
function changFloor(e) { 
 | 
    $(".main-part").empty()  // 清空节点 
 | 
    floorInfo = racks  + stnArr[e] +rackDescs + crns + tracks + floorBtnss 
 | 
    $(".main-part").append(floorInfo) 
 | 
    $("#line-total").empty() 
 | 
    $("#line-total").html(total[e]) 
 | 
    // listenChange(); 
 | 
} 
 | 
  
 | 
  
 | 
layui.config({ 
 | 
    base: baseUrl + "/static/wms/layui/lay/modules/" 
 | 
}).use(['table', 'form'], function () { 
 | 
    var table = layui.table; 
 | 
    var $ = layui.jquery; 
 | 
    var cache; 
 | 
  
 | 
    // 数据渲染 
 | 
    tableIns = table.render({ 
 | 
        elem: '#deviceInfo', 
 | 
        headers: {token: localStorage.getItem('token')}, 
 | 
        url: baseUrl + '/console/deviceInfo', 
 | 
        page: false, 
 | 
        limit: 16, 
 | 
        limits: [16, 30, 50, 100, 200, 500], 
 | 
        even: true, 
 | 
        cellMinWidth: 50, 
 | 
        cols: [[ 
 | 
            {field: 'device', align: 'center', title: '设备'} 
 | 
            , {field: 'deviceId', align: 'center', title: '编号'} 
 | 
            , {field: 'battery', align: 'center', title: '电量'} 
 | 
            , {field: 'error', align: 'center', title: '异常', templet: '#errorTpl'} 
 | 
            , {field: 'status', align: 'center', title: '状态', width: 150} 
 | 
        ]], 
 | 
        request: { 
 | 
            pageName: 'curr', 
 | 
            pageSize: 'limit' 
 | 
        }, 
 | 
        parseData: function (res) { 
 | 
            return { 
 | 
                'code': res.code, 
 | 
                'msg': res.msg, 
 | 
                'count': res.data.total, 
 | 
                'data': res.data.records 
 | 
            } 
 | 
        }, 
 | 
        response: { 
 | 
            statusCode: 200 
 | 
        }, 
 | 
        done: function (res, curr, count) { 
 | 
            $(".layui-table-tool").hide() 
 | 
            $(".layui-table-view").css({"margin":"0px"}) 
 | 
            $(".layui-table-box").css({"padding-bottom":"0px"}) 
 | 
  
 | 
            cache = table.cache['deviceInfo']; 
 | 
        } 
 | 
    }); 
 | 
  
 | 
    setInterval(() => { 
 | 
        tableReload() 
 | 
    },10000) 
 | 
  
 | 
    function tableReload() { 
 | 
        $.ajax({ 
 | 
            url: baseUrl + "/console/deviceInfo", 
 | 
            headers: {'token': localStorage.getItem('token')}, 
 | 
            contentType: 'application/json;charset=UTF-8', 
 | 
            method: 'GET', 
 | 
            traditional: true, 
 | 
            success: function (res) { 
 | 
                cache = res.data.records 
 | 
                table.reload('deviceInfo',{ 
 | 
                    data: cache 
 | 
                }) 
 | 
            } 
 | 
        }) 
 | 
    } 
 | 
  
 | 
}); 
 |