<template> <div class="refund"> <el-form ref="searchFrom" :model="searchFrom" label-width="100px"> <el-row> <el-col :span="4"> <el-form-item label="用户昵称"> <el-input v-model="searchFrom.nickname"></el-input> </el-form-item> </el-col> <el-col :span="4"> <el-form-item label="用户ID"> <el-input v-model="searchFrom.user_id"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="订单编号"> <el-input v-model="searchFrom.out_trade_no"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="退款状态"> <el-select v-model="searchFrom.status" placeholder="请选择" @change="getRefundList" clearable> <el-option v-for="item in refundTypeList" :key="item.id" :label="item.value" :value="item.id"> </el-option> </el-select> </el-form-item> </el-col> <el-col :span="4"> <el-form-item> <el-button type="primary" @click="getRefundList">搜索</el-button> </el-form-item> </el-col> </el-row> </el-form> <el-table :data="list" style="width: 100%"> <el-table-column prop="refund_no" label="退款编号"> </el-table-column> <el-table-column prop="out_trade_no" label="订单号"> </el-table-column> <el-table-column label="用户信息" min-width="140" className="userInfo" > <template slot-scope="scope"> <img class="avatar" :src="scope.row.user_avatar"> {{scope.row.user_nickname}}(ID:{{scope.row.user_id}}) </template> </el-table-column> <el-table-column prop="order_money" label="订单金额"> <template slot-scope="scope"> {{parseFloat(scope.row.order_money / 100)}}元 </template> </el-table-column> <el-table-column prop="refund_money" label="退款金额"> <template slot-scope="scope"> {{parseFloat(scope.row.refund_money / 100)}}元 </template> </el-table-column> <el-table-column prop="desc" label="备注"> </el-table-column> <el-table-column label="退款状态"> <template slot-scope="scope"> {{scope.row.status|filterStatus}} </template> </el-table-column> <el-table-column prop="success_at" label="退款成功时间"> </el-table-column> <el-table-column label="操作" min-width="80" v-if="!$store.state.readonly" > <template slot-scope="scope"> <el-button @click="editComment(scope.row.id, scope.row.desc)" type="warning" plain size="mini"> 备注 </el-button> </template> </el-table-column> </el-table> <page :nowPage="nowPage" :total="total" @pageChange="onPageChange" @sizeChange="onSizeChange"/> </div> </template> <script> import {getRefundListApi,editOrderDescApi} from "../../service/api"; import page from '../framework/page' export default { name: "index", components:{ page }, data(){ return { nowPage: 1, total: 0, limit: 10, refundTypeList:[ { id:0, value:'退款中' }, { id:1, value:'退款成功' }, { id:2, value:'退款失败' }, ], searchFrom: { nickname:'', user_id: '', out_trade_no:'', status:1 }, list: [] } }, filters:{ filterStatus:function (value) { let msg = ''; if(value === 0){ msg = '退款中' }else if(value === 1){ msg = '退款成功' }else if(value === 2){ msg = '退款失败' } return msg; } }, mounted(){ this.getRefundList() }, methods: { editComment(id, desc) { this.$prompt('编辑备注', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', inputType:'textarea', inputValue: desc }).then(({ value }) => { editOrderDescApi(id,'refund',{desc: value}).then(res=>{ this.$message({ type: 'success', message: '编辑备注成功' }); this.getRefundList() }); }) }, onPageChange(val){ this.nowPage = val; this.getRefundList() }, onSizeChange(val){ this.nowPage = 1; this.limit = val; this.getRefundList() }, getRefundList(){ let json = { limit: this.limit, page: this.nowPage, }; if(this.searchFrom.nickname){ json.nickname = this.searchFrom.nickname } if(this.searchFrom.user_id){ json.user_id = this.searchFrom.user_id } if(this.searchFrom.status){ json.status = this.searchFrom.status } if(this.searchFrom.out_trade_no){ json.out_trade_no = this.searchFrom.out_trade_no } getRefundListApi(json).then((res)=>{ this.total = res.total; this.list = res.list }) } } } </script> <style scoped> .refund{ padding: 20px 0; } .avatar { width:50px; height: 50px; border-radius: 50%; } </style> <style> .userInfo >div{ display: flex; flex-flow: row nowrap; justify-content: flex-start; align-items: center; } </style>