FunnelCRM.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.crm.chance.FunnelCRM', {
  3. extend: 'Ext.app.Controller',
  4. views:[
  5. 'crm.chance.FunnelCRM','core.trigger.DbfindTrigger','core.form.FtField',
  6. 'core.form.FtFindField','core.form.ConDateField'
  7. ],
  8. init:function(){
  9. var me=this;
  10. this.control({
  11. 'window':{
  12. close:function(){
  13. var main = parent.Ext.getCmp("content-panel");
  14. main.getActiveTab().close();
  15. }
  16. },
  17. 'window button[id=closebtn]':{
  18. click:function(btn){
  19. var main = parent.Ext.getCmp("content-panel");
  20. main.getActiveTab().close();
  21. },
  22. afterrender:function(btn){
  23. var sum=0;
  24. var funneldata=new Array();
  25. Ext.Ajax.request({
  26. url:basePath+'crm/funnel.action',
  27. params:'',
  28. method : 'post',
  29. async:false,
  30. callback : function(options,success,response){
  31. var res = new Ext.decode(response.responseText);
  32. if(res.exceptionInfo != null){
  33. showError(res.exceptionInfo);return;
  34. }
  35. if(res.data){
  36. var i=0;
  37. var data=new Ext.decode(res.data);
  38. Ext.each(Ext.Object.getKeys(data),function(key){
  39. sum+=data[key];
  40. var d=new Array();
  41. d[0]=key,d[1]=data[key];
  42. funneldata[i]=d;
  43. i++;
  44. });
  45. }
  46. }
  47. });
  48. new Highcharts.Chart({
  49. chart: {
  50. reflow: false,
  51. renderTo: 'funnelwin-body',
  52. type: 'funnel',
  53. marginRight: 100,
  54. width:740,
  55. heigth:298
  56. },
  57. title: {
  58. text: '商机销售漏斗',
  59. x: -50
  60. },
  61. plotOptions: {
  62. series: {
  63. dataLabels: {
  64. enabled: true,
  65. formatter:function(){
  66. return '<b>'+this.key+'</b> ('+this.y +')<br>--'+Math.round(this.y/sum*100)+'%';
  67. },
  68. color: 'black',
  69. softConnector: true
  70. },
  71. neckWidth: '30%',
  72. neckHeight: '25%',
  73. }
  74. },
  75. legend: {
  76. enabled: false
  77. },
  78. series: [{
  79. name: '数 量',
  80. data:funneldata
  81. }]
  82. });
  83. }
  84. },
  85. 'erpPrintFormPanel': {
  86. titlechange: function(f){
  87. if(f.title != null){
  88. f.ownerCt.setTitle(f.title);
  89. f.dockedItems.items[0].hide();
  90. }
  91. }
  92. }
  93. });
  94. }
  95. });