prize_buckle.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. var app = getApp()
  2. var that;
  3. var chart1;
  4. var chart2;
  5. Page({
  6. data: {
  7. date: app.globalData.month,
  8. employee_id:0,
  9. isDb:false,
  10. },
  11. onLoad(e) {
  12. that = this;
  13. dd.setNavigationBar({ title: "奖扣统计" });
  14. if (e.id && e.month) {
  15. that.setData({
  16. date: e.month,
  17. employee_id: e.id
  18. })
  19. }
  20. that.getUserData();
  21. that.getIncidentLsit();
  22. },
  23. onInitChart(F2, config) {
  24. chart1 = new F2.Chart(config);
  25. chart1.source(that.data.chartData, {
  26. time: {
  27. type: 'timeCat',
  28. tickCount: 4,
  29. range: [0, 1]
  30. }
  31. });
  32. chart1.legend(false);
  33. chart1.axis('time', {
  34. // line: {
  35. // lineWidth: 2,
  36. // stroke: '#F56C6C',
  37. // top: true, // 展示在最上层
  38. // },
  39. label: function label(text, index, total) {
  40. const textCfg = {};
  41. if (index === 0) {
  42. textCfg.textAlign = 'left';
  43. } else if (index === total - 1) {
  44. textCfg.textAlign = 'right';
  45. }
  46. return textCfg;
  47. },
  48. });
  49. chart1.line().position('time*value').color('type', [ '#F56C6C', '#67C23A']);
  50. chart1.render();
  51. return chart1;
  52. },
  53. onInitChart2(F2, config) {
  54. chart2 = new F2.Chart(config);
  55. chart2.source(that.data.chartData, {
  56. time: {
  57. type: 'timeCat',
  58. tickCount: 4,
  59. range: [0, 1]
  60. }
  61. });
  62. chart2.legend(false);
  63. chart2.axis('time', {
  64. // line: {
  65. // lineWidth: 2,
  66. // // stroke: '#F56C6C',
  67. // top: true, // 展示在最上层
  68. // },
  69. label: function label(text, index, total) {
  70. const textCfg = {};
  71. if (index === 0) {
  72. textCfg.textAlign = 'left';
  73. } else if (index === total - 1) {
  74. textCfg.textAlign = 'right';
  75. }
  76. return textCfg;
  77. },
  78. });
  79. chart2.line().position('time*value').color('type', [ '#F56C6C', '#67C23A']);
  80. chart2.render();
  81. return chart2;
  82. },
  83. //获取个人统计
  84. getUserData() {
  85. app.$get("api/integral/statistics", { employee_id: that.data.employee_id, month: that.data.date }).then((res) => {
  86. var data = res.data.data;
  87. var task = data.task;
  88. dd.setNavigationBar({ title: data.name });
  89. var ratio = task.reward.point === 0 || task.deduction.point === 0 ? '-' : `${task.ratio.ratio}:1`
  90. var target_ratio = task.ratio.target_ratio <= 0 ? '0:0' : `${task.ratio.target_ratio}:1`
  91. if(data.task.reward.point>=data.task.reward.target_point&&data.task.deduction.point>=data.task.deduction.target_point&&data.task.exec.count>=data.task.exec.target_count){
  92. if(task.ratio.ratio>=task.ratio.target_ratio){
  93. this.setData({
  94. isDb: true
  95. })
  96. }
  97. }
  98. data.ratio = {
  99. ratio: ratio,
  100. target_ratio: target_ratio
  101. }
  102. this.setData({
  103. userData: data
  104. })
  105. })
  106. },
  107. getIncidentLsit() {
  108. app.$get("api/integral/statistics/prize", { employee_id: that.data.employee_id, month: that.data.date }).then((res) => {
  109. const { img_url, name, chart } = res.data.data;
  110. const { reward, deduct } = chart;
  111. var rewardArr = reward.map((item) => {
  112. return { time: item.date, value: item.point, type: '奖扣' };
  113. })
  114. var deductArr = deduct.map((item) => {
  115. return { time: item.date, value: item.point, type: '扣分' };
  116. })
  117. var rewardArrCount = reward.map((item) => {
  118. return { time: item.date, value: item.count, type: '奖扣' };
  119. })
  120. var deductArrCount = deduct.map((item) => {
  121. return { time: item.date, value: item.count, type: '扣分' };
  122. })
  123. var charData = rewardArr.concat(deductArr);
  124. var charData2 = rewardArrCount.concat(deductArrCount);
  125. // console.log(charData)
  126. // console.log(charData2)
  127. setTimeout(() => {
  128. chart1.changeData(charData);
  129. chart2.changeData(charData2);
  130. }, 1000);
  131. that.setData({
  132. img_url: img_url,
  133. name: name
  134. });
  135. })
  136. },
  137. //时间选择
  138. openDate() {
  139. dd.datePicker({
  140. format: 'yyyy-MM',
  141. currentDate: that.data.date,
  142. success: (res) => {
  143. that.setData({
  144. date: res.date
  145. })
  146. that.getUserData();
  147. that.getIncidentLsit();
  148. },
  149. });
  150. }
  151. });