chart.ftl 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <#--
  2. Name:自定义表管理树模板
  3. Desc:自定义表管理树模板
  4. -->
  5. <#setting number_format="#">
  6. <#assign setting=sysCustomDisplay.setting?eval >
  7. <#assign displayId=sysCustomDisplay.id>
  8. <#assign __cn="${custom_name!'custom_name'}">
  9. <div class="panel">
  10. <div class="panel-top">
  11. <div class="tbar-title">
  12. <span class="tbar-label">${sysCustomDisplay.name}</span>
  13. </div>
  14. </div>
  15. <div class="panel-body">
  16. <div id="${__cn}" name="${__cn}" class="chart">
  17. </div>
  18. <script type="text/javascript">
  19. <#noparse>
  20. $(function(){
  21. var cssFiles=[
  22. "${ctx}/js/jqplot/jquery.jqplot.min.css"
  23. ];
  24. for(var i=0;i<cssFiles.length;i++){
  25. var file=document.createElement("link");
  26. file.setAttribute("type","text/css");
  27. file.setAttribute("rel","stylesheet");
  28. file.setAttribute("href",cssFiles[i]);
  29. $("head")[0].appendChild(file);
  30. }
  31. var jsFiles=[
  32. "${ctx}/js/jqplot/jquery.jqplot.js",
  33. "${ctx}/js/jqplot/plugins/jqplot.barRenderer.min.js",
  34. "${ctx}/js/jqplot/plugins/jqplot.categoryAxisRenderer.min.js",
  35. "${ctx}/js/jqplot/plugins/jqplot.canvasTextRenderer.min.js",
  36. "${ctx}/js/jqplot/plugins/jqplot.pointLabels.min.js"
  37. ];
  38. </#noparse>
  39. $.getMutilScript(jsFiles,function(){
  40. loadChart();
  41. });
  42. function loadChart(){
  43. var jsonToArray=function(arr) {
  44. var s=[];
  45. if( arr instanceof Array || arr instanceof Object){
  46. var isObj=0;
  47. //check value type
  48. for(key in arr){
  49. if( isNaN(parseInt(key)) ){ //key is string
  50. isObj=1;
  51. }else{
  52. //key is index , check sort
  53. var na=arr.length;
  54. var tmp=arr;
  55. //hack for ie
  56. arr=Array();
  57. for(var j=0;j<na;j++){
  58. if( typeof(tmp[j])=="undefined" ){
  59. arr[j]="";
  60. }else{
  61. arr[j]=tmp[j];
  62. }
  63. }
  64. }
  65. break;
  66. }
  67. if(isObj){
  68. for(key in arr){
  69. var value=arr[key];
  70. s.push([key,jsonToArray(value)]);
  71. }
  72. }else{
  73. for(key in arr){
  74. var value=arr[key];
  75. s.push(jsonToArray(value));
  76. }
  77. }
  78. }else{
  79. return arr;
  80. }
  81. return s;
  82. };
  83. var custom_nameurl=__ctx+"/platform/system/sysCustomDisplay/getData.ht";
  84. var custom_nameparams={
  85. __displayId:${sysCustomDisplay.id}
  86. };
  87. $.post(custom_nameurl,custom_nameparams,function(result){
  88. var datas=result.dataMaps;
  89. var datajson=$.parseJSON(datas);
  90. var setting='${sysCustomDisplay.setting}';
  91. var settingjson=$.parseJSON(setting);
  92. //get display field name
  93. var displays=[];
  94. var comments=[];
  95. for(var i=0;i<settingjson.length;i++){
  96. displays.push(settingjson[i].label);
  97. comments.push(settingjson[i].comment||settingjson[i].label);
  98. }
  99. //delete not display field
  100. for(var i=0;i<datajson.length;i++){
  101. for(var key in datajson[i]){
  102. var idx = $.inArray(key,displays);
  103. if(idx==-1){
  104. delete datajson[i][key];
  105. }else{
  106. var temp=datajson[i][key];
  107. delete datajson[i][key];
  108. datajson[i][comments[idx]]=temp;
  109. }
  110. }
  111. }
  112. //transform json form to jqplot accepted form --array
  113. var dataary=jsonToArray(datajson);
  114. var jqpOpts = {
  115. //Chart Title
  116. title:{
  117. text:"aa"
  118. },
  119. series:[
  120. {showMarker:false}
  121. ],
  122. axesDefaults: {
  123. tickRenderer: $.jqplot.CanvasAxisTickRenderer ,
  124. tickOptions: {
  125. angle: -30,
  126. fontSize: '10pt'
  127. }
  128. },
  129. axes: {
  130. xaxis: {
  131. renderer: $.jqplot.CategoryAxisRenderer
  132. }
  133. }
  134. };
  135. var plotcomp = $.jqplot ("custom_name", dataary,jqpOpts);
  136. });
  137. };
  138. });
  139. </script>
  140. </div>
  141. </div>