depositBalance.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <template>
  2. <div class="modelBlock">
  3. <div class="model-title">
  4. <div class="model-title-text">押金余额分析</div>
  5. <div class="model-title-right">
  6. <el-select
  7. v-model="mixins_query.depositType"
  8. placeholder="押金类型"
  9. clearable
  10. class="saveColumn-select"
  11. @change="getData"
  12. >
  13. <el-option
  14. label="装修押金"
  15. :value="1"
  16. ></el-option>
  17. <el-option
  18. label="租赁押金"
  19. :value="2"
  20. ></el-option>
  21. </el-select>
  22. <el-date-picker
  23. value-format="yyyy"
  24. v-model="date"
  25. type="year"
  26. placeholder="选择年"
  27. class="saveColumn-select saveColumn-select-time"
  28. @change="changeTime"
  29. :clearable="false"
  30. >
  31. </el-date-picker>
  32. </div>
  33. </div>
  34. <div class="model-content">
  35. <zz-echart
  36. :option="clientOptions"
  37. class="chart"
  38. ></zz-echart>
  39. </div>
  40. </div>
  41. </template>
  42. <script>
  43. import { columnOptionsChartName } from './indexOptionChart.js';
  44. import allcommunit from './allcommunit';
  45. export default {
  46. mixins: [allcommunit],
  47. data () {
  48. return {
  49. mixins_query: {
  50. communityId: '',
  51. depositType: '',
  52. year: ''
  53. },
  54. date: '',
  55. clientOptions: columnOptionsChartName(
  56. '(元)',
  57. ['应收', '已收', '已退', '余额'],
  58. [
  59. {
  60. name: '应收',
  61. data: 0
  62. },
  63. {
  64. name: '已收',
  65. data: 0
  66. },
  67. {
  68. name: '已退',
  69. data: 0
  70. },
  71. {
  72. name: '余额',
  73. data: 0
  74. }
  75. ],
  76. [],
  77. 10
  78. )
  79. };
  80. },
  81. mounted () { },
  82. computed: {},
  83. methods: {
  84. getData () {
  85. this.$http
  86. .get('/sc-charge/deposit/statistics/balance', this.mixins_query)
  87. .then(({ status, data, msg }) => {
  88. if (status == 0 && !!data) {
  89. this.clientOptions = columnOptionsChartName(
  90. '(元)',
  91. ['应收', '已收', '已退', '余额'],
  92. [
  93. {
  94. name: '应收',
  95. data: data.amount || 0
  96. },
  97. {
  98. name: '已收',
  99. data: data.paymentAmount || 0
  100. },
  101. {
  102. name: '已退',
  103. data: data.refundAmount || 0
  104. },
  105. {
  106. name: '余额',
  107. // data: data.balance || 0
  108. data: (data.paymentAmount - data.refundAmount) || 0
  109. }
  110. ],
  111. [],
  112. 10
  113. );
  114. } else {
  115. this.clientOptions = columnOptionsChartName(
  116. '(元)',
  117. ['应收', '已收', '已退', '余额'],
  118. [
  119. {
  120. name: '应收',
  121. data: 0
  122. },
  123. {
  124. name: '已收',
  125. data: 0
  126. },
  127. {
  128. name: '已退',
  129. data: 0
  130. },
  131. {
  132. name: '余额',
  133. data: 0
  134. }
  135. ],
  136. [],
  137. 10
  138. );
  139. }
  140. })
  141. .catch((err) => { });
  142. },
  143. eachartObj (data) {
  144. this.total = data.total;
  145. let typeName = {
  146. 1: '微信在线',
  147. 2: '支付宝',
  148. 3: '现金',
  149. 4: '预存',
  150. 5: '其他',
  151. 6: '刷卡',
  152. 7: '微信扫码'
  153. };
  154. let newData = [];
  155. for (let a in data.datas) {
  156. newData.push({
  157. value: data.datas[a],
  158. name: typeName[a]
  159. });
  160. }
  161. return newData;
  162. },
  163. changeTime (v) {
  164. this.mixins_query.year = v;
  165. this.getData();
  166. }
  167. },
  168. created () {
  169. this.date = this.$moment().format('YYYY');
  170. this.mixins_query.year = this.$moment().format('YYYY');
  171. }
  172. };
  173. </script>
  174. <style scoped lang="scss">
  175. @import './style.scss';
  176. </style>