瀏覽代碼

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

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

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