payfinance-refund-record.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. <template>
  2. <div class="app-container">
  3. <el-card v-if="cmReturnedPurchaseList.length === 0" class="box-card" style="height: 100px;line-height: 100px; text-align:center;color: #999;">暂无退款退货详情记录~</el-card>
  4. <template v-else>
  5. <div v-for="(cmReturn,index) in cmReturnedPurchaseList" id="printBox" :key="index">
  6. <el-card class="box-card" style="margin: 5px auto;">
  7. <div class="refund-item">
  8. <h1 class="refund-item-title">审核信息</h1>
  9. <el-row :gutter="24" class="box-row">
  10. <el-col :span="5"><b>审核人:</b> {{ cmReturn.reviewUserName }}</el-col>
  11. <el-col :span="4"><b>审核时间:</b> {{ cmReturn.confirmReturnTime ? cmReturn.confirmReturnTime :'--' }}</el-col>
  12. <el-col :span="15"><b>审核备注:</b> {{ cmReturn.reviewRemarks ? cmReturn.reviewRemarks :'--' }}</el-col>
  13. </el-row>
  14. </div>
  15. </el-card>
  16. <el-card class="box-card" style="margin: 5px auto;">
  17. <div class="refund-item">
  18. <h1 class="refund-item-title">申请信息</h1>
  19. <el-row :gutter="24" class="box-row">
  20. <el-col :span="5"><b>申请人:</b> {{ cmReturn.applicationUserNam ? cmReturn.applicationUserNam :'--' }}</el-col>
  21. <el-col :span="4"><b>申请时间:</b> {{ cmReturn.returnTime ? cmReturn.returnTime :'--' }}</el-col>
  22. <el-col :span="15"><b>退款备注:</b> {{ cmReturn.remarks ? cmReturn.remarks :'--' }}</el-col>
  23. </el-row>
  24. </div>
  25. </el-card>
  26. <el-card class="box-card" style="margin: 5px auto;">
  27. <div class="refund-item">
  28. <h1 class="refund-item-title">退款信息</h1>
  29. <el-row :gutter="24" class="box-row">
  30. <el-col :span="5"><b>退款编号:</b> {{ cmReturn.returnedNo }}</el-col>
  31. <el-col :span="4"><b>申请时间:</b> {{ cmReturn.returnTime }}</el-col>
  32. <el-col :span="15"><b>申请金额</b> ¥{{ cmReturn.refundFee | amountfilters }} </el-col>
  33. </el-row>
  34. <h1 class="refund-item-title">退款方式</h1>
  35. <el-row :gutter="24" class="box-row">
  36. <el-col v-if="cmReturn.returnedWay*1===4" :span="4"><b>未支付无退款</b> </el-col>
  37. <template v-else-if="cmReturn.returnedWay*1===1">
  38. <template v-if="cmReturn.refundOnlineFee*1 !== 0">
  39. <el-col :span="5">
  40. <b>线上退回:</b>
  41. <span>¥{{ cmReturn.refundOnlineFee | amountfilters }}</span>
  42. </el-col>
  43. </template>
  44. <template v-if="cmReturn.refundOfflineFee*1 !== 0">
  45. <el-col :span="5">
  46. <b>线下转账:</b>
  47. <span>¥{{ cmReturn.refundOfflineFee | amountfilters }}</span>
  48. </el-col>
  49. <el-col :span="4"><b>开户名:</b><span>{{ cmReturn.bankAccountName }}</span> </el-col>
  50. <el-col :span="4"><b>账号:</b> <span>{{ cmReturn.bankAccountNo }}</span> </el-col>
  51. <el-col :span="4"><b>开户行:</b> <span>{{ cmReturn.openBank }}</span> </el-col>
  52. <el-col :span="4"><b>账户类型:</b> <span>{{ cmReturn.bankAccountType*1 === 1 ? '公账' : '私账' }}</span> </el-col>
  53. </template>
  54. </template>
  55. <span v-else>----</span>
  56. </el-row>
  57. </div>
  58. </el-card>
  59. <el-card class="box-card" style="margin: 5px auto;">
  60. <div class="refund-item">
  61. <el-row :gutter="24" class="box-row">
  62. <el-col :span="5"><b>订单编号(ID):</b> {{ order.orderNo }}({{ order.orderId }})</el-col>
  63. <el-col :span="4"><b>下单时间:</b> {{ order.orderTime }}</el-col>
  64. <el-col :span="6"><b>机构名称:</b> {{ order.clubName }}</el-col>
  65. <el-col :span="9">
  66. <b>订单状态:</b>
  67. <template v-if="['11','12','13','21','22','23','31','32','33'].indexOf(order.status)>=0">
  68. <el-tag type="success" size="small">交易中</el-tag>
  69. </template>
  70. <template v-else>
  71. <el-tag :type="order.status*1===6?'info':''" size="small">{{ order.status | orderStatusFilter }}</el-tag>
  72. </template>
  73. </el-col>
  74. </el-row>
  75. <el-row :gutter="24" class="box-row">
  76. <el-col :span="5"><b>订单金额:</b> {{ order.payTotalFee }}</el-col>
  77. <el-col :span="4"><b>应收金额:</b> {{ order.payableAmount }}</el-col>
  78. <el-col :span="15"><b>机构运费:</b> <span>{{ order.postageInfo }}</span></el-col>
  79. </el-row>
  80. <el-row :gutter="24" class="box-row">
  81. <el-col :span="5"><b>收款状态:</b>
  82. <el-tag v-if="order.receiptStatus*1===1" type="danger" size="small">待收款</el-tag>
  83. <el-tag v-if="order.receiptStatus*1===2" type="warning" size="small">部分收款</el-tag>
  84. <el-tag v-if="order.receiptStatus*1===3" type="success" size="small">已收款</el-tag>
  85. </el-col>
  86. <el-col :span="4"><b>退款状态:</b>
  87. <el-tag v-if="order.refundType*1===1" type="warning" size="small">部分退款</el-tag>
  88. <el-tag v-else-if="order.refundType*1===2" type="danger" size="small">已退款</el-tag>
  89. <el-tag v-else type="info" size="small">无退款</el-tag>
  90. </el-col>
  91. <el-col :span="6"><b>发货状态:</b>
  92. <el-tag v-if="order.sendOutStatus*1===1" type="danger" size="small">待发货</el-tag>
  93. <el-tag v-if="order.sendOutStatus*1===2" type="warning" size="small">部分发货</el-tag>
  94. <el-tag v-if="order.sendOutStatus*1===3" type="success" size="small">已发货</el-tag>
  95. </el-col>
  96. <el-col :span="9"><b>退款状态:</b>
  97. <el-tag v-if="order.refundType*1===1" type="warning" size="small">部分退款</el-tag>
  98. <el-tag v-else-if="order.refundType*1===2" type="danger" size="small">已退款</el-tag>
  99. <el-tag v-else type="info" size="small">无退款</el-tag>
  100. </el-col>
  101. </el-row>
  102. <el-row :gutter="24" class="box-row">
  103. <el-col :span="5"><b>机构:</b> {{ order.bpOrderUserinfo.name }}</el-col>
  104. <el-col :span="4"><b>收货人:</b> {{ order.bpOrderUserinfo.shouHuoRen }}</el-col>
  105. <el-col :span="6"><b>手机:</b> {{ order.bpOrderUserinfo.mobile }}</el-col>
  106. <el-col :span="9"><b>地址:</b> {{ order.bpOrderUserinfo.province +' '+ order.bpOrderUserinfo.city +' '+ order.bpOrderUserinfo.town +' '+ order.bpOrderUserinfo.address }}</el-col>
  107. </el-row>
  108. <el-table :data="cmReturn.shopOrderReturnedList" border fit highlight-current-row default-expand-all :header-cell-style="{background:'#e9f3f7',color:'#606266'}">
  109. <el-table-column label="商品信息" type="expand" width="80px">
  110. <template slot-scope="{row}">
  111. <el-table :data="row.cmReturnedPurchaseProductList" border fit highlight-current-row :header-cell-style="{background:'#f9f9f9',color:'#606266'}">
  112. <el-table-column label="商品图片" align="center" prop="image" width="100">
  113. <template slot-scope="scope">
  114. <el-popover
  115. placement="top-start"
  116. title=""
  117. width="120"
  118. trigger="hover"
  119. >
  120. <img :src="scope.row.mainImage" alt="" style="width:100px;height:100px;">
  121. <img slot="reference" :src="scope.row.mainImage" alt="" style="width:50px;height:50px;">
  122. </el-popover>
  123. </template>
  124. </el-table-column>
  125. <el-table-column label="商品名" align="center" prop="name" />
  126. <el-table-column label="规格" align="center" prop="unit" />
  127. <el-table-column label="购买数量" align="center" prop="num" width="100" />
  128. <el-table-column label="单价" align="center" prop="price" />
  129. <el-table-column label="总额" align="center" prop="totalAmount" />
  130. <el-table-column label="已发货" align="center" prop="sendOutNum" width="100" />
  131. <el-table-column label="已退货" align="center" prop="returnedPurchaseProductNum" width="100" />
  132. <el-table-column label="本次退货" align="center" prop="actualReturnedNum" width="100" />
  133. <el-table-column label="待发货" align="center" prop="notOutStore" width="100" />
  134. <el-table-column label="已取消" align="center" prop="cancelProductNum" width="100" />
  135. <el-table-column label="本次取消" align="center" prop="actualCancelNum" width="100" />
  136. </el-table>
  137. </template>
  138. </el-table-column>
  139. <el-table-column label="子订单编号(ID)" align="center" prop="shopOrderNos" width="240">
  140. <template slot-scope="{row}">
  141. <span>{{ row.shopOrderNo }}({{ row.shopOrderId }})</span>
  142. </template>
  143. </el-table-column>
  144. <el-table-column label="子订单金额" align="center" prop="productAmount" />
  145. <el-table-column label="发货状态" align="center" prop="sendOutStatus">
  146. <template slot-scope="{row}">
  147. <el-tag v-if="row.sendOutStatus*1===1" type="danger" size="small">待发货</el-tag>
  148. <el-tag v-if="row.sendOutStatus*1===2" type="warning" size="small">部分发货</el-tag>
  149. <el-tag v-if="row.sendOutStatus*1===3" type="success" size="small">已发货</el-tag>
  150. </template>
  151. </el-table-column>
  152. <el-table-column label="付款状态" align="center" prop="receiptStatus">
  153. <template slot-scope="{row}">
  154. <el-tag v-if="row.payStatus*1===1" type="danger" size="small">待付款</el-tag>
  155. <el-tag v-if="row.payStatus*1===2" type="warning" size="small">部分付款</el-tag>
  156. <el-tag v-if="row.payStatus*1===3" type="success" size="small">已付款</el-tag>
  157. </template>
  158. </el-table-column>
  159. <el-table-column label="供应商" align="center" prop="shopName" />
  160. </el-table>
  161. </div>
  162. </el-card>
  163. </div>
  164. </template>
  165. </div>
  166. </template>
  167. <script>
  168. import { organizeToRecturnRecordByOrderId } from '@/api/finance'
  169. export default {
  170. name: 'RefundRecord',
  171. filters: {
  172. statusFilter(status) {
  173. const map = {
  174. 0: '待付款',
  175. 1: '已付款',
  176. 2: '审核不通过'
  177. }
  178. return map[status]
  179. }
  180. },
  181. data() {
  182. return {
  183. order: {},
  184. repacts: {},
  185. products: [],
  186. cmReturnedPurchase: {},
  187. cmReturnedPurchaseList: []
  188. }
  189. },
  190. computed: {
  191. orderId: function() {
  192. return this.$route.query.orderId * 1
  193. }
  194. },
  195. created() {
  196. this.organizeToRecturnRecordByOrderId()
  197. },
  198. methods: {
  199. async organizeToRecturnRecordByOrderId() {
  200. try {
  201. const res = await organizeToRecturnRecordByOrderId(this.orderId)
  202. this.order = res.data.order
  203. this.cmReturnedPurchase = res.data.cmReturnedPurchase
  204. this.cmReturnedPurchaseList = res.data.cmReturnedPurchaseList
  205. console.log('res', res)
  206. } catch (error) {
  207. console.log('error', error)
  208. }
  209. }
  210. }
  211. }
  212. </script>
  213. <style scoped>
  214. .app-title{
  215. line-height: 36px;
  216. font-size: 26px;
  217. font-weight: bold;
  218. color: #409EFF;
  219. text-align: center;
  220. }
  221. .box-card{
  222. margin-top: 20px;
  223. font-size: 14px;
  224. }
  225. .box-row{
  226. padding: 10px 0;
  227. }
  228. .box-row .dropdown{
  229. margin-top: -10px;
  230. }
  231. .refund-item{
  232. padding: 5px 0;
  233. }
  234. .refund-item-title{
  235. line-height: 24px;
  236. font-size: 14px;
  237. color: #409EFF;
  238. margin: 0;
  239. }
  240. .order-item{
  241. background:#f7f7f7;
  242. margin-bottom: 20px;
  243. padding: 10px 15px;
  244. border-radius: 5px;
  245. }
  246. .product-row{
  247. padding: 10px 0;
  248. background: #EBEEF5;
  249. border-top: 1px dashed #DCDFE6;
  250. }
  251. .op-item{
  252. padding: 5px 0;
  253. }
  254. .el-span-warning{
  255. color: #E6A23C;
  256. }
  257. .el-span-success{
  258. color: #67C23A;
  259. }
  260. .el-span-danger{
  261. color: #F56C6C;
  262. }
  263. /deep/ .el-table__expanded-cell[class*=cell]{
  264. padding:10px 10px !important;
  265. }
  266. /deep/ .el-card__body{
  267. padding: 5px 20px !important;
  268. }
  269. </style>