Kaynağa Gözat

优化细节

Sunny Feng 2 yıl önce
ebeveyn
işleme
8817d3c0b8
2 değiştirilmiş dosya ile 46 ekleme ve 14 silme
  1. 11 9
      src/components/BillForm/BillForm.vue
  2. 35 5
      src/utils/calc.js

+ 11 - 9
src/components/BillForm/BillForm.vue

xqd xqd xqd xqd xqd
@@ -281,9 +281,10 @@ export default {
         expireDate: [
           { required: true, message: '请选择', trigger: 'blur' }
         ],
-        /*picUrls: [
-          { trigger: ['change', 'input'], validator: this.validatePicUrls }
-        ]*/
+        picUrls: [
+          // validator: this.validatePicUrls
+          { required: true, message: '请选择', trigger: ['change', 'input'] }
+        ]
       }
     }
   },
@@ -321,6 +322,7 @@ export default {
     },
     // 计算金额
     inputMoney(index) {
+      //console.log('计算金额')
       this.getloanLimt(index)
       this.getSerMoney(index)
       this.getInterMoney(index)
@@ -333,14 +335,14 @@ export default {
         serviceRate,
         interestRate,
         expectDiscountDate,
-        issueDate
+        acceptDate
       } = this.contractDrafts[index]
       this.contractDrafts[index].loanLimit = maxLoanAmount(
         money,
         serviceRate,
         interestRate,
         expectDiscountDate,
-        issueDate
+        acceptDate
       )
     },
     /* 计算服务费 */
@@ -349,13 +351,13 @@ export default {
         loanLimit,
         serviceRate,
         expectDiscountDate,
-        issueDate
+        acceptDate
       } = this.contractDrafts[index]
       this.contractDrafts[index].serviceMoney = serviceCharge(
         loanLimit,
         serviceRate,
         expectDiscountDate,
-        issueDate
+        acceptDate
       )
     },
     /* 利息*/
@@ -364,13 +366,13 @@ export default {
         loanLimit,
         interestRate,
         expectDiscountDate,
-        issueDate
+        acceptDate
       } = this.contractDrafts[index]
       this.contractDrafts[index].interest = interest(
         loanLimit,
         interestRate,
         expectDiscountDate,
-        issueDate
+        acceptDate
       )
     },
     // 预计贴现日

+ 35 - 5
src/utils/calc.js

xqd
@@ -3,18 +3,48 @@ export const GetNumberOfDays = (dateStart, dateEnd) => { // 获得天数
   // dateStart:开始日期,
   // dateEnd: 结束日期
   // 时间戳相减,除以天数
+  if(!dateStart || !dateEnd){
+    return 0
+  }
   var a1 = Date.parse(new Date(dateStart))
   var a2 = Date.parse(new Date(dateEnd))
   var day = parseInt((a2 - a1) / (1000 * 60 * 60 * 24))
   return day
 }
 // 最高贷款额度=票面金额/(((服务费率+利率)*(承兑日期-预计贴现日)/360)+1)
-export const maxLoanAmount = (num1 = 0, num2 = 0, num3 = 0, num4, num5) =>
-  (new Big(num1).div(new Big(num2).plus(num3).div(100).times(GetNumberOfDays(num4, num5)).div(360).plus(1)).toFixed(2)).toString()
+export const maxLoanAmount = (num1 = 0, num2 = 0, num3 = 0, num4, num5) => {
+  num1 = num1 ? num1 : 0
+  num2 = num2 ? num2 : 0
+  num3 = num3 ? num3 : 0
+  /* 调试过程
+  console.log('num1=', num1)
+  console.log('num2=', num2)
+  console.log('num3=', num3)
+  console.log('num4=', num4)
+  console.log('num5=', num5)
+  let a = new Big(num2).plus(num3).div(100)
+  let b = GetNumberOfDays(num4, num5) // 贴现天数
+  let c = a.times(b).div(360) // 折算总利率
+  let d = c.plus(1)
+  console.log('a=', a.toString())
+  console.log('b=', b.toString())
+  console.log('c=', c.toString())
+  console.log('d=', d.toString())
+  return (new Big(num1).div(d).toFixed(2)).toString()
+  */
+  return (new Big(num1).div(new Big(num2).plus(num3).div(100).times(GetNumberOfDays(num4, num5)).div(360).plus(1)).toFixed(2)).toString()
+}
 
 // 服务费=最高贷款额度*服务费率*(承兑日期-预计贴现日)/360)
-export const serviceCharge = (num1 = 0, num2 = 0, num3, num4) =>
-  (new Big(num1).times(Big(num2).div(100)).times(GetNumberOfDays(num3, num4)).div(360).toFixed(2)).toString()
+export const serviceCharge = (num1 = 0, num2 = 0, num3, num4) => {
+  num1 = num1 ? num1 : 0
+  num2 = num2 ? num2 : 0
+  return (new Big(num1).times(Big(num2).div(100)).times(GetNumberOfDays(num3, num4)).div(360).toFixed(2)).toString()
+}
 
 // 利息=最高贷款额度*利率*(承兑日期-预计贴现日)/360)
-export const interest = (num1 = 0, num2 = 0, num3, num4) => (new Big(num1).times(Big(num2).div(100)).times(GetNumberOfDays(num3, num4)).div(360).toFixed(2)).toString()
+export const interest = (num1 = 0, num2 = 0, num3, num4) => {
+  num1 = num1 ? num1 : 0
+  num2 = num2 ? num2 : 0
+  return (new Big(num1).times(Big(num2).div(100)).times(GetNumberOfDays(num3, num4)).div(360).toFixed(2)).toString()
+}