perfect_rate.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <template>
  2. <view class="total-page page_env-160 page-box sys-list-background-color task-bg">
  3. <Nav title="完善贷后" :genre="1" is_fixed></Nav>
  4. <view class="m-20">
  5. <view class="sys-background-fff p-lr20 p-t20 r-30">
  6. <view class="size-28 sys-weight-600">贷款信息</view>
  7. <en-select label="贷款银行" v-model="postLoanData.bank_id" :local-data="bankData"
  8. placeholder="请选择贷款银行"></en-select>
  9. <en-input label="贷款金额" v-model="postLoanData.thousand_money" type="digit" placeholder="请输入贷款金额" rightText="万元"></en-input>
  10. <en-input label="贷款期数" type="number" v-model="postLoanData.refund_num" placeholder="请输入贷款期数"></en-input>
  11. <en-input label="年化利率" :is_border="false" v-model="postLoanData.interest_rate" type="digit" placeholder="请输入年化利率"
  12. rightText="%"></en-input>
  13. </view>
  14. <view class="sys-background-fff m-t20 p-lr20 p-t20 r-30">
  15. <view class="size-28 sys-weight-600">贷款信息</view>
  16. <en-select label="还款方式" v-model="postLoanData.repayment_type" :local-data="repaymentTypeData"
  17. placeholder="请选择还款方式"></en-select>
  18. <en-date label="还款日期" v-model="postLoanData.repayment_date" type="date" placeholder="请输入还款日期"></en-date>
  19. <en-input label="还款金额" :is_border="false" v-model="postLoanData.repayment_money" placeholder="请输入还款金额"
  20. rightText="元"></en-input>
  21. </view>
  22. </view>
  23. <EnButton text="保存" @onSubmit="setPostLoan"></EnButton>
  24. </view>
  25. </template>
  26. <script>
  27. import EnInput from "@/components/en-from/en-input/en-input.vue";
  28. import EnSelect from "@/components/en-from/en-select/en-select.vue";
  29. import tools from "@/service/tools";
  30. import {getTaskOptions, setPostLoan} from "@/api/task";
  31. import EnDate from "@/components/en-from/en-date/en-date.vue";
  32. export default {
  33. components: {
  34. EnDate,
  35. EnInput,
  36. EnSelect
  37. },
  38. data() {
  39. return {
  40. number: '',
  41. businessId: '',
  42. postLoanData:{
  43. 'bank_id':'',
  44. 'loans_money':'',
  45. 'thousand_money':'',
  46. 'interest_rate':'',
  47. 'repayment_money':'',
  48. 'refund_num':'',
  49. 'repayment_type':'1',
  50. 'repayment_date':'',
  51. },
  52. bankData:[],
  53. repaymentTypeData:[],
  54. }
  55. },
  56. watch:{
  57. 'postLoanData.thousand_money':function (){
  58. if(this.postLoanData.thousand_money===''){
  59. this.postLoanData.loans_money=''
  60. }else {
  61. this.postLoanData.loans_money=this.postLoanData.thousand_money*10000
  62. }
  63. },
  64. 'postLoanData.loans_money':function (){
  65. this.getRepaymentMoney()
  66. },
  67. 'postLoanData.interest_rate':function (){
  68. this.getRepaymentMoney()
  69. },
  70. 'postLoanData.refund_num':function (){
  71. this.getRepaymentMoney()
  72. },
  73. 'postLoanData.repayment_type':function (){
  74. this.getRepaymentMoney()
  75. },
  76. },
  77. onLoad(data) {
  78. if (data.id === undefined) {
  79. tools.leftClick()
  80. } else {
  81. this.businessId = data.id
  82. }
  83. this.getTaskOptions()
  84. },
  85. methods: {
  86. getRepaymentMoney(){
  87. console.log(this.postLoanData)
  88. if(this.postLoanData.repayment_type==='1'){
  89. this.postLoanData.repayment_money=tools.getAverageCapitalPlusInterest(this.postLoanData.loans_money,this.postLoanData.refund_num,this.postLoanData.interest_rate)
  90. }else if(this.postLoanData.repayment_type==='2'){
  91. this.postLoanData.repayment_money=tools.getAverageCapital(this.postLoanData.loans_money,this.postLoanData.refund_num,this.postLoanData.interest_rate)
  92. }else {
  93. this.postLoanData.repayment_money=tools.getInterestFirst(this.postLoanData.loans_money,this.postLoanData.interest_rate)
  94. }
  95. console.log(' this.postLoanData.repayment_money', this.postLoanData.repayment_money)
  96. },
  97. async getTaskOptions() {
  98. const res = await getTaskOptions({'type':6})
  99. if (res.code === 1) {
  100. this.bankData = res.data.bankData
  101. this.bankData.map((val) => {
  102. val.text = val.name;
  103. });
  104. this.repaymentTypeData = res.data.repaymentTypeData
  105. this.repaymentTypeData.map((val) => {
  106. val.text = val.name;
  107. });
  108. }
  109. },
  110. setPostLoan(){
  111. setPostLoan({'businessId':this.businessId,'postLoan':this.postLoanData}).then((res)=>{
  112. if(res.code===1){
  113. tools.success(res.msg)
  114. uni.$emit('newTaskList')
  115. uni.$emit('newTaskInfo')
  116. setTimeout(()=>{
  117. tools.leftClick()
  118. },1500)
  119. }else {
  120. tools.error(res.msg)
  121. }
  122. })
  123. },
  124. onSave() {}
  125. }
  126. }
  127. </script>
  128. <style>
  129. </style>