| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <div class='milestone-chart' id='milestoneChart'>
- <div class='chart-canvas scrollbar-hover'>
- <div class='chart-wrapper'>
- <canvas width='400' height='120' data-responsive='true'></canvas>
- </div>
- </div>
- <div class='chart-unit'><?php echo "({$lang->execution->workHour})";?></div>
- <div class='chart-legend'>
- <span class="barline line-pv">PV</span>
- <span class="barline line-ev">EV</span>
- <span class="barline line-ac">AC</span>
- </div>
- </div>
- <style>
- .milestone-chart {position: relative}
- .milestone-chart .chart-canvas {overflow: auto; max-width: 1002px}
- .milestone-chart .chart-wrapper {background: none; padding: 15px 0 0 0}
- .milestone-chart .chart-unit {position: absolute; left: 10px; top: 0;}
- .milestone-chart .chart-legend {position: absolute; right: 5px; top: 0;}
- .milestone-chart .barline {padding-left: 20px; position: relative; display: inline-block; line-height: 20px}
- .milestone-chart .barline + .barline {margin-left: 5px}
- .milestone-chart .barline:before {content: ' '; display: block; position: absolute; top: 8px; left: 0; width: 16px; height: 3px; background: #0c64eb}
- .milestone-chart .barline.line-ev:before {background: rgb(0, 218, 136)}
- .milestone-chart .barline.line-ac:before {background: rgb(255, 145, 0)}
- </style>
- <script>
- function initMilestoneChart()
- {
- var data =
- {
- labels: <?php echo json_encode($charts['labels'])?>,
- datasets: [
- {
- label: 'PV',
- color: '#0c64eb',
- pointColor: '#0c64eb',
- pointStrokeColor: '#0c64eb',
- pointHighlightStroke: '#0c64eb',
- fillColor: 'rgba(0,106,241, .07)',
- pointHighlightFill: '#fff',
- data: <?php echo $charts['PV']?>
- },
- {
- label: 'EV',
- color: 'rgb(0, 218, 136)',
- pointColor: 'rgb(0, 218, 136)',
- pointStrokeColor: 'rgb(0, 218, 136)',
- pointHighlightStroke: 'rgb(0, 218, 136)',
- fillColor: 'rgb(0, 218, 136, .07)',
- pointHighlightFill: '#fff',
- data: <?php echo $charts['EV']?>
- },
- {
- label: 'AC',
- color: 'rgb(255, 145, 0)',
- pointColor: 'rgb(255, 145, 0)',
- pointStrokeColor: 'rgb(255, 145, 0)',
- pointHighlightStroke: 'rgb(255, 145, 0)',
- fillColor: 'rgb(255, 145, 0, .07)',
- pointHighlightFill: '#fff',
- data: <?php echo $charts['AC']?>
- }]
- };
- var betterWidth = data.labels.length * 15;
- var renderChart = function()
- {
- var $chart = $('#milestoneChart');
- var $wrapper = $chart.find('.chart-wrapper');
- var $canvas = $chart.find('canvas');
- var $chartCanvas = $chart.find('.chart-canvas');
- if (betterWidth > 400)
- {
- var updateWrapperSize = function()
- {
- $wrapper.hide();
- $chartCanvas.css('max-width', 'initial');
- var maxWidth = $chartCanvas.width();
- $chartCanvas.css('max-width', maxWidth);
- $chart.toggleClass('has-scrollbar', maxWidth < betterWidth);
- $wrapper.show();
- };
- updateWrapperSize();
- $(window).on('resize', updateWrapperSize);
- $wrapper.css('min-width', betterWidth);
- $canvas.attr(
- {
- width: betterWidth,
- height: Math.min(200, Math.floor(betterWidth / 4))
- });
- }
- $canvas.lineChart(data,
- {
- animation: betterWidth < 400,
- pointDotStrokeWidth: 1,
- pointDotRadius: 2,
- datasetStrokeWidth: 2,
- datasetFill: false,
- datasetStroke: true,
- scaleShowBeyondLine: true,
- responsive: true,
- bezierCurve: false,
- scaleFontColor: '#838A9D',
- tooltipXPadding: 10,
- tooltipYPadding: 10,
- multiTooltipTitleTemplate: '<%= label %> <?php echo $lang->execution->workHour;?> /h',
- multiTooltipTemplate: '<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%= value %>',
- });
- }
- setTimeout(renderChart, betterWidth > 200 ? 100 : 10);
- }
- initMilestoneChart();
- </script>
|