recoveryReport.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <!--
  2. * @Description: 统计报表 => 追缴统计(路段)
  3. * @Author: 空白格
  4. * @Date: 2022-08-03 11:21:31
  5. * @LastEditors: 空白格
  6. * @LastEditTime: 2022-08-03 11:46:05
  7. * @FilePath: \parking_operation\pages\statisticalReport\roadModel\components\recoveryReport.vue
  8. * @Copyright: Copyright (c) 2016~2022 by 空白格, All Rights Reserved.
  9. -->
  10. <template>
  11. <view class="container">
  12. <view class="table">
  13. <!-- <view class="table-date" v-if="currentDate">{{ currentDate.join(' 至 ') }}</view> -->
  14. <view class="table-box">
  15. <TableRanking
  16. :loading="loading"
  17. :tableTh="tableTh"
  18. :tableData="tableData"
  19. @pageChange="pageChange"
  20. />
  21. </view>
  22. </view>
  23. <view class="total">
  24. <view>
  25. 数据统计,收费员共
  26. <text>{{ totalData.dataCount || 0 }}</text>人,累计追缴
  27. <text>{{ totalData.pursueCount || 0 }}</text>次,其中追缴现金金额
  28. <text>{{ totalData.cashAmt || 0 }}</text>元,追缴非现金金额
  29. <text>{{ totalData.otherAmount || 0 }}</text>元,追缴总额共计
  30. <text>{{ totalData.quickAmt || 0 }}</text>元
  31. </view>
  32. </view>
  33. </view>
  34. </template>
  35. <script>
  36. import TableRanking from '@/components/tableRanking.vue';
  37. export default {
  38. components: {
  39. TableRanking
  40. },
  41. props: {
  42. tableTh: {
  43. type: Array,
  44. default: () => {
  45. return [
  46. {
  47. field: '收费员',
  48. width: 120,
  49. key: 'payeeName'
  50. },
  51. {
  52. field: '追缴次数',
  53. width: 80,
  54. key: 'pursueCount'
  55. },
  56. {
  57. field: '追缴现金金额(元)',
  58. width: 80,
  59. key: 'cashAmt'
  60. },
  61. {
  62. field: '追缴非现金金额(元)',
  63. width: 80,
  64. key: 'otherAmount'
  65. },
  66. {
  67. field: '追缴总额(元)',
  68. width: 80,
  69. key: 'totalAmt'
  70. }
  71. ];
  72. }
  73. }
  74. },
  75. data() {
  76. return {
  77. loading: false,
  78. tableData: {
  79. current: 1,
  80. total: 0,
  81. list: []
  82. },
  83. totalData: {},
  84. currentDate: [],
  85. beginTime: undefined,
  86. endTime: undefined
  87. };
  88. },
  89. methods: {
  90. getData(data) {
  91. if (data.length) {
  92. this.beginTime = data[0];
  93. this.endTime = data[1];
  94. }
  95. this.currentDate = data;
  96. this.tableData.current = 1;
  97. this.getIncomeTotal();
  98. this.getIncomeList();
  99. },
  100. getIncomeTotal() {
  101. uni.$u.api.statisticalReportApi
  102. .getRecoverySumReportApi({
  103. beginTime: this.beginTime,
  104. endTime: this.endTime
  105. })
  106. .then((res) => {
  107. if (res.code === 200) {
  108. this.totalData = res.data;
  109. }
  110. });
  111. },
  112. getIncomeList() {
  113. this.loading = true;
  114. uni.$u.api.statisticalReportApi
  115. .getRecoveryReportApi({
  116. beginTime: this.beginTime,
  117. endTime: this.endTime,
  118. pageNum: this.tableData.current,
  119. pageSize: 10
  120. })
  121. .then((res) => {
  122. if (res.code === 200) {
  123. this.tableData.list = res.rows;
  124. this.tableData.total = res.total;
  125. }
  126. this.loading = false;
  127. });
  128. },
  129. pageChange(cur) {
  130. this.tableData.current = cur;
  131. this.getIncomeList();
  132. }
  133. }
  134. };
  135. </script>
  136. <style lang="scss" scoped>
  137. @import './../../styles/report.scss';
  138. </style>