withdraw.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <template>
  2. <view id="withdraw">
  3. <z-table class="table" :data="tableData" :keys="tableProps" :labels="tableHeaders" />
  4. </view>
  5. </template>
  6. <script>
  7. import tableMixin from '../mixins/table'
  8. const tableHeaders = [
  9. '用户ID',
  10. '真实姓名',
  11. '提现金额',
  12. '到账金额',
  13. '账户余额',
  14. '到账账户',
  15. '提现时间',
  16. '到账时间',
  17. '订单号',
  18. '支付方式',
  19. '状态'
  20. ]
  21. const tableProps = [
  22. 'uid',
  23. 'real_name',
  24. 'amount',
  25. 'true_amount',
  26. 'after_amount',
  27. 'account',
  28. 'created_atShow',
  29. 'taken_atShow',
  30. 'order_no',
  31. 'channel',
  32. 'statusShow'
  33. ]
  34. export default {
  35. mixins: [tableMixin],
  36. data() {
  37. return {
  38. // 数据总条目
  39. totalCount: 0,
  40. currentPage: 1,
  41. // 列表头显示内容
  42. tableHeaders,
  43. // 列表头字段
  44. tableProps,
  45. // 列表数据
  46. tableData: []
  47. }
  48. },
  49. mounted() {
  50. this.getTableData()
  51. },
  52. methods: {
  53. // 点击重试
  54. async clickRetry(id) {
  55. const res = await this.$post('/api/admin/payment/redoDraw', { id })
  56. console.log(res)
  57. },
  58. // 点击用户的 uid
  59. clickUID(uid) {
  60. console.log('click uid: ' + uid)
  61. },
  62. // 根据状态显示图表样式
  63. tableRowClassName({ row, rowIndex }) {
  64. // console.log({row, rowIndex})
  65. let className = ''
  66. if(row.status === '1') className = 'success-row'
  67. return className
  68. },
  69. // 格式化列表数据
  70. formatTableData(data) {
  71. return data.map(i => ({
  72. ...i,
  73. statusShow: i.status === '1' ? '到账' : '失败',
  74. created_atShow: new Date(Number(i.created_at) * 1000).toLocaleString(),
  75. taken_atShow: new Date(Number(i.taken_at) * 1000).toLocaleString(),
  76. }))
  77. },
  78. // 获取列表数据
  79. async getTableData(page = 1) {
  80. const res = await this.$post('/api/admin/payment/listDraw', { page })
  81. // console.log(res)
  82. const data = res.data
  83. this.tableData = this.formatTableData(res.data.list)
  84. // console.log(this.tableData)
  85. this.totalCount = Number(data.total)
  86. this.totalPage = data.totalPage
  87. }
  88. }
  89. }
  90. </script>
  91. <style lang='less' scoped>
  92. .table {
  93. height: calc(100% - 40px);
  94. }
  95. </style>