From cb15c6400b7dfc3855e5fdd76b8b217bf6bc9567 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <xltys1995>
Date: 星期三, 30 十二月 2020 10:55:09 +0800
Subject: [PATCH] #

---
 src/main/webapp/views/crn.html |  584 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 582 insertions(+), 2 deletions(-)

diff --git a/src/main/webapp/views/crn.html b/src/main/webapp/views/crn.html
index 85a8695..4747862 100644
--- a/src/main/webapp/views/crn.html
+++ b/src/main/webapp/views/crn.html
@@ -2,9 +2,589 @@
 <html lang="en">
 <head>
     <meta charset="UTF-8">
-    <title>Title</title>
+    <title>鍫嗗灈鏈虹洃鎺х鐞�</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <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/css/crn.css">
+    <script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
+    <script type="text/javascript" src="../static/js/common.js"></script>
+    <script type="text/javascript" src="../static/js/layer/layer.js"></script>
+    <style>
+        .demoBtn {
+            vertical-align: middle;
+            width: 20%;
+            height: 25px;
+            left: 0;
+            top: 0;
+            text-shadow: inherit;
+            font-size: 15px;
+            margin-left: 5px;
+            margin-right: 5px;
+            display: inline-block;
+            background-color: #FF5722;
+            border: none;
+            color: #FFF;
+            box-shadow: 1px 1px 5px #B6B6B6;
+            border-radius: 3px;
+            cursor: pointer;
+        }
+
+        .demoBtn:hover {
+            opacity: 0.8
+        }
+        .demoBtn:focus {
+            outline: 0;
+        }
+    </style>
 </head>
 <body>
-<h1>LED</h1>
+<!-- 鏃ュ織鐩戞帶鏉� -->
+<div class="log-board">
+    <!-- 鎵ц鍛戒护 -->
+    <div class="command-log">
+        <h2>鎵ц涓殑鍛戒护</h2>
+        <div class="crn-command-item">
+            <label>1#</label>
+            <button id="demoBtn-1" class="demoBtn" onclick="demoSwitch(this.id)">婕旂ず</button>
+            <!--            <span>&nbsp;</span>-->
+            <input id="crn1" disabled="disabled">
+        </div>
+        <div class="crn-command-item">
+            <label>2#</label>
+            <button id="demoBtn-2" class="demoBtn" onclick="demoSwitch(this.id)">婕旂ず</button>
+            <!--            <span>&nbsp;</span>-->
+            <input id="crn2" disabled="disabled">
+        </div>
+    </div>
+    <!-- 鍫嗗灈鏈虹姸鎬佷綅淇℃伅 -->
+    <div class="crn-state">
+        <table id="crn-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>鍗囬檷瀹氫綅</th>
+                    <th>鎬ュ仠</th>
+                    <th>寮傚父鐮�</th>
+                </tr>
+            </thead>
+            <tbody>
+            </tbody>
+        </table>
+    </div>
+</div>
+<!-- 鍫嗗灈鏈虹姸鎬� -->
+<div class="crn-msg">
+    <table id="crn-msg-table">
+        <thead>
+            <tr>
+                <th>鍫嗗灈鏈�</th>
+                <th>宸ヤ綔鍙�</th>
+                <th>鐘舵��</th>
+                <th>婧愮珯</th>
+                <th>鐩爣绔�</th>
+                <th>婧愬簱浣�</th>
+                <th>鐩爣搴撲綅</th>
+                <th>寮傚父</th>
+                <th>璧拌閫熷害锛坢/min)</th>
+                <th>鍗囬檷閫熷害锛坢/min)</th>
+                <th>鍙夌墮閫熷害锛坢/min)</th>
+                <th>璧拌璺濈(Km)</th>
+                <th>鍗囬檷璺濈(Km)</th>
+                <th>璧拌鏃堕暱(H)</th>
+                <th>鍗囬檷鏃堕暱(H)</th>
+            </tr>
+        </thead>
+        <tbody>
+        </tbody>
+    </table>
+</div>
+<!-- 鎵嬪姩鎿嶄綔 -->
+<div class="crn-operation">
+
+    <!-- 閬僵灞� -->
+    <div class="crn-operation-shade">
+        <span class="crn-operation-shade-span">
+            WCS 绯荤粺杩愯涓紝璇峰仠姝㈠悗鎿嶄綔
+        </span>
+    </div>
+
+    <!-- 璁惧浠诲姟閫夋嫨 -->
+    <div class="task-select">
+        <!-- 鍫嗗灈鏈洪�夋嫨 -->
+        <div id="crn-select" class="operator-item">
+            <span class="select-title">鍫嗗灈鏈哄彿</span>
+            <div class="select-container">
+                <label><input type="radio" name="crnSelect" value="1" checked>&nbsp;1鍙峰爢鍨涙満</label>
+                <label><input type="radio" name="crnSelect" value="2">&nbsp;2鍙峰爢鍨涙満</label>
+            </div>
+        </div>
+        <!-- 婧愮珯/婧愬簱浣� 閫夋嫨 -->
+        <div id="source-select" class="operator-item">
+            <span class="select-title">婧愮珯/婧愬簱浣�</span>
+            <div class="select-container">
+                <div class="select-container-item">
+                    <span>绔�</span>
+                    <label><input id="sourceStaNo" type="number" name="points" min="0" /></label>
+                </div>
+                <div class="select-container-item">
+                    <span>鎺�</span>
+                    <label><input id="sourceRow" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
+                </div>
+                <div class="select-container-item">
+                    <span>鍒�</span>
+                    <label><input id="sourceBay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>
+                </div>
+                <div class="select-container-item">
+                    <span>灞�</span>
+                    <label><input id="sourceLev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
+                </div>
+            </div>
+        </div>
+        <!-- 鐩爣绔�/鐩爣搴撲綅 閫夋嫨 -->
+        <div id="target-select" class="operator-item">
+            <span class="select-title">鐩爣绔�/鐩爣搴撲綅</span>
+            <div class="select-container">
+                <div class="select-container-item">
+                    <span>绔�</span>
+                    <label><input id="staNo" type="number" name="points" min="0" /></label>
+                </div>
+                <div class="select-container-item">
+                    <span>鎺�</span>
+                    <label><input id="row" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
+                </div>
+                <div class="select-container-item">
+                    <span>鍒�</span>
+                    <label><input id="bay" type="number" name="points" min="0" style="background-color: #a9eeff" value="0" /></label>
+                </div>
+                <div class="select-container-item">
+                    <span>灞�</span>
+                    <label><input id="lev" type="number" name="points" min="1" style="background-color: #a9eeff" value="1" /></label>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <!-- 璁惧浠诲姟鎿嶄綔 -->
+    <div class="task-operator">
+        <fieldset>
+            <legend>鎵嬪姩鎿嶄綔</legend>
+            <div class="button-group">
+                <button class="item" onclick="put()">鍏ュ簱</button>
+                <button class="item" onclick="take()">鍑哄簱</button>
+                <button class="item" onclick="stockMove()">搴撲綅杞Щ</button>
+                <button class="item" onclick="siteMove()">绔欏埌绔�</button>
+                <button class="item" onclick="bacOrigin()">鍥炲師鐐�</button>
+                <button class="item" onclick="reverseOrigin()">鍙嶅師鐐�</button>
+                <button class="item" onclick="coorMove()">鍧愭爣绉昏</button>
+                <button class="item" onclick="taskComplete()">浠诲姟瀹屾垚</button>
+<!--                <button class="item" onclick="pause()">鏆傚仠</button>-->
+<!--                <button class="item" onclick="boot()">鍚姩</button>-->
+                <button class="item" onclick="clearCommand()">娓呴櫎鍛戒护</button>
+                <button class="item" onclick="handleReset()">澶嶄綅</button>
+            </div>
+        </fieldset>
+    </div>
+
+</div>
+<!-- 鍫嗗灈鏈烘棩蹇楄緭鍑� -->
+<div class="crn-output-board">
+    <textarea id="crn-output"></textarea>
+</div>
 </body>
+<script>
+    // 绌虹櫧琛屾暟
+    var crnStateTableBlankRows = 0;
+    var crnMsgTableBlankRows = 0;
+    // 瀹為檯琛屾暟
+    var crnStateTableFullRows = 0;
+    var crnMsgTableFullRows = 0;
+    // 鍒濆鍖�
+    var crnOutputDom = document.getElementById("crn-output");
+    $(document).ready(function() {
+        getCommandLog();
+        initCrnStateTable();
+        getCrnStateInfo();
+        initCrnMsgTable();
+        getCrnMsgInfo();
+        operatorBlockShow();
+    });
+    // 鏁版嵁鏇存柊
+    setInterval(function () {
+        getCrnStateInfo();
+        getCrnMsgInfo();
+        getCommandLog();
+    },1000);
+    setInterval(function () {
+        getCrnOutput();
+        operatorBlockShow();
+    },500);
+
+    // 鍒ゆ柇鎵嬪姩鎿嶄綔妯″潡鏄惁鍙敤
+    function operatorBlockShow() {
+        if (parent.systemRunning) {
+            $('.crn-operation').css("opacity", "0.5");
+            $('.crn-operation-shade').show();
+            $('.crn-operation-shade-span').show();
+        }  else {
+            $('.crn-operation').css("opacity", "1");
+            $('.crn-operation-shade').hide();
+            $('.crn-operation-shade-span').hide();
+        }
+    }
+
+    // 鑾峰彇鍫嗗灈鏈烘墽琛屼腑鐨勫懡浠�
+    function getCommandLog() {
+        $.ajax({
+            url: baseUrl + "/crn/command/ongoing",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            success: function (res) {
+                if (res.code === 200) {
+                    var commands = res.data;
+                    for (var i=0; i<commands.length;i++){
+                        $("#crn"+commands[i].crnNo).val(commands[i].command);
+                    }
+                } else if (res.code === 403) {
+                    window.location.href = baseUrl + "/login";
+                } else {
+                    console.log(res.msg);
+                }
+            }
+        })
+    }
+
+    // 鍫嗗灈鏈轰俊鎭〃鑾峰彇 ---- 琛ㄤ竴
+    function getCrnStateInfo() {
+        var tableEl = $('#crn-state-table');
+        $.ajax({
+            url: baseUrl+ "/crn/table/crn/state",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            success: function (res) {
+                if (res.code === 200){
+                    var table = res.data;
+                    if (table.length > crnStateTableBlankRows && table.length !== crnStateTableFullRows) {
+                        initCrnStateTable(table.length-crnStateTableBlankRows);
+                        crnStateTableFullRows = 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].crnNo);
+                        setVal(tr.children("td").eq(1), table[i-1].statusType);
+                        setVal(tr.children("td").eq(2), table[i-1].status);
+                        setVal(tr.children("td").eq(3), table[i-1].loading);
+                        setVal(tr.children("td").eq(4), table[i-1].bay);
+                        setVal(tr.children("td").eq(5), table[i-1].lev);
+                        setVal(tr.children("td").eq(6), table[i-1].xorigin);
+                        setVal(tr.children("td").eq(7), table[i-1].yorigin);
+                        setVal(tr.children("td").eq(8), table[i-1].forkOffset);
+                        setVal(tr.children("td").eq(9), table[i-1].xlocation);
+                        setVal(tr.children("td").eq(10), table[i-1].ylocation);
+                        setVal(tr.children("td").eq(11), table[i-1].stop);
+                        setVal(tr.children("td").eq(12), table[i-1].warnCode);
+                    }
+                } else if (res.code === 403){
+                    window.location.href = baseUrl+"/login";
+                }  else {
+                    console.log(res.msg);
+                }
+            }
+        });
+    }
+
+    // 鍫嗗灈鏈烘暟鎹〃鑾峰彇 ---- 琛ㄤ簩
+    function getCrnMsgInfo() {
+        var tableEl = $('#crn-msg-table');
+        $.ajax({
+            url: baseUrl+ "/crn/table/crn/msg",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            success: function (res) {
+                if (res.code === 200){
+                    var table = res.data;
+                    if (table.length > crnStateTableBlankRows && table.length !== crnMsgTableFullRows) {
+                        initCrnStateTable(table.length-crnStateTableBlankRows);
+                        crnMsgTableFullRows = 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].crnNo);
+                        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].sourceStaNo);
+                        setVal(tr.children("td").eq(4), table[i-1].staNo);
+                        setVal(tr.children("td").eq(5), table[i-1].sourceLocNo);
+                        setVal(tr.children("td").eq(6), table[i-1].locNo);
+                        setVal(tr.children("td").eq(7), table[i-1].error);
+                        setVal(tr.children("td").eq(8), table[i-1].xspeed);
+                        setVal(tr.children("td").eq(9), table[i-1].yspeed);
+                        setVal(tr.children("td").eq(10), table[i-1].zspeed);
+                        setVal(tr.children("td").eq(11), table[i-1].xdistance);
+                        setVal(tr.children("td").eq(12), table[i-1].ydistance);
+                        setVal(tr.children("td").eq(13), table[i-1].xduration);
+                        setVal(tr.children("td").eq(14), table[i-1].yduration);
+                    }
+                } else if (res.code === 403){
+                    window.location.href = baseUrl+"/login";
+                }  else {
+                    console.log(res.msg);
+                }
+            }
+        });
+    }
+
+    // 鍫嗗灈鏈烘墜鍔ㄦ搷浣滃尯 -----------------------------------------------------------------------
+
+    function getReqParam() {
+        var crnNo = $('input[name="crnSelect"]:checked').val();
+        var sourceStaNo = $('#sourceStaNo').val();
+        var sourceRow = $('#sourceRow').val();
+        var sourceBay = $('#sourceBay').val();
+        var sourceLev = $('#sourceLev').val();
+        var staNo = $('#staNo').val();
+        var row = $('#row').val();
+        var bay = $('#bay').val();
+        var lev = $('#lev').val();
+        return {
+            crnNo: crnNo,
+            sourceStaNo: sourceStaNo,
+            sourceRow: sourceRow,
+            sourceBay: sourceBay,
+            sourceLev: sourceLev,
+            staNo: staNo,
+            row: row,
+            bay: bay,
+            lev: lev
+        };
+    }
+
+    // 鍏ュ簱
+    function put() {
+        http.post(baseUrl+"/crn/operator/put", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 鍑哄簱
+    function take() {
+        http.post(baseUrl+"/crn/operator/take", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 搴撲綅杞Щ
+    function stockMove() {
+        http.post(baseUrl+"/crn/operator/stockMove", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 绔欏埌绔�
+    function siteMove() {
+        http.post(baseUrl+"/crn/operator/siteMove", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 鍧愭爣绉诲姩
+    function coorMove() {
+        http.post(baseUrl+"/crn/operator/coorMove", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 鍥炲師鐐�
+    function bacOrigin() {
+        http.post(baseUrl+"/crn/operator/bacOrigin", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 鍥炲師鐐�
+    function reverseOrigin() {
+        http.post(baseUrl+"/crn/operator/reverseOrigin", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 浠诲姟瀹屾垚
+    function taskComplete() {
+        http.post(baseUrl+"/crn/operator/taskComplete", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 鏆傚仠
+    function pause() {
+        http.post(baseUrl+"/crn/operator/pause", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 鍚姩
+    function boot() {
+        http.post(baseUrl+"/crn/operator/boot", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 娓呴櫎鍛戒护
+    function clearCommand() {
+        http.post(baseUrl+"/crn/operator/clearCommand", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 鎵嬪姩澶嶄綅
+    function handleReset() {
+        http.post(baseUrl+"/crn/operator/handleReset", getReqParam(), function (res) {
+            layer.msg(res.msg);
+        });
+    }
+
+    // 杈撻�佽澶囨棩蹇楄緭鍑� -----------------------------------------------------------------------
+    function getCrnOutput() {
+        $.ajax({
+            url: baseUrl + "/crn/output/site",
+            headers: {'token': localStorage.getItem('token')},
+            method: 'POST',
+            success: function (res) {
+                if (res.code === 200) {
+                    crnOutput(res.data);
+                } else if (res.code === 403) {
+                    window.location.href = baseUrl + "/login";
+                } else {
+                    console.log(res.msg);
+                }
+            }
+        })
+    }
+
+    // ------------------------------------------------------------------------------------------------
+
+    // 鍫嗗灈鏈轰俊鎭〃鑾峰彇  ----- 琛ㄤ竴
+    function initCrnStateTable(row) {
+        var line;
+        if (row === undefined){
+            var one = $('#crn-state-table thead').height();
+            var total = $('.crn-state').height();
+            var count = total / one;
+            count = parseInt(count) - 1;
+            crnStateTableBlankRows = count;
+            line = count;
+        } else {
+            line = row;
+        }
+        var html = "";
+        for (var 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" +
+                "     </tr>\n";
+        }
+        $('#crn-state-table tbody').after(html);
+    }
+
+    // 鍫嗗灈鏈烘暟鎹〃鑾峰彇  ----- 琛ㄤ簩
+    function initCrnMsgTable(row) {
+        var line;
+        if (row === undefined){
+            var one = $('#crn-msg-table thead').height();
+            var total = $('.crn-msg').height();
+            var count = total / one;
+            count = parseInt(count) - 1;
+            crnMsgTableBlankRows = count;
+            line = count;
+        } else {
+            line = row;
+        }
+        var html = "";
+        for (var 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";
+        }
+        $('#crn-msg-table tbody').after(html);
+    }
+
+    // 鏃ュ織杈撳嚭妗�
+    function crnOutput(content){
+        crnOutputDom.value += content;
+        crnOutputDom.scrollTop = crnOutputDom.scrollHeight;
+    }
+
+    function demoSwitch(el) {
+        var crnId = el.split("-")[1];
+        layer.prompt({title: '璇疯緭鍏ュ彛浠わ紝骞跺紑濮�'+crnId+"鍙峰爢鍨涙満婕旂ず", formType: 1, shadeClose: true}, function (pass, idx) {
+            layer.close(idx);
+            doDemo(crnId, pass); // 鍋滄wcs绯荤粺
+        });
+    }
+
+    function doDemo(crnId, password) {
+        // 鍔犺浇tips
+        var index = layer.load(1, {
+            shade: [0.1,'#fff']
+        });
+        $.ajax({
+            url: baseUrl+ "/crn/demo/switch",
+            headers: {'token': localStorage.getItem('token')},
+            // async: false,
+            data: {
+                crnId: Number(crnId),
+                password: password
+            },
+            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});
+                }
+            }
+        });
+
+    }
+
+</script>
 </html>
\ No newline at end of file

--
Gitblit v1.9.1