transfer-add.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. <template>
  2. <div v-loading="loading">
  3. <div class="white-box">
  4. <el-form ref="form" :model="form" label-width="250px" class="form-page">
  5. <el-form-item label="Transfer type"> <!-- 转账类型 -->
  6. <el-select v-model="form.type" placeholder="请选择转账类型" @change="handleTypeChange"> <!-- 请选择转账类型 -->
  7. <el-option v-for="(item,key) in transferConfig" :label="item.outName+' To '+item.inName" :value="item.typeId" :key="key"></el-option>
  8. </el-select>
  9. </el-form-item>
  10. <el-form-item label="Current available bonus"> <!-- 当前可用奖金 -->
  11. <el-tag type="success">{{balance}} NGN</el-tag> <!-- 元 -->
  12. </el-form-item>
  13. <el-form-item label="Current available Ecoin"> <!-- 当前可用余额 -->
  14. <el-tag type="success">{{cash}} NGN</el-tag> <!-- 元 -->
  15. </el-form-item>
  16. <el-form-item label="Current transfer ratio" v-if="false"> <!-- 当前转账比例 -->
  17. <el-tag type="info">{{transferProp}}%</el-tag>
  18. </el-form-item>
  19. <el-form-item label="Maximum transfer amount" v-if="false"> <!-- 最大转账金额 -->
  20. <el-tag type="info">{{maxAmount}} NGN</el-tag> <!-- 元 -->
  21. </el-form-item>
  22. <el-form-item label="Member code"> <!-- 转入会员编号 -->
  23. <el-input v-model="form.toUserName" @change="handleChange"></el-input>
  24. </el-form-item>
  25. <el-form-item label="Member name" v-show="form.toRealName!==null"> <!-- 会员姓名 -->
  26. <el-input v-model="form.toRealName" :disabled="true"></el-input>
  27. </el-form-item>
  28. <!--<el-form-item label="转入会员姓名">-->
  29. <!--<el-input v-model="form.toRealName"></el-input>-->
  30. <!--</el-form-item>-->
  31. <el-form-item label="Transfer amount" style="margin-bottom: 0;"> <!-- 转账金额 -->
  32. <el-input v-model="form.amount" type="number" :min="minAmount" :max="maxAmount" @change="chkReal"></el-input>
  33. <span style="font-size: 8pt;color: #909399;">Each transfer shall not be less than 5000 NGN</span> <!-- 每次转账不得少于100 -->
  34. </el-form-item>
  35. <el-form-item label="Service charge" v-show="fee!=='0'"> <!-- 手续费 -->
  36. <el-tag type="info">{{fee}}%</el-tag>
  37. </el-form-item>
  38. <el-form-item label="Actual amount transferred into" v-show="fee!=='0'"> <!-- 实际到账金额 -->
  39. <el-tag type="warning">{{realAmount}} NGN</el-tag> <!-- 元 -->
  40. </el-form-item>
  41. <el-form-item label="Remark" style="margin-top: 25px;"> <!-- 备注 -->
  42. <el-input v-model="form.remark"></el-input>
  43. </el-form-item>
  44. <el-form-item>
  45. <el-button type="primary" @click="onSubmit" :loading="submitButtonStat">Submit</el-button>
  46. </el-form-item>
  47. </el-form>
  48. </div>
  49. </div>
  50. </template>
  51. <script>
  52. import Vue from 'vue'
  53. import store from '@/utils/vuexStore'
  54. import network from '@/utils/network'
  55. import tool from '@/utils/tool'
  56. import userInfo from '@/utils/userInfo'
  57. export default {
  58. name: 'finance_withdraw-add',
  59. mounted () {
  60. this.chkTransferUserinfo()
  61. },
  62. data () {
  63. return {
  64. allWallet: {'bonus': 'Bonus', 'cash': 'Ecoin'}, // 会员奖金 现金钱包
  65. form: {
  66. type: 1,
  67. toUserName: '',
  68. toRealName: '',
  69. amount: 0,
  70. payPassword: '',
  71. remark: '',
  72. transferCode: ''
  73. },
  74. userInfo: {
  75. TRANSFER_PROP: 100
  76. },
  77. balance: 0,
  78. cash: 0,
  79. minAmount: 0,
  80. maxAmount: 0,
  81. fee: '0',
  82. realAmount: 0,
  83. transferProp: 0,
  84. bonus: 0,
  85. loading: true,
  86. submitButtonStat: false,
  87. openBanks: null,
  88. tool: tool,
  89. transferConfig: []
  90. }
  91. },
  92. methods: {
  93. handleChange () {
  94. this.loading = true
  95. network.getData('user/full-info', {userName: this.form.toUserName}).then(response => {
  96. console.log(userInfo.userName())
  97. this.form.toRealName = response.REAL_NAME
  98. this.loading = false
  99. }).catch(response => {
  100. this.loading = false
  101. })
  102. },
  103. chkReal () {
  104. this.realAmount = tool.formatPrice(this.form.amount * (100 - this.fee) * 0.01)
  105. },
  106. getWalletName (out, inw) {
  107. return this.allWallet[out] + ' To ' + this.allWallet[inw]
  108. },
  109. handleTypeChange () {
  110. // 奖金转现金
  111. this.fee = this.transferConfig[this.form.type - 1].fee
  112. },
  113. chkTransferUserinfo () {
  114. network.getData(`finance/chk-transfer-user`).then(response => {
  115. this.loading = false
  116. this.userInfo = response.userInfo
  117. this.transferConfig = response.transferConfig
  118. this.minAmount = response.minAmount
  119. this.handleTypeChange()
  120. this.getBalance()
  121. }).catch(() => {
  122. this.$router.go(-1)
  123. })
  124. },
  125. getBalance () {
  126. this.$message({
  127. message: 'Collecting your bonus...', // 正获取您的奖金
  128. type: 'info'
  129. })
  130. network.getData('finance/available-balance').then(response => {
  131. this.$message.closeAll()
  132. this.balance = response.bonus
  133. this.cash = response.cash
  134. this.getMaxAmount()
  135. this.loading = false
  136. })
  137. },
  138. getMaxAmount () {
  139. this.maxAmount = Math.floor(tool.formatPrice(this.balance * this.userInfo.TRANSFER_PROP * 0.01))
  140. this.transferProp = this.userInfo.TRANSFER_PROP
  141. },
  142. onSubmit () {
  143. this.submitButtonStat = true
  144. let path = 'finance/transfer-add'
  145. network.getData('finance/mult-point').then(response => {
  146. this.form.transferCode = response.transferCode
  147. this.$prompt('Please enter your payment password', 'Notice', {
  148. confirmButtonText: 'Confirm',
  149. cancelButtonText: 'Cancel',
  150. inputType: 'password',
  151. inputPattern: /\S+/,
  152. inputErrorMessage: 'Please enter your payment password', // 请输入支付密码
  153. beforeClose: async (action, instance, done) => {
  154. if (action === 'confirm') {
  155. instance.confirmButtonLoading = true
  156. instance.confirmButtonText = 'executing...' // 执行中...
  157. console.log(instance.inputValue)
  158. this.form.payPassword = instance.inputValue
  159. await network.postData(path, this.form).then(response => {
  160. instance.confirmButtonLoading = false
  161. done()
  162. this.$message({
  163. message: response,
  164. type: 'success'
  165. })
  166. this.submitButtonStat = false
  167. this.$router.go(-1)
  168. }).catch(error => {
  169. instance.confirmButtonLoading = false
  170. this.submitButtonStat = false
  171. done()
  172. })
  173. } else {
  174. this.submitButtonStat = false
  175. done()
  176. }
  177. }
  178. })
  179. })
  180. }
  181. }
  182. }
  183. </script>
  184. <style scoped>
  185. </style>