list.php 9.3 KB

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