ZuHePage.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <template>
  2. <div>
  3. <group v-show="!showsRatePage && !showgRatePage">
  4. <x-input title="商业贷款:" placeholder="请输入贷款总额" v-model="sloanMoney">
  5. <span slot="right">万元</span>
  6. </x-input>
  7. <popup-picker :data="sloanYearsList" title="商业贷款按揭年数:" v-model="sloanYear" style="text-align:left">
  8. </popup-picker>
  9. <x-input title="公积金贷款:" placeholder="请输入贷款总额" v-model="gloanMoney">
  10. <span slot="right">万元</span>
  11. </x-input>
  12. <popup-picker :data="gloanYearsList" title="公积金贷款按揭年数" v-model="gloanYear" style="text-align:left">
  13. </popup-picker>
  14. <cell is-link @click.native="srateClick">
  15. <span slot="title"><span>商业利率:</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>{{sshowRate}}</span></span>
  16. </cell>
  17. <cell is-link @click.native="grateClick">
  18. <span slot="title"><span>公积金利率:</span>&nbsp;&nbsp;&nbsp;&nbsp;<span>{{gshowRate}}</span></span>
  19. </cell>
  20. <x-button style="margin: 20px auto; width: 95%;" type="primary" :style="'background: #0259e7;'" @click.native="caculateLoan">开始计算</x-button>
  21. </group>
  22. <MoneyRate v-show="showsRatePage" class="payRate" @submit="sRateSubmit" :baseRate="sbaseRate"></MoneyRate>
  23. <MoneyRate v-show="showgRatePage" class="payRate" @submit="gRateSubmit" :baseRate="gbaseRate"></MoneyRate>
  24. </div>
  25. </template>
  26. <script>
  27. import MoneyRate from "../components/MoneyRate"
  28. import {PopupPicker, XInput, Group, Cell, XButton } from "vux";
  29. export default {
  30. components: {
  31. MoneyRate,
  32. PopupPicker,
  33. XInput,
  34. Group,
  35. Cell,
  36. XButton,
  37. },
  38. mounted(){
  39. let initalLoanYears=[];
  40. for (let i=1;i<31;i++){
  41. initalLoanYears.push(i+"年"+"("+i*12+"期)")
  42. }
  43. this.sloanYearsList.push(initalLoanYears);
  44. this.gloanYearsList.push(initalLoanYears);
  45. },
  46. data() {
  47. return {
  48. sloanMoney:50,
  49. gloanMoney:50,
  50. sloanYearsList:[],
  51. sloanYear:["20年(240期)"],
  52. gloanYearsList:[],
  53. gloanYear:["20年(240期)"],
  54. sshowRate:'3.30%',
  55. gshowRate:'2.85%',
  56. sactRate:'0.0330',
  57. gactRate:'0.0285',
  58. showsRatePage:false,
  59. showgRatePage:false,
  60. };
  61. },
  62. computed: {
  63. syears () {
  64. const month = this.sloanYear[0].match(/\((\S*)\)/);
  65. return parseInt(month[1].substr(0,month[1].length-1) / 12);
  66. },
  67. gyears () {
  68. const month = this.gloanYear[0].match(/\((\S*)\)/);
  69. return parseInt(month[1].substr(0,month[1].length-1) / 12);
  70. },
  71. sbaseRate () {
  72. if (this.syears <= 1) {
  73. return 4.35 / 100
  74. } else if (this.syears <= 5) {
  75. return 4.75 / 100
  76. }
  77. return 3.30 / 100
  78. },
  79. gbaseRate () {
  80. if (this.gyears <= 5) {
  81. return 2.75 / 100
  82. }
  83. return 2.85 / 100
  84. },
  85. },
  86. methods:{
  87. caculateLoan() {
  88. let smonth = this.sloanYear[0].match(/\((\S*)\)/);
  89. let smonths = smonth[1].substr(0,smonth[1].length-1);
  90. let gmonth = this.gloanYear[0].match(/\((\S*)\)/);
  91. let gmonths = gmonth[1].substr(0,gmonth[1].length-1);
  92. this.$router.push({
  93. path: "/ZuhePayment",
  94. query: {
  95. sloanMoney:this.sloanMoney,//商业贷款总额
  96. gloanMoney:this.gloanMoney,//公积金贷款总额
  97. smonths:smonths,//商业贷款年限
  98. gmonths:gmonths,//公积金贷款年限
  99. srate:this.sactRate,//商业贷款利率
  100. grate:this.gactRate,//公积金贷款利率
  101. }
  102. });
  103. },
  104. sRateSubmit(showValue,actRate){
  105. this.showsRatePage=false;
  106. this.showgRatePage=false;
  107. this.sshowRate = showValue;
  108. this.sactRate = actRate
  109. },
  110. gRateSubmit(showValue,actRate){
  111. this.showsRatePage=false;
  112. this.showgRatePage=false;
  113. this.gshowRate = showValue;
  114. this.gactRate = actRate;
  115. },
  116. srateClick(){
  117. this.showsRatePage = true;
  118. },
  119. grateClick(){
  120. this.showgRatePage = true;
  121. },
  122. }
  123. };
  124. </script>
  125. <style>
  126. .payRate{
  127. position: absolute;
  128. top:0;
  129. bottom: 0;
  130. background-color: #ffffff
  131. }
  132. </style>