billPush-list.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. <template>
  2. <div>
  3. <el-breadcrumb separator=">">
  4. <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
  5. <el-breadcrumb-item>
  6. <a href="#">系统管理</a>
  7. </el-breadcrumb-item>
  8. <el-breadcrumb-item>
  9. <a href="#">账单推送管理</a>
  10. </el-breadcrumb-item>
  11. </el-breadcrumb>
  12. <el-divider></el-divider>
  13. <el-form ref="queryForm" :model="queryModel" inline class="demo-form-inline">
  14. <el-form-item label="账单名称" prop="name">
  15. <el-input type="text" size="mini" v-model="queryModel.name"></el-input>
  16. </el-form-item>
  17. <el-form-item>
  18. <el-button
  19. type="primary"
  20. size="mini"
  21. icon="ios-search"
  22. @click="changePage(1)"
  23. :loading="loading"
  24. >查询</el-button>&nbsp;
  25. <el-button
  26. type="info"
  27. size="mini"
  28. style="margin-left: 8px"
  29. @click="handleReset('queryForm')"
  30. >重置</el-button>&nbsp;
  31. </el-form-item>
  32. </el-form>
  33. <el-divider></el-divider>
  34. <el-row class="button-group">
  35. <el-button
  36. type="primary"
  37. size="small"
  38. plain
  39. icon="el-icon-circle-plus"
  40. @click="handleAdd"
  41. >创建账单</el-button
  42. >
  43. </el-row>
  44. <el-table :data="tableData" style="min-height:400px;" v-loading="loading" stripe>
  45. <el-table-column type="index" label="序号" :index="indexMethod" width="50"></el-table-column>
  46. <el-table-column prop="name" label="账单名称" width="120"></el-table-column>
  47. <el-table-column prop="bak" label="账单备注" width="120"></el-table-column>
  48. <el-table-column prop="collectionAccount" label="收款账户" width="120"></el-table-column>
  49. <el-table-column prop="payService" label="收费项目" width="120"></el-table-column>
  50. <el-table-column prop="pushTime" label="账单推送时间" width="120"></el-table-column>
  51. <el-table-column label="账单推送情况" width="180">
  52. <template slot-scope="{row}">
  53. <div>应发送人数:{{row.totalPushNumber}}</div>
  54. <div>实发送人数:{{row.actualPushNumber}}</div>
  55. <div>未通知人数:{{row.notYetPushNumber}}<span class="span-view"><el-link type="primary"><i class="el-icon-view"></i></el-link></span></div>
  56. </template>
  57. </el-table-column>
  58. <el-table-column label="账单收缴情况" width="180">
  59. <template slot-scope="{row}">
  60. <div>应收:{{row.totalReceivable}}元</div>
  61. <div>实收:{{row.netReceipts}}元</div>
  62. <div>未收:{{row.notReceived}}元<span class="span-view"><el-link type="primary"><i class="el-icon-view"></i></el-link></span></div>
  63. </template>
  64. </el-table-column>
  65. <el-table-column prop="payee" label="收款方" width="80"></el-table-column>
  66. <el-table-column label="操作">
  67. <template slot-scope="{row}">
  68. <div>
  69. <span class="link-span"><el-link type="success" @click="handleEdit(row)">导入名单</el-link></span>
  70. <el-link type="primary" @click="handleDelete(row)">查看详情</el-link>
  71. </div>
  72. <div>
  73. <span class="link-span"><el-link type="primary" @click="handleDelete(row)">推送账单</el-link></span>
  74. <el-link type="warning" @click="handleDelete(row)">关闭账单</el-link>
  75. </div>
  76. <el-link type="danger" @click="handleDelete(row)">删除账单</el-link>
  77. </template>
  78. </el-table-column>
  79. </el-table>
  80. <el-pagination
  81. :current-page.sync="pageIndex"
  82. :total="totalElements"
  83. :page-sizes="pageSizeList"
  84. @current-change="changePage"
  85. @size-change="pageSizeChange"
  86. layout="total, sizes, prev, pager, next, jumper"
  87. ></el-pagination>
  88. </div>
  89. </template>
  90. <script>
  91. import Constant from "@/constant";
  92. import billPushApi from "@/api/business/billPush";
  93. export default {
  94. name: "businessBillPushList",
  95. data() {
  96. var self = this;
  97. return {
  98. queryModel: {
  99. personName: "",
  100. status: "",
  101. requestTimeRange: ['',''],
  102. },
  103. loading: false,
  104. tableData: [],
  105. pageIndex: 1,
  106. pageSize: 10,
  107. totalPages: 0,
  108. totalElements: 0,
  109. pageSizeList: [10, 20, 30],
  110. multipleSelection: [],
  111. showModal: false,
  112. }
  113. },
  114. methods: {
  115. changePage(pageIndex) {
  116. var self = this;
  117. self.loading = true;
  118. self.pageIndex = pageIndex;
  119. var formData = new FormData();
  120. formData.append("pageIndex", self.pageIndex);
  121. formData.append("pageSize", self.pageSize);
  122. billPushApi.pageList(formData)
  123. .then(function(response) {
  124. self.loading = false;
  125. var jsonData = response.data.data;
  126. self.tableData = jsonData.data;
  127. self.totalPages = jsonData.totalPages;
  128. self.totalElements = jsonData.recordsTotal;
  129. })
  130. .catch(error => {
  131. self.loading = false;
  132. // self.$message.error(error + "");
  133. });
  134. },
  135. pageSizeChange(pageSize) {
  136. this.pageSize = pageSize;
  137. },
  138. },
  139. mounted: function() {
  140. this.changePage(1);
  141. }
  142. }
  143. </script>
  144. <style lang="scss" scoped>
  145. .el-breadcrumb {
  146. margin: 10px;
  147. line-height: 20px;
  148. }
  149. .el-divider {
  150. margin: 5px 0;
  151. }
  152. .demo-form-inline {
  153. margin-left: 10px;
  154. text-align: left;
  155. }
  156. .button-group {
  157. margin-left: 10px;
  158. text-align: left;
  159. }
  160. .link-span{
  161. margin-right: 30px;
  162. }
  163. .span-view{
  164. margin-left: 10px;
  165. }
  166. </style>