OrderStatistics.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <template>
  2. <div class="tableBox">
  3. <div class="title">门票销售数据</div>
  4. <el-table
  5. border
  6. stripe
  7. v-loading="loading"
  8. :data="OrderStatistics">
  9. <el-table-column
  10. prop="otaSourceName"
  11. label="销售渠道">
  12. </el-table-column>
  13. <el-table-column
  14. prop="ticketTypeName"
  15. label="票种">
  16. </el-table-column>
  17. <el-table-column
  18. prop="unitPrice"
  19. label="单价">
  20. </el-table-column>
  21. <el-table-column
  22. prop="saleNum"
  23. label="张数">
  24. </el-table-column>
  25. <el-table-column
  26. prop="salePrice"
  27. label="金额">
  28. </el-table-column>
  29. <el-table-column
  30. prop="cancelNum"
  31. label="退票张数">
  32. </el-table-column>
  33. <el-table-column
  34. prop="cancelPrice"
  35. label="退票金额">
  36. </el-table-column>
  37. <el-table-column
  38. prop="actualNum"
  39. label="实售数量">
  40. </el-table-column>
  41. <el-table-column
  42. prop="actualPrice"
  43. label="实售金额">
  44. </el-table-column>
  45. </el-table>
  46. </div>
  47. </template>
  48. <script>
  49. import moment from 'moment'
  50. import { getOrderStatistics } from '@/api/order.js'
  51. const fmt = 'YYYY-MM-DD HH:mm:ss'
  52. export default {
  53. props: {
  54. dataDate: {
  55. type: String,
  56. default: 'today'
  57. }
  58. },
  59. data () {
  60. return {
  61. loading: false,
  62. OrderStatistics: [], // 按售票渠道今日门票销售数据
  63. startDate: moment().startOf('day').format(fmt),
  64. endDate: moment().endOf('day').format(fmt)
  65. }
  66. },
  67. created () {
  68. this.getOrderStatistics()
  69. },
  70. methods: {
  71. getData () {
  72. switch (this.dataDate) {
  73. case 'yesterday':
  74. this.startDate = moment().subtract(1, 'days').startOf('day').format(fmt)
  75. this.endDate = moment().subtract(1, 'days').endOf('day').format(fmt)
  76. break
  77. case 'week':
  78. this.startDate = moment().subtract(7, 'days').startOf('day').format(fmt)
  79. this.endDate = moment().endOf('day').format(fmt)
  80. break
  81. case 'month':
  82. this.startDate = moment().subtract(30, 'days').startOf('day').format(fmt)
  83. this.endDate = moment().endOf('day').format(fmt)
  84. break
  85. default:
  86. this.startDate = moment().startOf('day').format(fmt)
  87. this.endDate = moment().endOf('day').format(fmt)
  88. break
  89. }
  90. this.getOrderStatistics()
  91. },
  92. getOrderStatistics () {
  93. this.loading = true
  94. getOrderStatistics({
  95. pageSize: -1,
  96. pageNum: 1,
  97. timeBegin: this.startDate,
  98. timeEnd: this.endDate,
  99. ticketTypeIdList: [], // 票种ID
  100. otaSourceNameList: []
  101. }).then(res => {
  102. console.log(res)
  103. this.OrderStatistics = res.data
  104. this.loading = false
  105. })
  106. }
  107. }
  108. }
  109. </script>
  110. <style lang="scss" scoped>
  111. .tableBox {
  112. .title {
  113. font-size: 16px;
  114. font-weight: bold;
  115. padding: 10px 0;
  116. }
  117. }
  118. </style>