index.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. <?php
  2. use common\helpers\ComponentHelper;
  3. ComponentHelper::loadComponentView('com-export-dialog');
  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. <com-export-dialog style="float: right; margin-top: -5px;" :field_list='export_list' :action_url="export_url" :params="searchData"></com-export-dialog>
  11. </div>
  12. </div>
  13. <div class="table-body">
  14. <el-form :inline="true" :model="searchData" class="demo-form-inline">
  15. <el-col :span="24">
  16. <el-form-item size="small" label="批次号">
  17. <el-input v-model="searchData.batch_num" placeholder="批次号"></el-input>
  18. </el-form-item>
  19. <el-form-item size="small" label="订单号">
  20. <el-input v-model="searchData.order_sn" placeholder="订单号"></el-input>
  21. </el-form-item>
  22. <br>
  23. <el-form-item label="时间筛选">
  24. <el-date-picker
  25. size="small"
  26. v-model="searchData.date"
  27. type="datetimerange"
  28. range-separator="至"
  29. start-placeholder="开始日期"
  30. end-placeholder="结束日期"
  31. format="yyyy-MM-dd"
  32. value-format="yyyy-MM-dd"
  33. >
  34. </el-date-picker>
  35. </el-form-item>
  36. <el-form-item size="small" label="状态">
  37. <el-select v-model="searchData.status" class="select">
  38. <el-option :key="-1" label="打款失败" value="-1" >打款失败</el-option>
  39. <el-option :key="1" label="待提交审核" value="1" >待提交审核</el-option>
  40. <el-option :key="2" label="税方审核中" value="2" >税方审核中</el-option>
  41. <el-option :key="3" label="税方审核成功" value="3" >税方审核成功</el-option>
  42. <el-option :key="4" label="待出款" value="4" >待出款</el-option>
  43. <el-option :key="5" label="出款成功" value="5" >出款成功</el-option>
  44. </el-select>
  45. </el-form-item>
  46. <el-button type="primary" size="small" @click="onSubmit">查询</el-button>
  47. <el-button size="small" @click="resetForm">重置</el-button>
  48. </el-col>
  49. <el-form-item>
  50. <!-- <el-button type="success" v-loading="addLoading" size="small" @click="add()">添加交易</el-button> -->
  51. <!-- <el-button type="success" v-loading="addLoading" size="small" @click="addBatch()">批量汇款</el-button> -->
  52. </el-form-item>
  53. </el-form>
  54. <!-- 订单信息 -->
  55. <template>
  56. <el-table ref="multipleTable" :data="list" @selection-change="handleSelectionChange" v-loading="addLoading">
  57. <!-- 空数据 -->
  58. <template slot="empty">
  59. <el-empty description="暂无交易数据"></el-empty>
  60. </template>
  61. <el-table-column type="selection"></el-table-column>
  62. <el-table-column prop="batch_num" align="center" label="批次号">
  63. </el-table-column>
  64. <el-table-column prop="order_sn" align="center" label="订单号">
  65. </el-table-column>
  66. <el-table-column prop="name" align="center" label="收款人"></el-table-column>
  67. <el-table-column prop="mobile" align="center" label="收款账号"></el-table-column>
  68. <el-table-column prop="amount" align="center" label="打款金额"></el-table-column>
  69. <el-table-column prop="created_at" align="center" label="创建/修改时间">
  70. <template slot-scope="scope">
  71. {{ scope.row.created_at|dateTimeFormat('Y-m-d H:i:s') }}<br>
  72. {{ scope.row.updated_at|dateTimeFormat('Y-m-d H:i:s') }}
  73. </template>
  74. </el-table-column>
  75. <el-table-column prop="status_text" align="center" label="状态"></el-table-column>
  76. <el-table-column prop="error" align="center" label="错误信息"></el-table-column>
  77. <el-table-column prop="right_btn" label="操作" align="center">
  78. <template slot-scope="scope">
  79. <el-button v-loading="addLoading" size="mini" @click="detail(scope.row.batch_num)">打款详情</el-button>
  80. </template>
  81. </el-table-column>
  82. </el-table>
  83. </template>
  84. <el-dialog
  85. title="详情"
  86. :visible.sync="dialogVisible"
  87. width="30%"
  88. >
  89. <el-row>
  90. <el-col :span="22">
  91. <el-form ref="feeForm" :model="feeForm" label-width="120px">
  92. <el-form-item label="批次号">
  93. <el-input v-model="feeForm.batch_num" :disabled="true"></el-input>
  94. </el-form-item>
  95. <el-form-item label="订单号">
  96. <el-input v-model="feeForm.order_sn" :disabled="true"></el-input>
  97. </el-form-item>
  98. <el-form-item label="收款方名称">
  99. <el-input v-model="feeForm.name" :disabled="true"></el-input>
  100. </el-form-item>
  101. <el-form-item label="收款方账号">
  102. <el-input v-model="feeForm.mobile" :disabled="true"></el-input>
  103. </el-form-item>
  104. <el-form-item label="提现金额">
  105. <el-input v-model="feeForm.amount" :disabled="true"></el-input>
  106. </el-form-item>
  107. <el-form-item label="状态">
  108. <!-- <el-input v-model="feeForm.status" :disabled="true"></el-input> -->
  109. <el-select v-model="feeForm.status" :disabled="true">
  110. <el-option :key="-1" label="打款失败" :value="-1" >打款失败</el-option>
  111. <el-option :key="1" label="待提交审核" :value="1" >待提交审核</el-option>
  112. <el-option :key="2" label="税方审核中" :value="2" >税方审核中</el-option>
  113. <el-option :key="3" label="税方审核成功" :value="3" >税方审核成功</el-option>
  114. <el-option :key="4" label="待出款" :value="4" >待出款</el-option>
  115. <el-option :key="5" label="出款成功" :value="5" >出款成功</el-option>
  116. </el-select>
  117. </el-form-item>
  118. </el-form>
  119. </el-col>
  120. </el-row>
  121. <span slot="footer" class="dialog-footer">
  122. <el-button type="primary" @click="dialogVisible = false">关闭</el-button>
  123. </span>
  124. </el-dialog>
  125. <!-- 分页 -->
  126. <el-row type="flex" class="page" justify="end">
  127. <el-pagination @current-change="pagination" background layout="prev, pager, next" :page-count="pageCount" v-if="list"></el-pagination>
  128. </el-row>
  129. </div>
  130. </el-card>
  131. </div>
  132. <script>
  133. const app = new Vue({
  134. el: '#app',
  135. data() {
  136. return {
  137. searchData: {
  138. batch_num : '',
  139. order_sn : '',
  140. start_time : '',
  141. end_time : '',
  142. status : '',
  143. date : '',
  144. },
  145. list: [],
  146. pageCount: 0,
  147. page: 1,
  148. currentPage: null,
  149. listLoading: false,
  150. btnLoading: false,
  151. checked: false,
  152. addLoading: false,
  153. addVisible: false,
  154. transaction: {}, // 交易数据
  155. selectOrder: [],
  156. transLoading: false,
  157. dialogVisible: false,
  158. feeForm: {},
  159. export_list: {},
  160. export_url: 'avoid-tax/fee/index',
  161. };
  162. },
  163. methods: {
  164. resetForm() {
  165. this.searchData = {
  166. batch_num : '',
  167. order_sn : '',
  168. start_time : '',
  169. end_time : '',
  170. status : '',
  171. date : '',
  172. }
  173. },
  174. handleSelectionChange(val) {
  175. let ids = []
  176. val.forEach((item) => {
  177. ids.push(item.id)
  178. })
  179. this.selectOrder = ids
  180. },
  181. // 全选
  182. allSelect() {
  183. if (this.checked) {
  184. this.goods_list.forEach(function(item, index) {
  185. if (!item.storage) {
  186. item.is_select = true
  187. }
  188. })
  189. } else {
  190. this.goods_list.forEach(function(item, index) {
  191. item.is_select = false
  192. })
  193. }
  194. },
  195. //搜索
  196. onSubmit() {
  197. this.page = 1
  198. this.getList()
  199. },
  200. pagination(currentPage) {
  201. this.page = currentPage
  202. this.getList()
  203. },
  204. // 获取列表
  205. getList() {
  206. this.listLoading = true;
  207. var param = {
  208. r: 'avoid-tax/fee/index',
  209. page: this.page,
  210. limit: 20
  211. }
  212. Object.assign(param, param, this.searchData)
  213. request({
  214. params: param,
  215. }).then(e => {
  216. if (e.data.code === 0) {
  217. this.export_list = e.data.data.export_list;
  218. this.list = e.data.data.list
  219. this.pageCount = e.data.data.page_count
  220. this.currentPage = e.data.data.pagination.current_page
  221. } else {
  222. this.$message.error(e.data.msg)
  223. }
  224. this.listLoading = false
  225. }).catch(e => {
  226. this.listLoading = false
  227. })
  228. },
  229. /**
  230. * 手续费详情
  231. */
  232. detail(num) {
  233. this.dialogVisible = true
  234. this.feeForm = {}
  235. request({
  236. params: {
  237. r: 'avoid-tax/fee/detail',
  238. num: num
  239. },
  240. }).then(e => {
  241. if (e.data.code === 0) {
  242. this.feeForm = e.data.data
  243. } else {
  244. this.$message.error(e.data.msg)
  245. }
  246. this.listLoading = false
  247. }).catch(e => {
  248. this.listLoading = false
  249. })
  250. }
  251. },
  252. mounted: function() {
  253. this.page = getQuery('page') ? getQuery('page') : 1
  254. this.getList()
  255. }
  256. });
  257. </script>
  258. <style>
  259. .add-body {
  260. padding: 10px 20px;
  261. }
  262. .page {
  263. padding: 20px 0;
  264. }
  265. </style>