prize_buckle.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  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. console.log(e)
  24. },
  25. onShow() {
  26. if (app.globalData.userData) {
  27. that.setData({
  28. showtu: true
  29. })
  30. // that.getUserData();
  31. } else {
  32. app.login(app.globalData.corpId, function (is) {
  33. if (is) {
  34. that.setData({
  35. showtu: true
  36. })
  37. that.getUserData();
  38. } else {
  39. dd.reLaunch({
  40. url: '../../noJurisdiction/noJurisdiction'
  41. })
  42. }
  43. },function(){})
  44. }
  45. },
  46. open2(){
  47. dd.navigateTo({
  48. url: '../../statistics/integralEventTwo/integralEventTwo?month='+that.data.date+'&id='+that.data.userData.id
  49. })
  50. },
  51. onInitChart(F2, config) {
  52. chart1 = new F2.Chart(config);
  53. chart1.source(that.data.chartData, {
  54. time: {
  55. // type: 'timeCat',
  56. tickCount: 5,
  57. range: [0, 1]
  58. }
  59. });
  60. chart1.legend(false);
  61. chart1.axis('time', {
  62. label: function label(text, index, total) {
  63. const textCfg = {};
  64. if (index === 0) {
  65. textCfg.textAlign = 'left';
  66. } else if (index === total - 1) {
  67. textCfg.textAlign = 'right';
  68. }
  69. return textCfg;
  70. },
  71. });
  72. chart1.line().position('time*value').color('type', ['#F56C6C', '#67C23A']);
  73. chart1.render();
  74. return chart1;
  75. },
  76. onInitChart2(F2, config) {
  77. chart2 = new F2.Chart(config);
  78. chart2.source(that.data.chartData, {
  79. time: {
  80. // type: 'timeCat',
  81. tickCount: 5,
  82. range: [0, 1]
  83. }
  84. });
  85. chart2.legend(false);
  86. chart2.axis('time', {
  87. label: function label(text, index, total) {
  88. const textCfg = {};
  89. if (index === 0) {
  90. textCfg.textAlign = 'left';
  91. } else if (index === total - 1) {
  92. textCfg.textAlign = 'right';
  93. }
  94. return textCfg;
  95. },
  96. });
  97. chart2.line().position('time*value').color('type', ['#F56C6C', '#67C23A']);
  98. chart2.render();
  99. that.getUserData();
  100. return chart2;
  101. },
  102. getIncidentLsit() {
  103. app.$get("api/integral/statistics/prize", { employee_id: that.data.employee_id, month: that.data.date }).then((res) => {
  104. const { chart } = res.data.data;
  105. const { reward, deduct } = chart;
  106. var rewardArr = reward.map((item) => {
  107. return { time: item.date, value: item.point, type: '奖分' };
  108. })
  109. var deductArr = deduct.map((item) => {
  110. return { time: item.date, value: item.point, type: '扣分' };
  111. })
  112. var rewardArrCount = reward.map((item) => {
  113. return { time: item.date, value: item.count, type: '奖分人次' };
  114. })
  115. var deductArrCount = deduct.map((item) => {
  116. return { time: item.date, value: item.count, type: '扣分人次' };
  117. })
  118. var charData = rewardArr.concat(deductArr);
  119. var charData2 = rewardArrCount.concat(deductArrCount);
  120. chart1.changeData(charData);
  121. chart2.changeData(charData2);
  122. })
  123. },
  124. //时间选择
  125. openDate() {
  126. that.setData({ showDate: true });
  127. dd.datePicker({
  128. format: 'yyyy-MM',
  129. currentDate: that.data.date,
  130. success: (res) => {
  131. if (res.date) {
  132. that.setData({
  133. date: res.date,
  134. isDb: false
  135. })
  136. that.getUserData();
  137. // that.getIncidentLsit();
  138. }
  139. },
  140. complete: (res) => {
  141. that.setData({
  142. showDate: false
  143. })
  144. }
  145. });
  146. },
  147. opneWebSocket() {
  148. let data={type:"es_info",recorder_id:that.data.employee_id||app.globalData.userData.id,month: that.data.date};
  149. app.globalData.socketApi.sendData(data, (res) => {
  150. if (res.code == 1&&res.type=='es_info') {
  151. let data = res.result;
  152. var task = data.task;
  153. var ratio = task.ratio.enable== 0 ? '-' : `${task.ratio.reward_ratio}:1`
  154. var target_ratio = task.ratio.target <= 0 ? '0:1' : `${task.ratio.target}:1`
  155. dd.setNavigationBar({ title: data.name });
  156. data.ratio = {
  157. ratio: ratio,
  158. target_ratio: target_ratio
  159. }
  160. that.setData({
  161. userData: data
  162. })
  163. const { chart } = res.result;
  164. const { reward, deduct } = chart;
  165. var rewardArr = reward.map((item) => {
  166. return { time: item.date, value: item.point, type: '奖分' };
  167. })
  168. var deductArr = deduct.map((item) => {
  169. return { time: item.date, value: item.point, type: '扣分' };
  170. })
  171. var rewardArrCount = reward.map((item) => {
  172. return { time: item.date, value: item.count, type: '奖分人次' };
  173. })
  174. var deductArrCount = deduct.map((item) => {
  175. return { time: item.date, value: item.count, type: '扣分人次' };
  176. })
  177. var charData = rewardArr.concat(deductArr);
  178. var charData2 = rewardArrCount.concat(deductArrCount);
  179. chart1.changeData(charData);
  180. chart2.changeData(charData2);
  181. app.globalData.socketApi.closewebsocket();
  182. }
  183. }, true);
  184. },
  185. //获取个人统计
  186. getUserData() {
  187. this.opneWebSocket();
  188. return false
  189. app.$get("api/integral/statistics", { employee_id: that.data.employee_id, month: that.data.date }).then((res) => {
  190. var data = res.data.data;
  191. var task = data.task;
  192. dd.setNavigationBar({ title: data.name });
  193. var ratio = task.reward.point === 0 || task.deduction.point === 0 ? '-' : `${task.ratio.ratio}:1`
  194. var target_ratio = task.ratio.target_ratio <= 0 ? '0:0' : `${task.ratio.target_ratio}:1`
  195. 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) {
  196. if (task.ratio.ratio >= task.ratio.target_ratio) {
  197. this.setData({
  198. isDb: true
  199. })
  200. }
  201. }
  202. data.ratio = {
  203. ratio: ratio,
  204. target_ratio: target_ratio
  205. }
  206. this.setData({
  207. userData: data
  208. })
  209. })
  210. },
  211. });