dashboard.asp 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. <!--#include file="Conn.asp"--><%Checklogin("信息管理")%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>管理区域</title>
  6. <link rel="stylesheet" href="css/common.css" type="text/css" />
  7. <script language="javascript" src="js/jquery-1.7.2.min.js"></script>
  8. <script type="text/javascript" src="js/js.js"></script>
  9. <script type="text/javascript" src="xheditor-1.1.9/xheditor-1.1.9-zh-cn.min.js"></script>
  10. <script>  
  11. //绘制饼图  
  12. function drawCircle(canvasId, data_arr, color_arr, text_arr)  
  13.  {  
  14. var c = document.getElementById(canvasId);  
  15. var ctx = c.getContext("2d");  
  16. var ctxw = c.getContext("2d"); 
  17. var radius =140; //半径  
  18. var ox = radius + 20, oy = radius + 20; //圆心  
  19. var width = 10, height = 10; //图例宽和高  
  20. var posX = 500, posY = 50;   //  
  21. var textX = posX + width + 5, textY = posY + 10;  
  22. var startAngle = 0; //起始弧度  
  23. var endAngle = 0;   //结束弧度  
  24. for (var i = 0; i < data_arr.length; i++)  
  25.   {  
  26.    //绘制饼图  
  27.    endAngle = endAngle + data_arr[i] * Math.PI * 2; //结束弧度  
  28.    ctx.fillStyle = color_arr[i]; 
  29.    ctx.beginPath();  
  30.    ctx.moveTo(ox, oy); //移动到到圆心  
  31.    ctx.arc(ox, oy, radius, startAngle, endAngle, false);  
  32.    ctx.closePath();  
  33.    ctx.fill();  
  34. startAngle = endAngle; //设置起始弧度  
  35.   
  36.    //绘制比例图及文字  
  37.    ctx.fillStyle = color_arr[i];  
  38.    ctx.fillRect(posX, posY + 20 * i, width, height);  
  39.    ctx.moveTo(posX, posY + 20 * i);  
  40.    ctx.font = 'bold 12px 微软雅黑';    //斜体 30像素 微软雅黑字体  
  41.    ctx.fillStyle = "#666666";  
  42. var icount=100 * data_arr[i];
  43.    var percent = text_arr[i] + ":" + icount.toFixed(2)+ "%";  
  44.    ctx.fillText(percent, textX, textY + 20 * i);  
  45. }  
  46.    ctxw.fillStyle ="#FFFFFF"; 
  47.    ctxw.beginPath();  
  48.    ctxw.moveTo(ox, oy); //移动到到圆心  
  49.    ctxw.arc(ox, oy, 90, 0, 2* Math.PI, false);  
  50.    ctxw.closePath();  
  51.    ctxw.fill(); 
  52. }  
  53. function drawRectangle(canvasId, data_arr, text_arr){
  54. var c = document.getElementById(canvasId); 
  55. var ctx = c.getContext("2d");   
  56. var space =20; //间距
  57. var x=0,y=420;
  58. for (var i = 0; i < data_arr.length; i++) {
  59. x=x+30+space;
  60.   ctx.beginPath(); 
  61. ctx.fillStyle = "#00aabb"; 
  62. ctx.rect(x,420-data_arr[i]*0.2,30,data_arr[i]*0.2);
  63.    ctx.closePath();  
  64.     ctx.fill();  
  65. ctx.font = 'bold 10px 微软雅黑';    //斜体 30像素 微软雅黑字体  
  66.     ctx.fillStyle = "#666666";  
  67.     ctx.fillText(text_arr[i]+"("+data_arr[i]+")",x+5,410-data_arr[i]*0.2); 
  68. }
  69. }
  70. </script> 
  71. </head>
  72. <body>
  73. <div id="man_zone">
  74. <div class="dashboard">
  75. <h1 class="dashboardHead">数据看板</h1>
  76. <%Set Rs=Server.CreateObject("ADODB.RecordSet")
  77. Rs.Open "select count(DISTINCT cs_code) as CustomerTotal from customer",conn,1,1
  78. tn=Rs("customerTotal")
  79. Rs.Close
  80. Rs.Open "select count(DISTINCT cs_code) as CustomerTotal from customer where cs_deal=3",conn,1,1
  81. tdn=Rs("customerTotal")
  82. Rs.Close
  83. Rs.Open "Select businessType,count(DISTINCT cs_code) as cc from customer left Join clientType on customer.cs_type=clientType.id Group by(businessType)",conn,1,1
  84. Do while Not Rs.bof and Not Rs.eof
  85. data_arr1=data_arr1&FormatNumber(Rs("cc")/tn,-1,-1)&","
  86. text_arr1=text_arr1&Rs("businessType")&","
  87. Rs.moveNext
  88. loop
  89. Rs.close
  90. %>
  91. <input type="hidden" id="data_arr1" value="<%=left(data_arr1,len(data_arr1)-1)%>">
  92. <input type="hidden" id="text_arr1" value="<%=left(text_arr1,len(text_arr1)-1)%>">
  93. <div class="dashPanel1">
  94. <h3>客户类型</h3>
  95.    <canvas id="canvas_circle" width="720" height="360">浏览器不支持canvas 
  96.            </canvas>  
  97. </div>
  98. <%
  99. Rs.Open "Select cs_deal,count(DISTINCT cs_code) as cc from customer Group by(cs_deal) order by cs_deal desc",conn,1,1
  100. Do while Not Rs.bof and Not Rs.eof
  101. data_arr2=data_arr2&FormatNumber(Rs("cc")/tn,-1,-1)&","
  102. Rs.moveNext
  103. loop
  104. Rs.close
  105. %>
  106. <input type="hidden" id="data_arr2" value="<%=left(data_arr2,len(data_arr2)-1)%>">
  107. <input type="hidden" id="text_arr2" value="成交,明确需求,背景调查,无响应">
  108. <div class="dashPanel1">
  109. <h3>成交比例</h3>
  110.    <canvas id="canvas_circle2" width="720" height="360">浏览器不支持canvas 
  111.            </canvas>  
  112. </div>
  113. <%
  114. Rs.Open "Select ch_name,count(DISTINCT cs_code) as cc from customer Left Join qudao on customer.cs_from=qudao.id Group by(ch_name)",conn,1,1
  115. Do while Not Rs.bof and Not Rs.eof
  116. data_arr3=data_arr3&FormatNumber(Rs("cc")/tn,-1,-1)&","
  117. text_arr3=text_arr3&Rs("ch_name")&","
  118. Rs.moveNext
  119. loop
  120. Rs.close
  121. %>
  122. <input type="hidden" id="data_arr3" value="<%=left(data_arr3,len(data_arr3)-1)%>">
  123. <input type="hidden" id="text_arr3" value="<%=left(text_arr3,len(text_arr3)-1)%>">
  124. <div class="dashPanel1">
  125. <h3>客户来源</h3>
  126.    <canvas id="canvas_circle3" width="720" height="360">浏览器不支持canvas 
  127.            </canvas>  
  128. </div>
  129. <% Rs.Open "select top 9 countryName,count(DISTINCT cs_code) as cc from customer Left Join country on customer.cs_country=country.id where cs_deal=3 Group BY(countryName) Order by cc DESC",conn,1,1
  130. tp=1
  131. Do while Not Rs.bof and Not Rs.eof
  132. data_arr5=data_arr5&FormatNumber(Rs("cc")/tdn,-1,-1)&","
  133. text_arr5=text_arr5&Rs("countryName")&","
  134. tp=tp-FormatNumber(Rs("cc")/tdn,-1,-1)
  135. Rs.moveNext
  136. loop
  137. Rs.close
  138. %>
  139. <input type="hidden" id="data_arr5" value="<%=data_arr5&tp%>">
  140. <input type="hidden" id="text_arr5" value="<%=text_arr5&"其他"%>">
  141. <div class="dashPanel1">
  142. <h3>已成交客户分布(Top10)</h3>
  143.    <canvas id="canvas_circle5" width="720" height="360">浏览器不支持canvas</canvas>  
  144. </div>
  145. <% Rs.Open "select top 9 countryName,count(DISTINCT cs_code) as cc from customer Left Join country on customer.cs_country=country.id where cs_deal=3 Group BY(countryName) Order by cc DESC",conn,1,1
  146. tp=1
  147. Do while Not Rs.bof and Not Rs.eof
  148. data_arr4=data_arr4&FormatNumber(Rs("cc")/tn,-1,-1)&","
  149. text_arr4=text_arr4&Rs("countryName")&","
  150. tp=tp-FormatNumber(Rs("cc")/tn,-1,-1)
  151. Rs.moveNext
  152. loop
  153. Rs.close
  154. %>
  155. <input type="hidden" id="data_arr4" value="<%=data_arr4&tp%>">
  156. <input type="hidden" id="text_arr4" value="<%=text_arr4&"其他"%>">
  157. <div class="dashPanel1">
  158. <h3>客户分布(Top10)</h3>
  159.    <canvas id="canvas_circle4" width="720" height="360">浏览器不支持canvas</canvas>  
  160. </div>
  161. <% Rs.Open "select em_user,count(DISTINCT cs_code) as cc from customer Left Join employee on customer.cs_belong=employee.id where cs_deal=3 Group BY(em_user) Order by cc DESC",conn,1,1
  162. Do while Not Rs.bof and Not Rs.eof
  163. data_arr6=data_arr6&FormatNumber(Rs("cc")/tdn,-1,-1)&","
  164. text_arr6=text_arr6&Rs("em_user")&","
  165. Rs.moveNext
  166. loop
  167. Rs.close
  168. %>
  169. <input type="hidden" id="data_arr6" value="<%=left(data_arr6,len(data_arr6)-1)%>">
  170. <input type="hidden" id="text_arr6" value="<%=left(text_arr6,len(text_arr6)-1)%>">
  171. <div class="dashPanel1">
  172. <h3>各业务成交客户占比</h3>
  173.    <canvas id="canvas_circle6" width="720" height="360">浏览器不支持canvas</canvas>  
  174. </div>
  175. <% Rs.Open "select em_user,count(DISTINCT cs_code) as cc from customer Left Join employee on customer.cs_belong=employee.id where cs_deal>0 Group BY(em_user) Order by cc DESC",conn,1,1
  176. Do while Not Rs.bof and Not Rs.eof
  177. data_arr7=data_arr7&Rs("cc")&","
  178. text_arr7=text_arr7&Rs("em_user")&","
  179. Rs.moveNext
  180. loop
  181. Rs.close
  182. %>
  183. <input type="hidden" id="data_arr7" value="<%=left(data_arr7,len(data_arr7)-1)%>">
  184. <input type="hidden" id="text_arr7" value="<%=left(text_arr7,len(text_arr7)-1)%>">
  185. <div class="dashPanel2">
  186. <h3>各业务客户占比(扣除无响应)</h3>
  187.    <canvas id="canvas_circle7" width="1200" height="500">浏览器不支持canvas</canvas>  
  188. </div>
  189. <%Set Rs=Nothing:Conn.Close:Set Conn=Nothing%>
  190. </div>
  191. <script>
  192. function init() {  
  193. //客户类型
  194.    var data_arr = $("#data_arr1").val().split(",");  
  195.    var color_arr = ["#00FF21", "#FFAA00", "#00AABB", "#FF4400","#009942","#02a0e9","#0168b7","#930784","#e5007f","#e50150","#ef0030","#eb6100","#f49600"];  
  196.    var text_arr = $("#text_arr1").val().split(","); ;  
  197. //成交情况
  198.    var data_arr2 = $("#data_arr2").val().split(",");  
  199.    var text_arr2 = $("#text_arr2").val().split(",");   
  200.    var data_arr3 = $("#data_arr3").val().split(",");  
  201.    var text_arr3 = $("#text_arr3").val().split(",");  
  202.    var data_arr4 = $("#data_arr4").val().split(",");  
  203.    var text_arr4 = $("#text_arr4").val().split(",");  
  204.    var data_arr5 = $("#data_arr5").val().split(",");  
  205.    var text_arr5 = $("#text_arr5").val().split(",");  
  206.    var data_arr6 = $("#data_arr6").val().split(",");  
  207.    var text_arr6 = $("#text_arr6").val().split(","); 
  208.    var data_arr7 = $("#data_arr7").val().split(",");  
  209.    var text_arr7 = $("#text_arr7").val().split(","); 
  210.    drawCircle("canvas_circle", data_arr, color_arr, text_arr);  
  211.    drawCircle("canvas_circle2", data_arr2, color_arr, text_arr2); 
  212.    drawCircle("canvas_circle3", data_arr3, color_arr, text_arr3); 
  213.    drawCircle("canvas_circle4", data_arr4, color_arr, text_arr4); 
  214.    drawCircle("canvas_circle5", data_arr5, color_arr, text_arr5); 
  215.    drawCircle("canvas_circle6", data_arr6, color_arr, text_arr6); 
  216.    drawRectangle("canvas_circle7", data_arr7, text_arr7); 
  217. }  
  218.    window.onload = init; 
  219. </script>
  220. </div>
  221. </body>
  222. </html>