index.php 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <?php
  2. use common\helpers\ComponentHelper;
  3. ComponentHelper::loadComponentView('com-user-info');
  4. ?>
  5. <div id="app" v-cloak>
  6. <el-card shadow="never" style="border:0;" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  7. <div slot="header">
  8. <div>
  9. <span>支付列表</span>
  10. </div>
  11. </div>
  12. <div class="table-body">
  13. <el-form
  14. :inline="true"
  15. :model="searchData"
  16. size="mini"
  17. >
  18. <el-row>
  19. <el-form-item label="会员ID">
  20. <el-input v-model="searchData.user_id" placeholder="会员ID"></el-input>
  21. </el-form-item>
  22. <el-form-item label="会员昵称/手机号">
  23. <el-input v-model="searchData.user_keyword" placeholder="会员昵称/手机号"></el-input>
  24. </el-form-item>
  25. <el-form-item label="支付单号">
  26. <el-input v-model="searchData.order_no" placeholder="支付单号"></el-input>
  27. </el-form-item>
  28. </el-row>
  29. <el-row>
  30. <el-form-item label="创建时间">
  31. <el-date-picker
  32. v-model="searchData.time"
  33. type="datetimerange"
  34. range-separator="至"
  35. start-placeholder="开始日期"
  36. end-placeholder="结束日期"
  37. >
  38. </el-date-picker>
  39. </el-form-item>
  40. </el-row>
  41. <el-row>
  42. <el-form-item>
  43. <el-button type="primary" @click="onSubmit">查询</el-button>
  44. <el-button @click="resetForm">重置</el-button>
  45. </el-form-item>
  46. </el-row>
  47. </el-form>
  48. <!-- 订单信息 -->
  49. <template>
  50. <el-table ref="multipleTable" :data="list" @selection-change="handleSelectionChange">
  51. <!-- 空数据 -->
  52. <template slot="empty">
  53. <el-empty description="暂无订单"></el-empty>
  54. </template>
  55. <!-- 数据 -->
  56. <el-table-column type="selection"></el-table-column>
  57. <el-table-column prop="user_id" align="center" label="会员ID"></el-table-column>
  58. <el-table-column prop="user_id" align="center" label="会员名称">
  59. <template slot-scope="scope">
  60. <com-user-info :user="scope.row.user"></com-user-info>
  61. </template>
  62. </el-table-column>
  63. <el-table-column prop="trade.out_trade_no" align="center" label="系统支付订单号"></el-table-column>
  64. <el-table-column prop="trade.pay_fee" align="center" label="支付金额"></el-table-column>
  65. <el-table-column prop="trade.title" align="center" label="标题"></el-table-column>
  66. <el-table-column prop="trade.is_pay" align="center" label="状态">
  67. <template slot-scope="scope">
  68. <el-tag v-if="scope.row.trade.is_pay == 1" size="mini" type="success">已支付</el-tag>
  69. <el-tag v-if="scope.row.trade.is_pay == 0" size="mini" type="warning">未支付</el-tag>
  70. </template>
  71. </el-table-column>
  72. <el-table-column prop="created_at" label="创建时间" align="center">
  73. <template slot-scope="scope">
  74. {{ scope.row.created_at|dateTimeFormat('Y-m-d H:i:s') }}
  75. </template>
  76. </el-table-column>
  77. <el-table-column align="center" label="标题">
  78. <template slot-scope="scope">
  79. <el-button
  80. size="mini"
  81. type="primary"
  82. :disabled="scope.row.is_split_bill ? false : true"
  83. @click="showSplitBill(scope.row.id)"
  84. >
  85. 查看分账
  86. </el-button>
  87. </template>
  88. </el-table-column>
  89. </el-table>
  90. </template>
  91. <!-- 分页 -->
  92. <el-row type="flex" class="page" justify="end" style="margin-top: 15px">
  93. <el-pagination
  94. @current-change="pagination"
  95. background
  96. layout="prev, pager, next"
  97. :page-count="pageCount"
  98. v-if="list"
  99. ></el-pagination>
  100. </el-row>
  101. </div>
  102. </el-card>
  103. <el-dialog title="分账信息" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
  104. <!-- 分账信息 -->
  105. <div>
  106. <template>
  107. <el-table :data="splitBill" style="width: 100%">
  108. <el-table-column prop="store_type" label="门店类型">
  109. <template slot-scope="scope">
  110. <el-tag size="mini" v-if="scope.row.store_type == 0">平台</el-tag>
  111. <el-tag size="mini" v-if="scope.row.store_type == 1" type="success">门店</el-tag>
  112. </template>
  113. </el-table-column>
  114. <el-table-column prop="store_name" label="店铺名称"></el-table-column>
  115. <el-table-column prop="amount" label="分账金额(单位: 元)"></el-table-column>
  116. </el-table>
  117. </template>
  118. </div>
  119. <span slot="footer" class="dialog-footer">
  120. <el-button @click="dialogVisible = false">确 定</el-button>
  121. </span>
  122. </el-dialog>
  123. </div>
  124. <script>
  125. const app = new Vue({
  126. el: '#app',
  127. data() {
  128. return {
  129. limit: 20,
  130. searchData: {
  131. user_id : undefined,
  132. user_keyword : undefined,
  133. order_no : undefined,
  134. time : [],
  135. },
  136. list: [],
  137. pageCount: 0,
  138. page: 1,
  139. currentPage: null,
  140. listLoading: false,
  141. btnLoading: false,
  142. dialogVisible: false,
  143. biilLoading: false,
  144. splitBill: [],
  145. };
  146. },
  147. methods: {
  148. handleSelectionChange(val) {
  149. this.select_order = val
  150. },
  151. // 全选
  152. allSelect() {
  153. if (this.checked) {
  154. this.goods_list.forEach(function(item, index) {
  155. if (!item.storage) {
  156. item.is_select = true
  157. }
  158. })
  159. } else {
  160. this.goods_list.forEach(function(item, index) {
  161. item.is_select = false
  162. })
  163. }
  164. },
  165. //搜索
  166. onSubmit() {
  167. this.page = 1
  168. this.getOrderList()
  169. },
  170. pagination(currentPage) {
  171. this.page = currentPage
  172. this.getOrderList()
  173. },
  174. getOrderList() {
  175. this.listLoading = true;
  176. request({
  177. params: {
  178. r: 'yunfast-pay/order/index',
  179. page: this.page,
  180. limit: this.limit
  181. },
  182. method: 'post',
  183. data: this.searchData,
  184. }).then(e => {
  185. if (e.data.code === 0) {
  186. this.list = e.data.data.list
  187. this.pageCount = e.data.data.page_count
  188. this.currentPage = e.data.data.pagination.current_page
  189. } else {
  190. this.$message.error(e.data.msg)
  191. }
  192. this.listLoading = false
  193. }).catch(e => {
  194. this.listLoading = false
  195. })
  196. },
  197. //重置
  198. resetForm() {
  199. this.searchData = {
  200. user_id : undefined,
  201. user_keyword : undefined,
  202. order_no : undefined,
  203. time : [],
  204. }
  205. },
  206. // 分账信息模态框
  207. showSplitBill(id) {
  208. this.dialogVisible = true
  209. this.getSplitBill(id)
  210. },
  211. // 获取分账信息
  212. getSplitBill(id) {
  213. this.biilLoading = true
  214. request({
  215. params: {
  216. r: 'yunfast-pay/order/split-bill',
  217. id: id
  218. },
  219. method: 'get',
  220. }).then(e => {
  221. if (e.data.code === 0) {
  222. this.splitBill = e.data.data
  223. } else {
  224. this.$message.error(e.data.msg)
  225. }
  226. this.biilLoading = false
  227. }).catch(e => {
  228. this.biilLoading = false
  229. })
  230. },
  231. },
  232. mounted: function() {
  233. this.page = getQuery('page') ? getQuery('page') : 1
  234. this.limit = getQuery('limit') ? getQuery('limit') : 20
  235. this.getOrderList()
  236. }
  237. });
  238. </script>
  239. <style>
  240. </style>