ajaxpreview.html.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. /**
  3. * The ajaxPreview view file of workflowreport module of ZDOO.
  4. *
  5. * @copyright Copyright 2009-2020 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
  6. * @license ZPL (http://zpl.pub/page/zplv12.html)
  7. * @author Dongdong Jia <jiadongdong@easycorp.ltd>
  8. * @package workflowreport
  9. * @version $Id$
  10. * @link http://www.zdoo.com
  11. */
  12. ?>
  13. <?php js::set('chartDemo', $lang->workflowreport->demo);?>
  14. <?php js::set('currentType', $report->type);?>
  15. <?php js::set('currentCountType', $report->countType);?>
  16. <?php js::set('reportFields', !empty($report->fields) ? sizeof($report->fields) : 0);?>
  17. <?php js::set('displayType', $report->displayType);?>
  18. <table class='table'>
  19. <tr>
  20. <td id='previewID'><?php echo $report->name;?></td>
  21. <td></td>
  22. </tr>
  23. <tr>
  24. <td style='border-bottom: unset;'><div id='container'></div></td>
  25. <td class="legendContainer"><span id="pieLegend" class="chart-legend"></span></td>
  26. </tr>
  27. </table>
  28. <script>
  29. $(document).ready(function()
  30. {
  31. var globalOption = {};
  32. if(displayType == 'percent') globalOption = {scaleLabel: "<%=value%>%", tooltipTemplate: "<%if (label){%><%=label%>: <%}%><%= value %>%", multiTooltipTemplate: "<%if (datasetLabel){%><%=datasetLabel%>: <%}%><%= value %>%"};
  33. if(currentType == 'pie')
  34. {
  35. $('#container').html('<canvas id="previewChart" width="400" height="400"></canvas>');
  36. var data = [{value: 40, color: "blue", label: chartDemo.pie1 },
  37. {value: 30, color:"#F7464A", label: chartDemo.pie2 },
  38. {value: 20, color: 'green' , label: chartDemo.pie3 },
  39. {value: 10, color: 'yellow', label: chartDemo.pie4 }];
  40. var options = globalOption;
  41. options["scaleShowLabels"] = true;
  42. var myPieChart = $("#previewChart").pieChart(data, options);
  43. $('#pieLegend').append(myPieChart.generateLegend());
  44. }
  45. else if(currentType == 'line')
  46. {
  47. $('#container').html('<canvas id="previewChart" width="800" height="400"></canvas>');
  48. var data = generateRandomData();
  49. var options = globalOption;
  50. options["responsive"] = true;
  51. var myLineChart = $("#previewChart").lineChart(data, options);
  52. if(reportFields > 1)
  53. {
  54. $('#container').prepend('<div id="lineLegend"></div>');
  55. $('#lineLegend').append(myLineChart.generateLegend());
  56. }
  57. }
  58. else if(currentType == 'bar')
  59. {
  60. $('#container').html('<canvas id="previewChart" width="800" height="400"></canvas>');
  61. var data = generateRandomData();
  62. var options = globalOption;
  63. options["responsive"] = true;
  64. options["barValueSpacing"] = 20;
  65. var myBarChart = $('#previewChart').barChart(data, options);
  66. if(reportFields > 1)
  67. {
  68. $('#container').prepend('<div id="barLegend"></div>');
  69. $('#barLegend').append(myBarChart.generateLegend());
  70. }
  71. }
  72. /**
  73. * Generate random data of line chart or bar chart.
  74. *
  75. * @access public
  76. * @return void
  77. */
  78. function generateRandomData()
  79. {
  80. var datasets = new Array();
  81. if(currentCountType == 'count') reportFields = 1;
  82. for(var i = 1; i <= reportFields; i++)
  83. {
  84. var dataset = {};
  85. dataset.label = chartDemo.dataset + i;
  86. dataset.data = new Array();
  87. randomArray = new Array();
  88. for(var j = 0; j < 6; j++)
  89. {
  90. var rand = parseInt(Math.random() * 90 + 10);
  91. randomArray.push(rand);
  92. }
  93. /* Count percentage. */
  94. if(displayType == 'percent')
  95. {
  96. var sum = eval(randomArray.join("+"));
  97. $.each(randomArray, function(index, value){ randomArray[index] = (value / sum * 100).toFixed(1)});
  98. }
  99. dataset.data = randomArray;
  100. datasets.push(dataset);
  101. }
  102. var data = {labels: [chartDemo.month1, chartDemo.month2, chartDemo.month3, chartDemo.month4, chartDemo.month5, chartDemo.month6 ], datasets: datasets};
  103. return data;
  104. }
  105. });
  106. </script>