charge-list.blade.php 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. @extends('layouts.base')
  2. @section('title', "充值记录")
  3. @section('content')
  4. <link rel="stylesheet" href="{{resource_get('plugins/phone-bill-pro/views/backend/index.css')}}">
  5. <style>
  6. /* 导航 */
  7. .el-radio-button .el-radio-button__inner,.el-radio-button:first-child .el-radio-button__inner {border-radius: 4px 4px 4px 4px;border-left: 0px;}
  8. .el-radio-button__inner{border:0;}
  9. .el-radio-button:last-child .el-radio-button__inner {border-radius: 4px 4px 4px 4px;}
  10. </style>
  11. <div class="all">
  12. <div id="app" v-cloak>
  13. <div class="vue-head">
  14. <div class="vue-main-title" style="margin-bottom:20px">
  15. <div class="vue-main-title-left"></div>
  16. <div class="vue-main-title-content">条件筛选</div>
  17. <div class="vue-main-title-button">
  18. </div>
  19. </div>
  20. <div class="vue-search">
  21. <el-form :inline="true" :model="search_form" class="demo-form-inline">
  22. <el-form-item label="">
  23. <el-input v-model="search_form.member_id" placeholder="会员ID"></el-input>
  24. </el-form-item>
  25. <el-form-item label="">
  26. <el-input v-model="search_form.member" placeholder="昵称/姓名/手机号"></el-input>
  27. </el-form-item>
  28. <el-form-item label="">
  29. <el-input v-model="search_form.order_sn" placeholder="订单号/第三方订单号"></el-input>
  30. </el-form-item>
  31. <el-form-item label="">
  32. <el-input v-model="search_form.mobile" placeholder="手机号"></el-input>
  33. </el-form-item>
  34. <el-form-item label="">
  35. <el-select v-model="search_form.status" clearable placeholder="请选择状态">
  36. <el-option label="待充值" value="1"></el-option>
  37. <el-option label="充值中" value="2"></el-option>
  38. <el-option label="充值成功" value="3"></el-option>
  39. <el-option label="充值失败(会自动退款)" value="4"></el-option>
  40. <el-option label="充值失败(已退款/不退款)" value="5"></el-option>
  41. </el-select>
  42. </el-form-item>
  43. <el-form-item label="">
  44. <el-date-picker
  45. v-model="times"
  46. type="datetimerange"
  47. value-format="yyyy-MM-dd HH:mm:ss"
  48. range-separator="至"
  49. start-placeholder="开始日期"
  50. end-placeholder="结束日期"
  51. style="margin-left:5px;"
  52. align="right">
  53. </el-date-picker>
  54. </el-form-item>
  55. <el-form-item label="">
  56. <el-button type="primary" @click="search(1)">搜索</el-button>
  57. </el-form-item>
  58. </el-form>
  59. </div>
  60. </div>
  61. <div class="vue-main">
  62. <div>
  63. <div class="vue-main-title" style="margin-bottom:20px">
  64. <div class="vue-main-title-left"></div>
  65. <div class="vue-main-title-content" style="flex:0 0 120px">充值记录</div>
  66. <div class="vue-main-title-button">
  67. </div>
  68. </div>
  69. <el-table :data="list" style="width: 100%">
  70. <el-table-column label="会员ID" align="center" prop="member_id" ></el-table-column>
  71. <el-table-column label="会员" align="center" prop="">
  72. <template slot-scope="scope">
  73. <div>
  74. <img v-if="scope.row.member" :src="scope.row.member.avatar" alt="" style="width:50px;height:50px">
  75. <div v-if="scope.row.member">[[scope.row.member.nickname]]</div>
  76. </div>
  77. </template>
  78. </el-table-column>
  79. <el-table-column label="手机号" align="center" prop="mobile" ></el-table-column>
  80. <el-table-column label="订单号/第三方订单号" align="center">
  81. <template slot-scope="scope">
  82. [[scope.row.has_one_pre_order?scope.row.has_one_pre_order.order_sn:'']]
  83. </template>
  84. </el-table-column>
  85. <el-table-column label="充值时间" align="center" prop="created_at" >
  86. {{--<template slot-scope="scope">--}}
  87. {{--[[scope.has_one_pre_order.created_at]]--}}
  88. {{--</template>--}}
  89. </el-table-column>
  90. <el-table-column label="充值状态" align="center" prop="phone_bill_state_name"></el-table-column>
  91. <el-table-column label="充值信息" align="center" prop="return_msg">
  92. <template slot-scope="scope">
  93. [[scope.row.has_one_pre_order?scope.row.has_one_pre_order.return_msg:'']]
  94. </template>
  95. </el-table-column>
  96. <el-table-column label="回调信息" align="center" prop="">
  97. <template slot-scope="scope">
  98. [[scope.row.has_one_pre_order&&scope.row.has_one_pre_order.has_one_call_back ?scope.row.has_one_pre_order.has_one_call_back.status:'']]
  99. <br/>
  100. [[scope.row.has_one_pre_order&&scope.row.has_one_pre_order.has_one_call_back ?scope.row.has_one_pre_order.has_one_call_back.reason:'']]
  101. </template>
  102. </el-table-column>
  103. </el-table>
  104. </div>
  105. </div>
  106. <!-- 分页 -->
  107. <div class="vue-page" v-if="total>0">
  108. <el-row>
  109. <el-col align="right">
  110. <el-pagination layout="prev, pager, next,jumper" @current-change="search" :total="total"
  111. :page-size="per_page" :current-page="current_page" background
  112. ></el-pagination>
  113. </el-col>
  114. </el-row>
  115. </div>
  116. </div>
  117. </div>
  118. <script>
  119. var app = new Vue({
  120. el: "#app",
  121. delimiters: ['[[', ']]'],
  122. name: 'test',
  123. data() {
  124. return {
  125. list:[],
  126. times:[],
  127. search_form:{
  128. member_id:'',
  129. member:'',
  130. order_sn:'',
  131. mobile:'',
  132. search_time:'',
  133. status:'',
  134. },
  135. rules: {},
  136. current_page:1,
  137. total:1,
  138. per_page:1,
  139. }
  140. },
  141. created() {
  142. },
  143. mounted() {
  144. this.getData(1);
  145. },
  146. methods: {
  147. getData(page) {
  148. let search = JSON.parse(JSON.stringify(this.search_form));
  149. if(this.times && this.times.length>0) {
  150. search.start_time = this.times[0];
  151. search.end_time = this.times[1];
  152. }
  153. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  154. this.$http.post('{!! yzWebFullUrl('plugin.phone-bill-pro.backend.order-list.charge-order') !!}',{page:page,search:search}).then(function(response) {
  155. if (response.data.result) {
  156. this.list = response.data.data.list.data;
  157. this.current_page=response.data.data.list.current_page;
  158. this.total=response.data.data.list.total;
  159. this.per_page=response.data.data.list.per_page;
  160. loading.close();
  161. } else {
  162. this.$message({
  163. message: response.data.msg,
  164. type: 'error'
  165. });
  166. }
  167. loading.close();
  168. }, function(response) {
  169. this.$message({
  170. message: response.data.msg,
  171. type: 'error'
  172. });
  173. loading.close();
  174. });
  175. },
  176. search(val) {
  177. this.getData(val);
  178. },
  179. // 字符转义
  180. escapeHTML(a) {
  181. a = "" + a;
  182. return a.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, "\"").replace(/&apos;/g, "'");;
  183. },
  184. },
  185. })
  186. </script>
  187. @endsection