#
Junjie
2023-08-30 cdca466c533197157f3255b77fbdb4aac89be064
src/main/webapp/views/shuttle.html
@@ -20,36 +20,34 @@
        <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="command-log" id="commandLogId" style="width: 5%;">-->
<!--&lt;!&ndash;                    <div data-shuttleNo="1" class="shuttle-command-item">&ndash;&gt;-->
<!--&lt;!&ndash;                        <label>1#</label>&ndash;&gt;-->
<!--&lt;!&ndash;                        <button class="demoBtn pos-btn">数据维护</button>&ndash;&gt;-->
<!--&lt;!&ndash;                        <button id="mode-1" class="demoBtn mode-btn" >设备信息</button>&ndash;&gt;-->
<!--&lt;!&ndash;                    </div>&ndash;&gt;-->
<!--                </div>-->
                <!-- 堆垛机状态位信息 -->
                <div class="shuttle-state" style="width: 95%;">
                <div class="shuttle-state" style="width: 100%;">
                    <table id="shuttle-state-table">
                        <thead>
                            <tr>
                                <th>四向穿梭车</th>
                                <th>任务状态</th>
                                <th>小车状态</th>
                                <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>
                                <th>当前速度</th>
                                <th>负载状态</th>
                                <th>顶升位置</th>
                                <th>运行方向</th>
                                <th>运行方向2</th>
                                <th>充电状态</th>
                                <th>故障状态</th>
                                <th>故障码</th>
                                <th>管制状态</th>
                            </tr>
                        </thead>
                        <tbody>
@@ -64,14 +62,18 @@
                        <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>
                            <th>充放电循环次数</th>
                            <th>剩余电量</th>
                            <th>总电量</th>
                            <th>总里程数</th>
                            <th>作业标记</th>
                            <th>当前库位</th>
                            <th>令牌</th>
                        </tr>
                    </thead>
                    <tbody>
@@ -89,9 +91,9 @@
                <!-- 设备任务选择 -->
                <div class="task-select">
                    <!-- 选择 -->
                    <div id="shuttle-select" class="operator-item">
                    <div id="shuttle-select" class="operator-item" style="width: 100%;">
                        <span class="select-title">四向穿梭车号</span>
                        <div class="select-container" id="shuttleRadioBoxId">
                        <div class="select-container" id="shuttleRadioBoxId" style="display: flex;flex-wrap: wrap;justify-content: center;align-items: center;">
<!--                            <label><input type="radio" name="shuttleSelect" value="1" checked>&nbsp;1号穿梭车</label>-->
                        </div>
                    </div>
@@ -99,42 +101,47 @@
                <!-- 设备任务操作 -->
                <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>
                    <fieldset style="height: auto;padding-bottom: 20px;">
                        <legend>手动操作</legend>
                        <div style="display: flex;">
                            <div style="width: 30%;">
                                <div class="operator-item" style="height: auto;width: 100%;">
                                    <span class="select-title">源库位/目标库位</span>
                                    <div class="select-container" style="height: auto;padding: 30px 10px 20px 10px;">
                                        <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 style="margin-top: 10px;">
                                            <button class="item" onclick="shuttleOperator(18)">搬运货物</button>
                                            <button class="item" onclick="shuttleOperator(14)">移动到目标库位</button>
                                            <button class="item" onclick="shuttleOperator(16)">移动到提升机</button>
                                        </div>
                                    </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 style="width: 40%;">
                                <div class="operator-item" style="height: auto;width: 100%;">
                                    <span class="select-title">相关指令</span>
                                    <div class="select-container" style="height: auto;padding: 30px 10px 10px 10px;">
                                        <div class="button-group">
                                            <button class="item" onclick="shuttleOperator(3)">托盘顶升</button>
                                            <button class="item" onclick="shuttleOperator(4)">托盘下降</button>
                                            <button class="item" onclick="shuttleOperator(15)">充电开关</button>
                                            <button class="item" onclick="shuttleOperator(9)">复位</button>
                                            <button class="item" onclick="shuttleOperator(21)">管制</button>
                                            <button class="item" onclick="shuttleOperator(22)">取消管制</button>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </fieldset>
                </div>
@@ -150,7 +157,7 @@
    <div id="shuttle-detl" style="display: none">
        <div>
            <div class="form-item">
                <label class="form-label">四向穿梭车号:</label>
                <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>
@@ -162,174 +169,20 @@
                </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">
                <label class="form-label">令牌:</label>
                <div class="form-input">
                    <input id="token" name="token" 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>
@@ -375,116 +228,6 @@
        }
    }
    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){
@@ -494,53 +237,16 @@
        }
    }
    // $(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(),
            token: $('#token').val(),
        }, function (res) {
            layer.msg("修改成功", {icon: 1,});
            layer.close(layerIdx);
            layer.close(layerDetl);
        })
    })
    $(document).on('click ','#cancel', function () {
        layer.close(layerIdx);
    })
    function setShuttleRadio() {
@@ -596,23 +302,21 @@
                        // $("#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);
                        setVal(tr.children("td").eq(17), table[i-1].currentAnalogValue);
                        setVal(tr.children("td").eq(1), table[i-1].protocolStatus$);
                        setVal(tr.children("td").eq(2), table[i-1].free$);
                        setVal(tr.children("td").eq(3), table[i-1].workingMode$);
                        setVal(tr.children("td").eq(4), table[i-1].point$);
                        setVal(tr.children("td").eq(5), table[i-1].point$$);
                        setVal(tr.children("td").eq(6), table[i-1].powerPercent$);
                        setVal(tr.children("td").eq(7), table[i-1].speed);
                        setVal(tr.children("td").eq(8), table[i-1].loadState$);
                        setVal(tr.children("td").eq(9), table[i-1].liftPosition$);
                        setVal(tr.children("td").eq(10), table[i-1].runDir$);
                        setVal(tr.children("td").eq(11), table[i-1].runDir2$);
                        setVal(tr.children("td").eq(12), table[i-1].chargState$);
                        setVal(tr.children("td").eq(13), table[i-1].errState$);
                        setVal(tr.children("td").eq(14), table[i-1].errCode);
                        setVal(tr.children("td").eq(15), table[i-1].suspendState$);
                    }
                } else if (res.code === 403){
                    window.location.href = baseUrl+"/login";
@@ -627,7 +331,7 @@
    function getShuttleMsgInfo() {
        let tableEl = $('#shuttle-msg-table');
        $.ajax({
            url: baseUrl+ "/shuttle/table/shuttle/msg",
            url: baseUrl+ "/shuttle/table/shuttle/state",
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            success: function (res) {
@@ -640,15 +344,23 @@
                    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(1), table[i-1].taskNo);
                        setVal(tr.children("td").eq(2), table[i-1].sourceLocNo);
                        setVal(tr.children("td").eq(3), table[i-1].locNo);
                        setVal(tr.children("td").eq(4), table[i-1].maxCellVoltage$);
                        setVal(tr.children("td").eq(5), table[i-1].minCellVoltage$);
                        setVal(tr.children("td").eq(6), table[i-1].voltage$);
                        setVal(tr.children("td").eq(7), table[i-1].chargeCycleTimes);
                        setVal(tr.children("td").eq(8), table[i-1].surplusQuantity);
                        setVal(tr.children("td").eq(9), table[i-1].countQuantity);
                        setVal(tr.children("td").eq(10), table[i-1].statusSum.mileage);
                        setVal(tr.children("td").eq(11), table[i-1].pakMk$);
                        setVal(tr.children("td").eq(12), table[i-1].currentLocNo);
                        setVal(tr.children("td").eq(13), table[i-1].token);
                        if (table[i-1].shuttleNo == parseInt($('input[name="shuttleSelect"]:checked').val())) {
                            $("#runSpeedText").text(table[i-1].runSpeed)
                            $("#chargeLineText").text(table[i-1].chargeLine + "%")
                        }
                    }
                } else if (res.code === 403){
                    window.location.href = baseUrl+"/login";
@@ -773,4 +485,84 @@
        shuttleOutputDom.scrollTop = shuttleOutputDom.scrollHeight;
    }
    //四向穿梭车配置参数保存
    function shuttleParamSave() {
        $.ajax({
            url: baseUrl+ "/shuttle/runSpeed/" + $('input[name="shuttleSelect"]:checked').val(),
            headers: {'token': localStorage.getItem('token')},
            method: 'POST',
            data: {
                runSpeed: $("#runSpeed").val(),
                chargeLine: $("#chargeLine").val(),
            },
            success: function (res) {
                if (res.code === 200){
                    layer.msg("配置已保存", {icon: 1,});
                } else if (res.code === 403){
                    window.location.href = baseUrl+"/login";
                }  else {
                    console.log(res.msg);
                }
            }
        });
    }
    // 详情操作 -------------------------------------------------------------------------
    var layerDetl;
    $(document).on('dblclick ','#shuttle-msg-table tr', function () {
        var shuttleNo = $(this).children("td").eq(0).html();
        if (shuttleNo !== null && shuttleNo !== "") {
            layerDetl = layer.open({
                type: 1,
                title: false,
                shadeClose: true,
                offset: 'rt',
                anim: 5,
                shade: [0],
                area: ['340px', '255px'],
                closeBtn: 0,
                content: $("#shuttle-detl"),
                success: function(layero, index){
                    $.ajax({
                        url: baseUrl+ "/shuttle/table/shuttle/state",
                        headers: {'token': localStorage.getItem('token')},
                        method: 'POST',
                        success: function (res) {
                            if (res.code === 200){
                                var table = res.data;
                                for (var i=1;i<=table.length;i++){
                                    if (shuttleNo == table[i-1].shuttleNo) {
                                        $('#shuttleNo').val(shuttleNo);
                                        $('#workNo').val(table[i-1].taskNo);
                                        $('#pakMk').val(table[i-1].pakMk$);
                                        $('#token').val(table[i-1].token);
                                    }
                                }
                            } else if (res.code === 403){
                                window.location.href = baseUrl+"/login";
                            }  else {
                                console.log(res.msg);
                            }
                        }
                    });
                },
                end: function () {
                    $('#shuttleNo').val("");
                    $('#workNo').val("");
                    $('#pakMk').val("");
                    $('#token').val("");
                }
            })
        }
    });
    $(document).on('click ','#cancel', function () {
        $('#shuttleNo').val("");
        $('#workNo').val("");
        $('#pakMk').val("");
        $('#token').val("");
        layer.close(layerDetl);
    })
</script>