skyouc
2024-12-21 c635d78b479510ebe2556a420948effcd30a0731
zy-asrs-openapi/src/main/webapp/static/js/console.js
@@ -1,181 +1,181 @@
// 库位图
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 maxBayNo = rackss[i].maxBayNo // 最大库位号
        let minBayNo = rackss[i].minBayNo // 最小库位号
        let bLen
        let interval // 间隔数
        if (maxBayNo<35) {
            interval = 1
            bLen = maxBayNo / interval // 库位个数
        } else {
            interval = 2
            bLen = maxBayNo / interval // 库位个数
        }
        let bayWidth // 单个库位宽度
        let bNum // 库位号码
        if (minBayNo % 2 == 0) { // 从2开始
            if(interval == 1) {
                bLen = bLen - 1
            } else if (interval == 2) {
                if (maxBayNo % 2 == 0) { // 偶数
                    bLen = bLen
                } else { // 奇数
                    maxBayNo = maxBayNo + 1
                    bLen = maxBayNo / interval // 库位个数
                }
            }
        } else { // 从1开始
            if(interval == 1) {
                bLen = bLen
            } else if (interval == 2) {
                if (maxBayNo % 2 == 0) { // 偶数
                    bLen = bLen
                } else { // 奇数
                    bLen = bLen + 1
                }
            }
        }
        bayWidth = rackss[i].width / bLen
        // 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 - interval;
            }
        }else {
            bNum = minBayNo
            for (let j = 0; j < bLen; j++) {
                bay = "<button class='item' style='width: "+ bayWidth +"px'>" + bNum + "</button>"
                bays = bays + bay
                bNum = bNum + interval;
            }
        }
        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
        floorId = areas[i].id
        var position = (i+1)*100
        floorBtn =
            "<button class='floorBtn btn-16' onclick='changFloor("+i+")' style='top: "+position+"px;'>" + floor +"</button>"
        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();
// 库位图
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 maxBayNo = rackss[i].maxBayNo // 最大库位号
        let minBayNo = rackss[i].minBayNo // 最小库位号
        let bLen
        let interval // 间隔数
        if (maxBayNo<35) {
            interval = 1
            bLen = maxBayNo / interval // 库位个数
        } else {
            interval = 2
            bLen = maxBayNo / interval // 库位个数
        }
        let bayWidth // 单个库位宽度
        let bNum // 库位号码
        if (minBayNo % 2 == 0) { // 从2开始
            if(interval == 1) {
                bLen = bLen - 1
            } else if (interval == 2) {
                if (maxBayNo % 2 == 0) { // 偶数
                    bLen = bLen
                } else { // 奇数
                    maxBayNo = maxBayNo + 1
                    bLen = maxBayNo / interval // 库位个数
                }
            }
        } else { // 从1开始
            if(interval == 1) {
                bLen = bLen
            } else if (interval == 2) {
                if (maxBayNo % 2 == 0) { // 偶数
                    bLen = bLen
                } else { // 奇数
                    bLen = bLen + 1
                }
            }
        }
        bayWidth = rackss[i].width / bLen
        // 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 - interval;
            }
        }else {
            bNum = minBayNo
            for (let j = 0; j < bLen; j++) {
                bay = "<button class='item' style='width: "+ bayWidth +"px'>" + bNum + "</button>"
                bays = bays + bay
                bNum = bNum + interval;
            }
        }
        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
        floorId = areas[i].id
        var position = (i+1)*100
        floorBtn =
            "<button class='floorBtn btn-16' onclick='changFloor("+i+")' style='top: "+position+"px;'>" + floor +"</button>"
        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();
}