<!DOCTYPE html>
|
<html lang="en">
|
<head>
|
<meta charset="UTF-8">
|
<title>四向穿梭车监控管理</title>
|
<link rel="stylesheet" type="text/css" href="../static/css/normalize.css">
|
<link rel="stylesheet" type="text/css" href="../static/css/common.css">
|
<link rel="stylesheet" type="text/css" href="../static/layui/css/layui.css">
|
<link rel="stylesheet" href="../static/css/shuttle.css">
|
<script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
|
<script type="text/javascript" src="../static/js/layer/layer.js"></script>
|
<script type="text/javascript" src="../static/layui/layui.js"></script>
|
<script type="text/javascript" src="../static/js/common.js"></script>
|
</head>
|
<body>
|
<div style="padding: 10px;height: 100%;float: left;width: 6%">
|
<div class="button-window"></div>
|
</div>
|
<div style="height: 100%;padding-left: 6%">
|
<div style="padding: 10px;height: 100%">
|
<!-- 日志监控板 -->
|
<div class="log-board">
|
<div class="command-log" id="commandLogId" style="width: 5%;">
|
<!-- <div data-shuttleNo="1" class="shuttle-command-item">-->
|
<!-- <label>1#</label>-->
|
<!-- <button class="demoBtn pos-btn">数据维护</button>-->
|
<!-- <button id="mode-1" class="demoBtn mode-btn" >设备信息</button>-->
|
<!-- </div>-->
|
</div>
|
<!-- 堆垛机状态位信息 -->
|
<div class="shuttle-state" style="width: 95%;">
|
<table id="shuttle-state-table">
|
<thead>
|
<tr>
|
<th>四向穿梭车</th>
|
<th>任务状态</th>
|
<th>小车状态</th>
|
<th>当前二维码</th>
|
<th>电量</th>
|
<th>电池温度</th>
|
<th>错误编号</th>
|
<th>plc输出状态IO-顶升位</th>
|
<th>plc输出状态IO-换向位</th>
|
<th>plc输出状态IO-抱闸位</th>
|
<th>plc输出状态IO-充电位</th>
|
<th>错误信息码</th>
|
<th>plc输入状态</th>
|
<th>当前或之前二维码</th>
|
<th>x偏移量</th>
|
<th>y偏移量</th>
|
<th>电压</th>
|
<th>模拟量</th>
|
</tr>
|
</thead>
|
<tbody>
|
</tbody>
|
</table>
|
</div>
|
</div>
|
<!-- 穿梭车状态 -->
|
<div class="shuttle-msg">
|
<table id="shuttle-msg-table">
|
<thead>
|
<tr>
|
<th>四向穿梭车</th>
|
<th>工作号</th>
|
<th>状态</th>
|
<th>源库位</th>
|
<th>目标库位</th>
|
<th>升降伺服速度</th>
|
<th>行走伺服速度</th>
|
<th>升降伺服负载</th>
|
<th>行走伺服负载</th>
|
<th>作业标记</th>
|
<th>库位号</th>
|
<th>当前楼层</th>
|
</tr>
|
</thead>
|
<tbody>
|
</tbody>
|
</table>
|
</div>
|
<!-- 手动操作 -->
|
<div class="shuttle-operation">
|
<!-- 遮罩层 -->
|
<div class="shuttle-operation-shade">
|
<span class="shuttle-operation-shade-span">
|
WCS 系统运行中,请停止后操作
|
</span>
|
</div>
|
<!-- 设备任务选择 -->
|
<div class="task-select">
|
<!-- 选择 -->
|
<div id="shuttle-select" class="operator-item">
|
<span class="select-title">四向穿梭车号</span>
|
<div class="select-container" id="shuttleRadioBoxId">
|
<!-- <label><input type="radio" name="shuttleSelect" value="1" checked> 1号穿梭车</label>-->
|
</div>
|
</div>
|
</div>
|
|
<!-- 设备任务操作 -->
|
<div class="task-operator">
|
<div style="display: flex;">
|
<div class="task-operator" style="height: auto;width: 100%;">
|
<div class="operator-item" style="height: auto">
|
<span class="select-title">源库位/目标库位</span>
|
<div class="select-container" style="height: auto">
|
<div class="select-container-item">
|
<span>源库位</span>
|
<label><input id="sourceLocNo" type="text" name="sourceLocNo" /></label>
|
</div>
|
<div class="select-container-item">
|
<span>目标库位</span>
|
<label><input id="distLocNo" type="text" name="distLocNo" /></label>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
|
<fieldset style="height: auto;padding-bottom: 20px;">
|
<legend>手动操作</legend>
|
<div class="button-group">
|
<button class="item" onclick="shuttleOperator(1)">入库</button>
|
<button class="item" onclick="shuttleOperator(2)">出库</button>
|
<button class="item" onclick="shuttleOperator(3)">托盘顶升</button>
|
<button class="item" onclick="shuttleOperator(4)">托盘下降</button>
|
<button class="item" onclick="shuttleOperator(5)">左移</button>
|
<button class="item" onclick="shuttleOperator(6)">右移</button>
|
<button class="item" onclick="shuttleOperator(7)">后移</button>
|
<button class="item" onclick="shuttleOperator(8)">前移</button>
|
<button class="item" onclick="shuttleOperator(9)">复位</button>
|
<button class="item" onclick="shuttleOperator(10)">正方向(左)寻库位</button>
|
<button class="item" onclick="shuttleOperator(11)">负方向(右)寻库位</button>
|
<button class="item" onclick="shuttleOperator(12)">正方向(前)寻库位</button>
|
<button class="item" onclick="shuttleOperator(13)">负方向(后)寻库位</button>
|
<button class="item" onclick="shuttleOperator(14)">移动到目标库位</button>
|
<button class="item" onclick="shuttleOperator(15)">充电开关</button>
|
</div>
|
</fieldset>
|
</div>
|
|
</div>
|
<!-- 穿梭车日志输出 -->
|
<div class="shuttle-output-board">
|
<textarea id="shuttle-output"></textarea>
|
</div>
|
</div>
|
</div>
|
|
<div id="shuttle-detl" style="display: none">
|
<div>
|
<div class="form-item">
|
<label class="form-label">四向穿梭车号:</label>
|
<div class="form-input">
|
<input id="shuttleNo" name="shuttleNo" class="layui-input" lay-verify="required|number" autocomplete="off" disabled="disabled">
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">工作号:</label>
|
<div class="form-input">
|
<input id="workNo" name="workNo" type="number" class="layui-input" lay-verify="number" autocomplete="off">
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">排:</label>
|
<div class="form-input">
|
<input id="row" name="row" type="number" class="layui-input" lay-verify="number" autocomplete="off">
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">列:</label>
|
<div class="form-input">
|
<input id="bay" name="bay" type="number" class="layui-input" autocomplete="off">
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">层:</label>
|
<div class="form-input">
|
<input id="lev" name="lev" type="number" class="layui-input" autocomplete="off">
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">作业标记:</label>
|
<div class="form-input">
|
<input id="pakMk" name="pakMk" type="text" class="layui-input" autocomplete="off">
|
</div>
|
</div>
|
<div class="form-item form-button-container">
|
<button class="form-button" id="save">保存</button>
|
<button class="form-button" id="cancel" style="background-color: #D0D0D0">取消</button>
|
</div>
|
</div>
|
</div>
|
<div id="shuttle-detl2" style="display: none">
|
<div style="width: 1400px">
|
<div class="form-item" style="text-align: left">
|
<spen style="margin: 20px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted;">
|
异常:<spen style="color: #FD482C;">✔</spen>
|
</spen>
|
<spen style="margin: 20px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style: double;">
|
正常:<spen style="color: #00FF00;">—</spen>
|
</spen>
|
</div>
|
<div style="float:left;margin: 10px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted;">
|
<div class="form-item" style="text-align: center">
|
<label>四向穿梭车异常</label>
|
</div>
|
<div class="form-item">
|
<label class="form-label">四向穿梭车号:</label>
|
<div class="form-input">
|
<input id="shuttleNo1" name="shuttleNo" class="layui-input" lay-verify="required|number" autocomplete="off" disabled="disabled" readonly>
|
</div>
|
</div>
|
|
</div>
|
<div style="float:left;margin: 10px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted">
|
<div class="form-item" style="text-align: center">
|
<label>四向穿梭车提示信息</label>
|
</div>
|
|
</div>
|
<div style="float:left;margin: 10px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted">
|
<div class="form-item" style="text-align: center">
|
<label>任务信息</label>
|
</div>
|
<div class="form-item">
|
<label class="form-label">入库任务中:</label>
|
<div class="form-input">
|
<input id="pakInTask" name="pakInTask" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">出库任务中:</label>
|
<div class="form-input">
|
<input id="pakOutTask" name="pakOutTask" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">移库任务中:</label>
|
<div class="form-input">
|
<input id="pakMoveTask" name="pakMoveTask" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">回原点任务中:</label>
|
<div class="form-input">
|
<input id="goHpTask" name="goHpTask" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">去反原点任务中:</label>
|
<div class="form-input">
|
<input id="goOHpTask" name="goOHpTask" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">去原点避让位:</label>
|
<div class="form-input">
|
<input id="goHpAvoid" name="goHpAvoid" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">去反原点避让位:</label>
|
<div class="form-input">
|
<input id="goOHpAvoid" name="goOHpAvoid" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">入库取空结束:</label>
|
<div class="form-input">
|
<input id="pakInEmpty" name="pakInEmpty" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">入库正常结束:</label>
|
<div class="form-input">
|
<input id="pakInFinish" name="pakInFinish" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">出库取空结束:</label>
|
<div class="form-input">
|
<input id="pakOutEmpty" name="pakOutEmpty" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">出库正常结束:</label>
|
<div class="form-input">
|
<input id="pakOutFinish" name="pakOutFinish" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">去原点避让完成:</label>
|
<div class="form-input">
|
<input id="goHpAvoidFinish" name="goHpAvoidFinish" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">去反原点避让完成:</label>
|
<div class="form-input">
|
<input id="goOHpAvoidFinish" name="goOHpAvoidFinish" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">去原点避让完成:</label>
|
<div class="form-input">
|
<input id="goHpAvoidErr" name="goHpAvoidErr" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
<div class="form-item">
|
<label class="form-label">去反原点避让完成:</label>
|
<div class="form-input">
|
<input id="goOHpAvoidErr" name="goOHpAvoidErr" class="layui-input" autocomplete="off" readonly>
|
</div>
|
</div>
|
</div>
|
<div style="float:left;margin: 10px 10px 10px 10px; padding: 10px 10px 10px 10px;border: black;border-width: 3px;border-style:dotted">
|
<div class="form-item" style="text-align: center">
|
<label>状态信息</label>
|
</div>
|
<!-- <div class="form-item">-->
|
<!-- <label class="form-label">联机模式:</label>-->
|
<!-- <div class="form-input">-->
|
<!-- <input id="autoMode" name="autoMode" class="layui-input" autocomplete="off" readonly>-->
|
<!-- </div>-->
|
<!-- </div>-->
|
<!-- <div class="form-item">-->
|
<!-- <label class="form-label">电压过低:</label>-->
|
<!-- <div class="form-input">-->
|
<!-- <input id="voltageLow" name="voltageLow" class="layui-input" autocomplete="off" readonly>-->
|
<!-- </div>-->
|
<!-- </div>-->
|
</div>
|
</div>
|
</div>
|
</body>
|
</html>
|
<script>
|
// 空白行数
|
var shuttleStateTableBlankRows = 0;
|
var shuttleMsgTableBlankRows = 0;
|
// 实际行数
|
var shuttleStateTableFullRows = 0;
|
var shuttleMsgTableFullRows = 0;
|
// 初始化
|
var shuttleOutputDom = document.getElementById("shuttle-output");
|
$(document).ready(function() {
|
initShuttleStateTable();
|
getShuttleStateInfo();
|
initShuttleMsgTable();
|
getShuttleMsgInfo();
|
operatorBlockShow();
|
setShuttleRadio();
|
});
|
|
setInterval(function () {
|
getShuttleStateInfo()
|
getShuttleMsgInfo();
|
},1000)
|
setInterval(function () {
|
getShuttleOutput();
|
operatorBlockShow();
|
},500);
|
|
// 判断手动操作模块是否可用
|
function operatorBlockShow() {
|
if (parent.systemRunning) {
|
$('.shuttle-operation').css("opacity", "0.5");
|
$('.shuttle-operation-shade').show();
|
$('.shuttle-operation-shade-span').show();
|
} else {
|
$('.shuttle-operation').css("opacity", "1");
|
$('.shuttle-operation-shade').hide();
|
$('.shuttle-operation-shade-span').hide();
|
}
|
}
|
|
var layerIdx;
|
$(document).on('click ','.pos-btn', function () {
|
let shuttleNo = Number($(this).parent().attr("data-shuttleNo"));
|
layerIdx = layer.open({
|
type: 1,
|
title: false,
|
shadeClose: true,
|
offset: [$(this).offset().top + 30 + 'px', $(this).offset().left + 'px'],
|
anim: 5,
|
shade: [0],
|
area: ['310px', '370px'],
|
closeBtn: 0,
|
content: $("#shuttle-detl"),
|
success: function(layero, index){
|
http.get(baseUrl+ "/shuttle/detl/"+shuttleNo, null, function (res) {
|
$('#shuttleNo').val(shuttleNo);
|
$('#workNo').val(res.data.workNo);
|
$('#row').val(res.data.row);
|
$('#bay').val(res.data.bay);
|
$('#lev').val(res.data.lev);
|
$('#crnNo').val(res.data.crnNo);
|
$('#pakMk').val(res.data.pakMk);
|
})
|
},
|
end: function () {
|
$('#shuttleNo').val("");
|
$('#workNo').val("");
|
$('#row').val("");
|
$('#bay').val("");
|
$('#lev').val("");
|
$('#crnNo').val("");
|
$('#pakMk').val("");
|
}
|
})
|
})
|
|
var layerIdx0;
|
$(document).on('click ','.mode-btn', function () {
|
let shuttleNo = Number($(this).parent().attr("data-shuttleNo"));
|
layerIdx0 = layer.open({
|
type: 1,
|
title: false,
|
shadeClose: true,
|
offset: [$(this).offset().top + 30 + 'px', $(this).offset().left + 'px'],
|
anim: 5,
|
shade: [0],
|
area: ['70%', '85%'],
|
closeBtn: 0,
|
content: $("#shuttle-detl2"),
|
success: function(layero, index){
|
console.log(shuttleNo)
|
http.get(baseUrl+ "/shuttle/sensor/detl/"+shuttleNo, null, function (res) {
|
$('#shuttleNo1').val(res.data.shuttleNo);
|
// getColor(res.data.liftErr,'#liftErr');
|
// getColor(res.data.inFetchErr,'#inFetchErr');
|
// getColor(res.data.outFetchErr,'#outFetchErr');
|
// getColor(res.data.antiErr,'#antiErr');
|
// getColor(res.data.liftSwitchErr,'#liftSwitchErr');
|
// getColor(res.data.trackErr,'#trackErr');
|
// getColor(res.data.timeoutErr,'#timeoutErr');
|
// getColor(res.data.connectErr,'#connectErr');
|
// getColor(res.data.emergencyErr,'#emergencyErr');
|
// getColor(res.data.taskTypeErr,'#taskTypeErr');
|
// getColor(res.data.taskNoErr,'#taskNoErr');
|
// getColor(res.data.newTaskErr,'#newTaskErr');
|
// getColor(res.data.errTaskErr,'#errTaskErr');
|
// getColor(res.data.stopErr,'#stopErr');
|
// getColor(res.data.offlineTaskErr,'#offlineTaskErr');
|
// getColor(res.data.startTaskErr,'#startTaskErr');
|
// getColor(res.data.voltageTaskErr,'#voltageTaskErr');
|
// getColor(res.data.devpErr,'#devpErr');
|
// getColor(res.data.online,'#online');
|
// getColor(res.data.notOnTrack,'#notOnTrack');
|
// getColor(res.data.lowVoltage,'#lowVoltage');
|
// getColor(res.data.electricityLoss,'#electricityLoss');
|
// getColor(res.data.forcedTravel,'#forcedTravel');
|
// getColor(res.data.demoMode,'#demoMode');
|
// getColor(res.data.brushConnect,'#brushConnect');
|
// getColor(res.data.taskManualForbid,'#taskManualForbid');
|
// getColor(res.data.onlineManualForbid,'#onlineManualForbid');
|
// getColor(res.data.devpEmergency,'#devpEmergency');
|
// getColor(res.data.taskInterrupt,'#taskInterrupt');
|
// getColor(res.data.taskClear,'#taskClear');
|
// getColor(res.data.taskConfirmTimeout,'#taskConfirmTimeout');
|
// getColor(res.data.taskWithCharge,'#taskWithCharge');
|
getColor(res.data.pakInTask,'#pakInTask');
|
getColor(res.data.pakOutTask,'#pakOutTask');
|
getColor(res.data.pakMoveTask,'#pakMoveTask');
|
getColor(res.data.goHpTask,'#goHpTask');
|
getColor(res.data.goOHpTask,'#goOHpTask');
|
getColor(res.data.goHpAvoid,'#goHpAvoid');
|
getColor(res.data.goOHpAvoid,'#goOHpAvoid');
|
getColor(res.data.pakInEmpty,'#pakInEmpty');
|
getColor(res.data.pakInFinish,'#pakInFinish');
|
getColor(res.data.pakOutEmpty,'#pakOutEmpty');
|
getColor(res.data.pakOutFinish,'#pakOutFinish');
|
getColor(res.data.goHpAvoidFinish,'#goHpAvoidFinish');
|
getColor(res.data.goOHpAvoidFinish,'#goOHpAvoidFinish');
|
getColor(res.data.goHpAvoidErr,'#goHpAvoidErr');
|
getColor(res.data.goOHpAvoidErr,'#goOHpAvoidErr');
|
// getColor(res.data.autoMode,'#autoMode');
|
// getColor(res.data.voltageLow,'#voltageLow');
|
})
|
},
|
end: function () {
|
$('#shuttleNo').val("");
|
}
|
})
|
})
|
|
function getColor(res,e){
|
$(e).val(res?"✔":"—");
|
if (res){
|
$(e).attr("style", "color: #FD482C;");
|
}else {
|
$(e).attr("style", "color: #00FF00;");
|
}
|
}
|
|
// $(document).on('click ','.mode-btn', function () {
|
// let shuttleNo = Number($(this).parent().attr("data-shuttleNo"));
|
// layer.confirm("改变" + shuttleNo + ' 号穿梭车在线状态吗?', function(){
|
// var index = layer.load(1, {
|
// shade: [0.1,'#fff']
|
// });
|
// $.ajax({
|
// url: baseUrl+ "/shuttle/mode/switch",
|
// headers: {'token': localStorage.getItem('token')},
|
// data: {
|
// shuttleNo: Number(shuttleNo),
|
// password: 'root'
|
// },
|
// method: 'POST',
|
// success: function (res) {
|
// layer.close(index);
|
// if (res.code === 200){
|
// layer.msg(res.msg, {icon: 1});
|
// } else if (res.code === 403){
|
// window.location.href = baseUrl+"/login";
|
// } else {
|
// layer.msg(res.msg, {icon: 2});
|
// }
|
// }
|
// });
|
// });
|
// })
|
|
|
|
$(document).on('click ','#save', function () {
|
http.post(baseUrl+ "/shuttle/detl/update", {
|
shuttleNo: $('#shuttleNo').val(),
|
workNo: $('#workNo').val(),
|
row: $('#row').val(),
|
bay: $('#bay').val(),
|
lev: $('#lev').val(),
|
crnNo: $('#crnNo').val(),
|
pakMk: $('#pakMk').val(),
|
}, function (res) {
|
layer.msg("修改成功", {icon: 1,});
|
layer.close(layerIdx);
|
})
|
})
|
|
$(document).on('click ','#cancel', function () {
|
layer.close(layerIdx);
|
})
|
|
function setShuttleRadio() {
|
$.ajax({
|
url: baseUrl+ "/shuttle/table/shuttle/state",
|
headers: {'token': localStorage.getItem('token')},
|
method: 'POST',
|
success: function (res) {
|
if (res.code === 200){
|
let table = res.data;
|
for (let i=1;i<=table.length;i++){
|
//渲染四向穿梭车选项html
|
let shuttleRadioBox = '<label><input type="radio" name="shuttleSelect" ';
|
if (i === 1) {
|
shuttleRadioBox += 'checked '
|
}
|
shuttleRadioBox += 'value="' + table[i - 1].shuttleNo + '"> ' + table[i - 1].shuttleNo + '号穿梭车</label>'
|
$("#shuttleRadioBoxId").append(shuttleRadioBox)
|
|
|
//渲染四向穿梭车数据维护和设备信息html
|
let shuttleCommandLogBox = '<div class="shuttle-command-item" data-shuttleNo="' + table[i - 1].shuttleNo + '">\n' +
|
'<label>' + table[i - 1].shuttleNo + '#</label>\n' +
|
// '<button class="demoBtn pos-btn">数据维护</button>\n' +
|
// '<button class="demoBtn mode-btn" id="mode-' + table[i - 1].shuttleNo + '">设备信息</button>\n' +
|
'</div>'
|
$("#commandLogId").append(shuttleCommandLogBox);
|
}
|
} else if (res.code === 403){
|
window.location.href = baseUrl+"/login";
|
} else {
|
console.log(res.msg);
|
}
|
}
|
});
|
}
|
|
// 四向穿梭车信息表获取 ---- 表一
|
function getShuttleStateInfo() {
|
let tableEl = $('#shuttle-state-table');
|
$.ajax({
|
url: baseUrl+ "/shuttle/table/shuttle/state",
|
headers: {'token': localStorage.getItem('token')},
|
method: 'POST',
|
success: function (res) {
|
if (res.code === 200){
|
let table = res.data;
|
if (table.length > shuttleStateTableBlankRows && table.length !== shuttleStateTableFullRows) {
|
initShuttleStateTable(table.length-shuttleStateTableBlankRows);
|
shuttleStateTableFullRows = table.length;
|
}
|
for (let i=1;i<=table.length;i++){
|
// $("#mode-"+table[i-1].shuttleNo).html(table[i-1].statusVal===0?'联机':'脱机');
|
let tr = tableEl.find("tr").eq(i);
|
setVal(tr.children("td").eq(0), table[i-1].shuttleNo);
|
setVal(tr.children("td").eq(1), table[i-1].status);
|
setVal(tr.children("td").eq(2), table[i-1].busyStatus);
|
setVal(tr.children("td").eq(3), table[i-1].currentCode);
|
setVal(tr.children("td").eq(4), table[i-1].batteryPower);
|
setVal(tr.children("td").eq(5), table[i-1].batteryTemp);
|
setVal(tr.children("td").eq(6), table[i-1].errorCode);
|
setVal(tr.children("td").eq(7), table[i-1].plcOutputLift$);//顶升位
|
setVal(tr.children("td").eq(8), table[i-1].plcOutputTransfer$);//换向位
|
setVal(tr.children("td").eq(9), table[i-1].plcOutputBrake$);//抱闸位
|
setVal(tr.children("td").eq(10), table[i-1].plcOutputCharge$);//充电位
|
setVal(tr.children("td").eq(11), table[i-1].statusErrorCode);
|
setVal(tr.children("td").eq(12), table[i-1].plcInputStatus);
|
setVal(tr.children("td").eq(13), table[i-1].currentOrBeforeCode);
|
setVal(tr.children("td").eq(14), table[i-1].codeOffsetX);
|
setVal(tr.children("td").eq(15), table[i-1].codeOffsetY);
|
setVal(tr.children("td").eq(16), table[i-1].currentVoltage ? table[i-1].currentVoltage + "V" : "");
|
setVal(tr.children("td").eq(17), table[i-1].currentAnalogValue);
|
}
|
} else if (res.code === 403){
|
window.location.href = baseUrl+"/login";
|
} else {
|
console.log(res.msg);
|
}
|
}
|
});
|
}
|
|
// 四向穿梭车数据表获取 ---- 表二
|
function getShuttleMsgInfo() {
|
let tableEl = $('#shuttle-msg-table');
|
$.ajax({
|
url: baseUrl+ "/shuttle/table/shuttle/msg",
|
headers: {'token': localStorage.getItem('token')},
|
method: 'POST',
|
success: function (res) {
|
if (res.code === 200){
|
var table = res.data;
|
if (table.length > shuttleMsgTableBlankRows && table.length !== shuttleMsgTableFullRows) {
|
initShuttleMsgTable(table.length-shuttleMsgTableBlankRows);
|
shuttleMsgTableFullRows = table.length;
|
}
|
for (var i=1;i<=table.length;i++){
|
var tr = tableEl.find("tr").eq(i);
|
setVal(tr.children("td").eq(0), table[i-1].shuttleNo);
|
setVal(tr.children("td").eq(1), table[i-1].workNo);
|
setVal(tr.children("td").eq(2), table[i-1].status);
|
setVal(tr.children("td").eq(3), table[i-1].sourceLocNo);
|
setVal(tr.children("td").eq(4), table[i-1].distLocNo);
|
setVal(tr.children("td").eq(5), table[i-1].currentLiftServoSpeed);
|
setVal(tr.children("td").eq(6), table[i-1].currentMoveServoSpeed);
|
setVal(tr.children("td").eq(7), table[i-1].currentLiftServoLoad);
|
setVal(tr.children("td").eq(8), table[i-1].currentMoveServoLoad);
|
setVal(tr.children("td").eq(9), table[i-1].pakMk);
|
setVal(tr.children("td").eq(10), table[i-1].locNo);
|
setVal(tr.children("td").eq(11), table[i-1].lev);
|
}
|
} else if (res.code === 403){
|
window.location.href = baseUrl+"/login";
|
} else {
|
console.log(res.msg);
|
}
|
}
|
});
|
}
|
|
// 穿梭车日志输出 -----------------------------------------------------------------------
|
function getShuttleOutput() {
|
$.ajax({
|
url: baseUrl + "/shuttle/output/shuttle",
|
headers: {'token': localStorage.getItem('token')},
|
method: 'POST',
|
success: function (res) {
|
if (res.code === 200) {
|
shuttleOutput(res.data);
|
} else if (res.code === 403) {
|
window.location.href = baseUrl + "/login";
|
} else {
|
console.log(res.msg);
|
}
|
}
|
})
|
}
|
|
// 任务指令下发
|
function shuttleOperator(shuttleTaskMode) {
|
http.post(baseUrl+"/shuttle/operator/shuttle", {
|
shuttleNo: $('input[name="shuttleSelect"]:checked').val(),
|
shuttleTaskMode: shuttleTaskMode,
|
sourceLocNo: $("#sourceLocNo").val(),
|
distLocNo: $("#distLocNo").val()
|
}, function (res) {
|
layer.msg(res.msg, {icon: 1});
|
});
|
}
|
|
|
// ------------------------------------------------------------------------------------------------
|
|
// 四向穿梭车信息表获取 ----- 表一
|
function initShuttleStateTable(row) {
|
let line;
|
if (row === undefined){
|
let one = $('#shuttle-state-table thead').height();
|
let total = $('.shuttle-state').height();
|
let count = total / one;
|
count = parseInt(count) - 1;
|
shuttleStateTableBlankRows = count;
|
line = count;
|
} else {
|
line = row;
|
}
|
let html = "";
|
for (let i = 0; i < line; i ++){
|
html += " <tr>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" </tr>\n";
|
}
|
$('#shuttle-state-table tbody').after(html);
|
}
|
|
// 穿梭车数据表获取 ----- 表二
|
function initShuttleMsgTable(row) {
|
let line;
|
if (row === undefined){
|
let one = $('#shuttle-msg-table thead').height();
|
let total = $('.shuttle-msg').height();
|
let count = total / one;
|
count = parseInt(count) - 1;
|
shuttleMsgTableBlankRows = count;
|
line = count;
|
} else {
|
line = row;
|
}
|
let html = "";
|
for (let i = 0; i < line; i ++){
|
html += " <tr>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" <td></td>\n" +
|
" </tr>\n";
|
}
|
$('#shuttle-msg-table tbody').after(html);
|
}
|
|
// 日志输出框
|
function shuttleOutput(content){
|
shuttleOutputDom.value += content;
|
shuttleOutputDom.scrollTop = shuttleOutputDom.scrollHeight;
|
}
|
|
</script>
|