| <!DOCTYPE html> | 
| <html lang="en"> | 
|     <head> | 
|         <title></title> | 
|         <meta charset="utf-8"> | 
|         <meta name="generator" content="Three.js Editor"> | 
|         <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"> | 
|         <link rel="stylesheet" href="../static/css/main.css"> | 
|         <script type="text/javascript" src="../static/js/lib/jquery-3.3.1.min.js"></script> | 
|         <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5.2.2/dist/echarts.min.js"></script> | 
|         <script type="text/javascript" src="../static/js/utils.js"></script> | 
|         <script type="text/javascript" src="../static/js/common.js"></script> | 
|         <script type="text/javascript" src="../static/js/data/Warehouse.js"></script> | 
|         <script type="text/javascript" src="../static/js/data/Asrs.js"></script> | 
|         <script type="text/javascript" src="../static/js/object/Cube.js"></script> | 
|         <script type="text/javascript" src="../static/js/object/StoreArea.js"></script> | 
|         <script type="text/javascript" src="../static/js/object/Store.js"></script> | 
|         <script type="text/javascript" src="../static/js/object/StoreGroup.js"></script> | 
| <!--        <script type="text/javascript" src="../static/js/object/StoreCrn.js"></script>--> | 
| <!--        <script type="text/javascript" src="../static/js/object/StoreShelf.js"></script>--> | 
|         <script type="text/javascript" src="../static/js/object/StoreGoods.js"></script> | 
|         <script type="text/javascript" src="../static/js/object/Route.js"></script> | 
|         <script type="text/javascript" src="../static/js/object/RouteLine.js"></script> | 
|         <script type="text/javascript" src="../static/js/object/CrnTask.js"></script> | 
|         <script type="text/javascript" src="../static/js/lib/btnHide.js"></script> | 
|     </head> | 
|     <body style="position: relative"> | 
|         <div style="position: absolute;top: 0;right: 0"> | 
|             <button id="print">打印</button> | 
|         </div> | 
|         <div id="groundglass"></div> | 
|         <div id="sidebar"> | 
|             <p1>中扬-智能立体仓库</p1> | 
|             <p2>ZhongYang Intelligent Three-Dimensional Warehouse</p2> | 
|             <div id="Histogram"></div> | 
|             <div id="baobiao2"></div> | 
|             <div id="btnhide_m"></div> | 
|             <button id="btnhide" onclick="btnHide()">隐藏</button> | 
|             <div class="tablebox"> | 
|                 <div class="tbl-header"> | 
|                     <table border="0" cellspacing="0" cellpadding="0" > | 
|                         <thead> | 
|                         <tr> | 
|                             <th>排名</th> | 
|                             <th>地市</th> | 
|                             <th>销售收入(万元)</th> | 
|                             <th>同比(%)</th> | 
|                         </tr> | 
|                         </thead> | 
|                         <tbody style="opacity:0;" ></tbody> | 
|                     </table> | 
|                 </div> | 
|                 <div class="tbl-body"> | 
|                     <table border="0" cellspacing="0" cellpadding="0"> | 
|                         <thead> | 
|                         <tr> | 
|                             <th>排名</th> | 
|                             <th>地市</th> | 
|                             <th>销售收入(万元)</th> | 
|                             <th>同比(%)</th> | 
|                         </tr> | 
|                         </thead> | 
|                         <tbody></tbody> | 
|                     </table> | 
|                 </div> | 
|             </div> | 
|         </div> | 
|         <div id="container"></div> | 
|         <script type="module"> | 
|   | 
|             import * as THREE from '../static/js/three.module.js'; | 
|             import { APP } from '../static/js/app.js'; | 
|   | 
|             window.THREE = THREE; | 
|   | 
|             var player = new APP.Player(); | 
|             player.start(); | 
|   | 
|             // document.body.appendChild( player.dom ); | 
|             // window.addEventListener( 'resize', function () { | 
|             //     player.setSize( window.innerWidth, window.innerHeight ); | 
|             // } ); | 
|   | 
|             document.getElementById("print").addEventListener('click', function () { | 
|                 console.log(player.objects); | 
|                 player.initModelMove(); | 
|             }, false); | 
|   | 
|         </script> | 
|         <script type="text/javascript"> | 
|             var dom1 = document.getElementById("Histogram"); | 
|             var myChart1 = echarts.init(dom1); | 
|             window.addEventListener('resize',function () { | 
|                 myChart1.resize(); | 
|             }) | 
|             var app1 = {}; | 
|   | 
|             var dom = document.getElementById("baobiao2"); | 
|             var myChart = echarts.init(dom); | 
|             window.addEventListener('resize',function () { | 
|                 myChart.resize(); | 
|             }) | 
|             var app = {}; | 
|   | 
|   | 
|             var option1; | 
|   | 
|             option1 = { | 
|                 title: { | 
|                     text: '年度进/出货量', | 
|                     x:'5px', | 
|                     y:'15px', | 
|                     textStyle:{ | 
|                         color:'#ffffff', | 
|                         fontWeight:400, | 
|                         fontSize: 10, | 
|                     }, | 
|                     subtext: 'Data', | 
|                     subtextStyle:{ | 
|                         align:'center', | 
|                         color:'#ffffff', | 
|                         fontSize: 7, | 
|                     }, | 
|                     show: true, | 
|   | 
|                 }, | 
|                 tooltip: { | 
|                     trigger: 'axis' | 
|                 }, | 
|                 textStyle:{ | 
|                     color:'#f5f4f4', | 
|                 }, | 
|                 legend: { | 
|                     show:false, | 
|                     data: ['进货', '出货'] | 
|                 }, | 
|                 toolbox: { | 
|                     show: false, | 
|                     feature: { | 
|                         dataView: { show: true, readOnly: false }, | 
|                         magicType: { show: true, type: ['line', 'bar'] }, | 
|                         restore: { show: true }, | 
|                         saveAsImage: { show: true } | 
|                     } | 
|                 }, | 
|                 calculable: true, | 
|                 xAxis: [ | 
|                     { | 
|                         color:'#975a5a', | 
|                         type: 'category', | 
|                         axisTick:{ | 
|                             show:false, | 
|                             lineStyle:{ | 
|                                 color:'#000' | 
|                             } | 
|                         }, | 
|                         axisLabel: { //  如果这个字段不设置,echarts会根据屏宽及横坐标数据自动给出间隔 | 
|                             fontSize:9, | 
|                             interval: 1, // 间隔长度,可自定义(如果是时间格式,echarts会自动处理) | 
|                             rotate: 0 ,// 横坐标上label的倾斜度 | 
|                             textStyle: { | 
|                                 color:'#fff' | 
|                             } | 
|                         }, | 
|                         axisLine:{ | 
|                             lineStyle: { | 
|                                 color: '#e2e1e1',// x轴刻度线的颜色 | 
|                             }}, | 
|                         data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'] | 
|                     } | 
|                 ], | 
|                 yAxis: [ | 
|                     { | 
|                         type: 'value', | 
|                         offset: -4, | 
|                         axisTick:{ | 
|                             show:false, | 
|                         }, | 
|                         axisLabel: { | 
|                             fontSize:9, | 
|                         }, | 
|                         splitLine:{ | 
|                             lineStyle:{ | 
|                                 color:'#cdcdcd'// y轴分割线颜色 | 
|                             } | 
|                         } | 
|   | 
|                     } | 
|                 ], | 
|                 series: [ | 
|                     { | 
|                         color:['#88b0e2'], | 
|                         name: '进货', | 
|                         type: 'bar', | 
|                         data: [ | 
|                             204.5, 50.5, 15.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3 | 
|                         ], | 
|                     }, | 
|                     { | 
|                         color:['#f8f7f7'], | 
|                         name: '出货', | 
|                         type: 'bar', | 
|                         data: [ | 
|                             100, 75.2, 33.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3 | 
|                         ], | 
|                     } | 
|                 ], | 
|   | 
|             }; | 
|   | 
|             if (option1 && typeof option1 === 'object') { | 
|                 myChart1.setOption(option1); | 
|             } | 
|   | 
|             let base = +new Date(1988, 9, 3); | 
|             let oneDay = 24 * 3600 * 1000; | 
|             let data = [[base, Math.random() * 300]]; | 
|             for (let i = 1; i < 20000; i++) { | 
|                 let now = new Date((base += oneDay)); | 
|                 data.push([+now, Math.round((Math.random() - 0.5) * 20 + data[i - 1][1])]); | 
|             } | 
|             option = { | 
|                 tooltip: { | 
|                     trigger: 'axis', | 
|                     position: function (pt) { | 
|                         return [pt[0], '10%']; | 
|                     } | 
|                 }, | 
|                 title: { | 
|                     x:'5px', | 
|                     y:'15px', | 
|                     text: '销售件数', | 
|                     textStyle:{ | 
|                         color:'#ffffff', | 
|                         fontWeight:400, | 
|                         fontSize: 10, | 
|                     }, | 
|                 }, | 
|                 toolbox: { | 
|                     show:false, | 
|                     feature: { | 
|                         dataZoom: { | 
|                             yAxisIndex: 'none' | 
|                         }, | 
|                         restore: {}, | 
|                         saveAsImage: {} | 
|                     } | 
|                 }, | 
|                 textStyle:{ | 
|                     color:'#f5f4f4', | 
|                 }, | 
|                 xAxis: { | 
|                     type: 'time', | 
|                     boundaryGap: false, | 
|                     axisTick:{ | 
|                         show:false, | 
|                     }, | 
|                     axisLabel: { //  如果这个字段不设置,echarts会根据屏宽及横坐标数据自动给出间隔 | 
|                         fontSize:9, | 
|                         interval: 1, // 间隔长度,可自定义(如果是时间格式,echarts会自动处理) | 
|                         rotate: 0 ,// 横坐标上label的倾斜度 | 
|                         textStyle: { | 
|                             color:'#fff' | 
|                         } | 
|                     }, | 
|                     axisLine:{ | 
|                         lineStyle: { | 
|                             color: '#e2e1e1',// x轴刻度线的颜色 | 
|                         }}, | 
|   | 
|                 }, | 
|   | 
|                 yAxis: { | 
|                     type: 'value', | 
|                     boundaryGap: [0, '100%'], | 
|                     axisLabel: { | 
|                         fontSize:9, | 
|                     }, | 
|                     splitLine:{ | 
|                         lineStyle:{ | 
|                             color:'#cdcdcd'// y轴分割线颜色 | 
|                         } | 
|                     } | 
|                 }, | 
|                 dataZoom: [ | 
|                     { | 
|                         type: 'inside', | 
|                         start: 0, | 
|                         end: 20 | 
|                     }, | 
|                     { | 
|                         start: 0, | 
|                         end: 20 | 
|                     } | 
|                 ], | 
|                 series: [ | 
|                     { | 
|                         name: 'Fake Data', | 
|                         type: 'line', | 
|                         smooth: true, | 
|                         symbol: 'none', | 
|                         areaStyle: { | 
|                             normal: { | 
|                                 color: '#88b0e2' //改变区域颜色 | 
|                             } | 
|                         }, | 
|                         itemStyle : { | 
|                             normal : { | 
|                                 color:'#dddede', //改变折线点的颜色 | 
|                                 lineStyle:{ | 
|                                     // color:'#8cd5c2' //改变折线颜色 | 
|                                     width:0.5, | 
|                                 } | 
|                             } | 
|                         }, | 
|                         data: data | 
|                     } | 
|                 ] | 
|             }; | 
|   | 
|             if (option && typeof option === 'object') { | 
|                 myChart.setOption(option); | 
|             } | 
|         </script> | 
|         <script type="text/javascript"> | 
|             var MyMarhq = ''; | 
|             clearInterval(MyMarhq); | 
|             $('.tbl-body tbody').empty(); | 
|             $('.tbl-header tbody').empty(); | 
|             var Items = [{"Ranking":"1","City":"保定","SaleIncome":"2506734.43","An":"53.00",}, | 
|                 {"Ranking":"2","City":"沧州","SaleIncome":"1425935.58","An":"65.00",}, | 
|                 {"Ranking":"3","City":"秦皇岛","SaleIncome":"1372207.38","An":"34.00",}, | 
|                 {"Ranking":"4","City":"衡水","SaleIncome":"972451.15","An":"15.00",}, | 
|                 {"Ranking":"5","City":"石家庄","SaleIncome":"939010.52","An":"-57.00",}, | 
|                 {"Ranking":"6","City":"邢台","SaleIncome":"774274.70","An":"-20.00",}, | 
|                 {"Ranking":"7","City":"唐山","SaleIncome":"680456.79","An":"-29.00",}, | 
|                 {"Ranking":"8","City":"张家口","SaleIncome":"613319.87","An":"2.00",}, | 
|                 {"Ranking":"9","City":"中油华奥","SaleIncome":"596575.25","An":"35.00",}, | 
|                 {"Ranking":"10","City":"承德","SaleIncome":"589048.12","An":"30.00",}, | 
|                 {"Ranking":"11","City":"廊坊","SaleIncome":"515448.14","An":"-48.00",}, | 
|                 {"Ranking":"12","City":"瑞州","SaleIncome":"399875.26","An":"128.00",}, | 
|                 {"Ranking":"13","City":"石家庄中油","SaleIncome":"90543.62","An":"-24.00",}, | 
|                 {"Ranking":"14","City":"辛集中油","SaleIncome":"49255.52","An":"19.00",}, | 
|                 {"Ranking":"15","City":"井陉中油","SaleIncome":"29682.60","An":"-74.00",}, | 
|                 {"Ranking":"16","City":"保定中油","SaleIncome":"11887.73","An":"-64.00",}] | 
|             $.each(Items,function (i, item) { | 
|                 str = '<tr>'+ | 
|                         '<td>'+item.Ranking+'</td>'+ | 
|                         '<td>'+item.City+'</td>'+ | 
|                         '<td>'+(+item.SaleIncome/10000).toFixed(2)+'</td>'+ | 
|                         '<td>'+(+item.An).toFixed(2)+'</td>' | 
|                 // '<td>'+(+item.Mom).toFixed(2)+'</td>'+ | 
|                 // '<td>'+(item.SalePlan/10000).toFixed(2)+'</td>'+ | 
|                 // '<td>'+(+item.PlanFinish).toFixed(2)+'</td>'+ | 
|                 '</tr>' | 
|   | 
|                 $('.tbl-body tbody').append(str); | 
|                 $('.tbl-header tbody').append(str); | 
|             }); | 
|             if(Items.length > 10){ | 
|                 $('.tbl-body tbody').html($('.tbl-body tbody').html()+$('.tbl-body tbody').html()); | 
|                 $('.tbl-body').css('top', '0'); | 
|                 var tblTop = 0; | 
|                 var speedhq = 50; // 数值越大越慢 | 
|                 var outerHeight = $('.tbl-body tbody').find("tr").outerHeight(); | 
|                 function Marqueehq(){ | 
|                     if(tblTop <= -outerHeight*Items.length){ | 
|                         tblTop = 0; | 
|                     } else { | 
|                         tblTop -= 1; | 
|                     } | 
|                     $('.tbl-body').css('top', tblTop+'px'); | 
|                 } | 
|   | 
|                 MyMarhq = setInterval(Marqueehq,speedhq); | 
|   | 
|                 // 鼠标移上去取消事件 | 
|                 $(".tbl-header tbody").hover(function (){ | 
|                     clearInterval(MyMarhq); | 
|                 },function (){ | 
|                     clearInterval(MyMarhq); | 
|                     MyMarhq = setInterval(Marqueehq,speedhq); | 
|                 }) | 
|   | 
|             } | 
|             $.each(Items,function (i, item) { | 
|                 str = '<tr>'+ | 
|                         '<td>'+item.Ranking+'</td>'+ | 
|                         '<td>'+item.City+'</td>'+ | 
|                         '<td>'+(+item.SaleIncome/10000).toFixed(2)+'</td>'+ | 
|                         '<td>'+(+item.An).toFixed(2)+'</td>'+ | 
|                         '</tr>' | 
|   | 
|                 $('.tbl-body tbody').append(str); | 
|                 $('.tbl-header tbody').append(str); | 
|             }); | 
|             if(Items.length > 10){ | 
|                 $('.tbl-body tbody').html($('.tbl-body tbody').html()+$('.tbl-body tbody').html()); | 
|                 $('.tbl-body').css('top', '0'); | 
|                 var tblTop = 0; | 
|                 var speedhq = 50; // 数值越大越慢 | 
|                 var outerHeight = $('.tbl-body tbody').find("tr").outerHeight(); | 
|                 function Marqueehq(){ | 
|                     if(tblTop <= -outerHeight*Items.length){ | 
|                         tblTop = 0; | 
|                     } else { | 
|                         tblTop -= 1; | 
|                     } | 
|                     $('.tbl-body').css('top', tblTop+'px'); | 
|                 } | 
|   | 
|                 MyMarhq = setInterval(Marqueehq,speedhq); | 
|             } | 
|   | 
|         </script> | 
|   | 
|     </body> | 
| </html> |