dashboard.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. require.config({
  2. paths: {
  3. 'new-echarts': '../addons/qingdongams/echarts.min',
  4. },
  5. shim: {
  6. 'new-echarts': {
  7. deps: ['jquery'],
  8. exports: '$.fn.extend'
  9. },
  10. }
  11. });
  12. define(['jquery', 'bootstrap', 'backend', 'addtabs', 'table', 'new-echarts', 'template','form'],
  13. function ($, undefined, Backend, Datatable, Table, NewEcharts, Template,Form) {
  14. var Controller = {
  15. //合同数量统计分析
  16. index: function () {
  17. //客户
  18. console.log(Config);
  19. $.each(Config.echarts,function (index,item){
  20. var myChart2=NewEcharts.init(document.getElementById('x_'+index), 'walden');
  21. var option = {
  22. borderWidth: 0,
  23. shadowColor: '#fff',
  24. shadowBlur: 2,
  25. xAxis: {
  26. show: false,
  27. boundaryGap: false,
  28. type: 'category',
  29. data: [1, 2, 3, 4, 5, 6]
  30. },
  31. yAxis: {
  32. show: false,
  33. type: 'value',
  34. },
  35. series: [
  36. {
  37. data: item,
  38. type: 'line',
  39. symbol: 'none',
  40. areaStyle: {},
  41. smooth: true,
  42. }
  43. ]
  44. };
  45. if(index == 'customer'){
  46. option.color = [
  47. '#fff',
  48. ];
  49. option.shadowColor = '#fff';
  50. }else{
  51. option.color = [
  52. '#0052cc',
  53. ];
  54. option.shadowColor = '#0052cc';
  55. }
  56. myChart2.setOption(option);
  57. });
  58. //业绩指标完成率
  59. var achievementCharts=NewEcharts.init(document.getElementById('x_achievement'));
  60. var achievementOption = {
  61. tooltip: {
  62. borderWidth: 1,
  63. formatter: '{a} <br/>{b} : {c}%'
  64. },
  65. series: [
  66. {
  67. name: '业绩指标完成率',
  68. type: 'gauge',
  69. progress: {
  70. show: true,
  71. },
  72. detail: {
  73. valueAnimation: true,
  74. formatter: '{value}%'
  75. },
  76. data: [
  77. {
  78. value: 50,
  79. name: '完成率'
  80. }
  81. ]
  82. }
  83. ]
  84. };
  85. $('#achievement_status').on('change',function (){
  86. var status=$('#achievement_status').val();
  87. var serialize=$('#form').serialize();
  88. serialize=serialize+'&status='+status
  89. $.post('qingdongams/dashboard/get_achievement_detail', serialize, function (data){
  90. if(data.code == 1){
  91. if(status == 3){
  92. $('.completeMoney').html(data.data.contractMoney)
  93. }else{
  94. $('.completeMoney').html(data.data.receivablesMoney)
  95. }
  96. if(data.data.achievementMoney == 0){
  97. $('.setting').hide();
  98. $('.nosetting').show();
  99. }else{
  100. $('.setting').show();
  101. $('.nosetting').hide();
  102. }
  103. $('.achievementMoney').html(data.data.achievementMoney)
  104. achievementOption.series[0].data[0].value=data.data.rate;
  105. achievementCharts.setOption(achievementOption);
  106. }
  107. },'json');
  108. }).trigger('change');
  109. //业绩目标
  110. var achievementMoney=NewEcharts.init(document.getElementById('x_achievement_money'));
  111. var achievementMoneyOption = {
  112. tooltip: {
  113. trigger: 'axis'
  114. },
  115. color:[
  116. '#000',
  117. '#0052cc'
  118. ],
  119. grid: {
  120. left: '3%',
  121. right: '4%',
  122. bottom: '3%',
  123. containLabel: true
  124. },
  125. toolbox: {
  126. feature: {
  127. saveAsImage: {}
  128. }
  129. },
  130. xAxis: {
  131. type: 'category',
  132. boundaryGap: false,
  133. data: [],
  134. },
  135. yAxis: {
  136. type: 'value',
  137. },
  138. series: [
  139. {
  140. name: '目标金额',
  141. type: 'line',
  142. stack: 'Total',
  143. data: []
  144. },
  145. {
  146. name: '实际完成金额',
  147. type: 'line',
  148. stack: 'Total',
  149. data: []
  150. },
  151. ]
  152. };
  153. $('#achievement_status2').on('change',function (){
  154. var status=$('#achievement_status2').val();
  155. var serialize=$('#form').serialize();
  156. serialize=serialize+'&status='+status
  157. if(status == 3){
  158. $("#achievement_title").html("合同金额目标及完成情况");
  159. }else{
  160. $("#achievement_title").html("回款金额目标及完成情况");
  161. }
  162. $.post('qingdongams/dashboard/get_achievement', serialize, function (data){
  163. if(data.code == 1){
  164. achievementMoneyOption.xAxis.data=data.data.times;
  165. achievementMoneyOption.series[0].data=data.data.achievement;
  166. achievementMoneyOption.series[1].data=data.data.money;
  167. achievementMoney.setOption(achievementMoneyOption);
  168. }
  169. },'json');
  170. }).trigger('change');
  171. // 销售漏斗
  172. var businessL=NewEcharts.init(document.getElementById('x_business_l'));
  173. var businessLOption = {
  174. tooltip: {
  175. trigger: 'axis',
  176. axisPointer: {
  177. type: 'shadow'
  178. }
  179. },
  180. legend: {},
  181. grid: {
  182. left: '3%',
  183. right: '4%',
  184. bottom: '3%',
  185. containLabel: true
  186. },
  187. xAxis: {
  188. type: 'value',
  189. },
  190. yAxis: {
  191. type: 'category',
  192. data: ['赢单','输单']
  193. },
  194. series: [
  195. {
  196. type: 'bar',
  197. data: []
  198. },
  199. ]
  200. };
  201. $('.wk-toggle-item').on('click',function (){
  202. var serialize=$('#form').serialize();
  203. if($(this).data('value') == 1){
  204. $.post('qingdongams/dashboard/get_business', serialize, function (data){
  205. if(data.code == 1){
  206. businessLOption.series[0].data=[data.data.contractBusinessMoney,data.data.noBusinessMoney];
  207. businessL.setOption(businessLOption);
  208. }
  209. },'json');
  210. }else{
  211. $.post('qingdongams/dashboard/get_business', serialize, function (data){
  212. if(data.code == 1){
  213. businessLOption.series[0].data=[data.data.contractBusiness,data.data.noBusiness];
  214. businessL.setOption(businessLOption);
  215. }
  216. },'json');
  217. }
  218. $('.wk-toggle-item').removeClass('selected');
  219. $(this).addClass('selected');
  220. });
  221. $('.wk-toggle-item.selected').trigger('click');
  222. $('#ranking').on('change', function () {
  223. var ranking = $('#ranking').val();
  224. var serialize = $('#form').serialize();
  225. serialize = serialize + '&ranking=' + ranking
  226. var table = $("#table"+ranking),columns;
  227. if(ranking == 1){
  228. columns= [
  229. [
  230. {field: 'ranking', title: __('排名'), operate: false},
  231. {field: 'staff.name', title: __('姓名'), operate: false},
  232. {field: 'number', title: __('新增客户数(个)'), operate: false},
  233. ]
  234. ];
  235. }else if(ranking == 2){
  236. columns= [
  237. [
  238. {field: 'ranking', title: __('排名'), operate: false},
  239. {field: 'staff.name', title: __('姓名'), operate: false},
  240. {field: 'number', title: __('新增跟进记录数(条)'), operate: false},
  241. ]
  242. ];
  243. }else if(ranking == 3){
  244. columns= [
  245. [
  246. {field: 'ranking', title: __('排名'), operate: false},
  247. {field: 'staff.name', title: __('姓名'), operate: false},
  248. {field: 'number', title: __('合同金额(元)'), operate: false},
  249. {field: 'rate', title: __('目标完成率(%)'), operate: false},
  250. ]
  251. ];
  252. }else if(ranking == 4){
  253. columns= [
  254. [
  255. {field: 'ranking', title: __('排名'), operate: false},
  256. {field: 'staff.name', title: __('姓名'), operate: false},
  257. {field: 'number', title: __('回款金额(元)'), operate: false},
  258. {field: 'rate', title: __('目标完成率(%)'), operate: false},
  259. ]
  260. ];
  261. }else if(ranking == 5){
  262. columns= [
  263. [
  264. {field: 'ranking', title: __('排名'), operate: false},
  265. {field: 'staff.name', title: __('姓名'), operate: false},
  266. {field: 'number', title: __('工单数(个)'), operate: false},
  267. ]
  268. ];
  269. }else if(ranking == 6){
  270. columns= [
  271. [
  272. {field: 'ranking', title: __('排名'), operate: false},
  273. {field: 'staff.name', title: __('姓名'), operate: false},
  274. {field: 'number', title: __('合同数(个)'), operate: false},
  275. ]
  276. ];
  277. }
  278. var option = {
  279. url: 'qingdongams/dashboard/ranking?' + serialize,
  280. sortName: 'id',
  281. columns: columns,
  282. //启用普通表单搜索
  283. search: false,
  284. commonSearch: false,
  285. searchFormVisible: false,
  286. };
  287. // 初始化表格
  288. table.bootstrapTable(option);
  289. Table.api.bindevent(table);
  290. // 为表格绑定事件
  291. $('.table').hide()
  292. $('#table'+ranking).show()
  293. }).trigger('change');
  294. $('#times').on('change',function (){
  295. if($(this).val() == 'else'){
  296. $('#dates').show()
  297. }else{
  298. $('#form').submit();
  299. }
  300. })
  301. $('input[name="dates"]').on('blur',function (){
  302. console.log('11')
  303. $('#form').submit();
  304. })
  305. $('select[name="type"]').on('change',function (){
  306. $('#form').submit();
  307. })
  308. $('#myPopover').popover();
  309. Form.events.selectpage($("form"));
  310. Form.events.daterangepicker($("form"));
  311. },
  312. };
  313. return Controller;
  314. });