New file |
| | |
| | | <!DOCTYPE html> |
| | | <html lang="en"> |
| | | <head> |
| | | <meta charset="UTF-8"> |
| | | <title>ASRS监控</title> |
| | | <link href="css/monitor.css" rel="stylesheet"> |
| | | <link href="css/Pacifico.css" rel="stylesheet"> |
| | | <link href="../../static/layui/css/layui.css" rel="stylesheet"> |
| | | <link href="css/lunbo.css" rel="stylesheet"> |
| | | <script src="js/jquery-3.3.1.min.js"></script> |
| | | <script src="js/vincent.js"></script> |
| | | <script src="js/echarts/echarts.min.js"></script> |
| | | <script src="js/jquery.countup.min.js"></script> |
| | | <script src="js/jquery.waypoints.min.js"></script> |
| | | <script src="../../static/layui/layui.js"></script> |
| | | <script src="../../static/js/common.js"></script> |
| | | <script src="js/monitor.js"></script> |
| | | <style> |
| | | .crn-speed { |
| | | width: 100%; |
| | | height: 75%; |
| | | position: absolute; |
| | | text-align: center; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap; |
| | | top: -15%; |
| | | /*border-bottom: 1px solid rgba(0, 0, 0, 0.3);*/ |
| | | } |
| | | |
| | | .crn-speed span { |
| | | display:inline-block; |
| | | margin:20px auto; |
| | | font-size:56px; |
| | | font-family:'Pacifico',serif |
| | | } |
| | | |
| | | |
| | | .scroll-pane { |
| | | position: absolute; |
| | | width: 100%; |
| | | height: 85%; |
| | | } |
| | | .scroll-bar { |
| | | float: left; |
| | | width: 50%; |
| | | height: 100%; |
| | | text-align: center; |
| | | } |
| | | |
| | | .scroll-header span { |
| | | font-size:64px; |
| | | font-family:'Pacifico',serif |
| | | } |
| | | |
| | | .scroll-content { |
| | | animation:anis 10s linear infinite; |
| | | padding: 200px 10px 20px 10px; |
| | | font-family:'Pacifico',serif; |
| | | overflow:hidden; |
| | | } |
| | | .scroll-content:last-child { |
| | | border-left: 1px solid rgba(0, 0, 0, 0.3); |
| | | } |
| | | .scroll-content:hover { |
| | | animation-play-state:paused; |
| | | } |
| | | @keyframes anis { |
| | | 100% { |
| | | transform:translateY(-200px) |
| | | } |
| | | } |
| | | |
| | | #led-content { |
| | | display: none; |
| | | } |
| | | #led-p-content { |
| | | text-align: center; |
| | | padding: 20px 40px; |
| | | font-size: 35px; |
| | | font-weight: bold; |
| | | /*color: #FF5722;*/ |
| | | } |
| | | |
| | | </style> |
| | | </head> |
| | | <body class="monitor-bg"> |
| | | |
| | | <!--头部--> |
| | | <div class="header" > |
| | | <div class="button-left"></div> |
| | | <div class="button-right"></div> |
| | | <div class="time-tools"> |
| | | <span id="bar-year"></span>-<span id="bar-month"></span>-<span id="bar-day"></span> <span id="bar-hour"></span>:<span id="bar-minute"></span>:<span id="bar-second"></span> <span id="bar-week"></span> |
| | | </div> |
| | | <div class="title"> |
| | | 自动仓库WCS监控平台 |
| | | </div> |
| | | </div> |
| | | |
| | | <!--主体--> |
| | | <div class="container"> |
| | | |
| | | <!--左--> |
| | | <div class="container-element-side"> |
| | | <div class="container-side-box"> |
| | | <div class="image-border image-border1"></div> |
| | | <div class="image-border image-border2"></div> |
| | | <div class="image-border image-border3"></div> |
| | | <div class="image-border image-border4"></div> |
| | | <div class="introduce"> |
| | | <h6>自动化立体仓库</h6> |
| | | <p class="english">Automatic Storageand Retrieval System</p> |
| | | <p class="introduce-content"> 利用立体仓库设备可实现仓库高层合理化、存取自动化、操作简便化;自动化立体仓库是当前技术水平较高的形式。自动化立体仓库的主体由货架、巷道式堆垛起重机、入(出)库工作台和自动运进(出)及操作控制系统组成。货架是钢结构或钢筋混凝土结构的建筑物或结构体,货架内是标准尺寸的货位空间,巷道堆垛起重机穿行于货架之间的巷道中,完成存、取货的工作。管理上采用计算机及条形码技术。</p> |
| | | </div> |
| | | <div class="charge-info"> |
| | | <div class="info-header"> |
| | | <h6>仓库数据</h6> |
| | | <p class="english">warehouse data</p> |
| | | </div> |
| | | <div class="charge-info-elem"> |
| | | <img src="img/a.png"> |
| | | <div class="info-detail"> |
| | | <div class="real-data"> |
| | | <i class="count" id="xDistance">0</i> |
| | | <span class="unit">m</span> |
| | | </div> |
| | | <div class="content">累计走行距离(米)</div> |
| | | </div> |
| | | </div> |
| | | <div class="charge-info-elem"> |
| | | <img src="img/b.png"> |
| | | <div class="info-detail"> |
| | | <div class="real-data"> |
| | | <i class="count" id="yDistance">0</i> |
| | | <span class="unit">m</span> |
| | | </div> |
| | | <div class="content">累计升降距离(米)</div> |
| | | </div> |
| | | </div> |
| | | <div class="charge-info-elem"> |
| | | <img src="img/c.png"> |
| | | <div class="info-detail"> |
| | | <div class="real-data"> |
| | | <i class="count" id="xDuration">0</i> |
| | | <span class="unit">s</span> |
| | | </div> |
| | | <div class="content">累计走行时长(秒)</div> |
| | | </div> |
| | | </div> |
| | | <div class="charge-info-elem"> |
| | | <img src="img/d.png"> |
| | | <div class="info-detail"> |
| | | <div class="real-data"> |
| | | <i class="count" id="yDuration">0</i> |
| | | <span class="unit">s</span> |
| | | </div> |
| | | <div class="content">累计升降时长(秒)</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="footer container-side-box"> |
| | | <div class="image-border image-border1"></div> |
| | | <div class="image-border image-border2"></div> |
| | | <div class="image-border image-border3"></div> |
| | | <div class="image-border image-border4"></div> |
| | | <span>浙江中扬物流装备有限公司</span> |
| | | <img src="../../static/image/barcode.png"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!--中--> |
| | | <div class="container-element-middle"> |
| | | <div class="map-board" style="padding-top: 10%"> |
| | | <div class="image-border image-border1"></div> |
| | | <div class="image-border image-border2"></div> |
| | | <div class="image-border image-border3"></div> |
| | | <div class="image-border image-border4"></div> |
| | | |
| | | <!-- 中下 --> |
| | | <div class="scroll-pane"> |
| | | <div class="layui-carousel" id="banner"> |
| | | <div carousel-item> |
| | | <div class="item-img" id="img-1" style="background-color: red"></div> |
| | | <div class="item-img" id="img-2" style="background-color: gold"></div> |
| | | <div class="item-img" id="img-3" style="background-color: green"></div> |
| | | <div class="item-img" id="img-4" style="background-color: white"></div> |
| | | <div class="item-img" id="img-5" style="background-color: darkgoldenrod"></div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div id="led-content"> |
| | | <pre id="led-p-content"></pre> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <!--右--> |
| | | <div class="container-element-side"> |
| | | <div class="container-side-box right-top"> |
| | | <div class="image-border image-border1"></div> |
| | | <div class="image-border image-border2"></div> |
| | | <div class="image-border image-border3"></div> |
| | | <div class="image-border image-border4"></div> |
| | | <div class="line-chart-title"> |
| | | <div class="order-report"> |
| | | <span class="order-report-left" >入出库统计</span> |
| | | <span class="order-report-right">31</span> |
| | | </div> |
| | | <div class="order-report-english english"> |
| | | <span class="order-report-left">ORDER STATISTICS</span> |
| | | <span class="order-report-right">今日充电订单数</span> |
| | | </div> |
| | | </div> |
| | | <!--折线图--> |
| | | <div id="line-charts"></div> |
| | | </div> |
| | | <div class="container-side-box right-middle"> |
| | | <div class="image-border image-border1"></div> |
| | | <div class="image-border image-border2"></div> |
| | | <div class="image-border image-border3"></div> |
| | | <div class="image-border image-border4"></div> |
| | | <div class="top-header"> |
| | | <div class="income-date"> |
| | | <span class="income-date-left" >库存类型</span> |
| | | <span class="income-date-right">今天</span> |
| | | </div> |
| | | <div class="income-date-english english"> |
| | | <span class="income-date-left">INCOME DATE</span> |
| | | <span class="income-date-right">Today</span> |
| | | </div> |
| | | </div> |
| | | <div class="top-main"> |
| | | <div id="pie-charts"></div> |
| | | </div> |
| | | <div class="top-footer"> |
| | | <div class="top-footer-elem"> |
| | | <div class="elem-header" id="elem-header-first"> |
| | | </div> |
| | | <div class="elem-main"> |
| | | 在库 |
| | | </div> |
| | | <div class="elem-footer"> |
| | | <span id="stock-count">0</span> |
| | | </div> |
| | | </div> |
| | | <div class="top-footer-elem"> |
| | | <div class="elem-header" id="elem-header-second"> |
| | | </div> |
| | | <div class="elem-main"> |
| | | 空库 |
| | | </div> |
| | | <div class="elem-footer"> |
| | | <span id="empty-count">0</span> |
| | | </div> |
| | | </div> |
| | | <div class="top-footer-elem"> |
| | | <div class="elem-header" id="elem-header-third"> |
| | | </div> |
| | | <div class="elem-main"> |
| | | 禁用 |
| | | </div> |
| | | <div class="elem-footer"> |
| | | <span id="none-count">0</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="container-side-box right-bottom"> |
| | | <div class="image-border image-border1"></div> |
| | | <div class="image-border image-border2"></div> |
| | | <div class="image-border image-border3"></div> |
| | | <div class="image-border image-border4"></div> |
| | | <div class="progress-bar"> |
| | | <div class="usage-rate"> |
| | | <span class="usage-rate-left" >库位使用率</span> |
| | | <span class="usage-rate-right"><span id="usedPr">0</span>%</span> |
| | | </div> |
| | | <div class="usage-rate-english english"> |
| | | <span class="usage-rate-left">EQUIPMENT USAGE THIS MONTH</span> |
| | | <span class="usage-rate-right">同比上月 + 5%</span> |
| | | </div> |
| | | </div> |
| | | <div class="progress-bar-modal"> |
| | | <div class="layui-progress layui-progress-big" lay-filter="used-progress" style="background-color: #233751;width: 80%;display: inline-block"> |
| | | <div class="layui-progress-bar layui-bg-red" lay-percent="0%"></div> |
| | | </div> |
| | | <!-- <div class="bar-container">--> |
| | | <!-- <div class="bar-proportion"><span>实际使用</span></div>--> |
| | | <!-- </div>--> |
| | | <i class="bar-container-count"><span id="used">0</span></i> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </body> |
| | | <script> |
| | | layui.use(['element', 'carousel'], function(){ |
| | | var carousel = layui.carousel; |
| | | var element = layui.element; |
| | | // 轮播图 |
| | | carousel.render({ |
| | | elem: '#banner' |
| | | ,width: '100%' //设置容器宽度 |
| | | ,arrow: 'hover' // 切换箭头默认显示状态,可选值为 hover(悬停显示) always(始终显示) none(始终不显示) |
| | | ,interval: '3000' // 自动切换的时间间隔,单位:ms(毫秒),不能低于800 |
| | | ,anim: 'fade' |
| | | }); |
| | | }); |
| | | |
| | | /***********************************************************************************/ |
| | | /************************************* 头部按钮 *************************************/ |
| | | /***********************************************************************************/ |
| | | // 左 |
| | | $('.button-left').click(function () { |
| | | exitFull(); |
| | | }); |
| | | // 右 |
| | | $('.button-right').click(function () { |
| | | full(); |
| | | }); |
| | | |
| | | /***********************************************************************************/ |
| | | /************************************* 折线图 ***************************************/ |
| | | /***********************************************************************************/ |
| | | |
| | | var lineCharts = echarts.init(document.getElementById('line-charts')); |
| | | var lineChartOption = { |
| | | // animation: false, |
| | | grid: { |
| | | top: '0%', |
| | | left: '0%', |
| | | right: '2%', |
| | | bottom: '0%', |
| | | containLabel: true, |
| | | // backgroundColor: 'rgb(116,148,174,0.3)', |
| | | show: true |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | data: ['1', '2', '3', '4', '5', '6', '7'], |
| | | axisLabel: { |
| | | textStyle:{ |
| | | color:'#aaa', //坐标的字体颜色 |
| | | fontSize: 6, |
| | | }, |
| | | }, |
| | | axisLine:{ |
| | | lineStyle:{ |
| | | color:'#3590ac', // 坐标轴颜色 |
| | | } |
| | | } |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | | axisLabel: { |
| | | textStyle:{ |
| | | color:'#aaa', //坐标的字体颜色 |
| | | fontSize: 5 |
| | | }, |
| | | }, |
| | | axisLine:{ |
| | | lineStyle:{ |
| | | color:'#3590ac', // 坐标轴颜色 |
| | | } |
| | | }, |
| | | splitLine:{ |
| | | show: true, |
| | | lineStyle:{ |
| | | color:'#517a9b', // 分割线颜色 |
| | | } |
| | | } |
| | | |
| | | }, |
| | | series: [ |
| | | { |
| | | data: [820, 932, 901, 934, 1290, 1330, 1320], |
| | | type: 'line', |
| | | // areaStyle: { |
| | | // color: '#7494ae' // 折线区域颜色 |
| | | // }, |
| | | itemStyle:{ |
| | | normal:{ |
| | | color:'#3590ac', //折点颜色 |
| | | lineStyle:{ |
| | | color:'#3590ac' //折线颜色 |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | { |
| | | data: [820, 932, 901, 934, 1290, 1330, 1320], |
| | | type: 'line', |
| | | // areaStyle: { |
| | | // color: '#d55b35' // 折线区域颜色 |
| | | // }, |
| | | itemStyle:{ |
| | | normal:{ |
| | | color:'#ef550e', //折点颜色 |
| | | lineStyle:{ |
| | | color:'#ec670f' //折线颜色 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | }; |
| | | |
| | | function initlineChart() { |
| | | var reportView = lineChartOption; |
| | | $.ajax({ |
| | | url: baseUrl+"/monitor/line/charts", |
| | | method: 'GET', |
| | | success: function (res) { |
| | | if (res.code === 200){ |
| | | var json = res.data.rows; |
| | | reportView.xAxis.data=[getDateFormat(-11), getDateFormat(-10), getDateFormat(-9), getDateFormat(-8), getDateFormat(-7), getDateFormat(-6), |
| | | getDateFormat(-5), getDateFormat(-4), getDateFormat(-3), getDateFormat(-2), getDateFormat(-1), getDateFormat(-0)]; |
| | | reportView.series[0].data=res.data.rows[0].data; |
| | | reportView.series[1].data=res.data.rows[1].data; |
| | | lineCharts.setOption(reportView) |
| | | } else if (res.code === 403){ |
| | | top.location.href = "/"; |
| | | } else { |
| | | console.log(res.msg); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /***********************************************************************************/ |
| | | /************************************* 饼图 *****************************************/ |
| | | /***********************************************************************************/ |
| | | |
| | | var pieCharts = echarts.init(document.getElementById('pie-charts')); |
| | | var pieChartOption = { |
| | | // animation: false, |
| | | grid: { |
| | | top: '0%', |
| | | left: '0%', |
| | | right: '0%', |
| | | bottom: '0%', |
| | | containLabel: false, |
| | | }, |
| | | tooltip: { |
| | | trigger: 'item', |
| | | formatter: '{a} <br/>{b}: {c} ({d}%)' |
| | | }, |
| | | legend: { |
| | | orient: 'vertical', |
| | | left: 10, |
| | | data: ['在库', '空'] |
| | | }, |
| | | series: [ |
| | | { |
| | | name: '访问来源', |
| | | type: 'pie', |
| | | radius: ['25%', '70%'], |
| | | avoidLabelOverlap: false, |
| | | label: { |
| | | show: false, |
| | | position: 'center' |
| | | }, |
| | | emphasis: { |
| | | label: { |
| | | show: false, |
| | | fontSize: '50', |
| | | fontWeight: 'bold' |
| | | } |
| | | }, |
| | | labelLine: { |
| | | show: false |
| | | }, |
| | | data: [ |
| | | {value: 1, name: '在库'}, |
| | | {value: 1, name: '空'}, |
| | | {value: 1, name: '使用'}, |
| | | {value: 1, name: '禁用'}, |
| | | ], |
| | | itemStyle: { |
| | | emphasis: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 0.5)' |
| | | }, |
| | | normal:{ |
| | | color:function(params) { |
| | | //自定义颜色 |
| | | let colorList = [ |
| | | '#28b9a2', '#69d7fc', '#fcbf5d', |
| | | ]; |
| | | return colorList[params.dataIndex] |
| | | } |
| | | } |
| | | } |
| | | } |
| | | ] |
| | | }; |
| | | // 饼图加载 |
| | | function initPieChart() { |
| | | $.ajax({ |
| | | url: baseUrl+"/monitor/loc/rep", |
| | | method: 'GET', |
| | | success: function (res) { |
| | | if (res.code === 200){ |
| | | pieChartOption.series[0].data = res.data.pie; |
| | | pieCharts.setOption(pieChartOption); |
| | | |
| | | $('#stock-count').text(res.data.stockCunt); |
| | | $('#empty-count').text(res.data.emptyCount); |
| | | $('#none-count').text(res.data.noneCount); |
| | | |
| | | $('#usedPr').text(res.data.usedPr); |
| | | $('#used').text(res.data.used); |
| | | |
| | | layui.element.progress('used-progress', res.data.usedPr + '%'); |
| | | } else if (res.code === 403){ |
| | | top.location.href = "/"; |
| | | } else { |
| | | layer.msg(res.msg); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // eCharts 跟随窗口改变 |
| | | window.onresize = function(){ |
| | | lineCharts.resize(); |
| | | pieCharts.resize(); |
| | | } |
| | | |
| | | |
| | | </script> |
| | | </html> |