task_stat.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <template>
  2. <view class="">
  3. <StatSingleData :genre="1" :total-num="totalNum"></StatSingleData>
  4. <StatLoanChart ref="workChartObj" :leftText="'任务汇总占比'"></StatLoanChart>
  5. <StatRanking ref="workListObj" :is_type="3" :leftText="'任务明细'"></StatRanking>
  6. </view>
  7. </template>
  8. <script>
  9. import StatLoanChart from "../module/stat_loan_chart.vue"
  10. import StatRanking from "../module/stat_ranking.vue"
  11. import StatSingleData from "../module/stat_single_data.vue"
  12. import md5 from "js-md5";
  13. import {
  14. getUserWorkload
  15. } from "@/api/statistics";
  16. export default {
  17. props: {
  18. 'dateTypeObj': {
  19. default: () => {
  20. return {
  21. dateType: 4,
  22. selectDate: '2023-02-25',
  23. money_type: 1,
  24. censusUserType: 0,
  25. product_id: 5,
  26. }
  27. }
  28. }
  29. },
  30. components: {
  31. StatLoanChart,
  32. StatRanking,
  33. StatSingleData
  34. },
  35. watch: {
  36. 'dateTypeObj': function() {
  37. this.initData()
  38. }
  39. },
  40. mounted() {
  41. this.initData()
  42. },
  43. data() {
  44. return {
  45. workList: [],
  46. totalNum:0
  47. }
  48. },
  49. methods: {
  50. setSendMd5() {
  51. let str = JSON.stringify(this.dateTypeObj)
  52. return md5(str)
  53. },
  54. initData() {
  55. if (this.dateTypeObj.censusUserType > 0) {
  56. let sendMd5 = this.setSendMd5()
  57. if (sendMd5 !== this.sendMd5) {
  58. this.sendMd5 = sendMd5
  59. this.getUserWorkload()
  60. }
  61. }
  62. },
  63. getUserWorkload() {
  64. getUserWorkload(this.dateTypeObj).then((res) => {
  65. if (res.code === 1) {
  66. this.totalNum=res.data.totalNum
  67. this.$refs.workChartObj.setPeakChartData(res.data.items)
  68. this.$refs.workListObj.setDataList(res.data.items)
  69. }
  70. })
  71. },
  72. }
  73. }
  74. </script>
  75. <style>
  76. </style>