FilteTransfer.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. <template>
  2. <div class="filter-transfer">
  3. <div v-show="dateRangePickerDisplay" :class="`filter-item filter-date-range-picker ${dateRangePickerClass}`">
  4. <el-date-picker
  5. v-model="filterModel.dateRange"
  6. format="yyyy-MM-dd"
  7. type="daterange"
  8. :editable="false"
  9. range-separator="to"
  10. start-placeholder="Start date"
  11. end-placeholder="End date"> <!-- 结束日期 -->
  12. </el-date-picker>
  13. </div>
  14. <div :class="`filter-item filter-user-name`">
  15. <el-select v-model="filterModel.outWallet" placeholder="Select transfer out of account"> <!-- 请选择转出账户 -->
  16. <el-option v-for="(item,key) in walletType" :label="item.label" :value="item.type"
  17. :key="key"></el-option>
  18. </el-select>
  19. </div>
  20. <div v-show="userNameDisplay" :class="`filter-item filter-user-name ${userNameClass}`">
  21. <el-input v-model="filterModel.userName" placeholder="Enter your receiving member code"></el-input> <!-- 请输入接收会员编号 -->
  22. </div>
  23. <div v-show="realNameDisplay" :class="`filter-item filter-real-name ${realNameClass}`">
  24. <el-input v-model="filterModel.realName" placeholder="Enter the name of receiving member"></el-input> <!-- 请输入接收会员姓名 -->
  25. </div>
  26. <div :class="`filter-item filter-user-name`">
  27. <el-select v-model="filterModel.inWallet" placeholder="Select transfer in account"> <!-- 请选择转入账户 -->
  28. <el-option v-for="(item,key) in walletType" :label="item.label" :value="item.type"
  29. :key="key"></el-option>
  30. </el-select>
  31. </div>
  32. <el-button class="filter-item filter-filter-btn" type="primary" @click="handleFilterTransfer">Select</el-button>
  33. </div>
  34. </template>
  35. <script>
  36. const hiddenClass = 'filter-hidden'
  37. export default {
  38. name: 'filter-transfer',
  39. mounted () {
  40. this.filterModel.dateRange = this.dateRangePickerDefault
  41. this.filterModel.inWallet = this.inWalletDefault
  42. this.filterModel.outWallet = this.outWalletDefault
  43. this.filterModel.realName = this.realNameDefault
  44. this.filterModel.userName = this.userNameDefault
  45. },
  46. props: {
  47. dateRangePickerDisplay: {
  48. type: Boolean,
  49. default: true
  50. },
  51. realNameDisplay: {
  52. type: Boolean,
  53. default: true
  54. },
  55. userNameDisplay: {
  56. type: Boolean,
  57. default: true
  58. },
  59. dateRangePickerClass: {
  60. type: String,
  61. default: '',
  62. },
  63. realNameClass: {
  64. type: String,
  65. default: '',
  66. },
  67. userNameClass: {
  68. type: String,
  69. default: '',
  70. },
  71. requestPath: {
  72. type: String,
  73. },
  74. dateRangePickerDefault: {
  75. type: String,
  76. default: '',
  77. },
  78. inWalletDefault: {
  79. type: String,
  80. default: '',
  81. },
  82. outWalletDefault: {
  83. type: String,
  84. default: '',
  85. },
  86. realNameDefault: {
  87. type: String,
  88. default: '',
  89. },
  90. userNameDefault: {
  91. type: String,
  92. default: '',
  93. },
  94. filter: null,
  95. },
  96. data () {
  97. return {
  98. filterModel: {
  99. dateRange: '',
  100. outWallet: '',
  101. userName: '',
  102. realName: '',
  103. inWallet: '',
  104. },
  105. walletType: [
  106. {
  107. type: 'bonus',
  108. label: 'Bonus'
  109. },
  110. {
  111. type: 'cash',
  112. label: 'Ecoin'
  113. },
  114. ],
  115. }
  116. },
  117. watch: {
  118. dateRangePickerDefault () {
  119. this.filterModel.dateRange = this.dateRangePickerDefault
  120. },
  121. outWalletdefault () {
  122. this.filterModel.outWallet = this.outWalletDefault
  123. },
  124. userNameDefault () {
  125. this.filterModel.userName = this.userNameDefault
  126. },
  127. realNameDefault () {
  128. this.filterModel.realName = this.realNameDefault
  129. },
  130. inWalletDefault () {
  131. this.filterModel.inWallet = this.inWalletDefault
  132. },
  133. },
  134. methods: {
  135. handleFilterTransfer: function () {
  136. this.filter(this.filterModel)
  137. }
  138. }
  139. }
  140. </script>
  141. <style scoped>
  142. .filter-transfer {
  143. padding: 0 0 15px 0;
  144. }
  145. .filter-transfer .filter-hidden {
  146. display: none;
  147. }
  148. .filter-item {
  149. margin-right: 10px;
  150. }
  151. @media (min-width: 768px) {
  152. .filter-transfer {
  153. }
  154. .filter-transfer .filter-item {
  155. display: inline-block;
  156. max-width: 200px;
  157. }
  158. .filter-transfer .filter-item.filter-date-month-picker {
  159. display: inline-block;
  160. max-width: 220px;
  161. }
  162. .filter-transfer .filter-item.filter-date-range-picker {
  163. display: inline-block;
  164. max-width: 380px;
  165. }
  166. .filter-transfer .filter-item.filter-filter-btn {
  167. height: 38px;
  168. width: 80px;
  169. }
  170. .filter-transfer .filter-hidden {
  171. display: none;
  172. }
  173. }
  174. </style>