prize_buckle.js 4.0 KB

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