xujing 5 lat temu
rodzic
commit
ff3348b089

+ 1
- 1
config/dev.js Wyświetl plik

@@ -15,7 +15,7 @@ module.exports = {
15 15
     // WSS_HOST: '"ws://192.168.2.52:8080"',
16 16
     OSS_PATH: 'https://njcj.oss-cn-shanghai.aliyuncs.com/',
17 17
     OSS_FAST_PATH: 'https://njcj.oss-accelerate.aliyuncs.com/',
18
-    Version: 'V3.5.17'
18
+    Version: 'V3.5.19'
19 19
   },
20 20
   weapp: {},
21 21
   h5: {}

+ 1
- 1
config/prod.js Wyświetl plik

@@ -11,7 +11,7 @@ module.exports = {
11 11
     // WSS_HOST: '"wss://lt.pawoma.cn"',
12 12
     OSS_PATH: 'https://njcj.oss-cn-shanghai.aliyuncs.com/',
13 13
     OSS_FAST_PATH: 'https://njcj.oss-accelerate.aliyuncs.com/',
14
-    Version: 'V3.5.17'
14
+    Version: 'V3.5.19'
15 15
   },
16 16
   weapp: {},
17 17
   h5: {}

+ 3
- 2
src/constants/api.js Wyświetl plik

@@ -79,9 +79,10 @@ export const API_LIVE_DEATIL = resolvePath('taLiveActivity')
79 79
 
80 80
 //sign
81 81
 export const API_CONTRACT_USER = resolvePath('contract/user/add')
82
-export const API_CONTRACT_GET = resolvePath('contract/user/get ')
83
-export const API_CONTRACT_AUTO = resolvePath('contract/auto ')
82
+export const API_CONTRACT_GET = resolvePath('contract/user/get')
83
+export const API_CONTRACT_AUTO = resolvePath('contract/auto')
84 84
 export const API_CONTRACT_MANUAL = resolvePath('contract/manual')
85
+export const API_CONTRACT_CHECK = resolvePath('contract/check')
85 86
 
86 87
 // shop
87 88
 export const API_GOODS_LIST = resolvePath('goods')

+ 30
- 11
src/onlineSelling/pages/raiseMoney/Certification.js Wyświetl plik

@@ -4,33 +4,53 @@ import './index.scss'
4 4
 import ready from '@/utils/ready'
5 5
 import { connect } from '@tarojs/redux'
6 6
 import * as noticeType from '@/constants/common.js'
7
-import { contractUser, contractGet, contractAuto } from '@/services/project'
7
+import { contractUser, contractGet, contractAuto, contractManual } from '@/services/project'
8 8
 import ContactConsultant from '../../components/ContactConsultant'
9 9
 
10
-@connect(({ user, house }) => ({ ...user, house }))
10
+@connect(({ user, house }) => ({ user, house }))
11 11
 
12 12
 export default class Certification extends Component {
13 13
   config = {
14 14
     navigationBarTitleText: '正在实名认证'
15 15
   }
16 16
   state = {
17
-    signDetail: {},
17
+    signDetail: null,
18 18
     autoErr: null,
19 19
   }
20 20
 
21 21
   componentWillMount() {
22 22
     ready.queue(() => {
23
-      const { id: raiseRecordId, consultantInfo = {} } = this.$router.params
23
+      const { id: raiseRecordId, raiseId, consultantName, consultantId } = this.$router.params
24 24
       contractUser({ raiseRecordId, }).then(res => {
25 25
         this.setState({
26 26
           signDetail: res || {}
27 27
         }, () => {
28 28
           const { signDetail } = this.state
29 29
           if (signDetail.status == 2 && signDetail.authStatus == 'autoSign') {
30
-            contractAuto({ raiseRecordId, }).then(res => {
31
-              Taro.navigateTo({
32
-                url: `//onlineSelling/pages/raiseMoney/signResult?id=${raiseRecordId}&consultantInfo=${consultantInfo}`
33
-              })
30
+            // 自动签署
31
+            contractAuto({ raiseRecordId, showToast: false }).then(res => {
32
+              if (res.status == 0) {
33
+                // 自动签署成功后调手动签署
34
+                contractManual({ ...res, showToast: false }).then(res => {
35
+                  if (res) {
36
+                    Taro.navigateTo({
37
+                      url: `/pages/project/panorama/index?url=${encodeURIComponent(res)}&from=contractManual&raiseId=${raiseId}&consultantName=${encodeURIComponent(consultantName)}&consultantId=${consultantId}&id=${raiseRecordId}`
38
+                    })
39
+                  } else {
40
+                    Taro.showToast({
41
+                      title: '无可跳转的认证地址',
42
+                      icon: 'none'
43
+                    })
44
+                  }
45
+                })
46
+              } else {
47
+                Taro.navigateTo({
48
+                  url: `/onlineSelling/pages/raiseMoney/signResult?status=${res.status}&id=${raiseRecordId}&consultantName=${encodeURIComponent(consultantName)}&consultantId=${consultantId}`
49
+                })
50
+              }
51
+
52
+
53
+
34 54
             }).catch(err => {
35 55
               this.setState({
36 56
                 autoErr: err.message || ''
@@ -45,7 +65,7 @@ export default class Certification extends Component {
45 65
 
46 66
   handleChatClick() {
47 67
 
48
-    const { consultantInfo = {} } = this.$router.params
68
+    const { consultantName, consultantId } = this.$router.params
49 69
     const { user: { userInfo: { miniApp: { tpls }, person: { personId, nickname, name } } } } = this.props
50 70
     const tplId = (tpls.filter(x => x.tplType == noticeType.TPL_NOTICE && x.isSubscribe == true)[0] || {}).tplId
51 71
     wx.requestSubscribeMessage({
@@ -57,13 +77,12 @@ export default class Certification extends Component {
57 77
       },
58 78
       complete() {
59 79
         Taro.navigateTo({
60
-          url: `/pages/im/index?sendId=${personId}&sendName=${encodeURIComponent(name || nickname)}&receiverId=${consultantInfo.consultantPersonId}&receiverName=${encodeURIComponent(consultantInfo.name || consultantInfo.nickname || consultantInfo.userName)}`
80
+          url: `/pages/im/index?sendId=${personId}&sendName=${encodeURIComponent(name || nickname)}&receiverId=${consultantId}&receiverName=${encodeURIComponent(consultantName)}`
61 81
         })
62 82
       }
63 83
     })
64 84
   }
65 85
   handleBtnClick() {
66
-    console.log('eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee')
67 86
     contractGet().then(res => {
68 87
     })
69 88
   }

+ 46
- 18
src/onlineSelling/pages/raiseMoney/signResult.js Wyświetl plik

@@ -6,7 +6,7 @@ import { connect, getStore } from '@tarojs/redux'
6 6
 import * as houseActions from '@/actions/house'
7 7
 import * as noticeType from '@/constants/common.js'
8 8
 import BackHomeBtn from '@/components/BackHomeBtn'
9
-import { contractManual } from '@/services/project'
9
+import { contractCheck } from '@/services/project'
10 10
 import { transferImage } from '@/utils/tools'
11 11
 
12 12
 @connect(({ user, house }) => ({ ...user, house }), { ...houseActions })
@@ -15,13 +15,18 @@ export default class signResult extends Component {
15 15
     navigationBarTitleText: '签署结果'
16 16
   }
17 17
   state = {
18
-
18
+    result: {}
19 19
   }
20 20
 
21 21
 
22 22
   componentWillMount() {
23 23
     ready.queue(() => {
24
-
24
+      const { id: raiseRecordId, } = this.$router.params
25
+      contractCheck(({ raiseRecordId, showToast: false })).then(res => {
26
+        this.setState({
27
+          result: res
28
+        })
29
+      })
25 30
 
26 31
     })
27 32
   }
@@ -73,35 +78,58 @@ export default class signResult extends Component {
73 78
       url: `/onlineSelling/pages/houseList/index?id=${id}`
74 79
     })
75 80
   }
81
+  toSeeContract(url) {
82
+    Taro.navigateTo({
83
+      url: `/pages/project/panorama/index?url=${encodeURIComponent(url)}`
84
+    })
85
+  }
86
+  toDownloadContract(url) {
87
+    Taro.downloadFile({
88
+      url,
89
+      success: function (param) {
90
+        if (param.statusCode === 200) {
91
+          Taro.showToast({
92
+            title: '下载合同成功',
93
+            icon: 'none'
94
+          })
95
+        }
96
+      },
97
+      fail: function (res) {
98
+        console.log('下载合同失败');
99
+      }
100
+    })
101
+
102
+  }
76 103
   renderBtn() {
77
-    const { raiseProfile = {}, record = {} } = this.state
78
-    const isOk = false
104
+    const { result = {} } = this.state
105
+    const { status } = this.$router.params
106
+
79 107
     return (
80 108
       <View className="bottombar">
81 109
         <View className="bt-nav__left">
82
-          <Button class='bt-nav__item' onClick={() => this.toBuilding(raiseProfile.buildingId)}>
110
+          <Button class='bt-nav__item' onClick={() => this.toBuilding(result.buildingId)}>
83 111
             <Image src={transferImage(require('@/assets/news/property.png'))} style="width:42rpx;height:42rpx"></Image>
84 112
             <Text className="text">查看项目</Text>
85 113
           </Button>
86
-          <Button className='bt-nav__item' onClick={() => this.toHouseList(raiseProfile.salesBatchId)}>
114
+          <Button className='bt-nav__item' onClick={() => this.toHouseList(result.salesBatchId)}>
87 115
             <Image src={transferImage(require('../../assets/list.png'))} style="width:40rpx;height:40rpx" ></Image>
88 116
             <Text className="text">房源列表</Text>
89 117
           </Button>
90
-          {!isOk && <Button className='bt-nav__item' onClick={() => this.handleChatClick()}>
118
+          {status != 1 && <Button className='bt-nav__item' onClick={() => this.handleChatClick()}>
91 119
             <Image src={transferImage(require('../../assets/consult.png'))} style="width:36rpx;height:40rpx"></Image>
92 120
             <Text className="text">置业顾问</Text>
93 121
           </Button>}
94
-          {isOk && <Button className='bt-nav__item' >
122
+          {status == 1 && <Button className='bt-nav__item' onClick={() => this.toSeeContract(result.contractViewUrl)} >
95 123
             <Image src={transferImage(require('../../assets/see.png'))} style="width:42rpx;height:40rpx"></Image>
96
-            <Text className="text" style="color:#E4A938">查看合同</Text>
124
+            <Text className="text" style="color:#E4A938" >查看合同</Text>
97 125
           </Button>}
98
-          {isOk && <Button className='bt-nav__item' >
126
+          {status == 1 && <Button className='bt-nav__item' onClick={() => this.toDownloadContract(result.contractDownloadUrl)} >
99 127
             <Image src={transferImage(require('../../assets/download.png'))} style="width:42rpx;height:40rpx"></Image>
100
-            <Text className="text" style="color:#E4A938">下载合同</Text>
128
+            <Text className="text" style="color:#E4A938" >下载合同</Text>
101 129
           </Button>}
102 130
 
103 131
         </View>
104
-        <Button className="btn" onClick={() => this.toRaiseProfile(record.raiseRecordId)}>
132
+        <Button className="btn" onClick={() => this.toRaiseProfile(result.invoiceTargetId)}>
105 133
           认筹单
106 134
         </Button>
107 135
       </View>
@@ -109,18 +137,18 @@ export default class signResult extends Component {
109 137
   }
110 138
 
111 139
   render() {
112
-    const isOk = false
140
+    const { status } = this.$router.params
113 141
     const failInfo = { title: '合同签署失败', desc: '签署失败描述' }
114
-    const showIcon = isOk ? require('../../assets/success2.png') : require('../../assets/fail2.png')
115
-    const showTitle = isOk ? '恭喜已成功签署合同' : failInfo.title
142
+    const showIcon = status == 1 ? require('../../assets/success2.png') : require('../../assets/fail2.png')
143
+    const showTitle = status == 1 ? '恭喜已成功签署合同' : failInfo.title
116 144
 
117 145
     return (
118 146
       <View className="result">
119 147
         <Image className="result-img" src={showIcon}></Image>
120 148
 
121
-        <View className="status" style={!isOk ? 'color:#F4333B' : 'color:#118EE9'}>{showTitle}</View>
149
+        <View className="status" style={status != 1 ? 'color:#F4333B' : 'color:#118EE9'}>{showTitle}</View>
122 150
         {
123
-          !isOk && (
151
+          status != 1 && (
124 152
             <Block>
125 153
               <View className="tip" style="margin-top:10rpx">{(failInfo || {}).desc}</View>
126 154
               <View className="tip" style="margin-top:10rpx">请到认筹单中尝试重新签署合同</View>

+ 44
- 17
src/onlineSelling/pages/raiseProfile/index.js Wyświetl plik

@@ -6,7 +6,7 @@ import Statement from '../../components/Statement'
6 6
 import ContactConsultant from '../../components/ContactConsultant'
7 7
 import ConsultantItem from '../../components/ConsultantItem/index'
8 8
 import RaiseCard from '../../components/RaiseCard'
9
-import { queryRaiseDetail, contractUser } from '@/services/project'
9
+import { queryRaiseDetail, contractUser, contractCheck } from '@/services/project'
10 10
 import { connect } from '@tarojs/redux'
11 11
 import * as noticeType from '@/constants/common.js'
12 12
 import './index.scss'
@@ -28,6 +28,7 @@ export default class Raise extends Component {
28 28
     refundOrder: {},
29 29
     payDisable: true,
30 30
     signDetail: {},
31
+    contractDetail: null,
31 32
   }
32 33
 
33 34
   componentWillMount() {
@@ -40,15 +41,16 @@ export default class Raise extends Component {
40 41
         raiseOrder: res.taRaise || {},
41 42
         orderDetail: res.taOrder || {},
42 43
         refundOrder: res.refundOrder || {},
44
+        contractDetail: res.taContract || null,
43 45
       }, () => {
44 46
         const { raiseDeatil: { showContract } } = this.state
45
-        // if (showContract == 1) {
46
-        contractUser({ raiseRecordId, }).then(res => {
47
-          this.setState({
48
-            signDetail: res || {}
47
+        if (showContract == 1) {
48
+          contractUser({ raiseRecordId, }).then(res => {
49
+            this.setState({
50
+              signDetail: res || {}
51
+            })
49 52
           })
50
-        })
51
-        // }
53
+        }
52 54
       })
53 55
     })
54 56
   }
@@ -210,12 +212,13 @@ export default class Raise extends Component {
210 212
     })
211 213
   }
212 214
   toSign = () => {
213
-    const { signDetail, raiseDeatil: { consultantInfo } } = this.state
215
+    const { signDetail, raiseOrder: { raiseId }, raiseDeatil: { consultantInfo: { name, userName, personId, consultantPersonId } } } = this.state
216
+    const { id: raiseRecordId } = this.$router.params
214 217
     const status = signDetail ? signDetail.status : ''
215 218
     if (status == 0 || status == 1) {
216 219
       if (signDetail.certifiedAddress) {
217 220
         Taro.navigateTo({
218
-          url: `/pages/project/panorama/index?url=${encodeURIComponent(signDetail.certifiedAddress)}&from=raiseProfile&consultantInfo=${consultantInfo}`
221
+          url: `/pages/project/panorama/index?url=${encodeURIComponent(signDetail.certifiedAddress)}&raiseId=${raiseId}&from=raiseProfile&consultantName=${encodeURIComponent(name || userName || '')}&consultantId=${consultantPersonId || personId || ''}&id=${raiseRecordId}`
219 222
         })
220 223
       } else {
221 224
         Taro.showToast({
@@ -226,13 +229,35 @@ export default class Raise extends Component {
226 229
     } else {
227 230
       const { id: raiseRecordId } = this.$router.params
228 231
       Taro.navigateTo({
229
-        url: `/onlineSelling/pages/raiseMoney/Certification?id=${raiseRecordId}&consultantInfo=${consultantInfo}`
232
+        url: `/onlineSelling/pages/raiseMoney/Certification?id=${raiseRecordId}&raiseId=${raiseId}&consultantName=${encodeURIComponent(name || userName || '')}&consultantId=${consultantPersonId || personId || ''}`
230 233
       })
231 234
     }
232 235
   }
236
+  toSeeContract(url) {
237
+    Taro.navigateTo({
238
+      url: `/pages/project/panorama/index?url=${encodeURIComponent(url)}`
239
+    })
240
+  }
241
+  toDownloadContract(url) {
242
+    Taro.downloadFile({
243
+      url,
244
+      success: function (param) {
245
+        if (param.statusCode === 200) {
246
+          Taro.showToast({
247
+            title: '下载合同成功',
248
+            icon: 'none'
249
+          })
250
+        }
251
+      },
252
+      fail: function (res) {
253
+        console.log('下载合同失败');
254
+      }
255
+    })
256
+
257
+  }
233 258
 
234 259
   render() {
235
-    const { buildingId, raiseDeatil, orderDetail, refundOrder, raiseOrder, signDetail } = this.state;
260
+    const { buildingId, raiseDeatil, orderDetail, refundOrder, raiseOrder, signDetail, contractDetail } = this.state;
236 261
 
237 262
 
238 263
     // 认筹信息
@@ -281,13 +306,15 @@ export default class Raise extends Component {
281 306
             <View className="date">认筹提交时间  {dayjs(raiseDeatil.createDate).format('YYYY/MM/DD HH:mm:ss')}</View>
282 307
             <View className="agreement" onClick={this.toAgreement}>在线选房协议<Text className="right-icon"></Text></View>
283 308
           </View>
284
-          <View className="raise-flex">
285
-            <View className="date">合同签署时间  {dayjs(raiseDeatil.createDate).format('YYYY/MM/DD HH:mm:ss')}
286
-              <Image className="download" src={require('../../assets/download.png')} /></View>
287
-            <View className="agreement" onClick={this.toAgreement}>查看合同<Text className="right-icon"></Text></View>
288
-          </View>
309
+          {contractDetail &&
310
+            <View className="raise-flex">
311
+              <View className="date">合同签署时间  {dayjs(raiseDeatil.createDate).format('YYYY/MM/DD HH:mm:ss')}
312
+                <Image className="download" onClick={() => this.toDownloadContract(contractDetail.contractDownloadUrl)} src={require('../../assets/download.png')} /></View>
313
+              <View className="agreement" onClick={() => this.toSeeContract(contractDetail.contractViewUrl)}>查看合同<Text className="right-icon"></Text></View>
314
+            </View>}
315
+
289 316
           {
290
-            raiseDeatil.showContract == 0 && signDetail &&
317
+            raiseDeatil.showContract == 1 && signDetail &&
291 318
             <View className="sign" onClick={this.toSign}>
292 319
               为保障您的权益,请签署认筹合同<Text className="right-icon" style="opacity:0.3"></Text><Text className="right-icon" style="opacity:0.6"></Text><Text className="right-icon"></Text>
293 320
             </View>

+ 42
- 8
src/pages/project/panorama/index.js Wyświetl plik

@@ -1,25 +1,59 @@
1 1
 import Taro, { Component } from '@tarojs/taro'
2 2
 import { WebView } from '@tarojs/components'
3
-import { contractUser } from '@/services/project'
3
+import { contractUser, contractCheck } from '@/services/project'
4 4
 
5 5
 export default class Panorama extends Component {
6 6
   state = {}
7
-
7
+  tk = undefined
8
+  tk2 = undefined
8 9
   componentWillMount() {
9
-    const { from = '', consultantInfo = {} } = this.$router.params
10
+    const { from = '', id: raiseRecordId, consultantName, consultantId } = this.$router.params
10 11
     if (from == 'raiseProfile') {
11 12
       console.log('!!!!')
12
-      const tk = setInterval(() => {
13
+      this.tk = setInterval(() => {
13 14
         contractUser().then(res => {
14
-          console.log(res, res.status, '每30秒请求一次!!!!')
15
+          console.log(res, res.status, '每5秒请求一次!!!!')
15 16
           if (res.status != 0 && res.status != 1) {
16
-            clearInterval(tk)
17
+            const { id } = this.$router.params
18
+            clearInterval(this.tk)
19
+            Taro.navigateTo({
20
+              url: `/onlineSelling/pages/raiseMoney/Certification?id=${res.raiseRecordId || id}&consultantName=${encodeURIComponent(consultantName)}&consultantId=${consultantId}`
21
+            })
22
+          }
23
+        })
24
+      }, 5000)
25
+    }
26
+    if (from == 'contractManual') {
27
+      console.log('contractManual!!!!')
28
+      this.tk2 = setInterval(() => {
29
+        contractCheck({ raiseRecordId, showToast: false }).then(res => {
30
+          console.log(res, res.status, 'contractManual每5秒请求一次!!!')
31
+          if (res.status != 0) {
32
+            clearInterval(this.tk2)
17 33
             Taro.navigateTo({
18
-              url: `/onlineSelling/pages/raiseMoney/Certification?id=${res.raiseRecordId}&consultantInfo=${consultantInfo}`
34
+              url: `/onlineSelling/pages/raiseMoney/signResult?status=${res.status}&id=${raiseRecordId}&consultantName=${encodeURIComponent(consultantName)}&consultantId=${consultantId}`
19 35
             })
20 36
           }
21 37
         })
22
-      }, 30000)
38
+      }, 5000)
39
+    } else {
40
+      console.log(this.$router.params, "this.$router.paramsthis.$router.paramsthis.$router.paramsthis.$router.params")
41
+    }
42
+  }
43
+  componentDidHide() {
44
+    if (this.tk) {
45
+      clearInterval(this.tk)
46
+    }
47
+    if (this.tk2) {
48
+      clearInterval(this.tk2)
49
+    }
50
+  }
51
+  componentWillUnmount() {
52
+    if (this.tk) {
53
+      clearInterval(this.tk)
54
+    }
55
+    if (this.tk2) {
56
+      clearInterval(this.tk2)
23 57
     }
24 58
   }
25 59
 

+ 8
- 2
src/services/project.js Wyświetl plik

@@ -16,7 +16,8 @@ import {
16 16
   API_CONTRACT_USER,
17 17
   API_CONTRACT_GET,
18 18
   API_CONTRACT_AUTO,
19
-  API_CONTRACT_MANUAL
19
+  API_CONTRACT_MANUAL,
20
+  API_CONTRACT_CHECK
20 21
 
21 22
 } from '@/constants/api'
22 23
 
@@ -113,7 +114,12 @@ export const contractAuto = payload => fetch({ url: API_CONTRACT_AUTO, payload,
113 114
  *手动签署
114 115
  * @param {*} payload
115 116
  */
116
-export const contractManual = payload => fetch({ url: API_CONTRACT_MANUAL, payload })
117
+export const contractManual = payload => fetch({ url: API_CONTRACT_MANUAL, payload, method: 'POST' })
118
+/**
119
+ *手动签署结果
120
+ * @param {*} payload
121
+ */
122
+export const contractCheck = payload => fetch({ url: API_CONTRACT_CHECK, payload, method: 'POST' })
117 123
 
118 124
 
119 125