| // 库位图  | 
| 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();  | 
| } |