list.php 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336
  1. <div id="app" v-cloak>
  2. <el-card shadow="never" style="border:0;" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  3. <div slot="header">
  4. <div>
  5. <span>支付列表</span>
  6. </div>
  7. </div>
  8. <div class="table-body">
  9. <el-form :inline="true" :model="searchData" class="demo-form-inline">
  10. <el-form-item label="系统支付订单号">
  11. <el-input v-model="searchData.no" placeholder="系统支付订单号"></el-input>
  12. </el-form-item>
  13. <el-form-item label="状态">
  14. <el-select v-model="searchData.status" placeholder="状态">
  15. <el-option :label="value" :value="index" v-for="(value, index) in status"></el-option>
  16. </el-select>
  17. </el-form-item>
  18. <el-form-item label="支付类型">
  19. <el-select v-model="searchData.type" placeholder="支付类型">
  20. <el-option :label="value" :value="index" v-for="(value, index) in tradeType"></el-option>
  21. </el-select>
  22. </el-form-item>
  23. <el-form-item>
  24. <el-button type="primary" @click="onSubmit">查询</el-button>
  25. <el-button @click="resetForm">重置</el-button>
  26. </el-form-item>
  27. </el-form>
  28. <!-- 订单信息 -->
  29. <template>
  30. <el-table ref="multipleTable" :data="order_list" @selection-change="handleSelectionChange">
  31. <!-- 空数据 -->
  32. <!-- <template slot="empty">
  33. <el-empty description="暂无订单"></el-empty>
  34. </template> -->
  35. <el-table-column type="selection">
  36. </el-table-column>
  37. <el-table-column prop="sys_order_no" align="center" label="系统支付订单号">
  38. </el-table-column>
  39. <el-table-column prop="trx_no" align="center" label="汇聚分账支付订单号">
  40. </el-table-column>
  41. <el-table-column prop="trade.pay_fee" align="center" label="支付金额">
  42. </el-table-column>
  43. <el-table-column prop="trade.title" align="center" label="标题">
  44. </el-table-column>
  45. <el-table-column prop="trade_type_text" align="center" label="支付类型">
  46. </el-table-column>
  47. <el-table-column prop="status_text" align="center" label="状态">
  48. </el-table-column>
  49. <el-table-column prop="created_at" label="创建时间" align="center">
  50. <template slot-scope="scope">
  51. {{ scope.row.created_at|dateTimeFormat('Y-m-d H:i:s') }}
  52. </template>
  53. </el-table-column>
  54. </el-table>
  55. </template>
  56. <!-- 分页 -->
  57. <el-row type="flex" class="page" justify="end">
  58. <el-pagination @current-change="pagination" background layout="prev, pager, next" :page-count="pageCount" v-if="order_list"></el-pagination>
  59. </el-row>
  60. </div>
  61. </el-card>
  62. </div>
  63. <script>
  64. const app = new Vue({
  65. el: '#app',
  66. data() {
  67. return {
  68. searchData: {
  69. no: '',
  70. status: '',
  71. type: '',
  72. },
  73. order_list: [],
  74. status: {},
  75. tradeType: {},
  76. pageCount: 0,
  77. page: 1,
  78. currentPage: null,
  79. listLoading: false,
  80. btnLoading: false,
  81. checked: false,
  82. type: '',
  83. sort: '',
  84. };
  85. },
  86. methods: {
  87. handleSelectionChange(val) {
  88. this.select_order = val
  89. },
  90. // 全选
  91. allSelect() {
  92. if (this.checked) {
  93. this.goods_list.forEach(function(item, index) {
  94. if (!item.storage) {
  95. item.is_select = true
  96. }
  97. })
  98. } else {
  99. this.goods_list.forEach(function(item, index) {
  100. item.is_select = false
  101. })
  102. }
  103. },
  104. //搜索
  105. onSubmit() {
  106. this.page = 1
  107. this.getOrderList()
  108. },
  109. pagination(currentPage) {
  110. this.page = currentPage
  111. this.getOrderList()
  112. },
  113. getOrderList() {
  114. this.listLoading = true;
  115. var param = {
  116. r: 'huiju-bill/pay/list',
  117. page: this.page,
  118. limit: 20
  119. }
  120. Object.assign(param, param, this.searchData)
  121. request({
  122. params: param,
  123. }).then(e => {
  124. if (e.data.code === 0) {
  125. this.status = e.data.data.status
  126. this.tradeType = e.data.data.trade_type
  127. this.order_list = e.data.data.list
  128. this.pageCount = e.data.data.page_count
  129. this.currentPage = e.data.data.pagination.current_page
  130. } else {
  131. this.$message.error(e.data.msg)
  132. }
  133. this.listLoading = false
  134. }).catch(e => {
  135. this.listLoading = false
  136. })
  137. },
  138. //重置
  139. resetForm() {
  140. this.searchData = {
  141. no: '',
  142. status: '',
  143. type: '',
  144. }
  145. },
  146. },
  147. mounted: function() {
  148. this.page = getQuery('page') ? getQuery('page') : 1
  149. this.getOrderList()
  150. }
  151. });
  152. </script>
  153. <style>
  154. .table-body {
  155. padding: 20px;
  156. background-color: #fff;
  157. }
  158. .input-item {
  159. display: inline-block;
  160. width: 150px;
  161. margin: 0 0 20px;
  162. margin-right: 10px;
  163. }
  164. .input-item .el-input__inner {
  165. border-right: 1px solid #dcdfe6;
  166. }
  167. .input-item .el-input__inner:hover {
  168. border: 1px solid #dcdfe6;
  169. border-right: 0;
  170. outline: 0;
  171. }
  172. .input-item .el-input__inner:focus {
  173. border: 1px solid #dcdfe6;
  174. border-right: 0;
  175. outline: 0;
  176. }
  177. .input-item .el-input-group__append {
  178. background-color: #fff;
  179. border-left: 0;
  180. width: 10%;
  181. padding: 0;
  182. }
  183. .input-item .el-input-group__append .el-button {
  184. padding: 0;
  185. }
  186. .input-item .el-input-group__append .el-button {
  187. margin: 0;
  188. }
  189. .select {
  190. float: left;
  191. width: 100px;
  192. margin-right: 10px;
  193. }
  194. .el-table th>.cell {
  195. color: #333;
  196. font-weight: bold;
  197. font-size: 14px;
  198. }
  199. .el-table__footer-wrapper,
  200. .el-table__header-wrapper {
  201. border-bottom: 1.4px solid #D6D6D6;
  202. }
  203. .search-sort {
  204. display: inline-block;
  205. margin: 0px 10px;
  206. cursor: pointer;
  207. color: rgb(51, 51, 51);
  208. }
  209. .caret-wrapper {
  210. display: inline-flex;
  211. flex-direction: column;
  212. align-items: center;
  213. height: 25px;
  214. width: 11px;
  215. vertical-align: middle;
  216. cursor: pointer;
  217. overflow: initial;
  218. position: relative;
  219. }
  220. .caret-top {
  221. border: 5px solid transparent;
  222. margin: 1px 0;
  223. border-bottom-color: rgb(51, 51, 51);
  224. }
  225. .caret-bottom {
  226. border: 5px solid transparent;
  227. margin: 1px 0;
  228. border-top-color: rgb(51, 51, 51);
  229. }
  230. .active {
  231. border-top-color: rgb(41, 186, 156);
  232. }
  233. .ellipsis {
  234. font-size: .14rem;
  235. color: #333;
  236. overflow: hidden;
  237. text-overflow: ellipsis;
  238. }
  239. .goods-wrapper {
  240. border: 2px solid #CCCCCC;
  241. display: inline-block
  242. }
  243. .goods-select {
  244. border: 2px solid #bb730c;
  245. }
  246. .goods-price {
  247. text-align: center;
  248. }
  249. .goods-price .number {
  250. color: red;
  251. font-weight: 600;
  252. font-size: .18rem;
  253. }
  254. .goods-price .title {
  255. padding: 5px 0;
  256. color: #999;
  257. ;
  258. font-size: .1rem;
  259. font-weight: 600;
  260. }
  261. .bottom-price .title {
  262. padding: 5px 0;
  263. color: #8b8888;
  264. ;
  265. font-size: .1rem;
  266. }
  267. .bottom-price .number {
  268. color: #ff5100;
  269. font-size: .1rem;
  270. }
  271. .goods-action {
  272. margin-top: 0.8rem;
  273. }
  274. .goods-action .title {
  275. color: #0634aa;
  276. }
  277. .bottom-active {
  278. border-bottom-color: rgb(186, 41, 92);
  279. }
  280. .top-active {
  281. border-top-color: rgb(186, 41, 92);
  282. }
  283. .price {
  284. white-space: nowrap;
  285. }
  286. .goods-image {
  287. display: flex;
  288. justify-content: center;
  289. }
  290. .page {
  291. padding: 10px 0;
  292. }
  293. </style>