refund.vue 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <template>
  2. <div class="app-container">
  3. <div class="filter-container">
  4. <el-form ref="searchForm" :inline="true" class="demo-form-inline">
  5. <el-form-item label="退款编号:" style="width:215px;float: left;">
  6. <el-input v-model="listQuery.returnedNo" placeholder="请输入退款编号" style="width: 140px;" class="filter-item" @keyup.enter.native="handleFilter" />
  7. </el-form-item>
  8. <el-form-item label="订单ID:" style="width:180px;float: left;">
  9. <el-input v-model="listQuery.orderID" type="number" placeholder="请输入订单ID" style="width: 120px;" class="filter-item" @keyup.enter.native="handleFilter" />
  10. </el-form-item>
  11. <el-form-item label="订单编号:" style="width:215px;float: left;">
  12. <el-input v-model="listQuery.orderNo" placeholder="请输入订单编号" style="width: 140px;" class="filter-item" @keyup.enter.native="handleFilter" />
  13. </el-form-item>
  14. <el-form-item label="买家:" style="width:190px;float: left;">
  15. <el-input v-model="listQuery.userName" placeholder="请输入买家名称" style="width: 140px;" class="filter-item" @keyup.enter.native="handleFilter" />
  16. </el-form-item>
  17. <el-form-item label="退款审核状态:" style="width:240px;float: left;">
  18. <el-select v-model="listQuery.status" placeholder="退款审核状态" clearable style="width: 130px" class="filter-item" value="" @change="handleFilter">
  19. <el-option label="待审核" value="1" />
  20. <el-option label="审核通过" value="2" />
  21. <el-option label="审核不通过" value="3" />
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item class="date-box" label="申请时间:" style="width:405px;float: left;">
  25. <el-date-picker
  26. v-model="listQuery.beginReturnTime"
  27. style="width:150px"
  28. type="date"
  29. placeholder="请选择时间"
  30. format="yyyy-MM-dd"
  31. value-format="yyyy-MM-dd"
  32. @change="handleFilter"
  33. />
  34. <el-date-picker
  35. v-model="listQuery.endReturnTime"
  36. style="width:150px"
  37. type="date"
  38. placeholder="请选择时间"
  39. format="yyyy-MM-dd"
  40. value-format="yyyy-MM-dd"
  41. @change="handleFilter"
  42. />
  43. </el-form-item>
  44. <el-form-item style="width:100px;float: left;">
  45. <el-button class="filter-item" type="success" icon="el-icon-search" @click="handleFilter">查询</el-button>
  46. </el-form-item>
  47. </el-form>
  48. </div>
  49. <el-table
  50. v-loading="listLoading"
  51. :data="list"
  52. element-loading-text="Loading"
  53. border
  54. fit
  55. highlight-current-row
  56. :header-cell-style="{background:'#eef1f6',color:'#606266'}"
  57. >
  58. <el-table-column align="center" label="序号" width="50">
  59. <template slot-scope="scope">
  60. {{ ((pageNum-1)*listQuery.pageSize)+scope.$index+1 }}
  61. </template>
  62. </el-table-column>
  63. <el-table-column label="退款编号" align="center" prop="returnedNo" />
  64. <el-table-column label="退款审核状态" align="center" prop="status">
  65. <template slot-scope="{row}">
  66. <el-tag v-if="row.status*1===1" type="warning" size="small">待审核</el-tag>
  67. <el-tag v-if="row.status*1===2" type="success" size="small">审核通过</el-tag>
  68. <el-tag v-if="row.status*1===3" type="danger" size="small">审核不通过</el-tag>
  69. </template>
  70. </el-table-column>
  71. <el-table-column label="买家" align="center" prop="userName" />
  72. <el-table-column label="订单编号(ID)" align="center" prop="orderNo">
  73. <template slot-scope="{row}">{{ row.orderNo + '(' + row.orderID + ')' }}</template>
  74. </el-table-column>
  75. <el-table-column label="退款金额" align="center" prop="refundFee">
  76. <template slot-scope="{row}">{{ row.refundFee | toThousandFloatFilter }}</template>
  77. </el-table-column>
  78. <el-table-column label="退款方式" align="center" prop="returnedWay">
  79. <template slot-scope="{row}">
  80. <template v-if="row.returnedWay*1===4">未支付无退款</template>
  81. <template v-else-if="row.returnedWay*1===1">
  82. <span v-if="row.refundBalanceFee*1 !== 0">余额账户:¥{{ row.refundBalanceFee | toThousandFloatFilter }}</span>
  83. <span v-if="row.refundOnlineFee*1 !== 0">线上退回:¥{{ row.refundOnlineFee | toThousandFloatFilter }}</span>
  84. <span v-if="row.refundOfflineFee*1 !== 0">线下转账:¥{{ row.refundOfflineFee | toThousandFloatFilter }}</span>
  85. </template>
  86. <template v-else>----</template>
  87. </template>
  88. </el-table-column>
  89. <el-table-column label="申请人" align="center" prop="applicationUserName" />
  90. <el-table-column align="center" label="申请时间" prop="returnTime">
  91. <template v-if="row.returnTime" slot-scope="{row}">
  92. <span>{{ row.returnTime | parseTime('{y}-{m}-{d} {h}:{i}:{s}') }}</span>
  93. </template>
  94. </el-table-column>
  95. <el-table-column label="审核人" align="center" prop="reviewUserName" />
  96. <el-table-column align="center" label="审核时间" prop="confirmReturnTime">
  97. <template v-if="row.confirmReturnTime" slot-scope="{row}">
  98. <span>{{ row.confirmReturnTime | parseTime('{y}-{m}-{d} {h}:{i}:{s}') }}</span>
  99. </template>
  100. </el-table-column>
  101. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  102. <template slot-scope="{row}">
  103. <router-link :to="'/order/refund/detail/' + row.id + '?orderID=' + row.orderID "><el-button type="primary" size="mini" style="width: 80px;margin:5px;">查看详情</el-button></router-link>
  104. </template>
  105. </el-table-column>
  106. </el-table>
  107. <pagination v-show="total>20" :total="total" :page.sync="listQuery.index" :limit.sync="listQuery.pageSize" @pagination="fetchData" />
  108. <template>
  109. <el-backtop style="right: 40px; bottom: 40px;">
  110. <i class="el-icon-upload2" />
  111. </el-backtop>
  112. </template>
  113. </div>
  114. </template>
  115. <script>
  116. import { getRefundList } from '@/api/order'
  117. import Pagination from '@/components/Pagination'
  118. export default {
  119. components: { Pagination },
  120. data() {
  121. return {
  122. list: null,
  123. pageNum: 0,
  124. listLoading: true,
  125. total: 0,
  126. searchTimeVal: '',
  127. listQuery: {
  128. index: 1,
  129. pageSize: 20,
  130. organizeID: this.$store.getters.organizeID,
  131. returnedNo: '',
  132. orderID: '',
  133. orderNo: '',
  134. userName: '',
  135. beginReturnTime: '',
  136. endReturnTime: '',
  137. status: ''
  138. }
  139. }
  140. },
  141. computed: {
  142. organizeID() {
  143. return this.$store.getters.organizeID
  144. }
  145. },
  146. created() {
  147. this.fetchData()
  148. },
  149. methods: {
  150. fetchData() {
  151. this.listLoading = true
  152. getRefundList(this.listQuery).then(response => {
  153. this.list = response.data.results
  154. this.total = response.data.totalRecord
  155. this.pageNum = response.data.index
  156. this.listLoading = false
  157. }).catch(() => {
  158. this.listLoading = false
  159. })
  160. },
  161. handleFilter() {
  162. this.fetchData()
  163. }
  164. }
  165. }
  166. </script>
  167. <style scoped>
  168. .el-form-item{
  169. margin-bottom: 0;
  170. }
  171. .date-box{
  172. margin-right:0;
  173. }
  174. </style>