瀏覽代碼

房贷计算器金额NaN,切换错误BUG

Baozhangchao 3 年之前
父節點
當前提交
af9cc88219
共有 2 個檔案被更改,包括 30 行新增21 行删除
  1. 20
    19
      src/pages/mine/mortgageCalc/components/Result.jsx
  2. 10
    2
      src/pages/mine/mortgageCalc/index.jsx

+ 20
- 19
src/pages/mine/mortgageCalc/components/Result.jsx 查看文件

@@ -15,14 +15,14 @@ const getMixList = (lst1, lst2) => {
15 15
     const it1 = lst1[i] || {}
16 16
     const it2 = lst2[i] || {}
17 17
 
18
-    const paid1 = it1.paid||0;
19
-    const paid2 = it2.paid||0;
18
+    const paid1 = it1.paid || 0;
19
+    const paid2 = it2.paid || 0;
20 20
 
21 21
     rtn.push({
22
-      benjin: (it1.benjin||0) + (it2.benjin||0),
23
-      benxi: (it1.benxi||0) + (it2.benxi||0),
24
-      rate: (it1.rate||0) + (it2.rate||0),
25
-      paid: (paid1||lastPaid1) + (paid2||lastPaid2),
22
+      benjin: (it1.benjin || 0) + (it2.benjin || 0),
23
+      benxi: (it1.benxi || 0) + (it2.benxi || 0),
24
+      rate: (it1.rate || 0) + (it2.rate || 0),
25
+      paid: (paid1 || lastPaid1) + (paid2 || lastPaid2),
26 26
     })
27 27
 
28 28
     if (paid1 > 0) {
@@ -50,10 +50,10 @@ export default (props) => {
50 50
     if (!dataSource[0] && !dataSource[1]) return;
51 51
 
52 52
     if (isMixed) {
53
-      // console.log('------dataSource[0]------>', dataSource[0])
54
-      // console.log('------dataSource[1]------>', dataSource[1])
53
+
55 54
       //
56 55
       const bj = {
56
+
57 57
         summary: {
58 58
           money: dataSource[0].bj.summary.money + dataSource[1].bj.summary.money,
59 59
           moneyOfFirstMonth: dataSource[0].bj.summary.moneyOfFirstMonth + dataSource[1].bj.summary.moneyOfFirstMonth,
@@ -62,6 +62,7 @@ export default (props) => {
62 62
         },
63 63
         list: getMixList(dataSource[0].bj.list, dataSource[1].bj.list)
64 64
       }
65
+
65 66
       const bx = {
66 67
         summary: {
67 68
           money: dataSource[0].bx.summary.money + dataSource[1].bx.summary.money,
@@ -72,7 +73,7 @@ export default (props) => {
72 73
         list: getMixList(dataSource[0].bx.list, dataSource[1].bx.list)
73 74
       }
74 75
 
75
-      setData({bj, bx})
76
+      setData({ bj, bx })
76 77
     } else {
77 78
       const res = dataSource[0] || dataSource[1]
78 79
       setData(res)
@@ -80,13 +81,13 @@ export default (props) => {
80 81
   }, [dataSource, isMixed])
81 82
 
82 83
   useEffect(() => {
83
-    const {bj, bx} = data || {}
84
+    const { bj, bx } = data || {}
84 85
     if (current === 1) {
85
-      setSummary(bx?.summary||{})
86
-      setList(bx?.list||[])
86
+      setSummary(bx?.summary || {})
87
+      setList(bx?.list || [])
87 88
     } else {
88
-      setSummary(bj?.summary||{})
89
-      setList(bj?.list||[])
89
+      setSummary(bj?.summary || {})
90
+      setList(bj?.list || [])
90 91
     }
91 92
   }, [current, data])
92 93
 
@@ -102,22 +103,22 @@ export default (props) => {
102 103
       <view className='summary-card'>
103 104
         <view className='tip'>{tipText}</view>
104 105
         <view className='money'>
105
-          {current !== 1 ? Number(summary.money/10000).toFixed(0) : Number(summary.moneyOfFirstMonth||0).toFixed(2)}
106
+          {current !== 1 ? Number(summary.money / 10000).toFixed(0) : Number(summary.moneyOfFirstMonth || 0).toFixed(2)}
106 107
           <text className='small'>{current !== 1 ? '万元' : '元'}</text>
107 108
         </view>
108 109
         <view className='footer flex'>
109 110
           <view>
110
-            <view>{`${Number((summary.totalRate||0)/10000).toFixed(2)}万`}</view>
111
+            <view>{`${Number((summary.totalRate || 0) / 10000).toFixed(2)}万`}</view>
111 112
             <view className='label'>利息总额</view>
112 113
           </view>
113 114
           <view>
114
-            <view>{`${Number((summary.totalMoney||0)/10000).toFixed(2)}万`}</view>
115
+            <view>{`${Number((summary.totalMoney || 0) / 10000).toFixed(2)}万`}</view>
115 116
             <view className='label'>还款总额</view>
116 117
           </view>
117 118
           {
118 119
             current === 1 && (
119 120
               <view>
120
-                <view>{`${Number(summary.money/10000).toFixed(0)}万`}</view>
121
+                <view>{`${Number(summary.money || 0 / 10000).toFixed(0)}万`}</view>
121 122
                 <view className='label'>贷款金额</view>
122 123
               </view>
123 124
             )
@@ -125,7 +126,7 @@ export default (props) => {
125 126
           {
126 127
             !isMixed && (
127 128
               <view>
128
-                <view>{`${summary.year||0}年`}</view>
129
+                <view>{`${summary.year || 0}年`}</view>
129 130
                 <view className='label'>贷款期限</view>
130 131
               </view>
131 132
             )

+ 10
- 2
src/pages/mine/mortgageCalc/index.jsx 查看文件

@@ -11,7 +11,7 @@ import './index.scss'
11 11
 
12 12
 const tabs = ['商业贷款', '公积金贷款', '组合贷款']
13 13
 
14
-const showError = title => Taro.showToast({ title, icon: 'none'});
14
+const showError = title => Taro.showToast({ title, icon: 'none' });
15 15
 
16 16
 export default withLayout(() => {
17 17
   const [loading, setLoading] = useState(false)
@@ -22,7 +22,14 @@ export default withLayout(() => {
22 22
   const [GJJFormData, setGJJFormData] = useState()
23 23
   const [result, setResult] = useState([])
24 24
 
25
+  //切换tba重置
26
+  const handleTabChange = (index) => {
27
+    setCurrent(index)
28
+    setResult([])
29
+  }
30
+
25 31
   const handleCalc = () => {
32
+
26 33
     // 校验商业贷款
27 34
     if (current !== 2) {
28 35
       if (SYFormData.year < 0 || SYFormData.year > 30) {
@@ -62,6 +69,7 @@ export default withLayout(() => {
62 69
       gjjResult.bj = sdk.calcBJ(GJJFormData.money, GJJFormData.year, GJJFormData.rate)
63 70
       gjjResult.bx = sdk.calcBX(GJJFormData.money, GJJFormData.year, GJJFormData.rate)
64 71
     }
72
+
65 73
     setLoading(false)
66 74
 
67 75
     Taro.hideLoading()
@@ -80,7 +88,7 @@ export default withLayout(() => {
80 88
 
81 89
   return (
82 90
     <view className='Page mortgageCalc'>
83
-      <Tabs tabs={tabs} current={current} onChange={setCurrent} />
91
+      <Tabs tabs={tabs} current={current} onChange={handleTabChange} />
84 92
       {/* <Cell header='还款方式 : '>
85 93
         <RadioGroup>
86 94
           <Label><Radio value='debx' /> 等额本息</Label>