#
lsh
2 天以前 5ae3b6c3d604f16c2ecc5057d720d5d79c8c091b
src/main/webapp/views/console.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta charset="UTF-8" >
    <title>自动仓库wcs系统</title>
    <link rel="stylesheet" href="../static/css/render.css">
    <script src="../static/js/jquery/jquery-3.3.1.min.js"></script>
@@ -10,8 +10,6 @@
    <script src="../static/js/console.map.js"></script>
    <script src="../static/js/console.js"></script>
    <script src="../static/js/common.js"></script>
</head>
<body>
    <div id="main">
@@ -19,6 +17,7 @@
            <div class="head-left">
                <h1>自动仓库WCS监控图</h1>
                <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6>
                <button class="zoom-btn" id="zoomBtn">缩小网页比例</button>
            </div>
            <div class="head-right">
                <img src="../static/images/zy-logo.png" alt="中扬" height="44" width="80">
@@ -57,8 +56,8 @@
                    <span class="machine-put-flag">入库</span>
                    <span class="machine-take-flag">出库</span>
                    <span class="machine-stock-move-flag">库到库</span>
                    <span class="machine-site-move-flag">站到站</span>
                    <span class="machine-p-move-flag">PToP</span>
<!--                    <span class="machine-site-move-flag">站到站</span>-->
<!--                    <span class="machine-p-move-flag">PToP</span>-->
                    <span class="machine-error-flag">异常</span>
                    <span class="machine-auto-flag">自动</span>
                    <span class="machine-unauto-flag">非自动/手动</span>
@@ -327,6 +326,7 @@
        </div>
    </div>
</body>
</html>
@@ -344,7 +344,7 @@
            url: baseUrl + '/console/barcode/output/site',
            method: 'GET',
            success: function (res) {
                console.log(res)
                // console.log(res)
                if (res.code === 200) {
                    tData = eval(res.data);
                    if (tData.length <= 5) {
@@ -385,12 +385,11 @@
</script>
<script type="text/javascript">
    // 弹窗站点信息
    $('.site').on('click', function () {
    $(document).on('click', '.site' ,function () {
        var id = this.id.split("-")[1];
        $("#siteWindow").attr("style", "display:block;");//显示div
        $("#crnWindow").attr("style", "display:none;");
        $(".detailed").empty();
        $('.detailed').append(id + '站点详细信息');
        $("#siteWindow").css("display", "block");//显示div
        $("#crnWindow").css("display", "none");
        $(".detailed").empty().append(id + '站点详细信息');
        $.ajax({
            url: baseUrl + "/console/site/detail",
            headers: {
@@ -406,7 +405,7 @@
                    if (find[0].type === 'text') {
                        find.val(res.data[val]);
                    } else if (find[0].type === 'checkbox') {
                        find.attr("checked", res.data[val] === 'Y');
                        find.prop("checked", res.data[val] === 'Y');
                    }
                }
            }
@@ -415,32 +414,27 @@
    });
    // 堆垛机信息
    $('.machine').on('click', function () {
    $(document).on('click', '.machine',function () {
        var id = this.id.split("-")[1];
        $("#crnWindow").attr('style', 'display:block;');
        $("#siteWindow").attr("style", "display:none;");
        $('.detailed').empty();
        $('.detailed').append(id + '号堆垛机');
        $("#crnWindow").css("display","block");
        $("#siteWindow").css("display","none");
        $(".detailed").empty().append(id + '号堆垛机');
        $.ajax({
            url: baseUrl + "/console/crn/detail",
            headers: {
                'token': localStorage.getItem('token')
            },
            data: {
                crnNo: id
            },
            headers: {'token': localStorage.getItem('token')},
            data: {crnNo: id},
            method: 'post',
            success: function (res) {
                for (var val in res.data) {
                    var find = $("#crnWindow").find(":input[name='" + val + "']");
                    if (find[0].type === 'text') {
                for(var val in res.data){
                    var find = $("#crnWindow").find(":input[name='"+ val + "']");
                    if(find[0].type === 'text'){
                        find.val(res.data[val]);
                    } else if (find[0].type === 'checkbox') {
                        find.attr("checked", res.data[val] === 'Y');
                    }else if (find[0].type === 'checkbox'){
                        find.prop("checked", res.data[val] === 'Y')
                    }
                }
            }
            }
        })
    })
@@ -550,7 +544,7 @@
        });
    }
    // 输送设备实时数据获取
    // 输送设备实时数据获取csxit
    function getSitesInfo() {
        $.ajax({
            url: baseUrl + "/console/latest/data/site",
@@ -561,6 +555,7 @@
                    var sites = res.data;
                    for (var i = 0; i < sites.length; i++) {
                        var siteEl = $("#site-" + sites[i].siteId);
                        // console.log(sites[i].siteStatus);
                        siteEl.attr("class", "site " + sites[i].siteStatus);
                        if (sites[i].workNo != null && sites[i].workNo > 0) {
                            siteEl.html(sites[i].siteId + "[" + sites[i].workNo + "]");
@@ -568,7 +563,7 @@
                            siteEl.html(sites[i].siteId);
                        }
                        if (sites[i].siteId === '1' || sites[i].siteId === '2') {
                        if (sites[i].siteId === '1' || sites[i].siteId === '2' || sites[i].siteId === '3'|| sites[i].siteId === '4') {
                            carAnimate(Number(sites[i].siteId), Number(sites[i].nearbySta));
                        }
@@ -602,30 +597,14 @@
                        }
                        // crnEl.animate({left: (crns[i].bay * unit) + 'px'}, 1000);
                        // crns[i].bay = 15;
                        var offSet = 0;
                        switch (i) {
                            case 0:
                            case 1:
                            case 2:
                            case 3:
                                unit = 35;
                                offSet = 500;
                                break;
                            case 5:
                                unit = 124;
                                offSet = 550;
                                break;
                            case 4:
                            case 6:
                                unit = 62;
                                offSet = 550;
                                break;
                        }
                        var offSet = 120;
                        unit = 15;
                        if(crns[i].bay === 1){
                            crnEl.animate({left: offSet + 'px'}, 1000);
                            crnEl.animate({left: offSet + 'px'}, 10);
                        } else {
                            crnEl.animate({left: (offSet - unit + (crns[i].bay * unit)) + 'px'}, 1000);
                            crnEl.animate({left: (offSet - unit + (crns[i].bay * unit)) + 'px'}, 10);
                        }
                    }
@@ -648,7 +627,7 @@
                if (res.code === 200) {
                    var barcodes = res.data;
                    for (var i = 0; i < barcodes.length; i++) {
                        $("#code-decoder-data-" + barcodes[i].barcodeId).html(barcodes[i].codeValue);
                        $("#barcode-"+barcodes[i].barcodeId).html(barcodes[i].codeValue ? barcodes[i].codeValue : "--");
                    }
                } else if (res.code === 403) {
                    parent.location.href = baseUrl + "/login";
@@ -711,57 +690,151 @@
        }
    }
    // 小车偏移动画
    function carAnimate(id, target) {
        // debugger
        var targetTop = 0;
        if (id === 1 || id === '1' || id === '2' || id === 2) {
            switch (target) {
                case 1:
                    targetTop += 792;
                    break;
                case 2:
                    targetTop += 771;
                    break;
                case 3:
                    targetTop += 727;
                    break;
                case 4:
                    targetTop += 706;
                    break;
                case 5:
                    targetTop += 662;
                    break;
                case 6:
                    targetTop += 620;
                    break;
                case 7:
                    targetTop += 578;
                    break;
                case 8:
                    targetTop += 530;
                    break;
                case 9:
                    targetTop += 190;
                    break;
                case 10:
                    targetTop += 147;
                    break;
                case 11:
                    targetTop += 107;
                    break;
                case 12:
                    targetTop += 63;
                    break;
                default:
                    return;
            }
        } else {
            return;
        // 确保 target 是有效的站点
        if (target === -1) {
            console.log("站点无效,跳过动画");
            return; // 跳过无效站点
        }
        $("#site-" + id).animate({top: targetTop + 'px'}, 1000);
        // 计算目标站点的 top 值
        switch (target) {
            case 1004:
                targetTop += 84;
                break;
            case 1007:
                targetTop += 128;
                break;
            case 1010:
                targetTop += 190;
                break;
            case 1014:
                targetTop += 240;
                break;
            case 1018:
                targetTop += 300;
                break;
            case 1021:
                targetTop += 350;
                break;
            case 1024:
                targetTop += 415;
                break;
            case 1028:
                targetTop += 465;
                break;
            case 1031:
                targetTop += 530;
                break;
            case 1035:
                targetTop += 580;
                break;
            case 2003:
                targetTop += 84;
                break;
            case 2006:
                targetTop += 128;
                break;
            case 2009:
                targetTop += 190;
                break;
            case 2012:
                targetTop += 240;
                break;
            case 2015:
                targetTop += 300;
                break;
            case 2018:
                targetTop += 350;
                break;
            case 2021:
                targetTop += 415;
                break;
            case 2024:
                targetTop += 465;
                break;
            case 2027:
                targetTop += 530;
                break;
            case 2030:
                targetTop += 580;
                break;
            default:
                console.log("无效的目标站点:" + target);
                return; // 无效的站点,跳过
        }
        // 确保目标站点的 DOM 元素存在
        var siteElement = $("#site-" + id);
        if (!siteElement.length) {
            console.log("未找到站点元素:" + id);
            return; // 如果站点元素不存在,跳过
        }
        // 获取当前站点位置
        var currentTop = siteElement.position().top;
        // 计算两个站点之间的距离
        var distance = Math.abs(targetTop - currentTop);
        // 计算动画时间,距离越远时间越长,最小时间为500ms,最大为2000ms
        var duration = Math.max(500, Math.min(distance / 2, 2000));
        // 执行动画,平滑地移动到目标位置
        siteElement.animate({ top: targetTop + 'px' }, duration);
    }
    // 检查 URL 中是否包含 fullscreen=true 参数
    function checkFullscreen() {
        const urlParams = new URLSearchParams(window.location.search);
        const fullscreen = urlParams.get('fullscreen');
        if (fullscreen === 'true') {
            enterFullscreen();
        }
    }
    // 进入全屏模式
    function enterFullscreen() {
        if (!document.fullscreenElement) {
            if (document.documentElement.requestFullscreen) {
                document.documentElement.requestFullscreen();
            } else if (document.documentElement.mozRequestFullScreen) { // Firefox
                document.documentElement.mozRequestFullScreen();
            } else if (document.documentElement.webkitRequestFullscreen) { // Chrome, Safari, Opera
                document.documentElement.webkitRequestFullscreen();
            } else if (document.documentElement.msRequestFullscreen) { // IE/Edge
                document.documentElement.msRequestFullscreen();
            }
        }
    }
    // 按钮点击事件,触发缩放
    document.getElementById('zoomBtn').addEventListener('click', function() {
        simulateCtrlWheelZoomOut();
    });
    // 模拟 Ctrl + 滚轮下滑来缩小网页
    function simulateCtrlWheelZoomOut() {
        let scale = 1;  // 默认缩放比例
        // 获取当前页面的缩放比例
        let currentScale = window.getComputedStyle(document.body).transform;
        if (currentScale !== 'none') {
            scale = parseFloat(currentScale.match(/matrix\((.*)\)/)[1].split(',')[0]);
        }
        // 计算新的缩放比例,模拟缩小
        let newScale = scale * 0.9; // 每次点击缩小10%
        // 应用新的缩放比例
        document.body.style.transform = 'scale(' + newScale + ')';
        document.body.style.transformOrigin = 'top left';  // 设置缩放原点
    }
</script>