index.vue 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <template>
  2. <div class="main">
  3. <template v-if="isShowStatus === 'list'">
  4. <div class="search">
  5. <el-input placeholder="订单编号/业主/房间号" class="search-input" clearable v-model="mixins_query.name"></el-input>
  6. <el-select v-model="mixins_query.communityId" placeholder="所属社区" clearable>
  7. <el-option v-for="(item, index) in communityArr" :key="index" :label="item.communityName" :value="item.id"></el-option>
  8. </el-select>
  9. <el-input placeholder="欠费天数(大于)" class="search-input" clearable v-model="mixins_query.arrearageDays"></el-input>
  10. <el-button type="primary" class="search-btn" @click="mixins_search" icon="el-icon-search">查询 </el-button>
  11. <div class="search-icon">
  12. <el-tooltip effect="light" placement="bottom" content="催缴设置">
  13. <i class="zoniot_font zoniot-icon-cuijiaoshezhi" @click="toPageSet"></i>
  14. </el-tooltip>
  15. <el-tooltip effect="light" placement="bottom" content="全部通知">
  16. <i class="zoniot_font zoniot-icon-quanbucuijiao" @click="allNotice"></i>
  17. </el-tooltip>
  18. <el-tooltip effect="light" placement="bottom" content="批量通知">
  19. <i class="zoniot_font zoniot-icon-piliangcuijiao" @click="batchNotice"></i>
  20. </el-tooltip>
  21. <el-tooltip effect="light" placement="bottom" content="催缴记录">
  22. <i class="zoniot_font zoniot-icon-cuijiaojilu" @click="toPageRecord"></i>
  23. </el-tooltip>
  24. </div>
  25. </div>
  26. <div class="roles-wrap">
  27. <zz-table
  28. :cols="cols"
  29. :settings="{ showCheckbox: true, stripe: true }"
  30. :loading="mixins_onQuery"
  31. :data="mixins_list"
  32. :pageset="mixins_pageset"
  33. @page-change="pageChange"
  34. @selection-change="selectionChange"
  35. >
  36. </zz-table>
  37. </div>
  38. </template>
  39. <call-record v-if="isShowStatus === 'record'"></call-record>
  40. <call-set v-if="isShowStatus === 'set'"></call-set>
  41. </div>
  42. </template>
  43. <script>
  44. import list from '@utils/list.js';
  45. import callRecord from './callRecord.vue';
  46. import callSet from './callSet.vue';
  47. export default {
  48. mixins: [list],
  49. components: { callRecord, callSet },
  50. data() {
  51. return {
  52. isShowStatus: 'list',
  53. selectRow: [],
  54. cols: [
  55. {
  56. label: '订单号',
  57. prop: 'billNumber'
  58. },
  59. {
  60. label: '社区',
  61. prop: 'communityName'
  62. },
  63. {
  64. label: '房间',
  65. prop: 'assets'
  66. },
  67. {
  68. label: '业主',
  69. prop: 'residentName'
  70. },
  71. {
  72. label: '业主手机',
  73. prop: 'phone'
  74. },
  75. {
  76. label: '费用名称',
  77. prop: 'chargeName'
  78. },
  79. {
  80. label: '账期',
  81. prop: 'paymentDays'
  82. },
  83. {
  84. label: '费用金额(元)',
  85. prop: 'amount'
  86. },
  87. {
  88. label: '滞纳金(元)',
  89. prop: 'lateFee'
  90. },
  91. {
  92. label: '应收金额(元)',
  93. prop: 'receivableAmount'
  94. },
  95. {
  96. label: '应收时间',
  97. prop: 'receivableTime'
  98. },
  99. {
  100. label: '欠费天数',
  101. prop: 'arrearageDays'
  102. },
  103. {
  104. label: '最新下发通知时间',
  105. prop: 'lastCallPaymeetTime'
  106. }
  107. ],
  108. mixins_post: 'post',
  109. communityArr: []
  110. };
  111. },
  112. created() {
  113. this.getorgTree();
  114. this.mixins_dataUrl = '/sc-charge/charge/bill/page';
  115. this.mixins_query = {};
  116. this.mixins_search();
  117. },
  118. mounted() {},
  119. methods: {
  120. getorgTree() {
  121. this.$http
  122. .get('/sc-community/assets/community/list')
  123. .then((data) => {
  124. this.communityArr = data.data;
  125. this.$store.commit('setAreaSelect', data.data);
  126. })
  127. .catch(function () {});
  128. },
  129. toPageSet() {
  130. this.isShowStatus = 'set';
  131. },
  132. toPageRecord() {
  133. this.isShowStatus = 'record';
  134. },
  135. batchNotice() {
  136. if (!this.selectRow.length) {
  137. this.$message.error('您尚未选择要操作项,请选择后再操作');
  138. return;
  139. }
  140. let ids = [];
  141. this.selectRow.forEach((v) => {
  142. ids.push(v.id);
  143. });
  144. this.$http.post('/sc-charge/scChargeCallPaymentRecord/batchNotice', ids).then(({ status, data, msg }) => {
  145. if (0 === status) {
  146. this.$message({
  147. type: 'success',
  148. message: '催缴成功!'
  149. });
  150. this.mixins_search();
  151. }
  152. });
  153. },
  154. selectionChange(val) {
  155. this.selectRow = val;
  156. },
  157. allNotice() {
  158. if (!this.mixins_list.length) {
  159. this.$message.error('暂无数据无法催缴');
  160. return;
  161. }
  162. this.$http.post('/sc-charge/scChargeCallPaymentRecord/allNotice', this.mixins_query).then(({ status, data, msg }) => {
  163. if (0 === status) {
  164. this.$message({
  165. type: 'success',
  166. message: '催缴成功!'
  167. });
  168. this.mixins_search();
  169. }
  170. });
  171. }
  172. }
  173. };
  174. </script>