index.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" :inline="true" @submit.native.prevent v-show="showSearch">
  4. <el-form-item label="充值编号" prop="nums">
  5. <el-input v-model="queryParams.nums" placeholder="充值编号" @keyup.enter.native="handleQuery" clearable />
  6. </el-form-item>
  7. <el-form-item label="充值人" prop="name">
  8. <el-input v-model="queryParams.name" placeholder="充值人姓名" @keyup.enter.native="handleQuery" class="inp" clearable />
  9. </el-form-item>
  10. <el-form-item label="充值状态" prop="state">
  11. <el-select v-model="queryParams.state" placeholder="充值状态" clearable style="width: 117px">
  12. <el-option value="0" label="未支付"></el-option>
  13. <el-option value="1" label="充值成功"></el-option>
  14. </el-select>
  15. </el-form-item>
  16. <el-form-item label="充值日期">
  17. <el-date-picker v-model="dateRange" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
  18. </el-form-item>
  19. <el-form-item>
  20. <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
  21. <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
  22. </el-form-item>
  23. </el-form>
  24. <el-table :data="response.rows" border height="calc(100vh - 235px)">
  25. <el-table-column type="index" label="序号" align="center" width="80" />
  26. <el-table-column label="充值编号" align="center" prop="nums" />
  27. <el-table-column label="充值人" align="center" prop="money" width="110">
  28. <template slot-scope="scope">
  29. <span class="pon" @click="op('info', scope.row)">{{ scope.row.name }}</span>
  30. </template>
  31. </el-table-column>
  32. <el-table-column label="充值金额" align="center" prop="money" width="130" />
  33. <el-table-column label="充值方式" align="center" width="130">
  34. <template slot-scope="scope">
  35. <span class="icon" v-if="scope.row.payWay == 0" style="color: #4caf50">&#xe620; 微信充值</span>
  36. <span class="icon" v-else style="color: #ff5722">&#xe66b; 转账充值</span>
  37. </template>
  38. </el-table-column>
  39. <el-table-column label="充值状态" align="center" prop="state" width="130">
  40. <template slot-scope="scope">
  41. <el-tag type="danger" v-if="scope.row.state == 0 && scope.row.payWay == 0">未支付</el-tag>
  42. <el-tag type="danger" v-if="scope.row.state == 0 && scope.row.payWay == 1">待确认</el-tag>
  43. <el-tag type="success" v-if="scope.row.state == 1">充值成功</el-tag>
  44. <el-popover placement="top-start" v-if="scope.row.state == 2 && scope.row.payWay == 1" title="原因" width="200" trigger="hover" :content="scope.row.msg">
  45. <div slot="reference">
  46. <el-tag type="danger">驳回</el-tag>
  47. <i class="el-icon-warning"></i>
  48. </div>
  49. </el-popover>
  50. </template>
  51. </el-table-column>
  52. <el-table-column label="充值时间" align="center" prop="createTime" width="160" />
  53. <el-table-column label="操作" align="center" width="160">
  54. <template slot-scope="scope">
  55. <el-button size="mini" type="text" icon="el-icon-view" @click="op('detail', scope.row)" v-hasPermi="['work:pay:list']">详情</el-button>
  56. <el-button size="mini" type="text" icon="el-icon-edit" @click="op('audit', scope.row)" v-hasPermi="['work:pay:audit']" v-if="scope.row.state == 0 && scope.row.payWay == 1">确认</el-button>
  57. </template>
  58. </el-table-column>
  59. <template slot="empty">
  60. <el-empty></el-empty>
  61. </template>
  62. </el-table>
  63. <pagination v-if="response.total > 0" :total="response.total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
  64. </div>
  65. </template>
  66. <script>
  67. import detail from './detail.vue';
  68. import info from '@/views/work/user/edit';
  69. export default {
  70. name: 'Pay',
  71. data() {
  72. return {
  73. showSearch: true,
  74. response: {},
  75. dateRange: [],
  76. queryParams: {
  77. pageNum: 1,
  78. pageSize: 10,
  79. nums: null,
  80. name: null,
  81. state: null,
  82. type: 0,
  83. orderByColumn: 'id',
  84. isAsc: 'desc'
  85. }
  86. };
  87. },
  88. created() {
  89. this.getList();
  90. },
  91. methods: {
  92. getList() {
  93. if (this.dateRange) {
  94. this.queryParams.dateBegin = this.dateRange[0];
  95. this.queryParams.dateEnd = this.dateRange[1];
  96. }
  97. this.ajax({ url: '/work/pay/list', data: this.queryParams }).then((response) => {
  98. this.response = response;
  99. });
  100. },
  101. handleQuery() {
  102. this.queryParams.pageNum = 1;
  103. this.getList();
  104. },
  105. resetQuery() {
  106. this.resetForm('queryForm');
  107. this.dateRange = [];
  108. this.handleQuery();
  109. },
  110. op(tag, row) {
  111. if (tag == 'info') {
  112. this.iframe({ obj: info, param: { id: row.userId, detail: true }, title: '用户详情', width: '55%', height: '65%' });
  113. }
  114. if (tag == 'detail') {
  115. this.iframe({ obj: detail, param: { id: row.id, detail: true }, title: '充值详情', width: '35%', height: '60%' });
  116. }
  117. if (tag == 'audit') {
  118. this.iframe({ obj: detail, param: { id: row.id }, title: '充值确认', width: '35%', height: '60%' });
  119. }
  120. }
  121. }
  122. };
  123. </script>