No Description

index.vue 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <template>
  2. <div class="app-container calendar-list-container">
  3. <div class="app-container" v-show="visible.firstLayer">
  4. <div class="app-container">
  5. <el-date-picker
  6. v-model="date"
  7. type="datetimerange"
  8. :picker-options="pickerOptions"
  9. range-separator="至"
  10. start-placeholder="開始日期"
  11. end-placeholder="结束日期"
  12. align="right">
  13. </el-date-picker>
  14. <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">搜尋</el-button>
  15. </div>
  16. <el-table :data="list" v-loading.body="listLoading" element-loading-text="Loading" border fit highlight-current-row
  17. style="width: 100%">
  18. <el-table-column label="工作室上繳金額" align="center">
  19. <template slot-scope="scope">
  20. <span>{{scope.row.all}}</span>
  21. </template>
  22. </el-table-column>
  23. <el-table-column align="center" label="工作室實收維護費" >
  24. <template slot-scope="scope">
  25. <span>{{scope.row.maintenanceFee}}</span>
  26. </template>
  27. </el-table-column>
  28. </el-table>
  29. </div>
  30. <router-view :bucket="bucket"></router-view>
  31. </div>
  32. </template>
  33. <script>
  34. import { mapGetters, mapActions } from 'vuex'
  35. import { fetchStudiosDetail } from '@/api/studio'
  36. import waves from '@/directive/waves' // 水波纹指令
  37. import moment from 'moment-timezone'
  38. import { Decimal } from 'decimal.js';
  39. export default {
  40. directives: {
  41. waves
  42. },
  43. data() {
  44. return {
  45. list: [],
  46. listLoading: true,
  47. bucket: '',
  48. listQuery: {
  49. // startAt: moment().subtract(1, 'weeks').day(7).hour(16).minute(0).second(0),
  50. // endAt: moment().day(7).hour(11).minute(59).second(59)
  51. },
  52. temp: {},
  53. pickerOptions: {
  54. shortcuts: [{
  55. text: '本週',
  56. onClick(picker) {
  57. const end = moment().startOf('isoweek').day(7).hour(11).minute(59).second(59)
  58. const start = moment().startOf('isoweek').subtract(1, 'weeks').day(7).hour(16).minute(0).second(0)
  59. picker.$emit('pick', [start, end])
  60. }
  61. }, {
  62. text: '上週',
  63. onClick(picker) {
  64. const end = moment().startOf('isoweek').subtract(1, 'weeks').day(7).hour(11).minute(59).second(59)
  65. const start = moment().startOf('isoweek').subtract(2, 'weeks').day(7).hour(16).minute(0).second(0)
  66. picker.$emit('pick', [start, end])
  67. }
  68. }]
  69. },
  70. date: null
  71. }
  72. },
  73. created() {
  74. this.getList()
  75. this.SetVisible(1)
  76. },
  77. computed: {
  78. ...mapGetters([
  79. 'visible'
  80. ])
  81. },
  82. methods: {
  83. ...mapActions([
  84. 'SetVisible'
  85. ]),
  86. getList() {
  87. this.listLoading = true
  88. fetchStudiosDetail(this.listQuery).then(response => {
  89. console.log('eee', response.data)
  90. let data = {
  91. bookies: {},
  92. members: {}
  93. }
  94. // console.log('ddd', data)
  95. if(response.data.length !== 0){
  96. response.data.map((item)=>{
  97. if(item.isBookie){
  98. data.bookies.serviceFees = new Decimal(item.serviceFees)
  99. data.bookies.count = new Decimal(item.count)
  100. }else{
  101. data.members.serviceFees = new Decimal(item.serviceFees)
  102. data.members.count = new Decimal(item.count)
  103. }
  104. })
  105. this.list.push({
  106. all: data.bookies.serviceFees.plus(data.members.serviceFees).minus(data.bookies.count.times(500)).times(0.2).valueOf(),
  107. // all: (data.bookies.serviceFees - (data.bookies.count * 500) + data.members.serviceFees) * 0.2,
  108. maintenanceFee: data.bookies.count.times(500).valueOf()
  109. })
  110. }else{
  111. this.list = [];
  112. }
  113. this.listLoading = false
  114. })
  115. },
  116. handleFilter() {
  117. this.listQuery.page = 1
  118. if (this.date) {
  119. this.listQuery.startAt = moment.utc(this.date[0]).format()
  120. this.listQuery.endAt = moment.utc(this.date[1]).format()
  121. } else {
  122. this.listQuery.startAt = null
  123. this.listQuery.endAt = null
  124. }
  125. this.getList()
  126. },
  127. handleSizeChange(val) {
  128. this.listQuery.limit = val
  129. this.getList()
  130. },
  131. handleCurrentChange(val) {
  132. this.listQuery.page = val
  133. this.getList()
  134. },
  135. moment(time) {
  136. return moment(time).tz('Asia/Taipei').format('YYYY-MM-DD HH:mm:ss')
  137. }
  138. }
  139. }
  140. </script>