自动化立体仓库 - WMS系统
pang.jiabao
2025-04-09 2e74e70bf05962e27d9147f862f8a3ce2511be65
src/main/webapp/views/home/console.html
@@ -6,11 +6,12 @@
    <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, maximum-scale=1">
    <link rel="stylesheet" href="/static/layui/css/layui.css" media="all">
    <script type="text/javascript" src="/static/layui/layui.js"></script>
    <script type="text/javascript" src="/static/js/jquery/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="/static/js/echarts/echarts.min.js"></script>
    <script type="text/javascript" src="/static/js/echarts/highcharts.js"></script>
    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
    <script type="text/javascript" src="../../static/js/common.js"></script>
    <script type="text/javascript" src="../../static/layui/layui.js"></script>
    <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
    <script type="text/javascript" src="../../static/js/echarts/echarts.min.js"></script>
    <script type="text/javascript" src="../../static/js/echarts/highcharts.js"></script>
    <style>
        body {
            background-color: #f1f1f1;
@@ -30,11 +31,15 @@
            display: inline-block;
            width: 49%;
        }
        .chart-elem div {
            padding-top: 15px;
            padding-bottom: 5px;
        }
        .chart-elem:first-child {
            padding: 0 50px;
        }
        .chart-elem:last-child {
            padding-left: 20px;
            padding: 0 50px;
            border-left: 1px solid rgba(0,0,0,.1);
        }
        /*表格工具栏*/
@@ -97,7 +102,10 @@
<!--表格数据-->
<div class="home-elem loc-retention">
    <div class="layui-form">
        <div id="form-header">库存滞留时间统计表</div>
        <div id="form-header">Таблица статистики времени задержки на складе</div>
        <div>
            <button class="layui-btn" id="export-btn">Экспорт</button>
        </div>
        <table class="layui-hide" id="stayTime" lay-filter="stayTime"></table>
    </div>
</div>
@@ -108,10 +116,11 @@
    // 饼图
    function pieCharts(){
        $.ajax({
            url:'/console/loc/pie/charts',
            url:baseUrl+'/console/loc/pie/charts',
            headers: {'token': localStorage.getItem('token')},
            dataType: 'json',
            contentType: 'application/json;charset=UTF-8',
            crossDomain: true,
            method: 'POST',
            success:function(res){
                var data = res.data;
@@ -122,10 +131,10 @@
                    plotShadow: false
                };
                var title = {
                    text: '库位使用比例',
                    text: 'Процент использования складских мест',
                    margin:1,
                    style: {fontSize: '18px',color: '#777',fontWeight: 'bold'},
                    y: 20
                    y: 5
                };
                var tooltip = {
                    pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
@@ -148,13 +157,17 @@
                    name: '库位占比',
                    data: dataPie
                }];
                var loading = {
                    hideDuration: 3,
                    showDuration: 3
                };
                var json = {};
                json.chart = chart;
                json.title = title;
                json.tooltip = tooltip;
                json.series = series;
                json.plotOptions = plotOptions;
                json.loading = loading;
                json.credits = {enabled: false};
                $('#pie').highcharts(json);
@@ -167,7 +180,7 @@
    // 折线图
    function lineCharts() {
        $.ajax({
            url: '/console/locIo/line/charts',
            url: baseUrl+'/console/locIo/line/charts',
            headers: {'token': localStorage.getItem('token')},
            dataType: 'json',
            contentType: 'application/json;charset=UTF-8',
@@ -176,10 +189,10 @@
                var data = res.data;
                var dataPie = eval(data.rows);
                var title = {
                    text: '日入出库数量',
                    text: 'Ежедневное количество поступающих  и исходящих товаров',
                    margin: 1,
                    style: {fontSize: '18px',color: '#777',fontWeight: 'bold'},
                    y: 20
                    y: 5
                };
                var xAxis = {
                    categories: [getDate(-11), getDate(-10), getDate(-9), getDate(-8), getDate(-7), getDate(-6),
@@ -187,7 +200,7 @@
                };
                var yAxis = {
                    title: {
                        text: '入/出库数量'
                        text: 'Количество поступающих/исходящих товаров'
                    },
                    plotLines: [{
                        value: 0,
@@ -202,6 +215,10 @@
                    verticalAlign: 'middle',
                    borderWidth: 0
                };
                var loading = {
                    hideDuration: 3,
                    showDuration: 3
                }
                var series = dataPie;
                var json = {};
                json.title = title;
@@ -209,6 +226,7 @@
                json.yAxis = yAxis;
                json.tooltip = tooltip;
                json.legend = legend;
                json.loading = loading;
                json.series = series;
                json.credits = {enabled: false};
                $('#line').highcharts(json);
@@ -218,6 +236,15 @@
    // 表格
    var pageCurr;
    function getCol() {
        var cols = [
            {field: 'appeTime$', title: 'Время поступления на склад', align: 'center', width: 200}
            ,{field: 'stay_time', align: 'center',title: 'Время задержки'}
            ,{field: 'loc_no', align: 'center',title: 'Номер складского места'}
        ];
        cols.push.apply(cols, detlCols);
        return cols;
    }
    layui.use(['table','laydate', 'form'], function() {
        var table = layui.table;
        var $ = layui.jquery;
@@ -227,27 +254,14 @@
        tableIns = table.render({
            elem: '#stayTime',
            headers: {token: localStorage.getItem('token')},
            url: '/report/viewStayTimeList.action',
            url: baseUrl+'/report/viewStayTimeList.action',
            page: true,
            limit: 10,
            toolbar: '#toolbar',
            even: true,
            cellMinWidth: 50,
            cols: [[
                {field: 'appe_time', title: '入库时间', align: 'center', width: 200}
                ,{field: 'stay_time', align: 'center',title: '滞留天数'}
                ,{field: 'loc_no', align: 'center',title: '库位号'}
                ,{field: 'matnr', align: 'center',title: '物料'}
                ,{field: 'maktx', align: 'center',title: '物料描述'}
                ,{field: 'lgnum', align: 'center',title: '仓库号'}
                ,{field: 'tbnum', align: 'center',title: '请求编号'}
                ,{field: 'zmatid', align: 'center',title: '物料标签ID'}
                ,{field: 'werks', align: 'center',title: '工厂'}
                ,{field: 'anfme', align: 'center',title: '数量'}
                ,{field: 'altme', align: 'center',title: '单位'}
                ,{field: 'zpallet', align: 'center',title: '托盘码'}
                ,{field: 'bname', align: 'center',title: '用户ID'}
            ]],
            crossDomain: true,
            cols: [getCol()],
            request: {
                pageName: 'curr',
                pageSize: 'limit'
@@ -265,7 +279,7 @@
            },
            done: function(res, curr, count) {
                if (res.code === 403) {
                    top.location.href = "/";
                    top.location.href = baseUrl+"/";
                }
                pageCurr=curr;
            }
@@ -286,12 +300,77 @@
                },
                done: function (res, curr, count) {
                    if (res.code === 403) {
                        top.location.href = "/";
                        top.location.href = baseUrl+"/";
                    }
                    pageCurr=curr;
                }
            });
        });
        $(document).ready(function() {
            // 为导出按钮添加点击事件
            $('#export-btn').click(function() {
                // 这里添加导出逻辑
                alert('В процессе работы');
                // 你可以在这里调用具体的导出函数
                exportData();
            });
        });
        // var table1 = layui.table1;
        function exportData() {
            var searchData = {};
            // 收集当前搜索框的值
            $.each($('#search-box [name]').serializeArray(), function() {
                searchData[this.name] = this.value;
            });
            // 发送导出请求,您需要根据您的具体情况调整 URL
            // $.ajax({
            //     url: baseUrl + '/report/viewStayTimeExport.action', // 请替换为实际的导出接口
            //     method: 'POST',
            //     data: JSON.stringify(searchData),  // 发送的参数
            //     contentType: 'application/json;charset=UTF-8',
            //     headers: {'token': localStorage.getItem('token')}, // 添加 token
            //     success: function(res) {
            //         // 假设后端返回的是一个文件下载链接
            //         if (res.code === 200 && res.data.downloadUrl) {
            //             window.location.href = res.data.downloadUrl; // 自动触发下载
            //         } else {
            //             layer.msg(res.msg || '导出失败');
            //         }
            //     },
            //     error: function() {
            //         layer.msg('导出请求失败');
            //     }
            // });
            var titles=[];
            var fields=[];
            $.ajax({
                url: baseUrl + '/report/viewStayTimeExport.action', // 请替换为实际的导出接口
                method: 'GET', // 尝试使用 GET 请求
                contentType: 'application/json;charset=UTF-8',
                headers: {'token': localStorage.getItem('token')},
                success: function(res) {
                    console.log("res")
                    console.log(res)
                    // 假设后端返回的是一个文件下载链接
                    layer.closeAll();
                    if (res.code === 200) {
                        table.exportFile(titles,res.data,'xls');
                    } else if (res.code === 403) {
                        top.location.href = baseUrl+"/";
                    } else {
                        layer.msg(res.msg)
                    }
                },
                error: function() {
                    layer.msg('导出请求失败');
                }
            });
        }
    });
@@ -319,4 +398,4 @@
        return fmt;
    }
</script>
</html>
</html>