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