xujing 5 年之前
父節點
當前提交
a6bf4b15bc

+ 2
- 0
src/app.js 查看文件

130
         pages: [
130
         pages: [
131
           'pages/houseList/index',
131
           'pages/houseList/index',
132
           'pages/raiseMoney/index',
132
           'pages/raiseMoney/index',
133
+          'pages/raiseMoney/signResult',
134
+          'pages/raiseMoney/Certification',
133
           'pages/live/index',
135
           'pages/live/index',
134
           'pages/help/index',
136
           'pages/help/index',
135
           'pages/records/index',
137
           'pages/records/index',

二進制
src/onlineSelling/assets/consult.png 查看文件


二進制
src/onlineSelling/assets/list.png 查看文件


二進制
src/onlineSelling/assets/loading.gif 查看文件


二進制
src/onlineSelling/assets/project.png 查看文件


二進制
src/onlineSelling/assets/see.png 查看文件


二進制
src/onlineSelling/assets/sign.png 查看文件


+ 88
- 0
src/onlineSelling/pages/raiseMoney/Certification.js 查看文件

1
+import Taro, { Component } from '@tarojs/taro'
2
+import { View, Block } from '@tarojs/components'
3
+import './index.scss'
4
+import ready from '@/utils/ready'
5
+import { connect, getStore } from '@tarojs/redux'
6
+import * as houseActions from '@/actions/house'
7
+import * as noticeType from '@/constants/common.js'
8
+import ContactConsultant from '../../components/ContactConsultant'
9
+
10
+@connect(({ user, house }) => ({ ...user, house }), { ...houseActions })
11
+export default class signResult extends Component {
12
+  config = {
13
+    navigationBarTitleText: '正在实名认证'
14
+  }
15
+  state = {
16
+
17
+  }
18
+
19
+  componentWillMount() {
20
+    ready.queue(() => {
21
+
22
+    })
23
+  }
24
+
25
+  handleChatClick() {
26
+    const { userInfo: { miniApp: { tpls }, person: { personId, nickname, name } } } = this.props
27
+    const tplId = (tpls.filter(x => x.tplType == noticeType.TPL_NOTICE && x.isSubscribe == true)[0] || {}).tplId
28
+    wx.requestSubscribeMessage({
29
+      tmplIds: [tplId],
30
+      success(res) {
31
+      },
32
+      fail(res) {
33
+
34
+      },
35
+      complete() {
36
+        Taro.navigateTo({
37
+          url: `/pages/im/index?sendId=${personId}&sendName=${encodeURIComponent(name || nickname)}&receiverId=${consultant.id}&receiverName=${encodeURIComponent(consultant.name || consultant.nickname || consultant.userName)}`
38
+        })
39
+      }
40
+    })
41
+  }
42
+
43
+
44
+
45
+  render() {
46
+    const isOk = true
47
+    const failInfo = { title: '未通过', desc: '实名认证失败描述' }
48
+    const showIcon = isOk ? require('../../assets/success2.png') : require('../../assets/fail2.png')
49
+    const showTitle = isOk ? '审核通过' : failInfo.title
50
+    const loading = true
51
+
52
+    return (
53
+      <View className="result" style="height:100vh">
54
+
55
+        {loading &&
56
+          <Block>
57
+            <Image style=" width:60px;height:60px;margin-bottom:10px" src={require('../../assets/loading.gif')}></Image>
58
+            <View className="status" >请稍等,正在准备实名认证</View>
59
+          </Block>
60
+        }
61
+
62
+        {/* {
63
+          !isOk && (
64
+            <Block>
65
+              <Image className="result-img" src={showIcon}></Image>
66
+              <View className="status" >实名认证<Text style={!isOk ? 'color:#F4333B' : 'color:#118EE9'}>{showTitle}</Text></View>
67
+              <View className="tip" style="margin-top:10rpx">{(failInfo || {}).desc}</View>
68
+              <View className="tip" style="margin-top:10rpx">请返回重新发起认证</View>
69
+              <View class="certification-btn">查询不通过原因</View>
70
+            </Block>
71
+          )
72
+
73
+        }
74
+
75
+        {isOk &&
76
+          <Block>
77
+            <Image className="result-img" src={showIcon}></Image>
78
+            <View className="status" >实名认证<Text style={!isOk ? 'color:#F4333B' : 'color:#118EE9'}>{showTitle}</Text></View>
79
+            <ContactConsultant contactClick={() => this.handleChatClick()} text="请联系专属置业顾问" style=" position: absolute;bottom: 9vh;" />
80
+          </Block>
81
+        } */}
82
+        {/* <View class="certification-btn">更新我的实名认证信息</View> */}
83
+
84
+      </View>
85
+    )
86
+  }
87
+
88
+}

+ 53
- 11
src/onlineSelling/pages/raiseMoney/index.js 查看文件

14
 import { raiseOrder, cancelOrder, queryPreselectionRecord, raiseOffline } from '@/services/project'
14
 import { raiseOrder, cancelOrder, queryPreselectionRecord, raiseOffline } from '@/services/project'
15
 import { getCodeMessage, checkCaptcha } from '@/services/getCode'
15
 import { getCodeMessage, checkCaptcha } from '@/services/getCode'
16
 import { checkRaise } from '@/services/house'
16
 import { checkRaise } from '@/services/house'
17
-import { checkIDCard, isEmpty } from '@/utils/tools'
17
+import { checkIDCard, isEmpty, transferImage } from '@/utils/tools'
18
 import ContactConsultant from '../../components/ContactConsultant'
18
 import ContactConsultant from '../../components/ContactConsultant'
19
 import RadioList from './RadioList'
19
 import RadioList from './RadioList'
20
 import * as noticeType from '@/constants/common.js'
20
 import * as noticeType from '@/constants/common.js'
21
 import { UPDATE_USER_INFO } from '@/constants/user'
21
 import { UPDATE_USER_INFO } from '@/constants/user'
22
+import BackHomeBtn from '@/components/BackHomeBtn'
22
 
23
 
23
 const getRaiseProfile = ({ salesBatchId, raiseRecordId }) => {
24
 const getRaiseProfile = ({ salesBatchId, raiseRecordId }) => {
24
   const queryString = [
25
   const queryString = [
47
     navigationBarTitleText: '认筹确认'
48
     navigationBarTitleText: '认筹确认'
48
   }
49
   }
49
   state = {
50
   state = {
50
-    current: 0,
51
+    current: 4,
51
     inputName: '',
52
     inputName: '',
52
     raiseProfile: undefined,  // 认筹主记录
53
     raiseProfile: undefined,  // 认筹主记录
53
     record: {},               // 认筹单
54
     record: {},               // 认筹单
454
           )
455
           )
455
         }
456
         }
456
         <View className="center-title">{payTip}</View>
457
         <View className="center-title">{payTip}</View>
457
-        <RichText  nodes={showProtocal || ''} />
458
+        <RichText nodes={showProtocal || ''} />
458
       </ScrollView >
459
       </ScrollView >
459
     )
460
     )
460
   }
461
   }
696
       }
697
       }
697
     })
698
     })
698
   }
699
   }
700
+  toBuilding(buildingId) {
701
+    Taro.navigateTo({
702
+      url: `/pages/project/detail/index?id=${buildingId}`
703
+    })
704
+  }
705
+  toHouseList(id) {
706
+    Taro.navigateTo({
707
+      url: `/onlineSelling/pages/houseList/index?id=${id}`
708
+    })
709
+  }
710
+  renderBtn() {
711
+    const { raiseProfile = {}, record = {} } = this.state
712
+    return (
713
+      <View className="bottombar">
714
+        <View className="bt-nav__left">
715
+          <Button class='bt-nav__item' onClick={() => this.toBuilding(raiseProfile.buildingId)}>
716
+            <Image src={transferImage(require('@/assets/news/property.png'))} style="width:42rpx;height:42rpx"></Image>
717
+            <Text className="text">查看项目</Text>
718
+          </Button>
719
+          <Button className='bt-nav__item' onClick={() => this.toHouseList(raiseProfile.salesBatchId)}>
720
+            <Image src={transferImage(require('../../assets/list.png'))} style="width:40rpx;height:40rpx" ></Image>
721
+            <Text className="text">房源列表</Text>
722
+          </Button>
723
+          <Button className='bt-nav__item' onClick={() => this.handleChatClick()}>
724
+            <Image src={transferImage(require('../../assets/consult.png'))} style="width:36rpx;height:40rpx"></Image>
725
+            <Text className="text">置业顾问</Text>
726
+          </Button>
727
+          <Button className='bt-nav__item' >
728
+            <Image src={transferImage(require('../../assets/sign.png'))} style="width:42rpx;height:40rpx"></Image>
729
+            <Text className="text" style="color:#E4A938">签署合同</Text>
730
+          </Button>
731
+        </View>
732
+        <Button className="btn" onClick={() => this.toRaiseProfile(record.raiseRecordId)}>
733
+          认筹单
734
+        </Button>
735
+      </View>
736
+    )
737
+  }
699
   renderResult() {
738
   renderResult() {
700
-    const { raiseProfile = {}, record = {}, failInfo, payType } = this.state
739
+    const { failInfo, payType } = this.state
701
     const isOk = !failInfo
740
     const isOk = !failInfo
702
     const showIcon = isOk ? require('../../assets/success2.png') : require('../../assets/fail2.png')
741
     const showIcon = isOk ? require('../../assets/success2.png') : require('../../assets/fail2.png')
703
     const showTitle = isOk ? '提交成功' : failInfo.title
742
     const showTitle = isOk ? '提交成功' : failInfo.title
706
       <View className="result">
745
       <View className="result">
707
         <Image className="result-img" src={showIcon}></Image>
746
         <Image className="result-img" src={showIcon}></Image>
708
 
747
 
709
-        <View className="status">{showTitle}</View>
748
+        <View className="status" style={failInfo ? 'color:#F4333B' : 'color:#118EE9'}>{showTitle}</View>
710
 
749
 
711
         {
750
         {
712
           isOk &&
751
           isOk &&
713
           (
752
           (
714
             <Block>
753
             <Block>
715
-              <View className="tip" style="margin-bottom:10rpx">详情请查看认筹单</View>
754
+              <View className="tip" style="margin:16rpx 0">详情请查看认筹单</View>
716
               {payType === 'onLine' && <Block>
755
               {payType === 'onLine' && <Block>
717
                 <View className="tip">支付结果请留意微信支付通知</View>
756
                 <View className="tip">支付结果请留意微信支付通知</View>
718
-              </Block>}
757
+                <View style="font-size: 30rpx;color: #E4A938;line-height:2">为保障您的权益,请签署认筹合同!</View>
758
+              </Block>
759
+              }
719
               {payType === 'offLine' && <Block>
760
               {payType === 'offLine' && <Block>
720
                 <View className="tip" style="margin-bottom:10rpx">后台已收到认筹申请,您尚未付款!</View>
761
                 <View className="tip" style="margin-bottom:10rpx">后台已收到认筹申请,您尚未付款!</View>
721
                 <View className="tip">请尽快联系您的专属置业顾问缴纳定金</View>
762
                 <View className="tip">请尽快联系您的专属置业顾问缴纳定金</View>
727
         {
768
         {
728
           !isOk && (<View className="tip">{(failInfo || {}).desc}</View>)
769
           !isOk && (<View className="tip">{(failInfo || {}).desc}</View>)
729
         }
770
         }
730
-
731
-        <ContactConsultant buildingId={raiseProfile.buildingId} contactClick={() => this.handleChatClick()} text="联系专属置业顾问" style=" position: absolute;bottom: 11vh;" />
732
-        {
771
+        {/* <ContactConsultant buildingId={raiseProfile.buildingId} contactClick={() => this.handleChatClick()} text="联系专属置业顾问" style=" position: absolute;bottom: 11vh;" /> */}
772
+        {/* {
733
           record.raiseRecordId &&
773
           record.raiseRecordId &&
734
           (<View className="look-btn" onClick={() => this.toRaiseProfile(record.raiseRecordId)}>查看认筹单</View>)
774
           (<View className="look-btn" onClick={() => this.toRaiseProfile(record.raiseRecordId)}>查看认筹单</View>)
735
-        }
775
+        } */}
776
+        {this.renderBtn()}
777
+        <BackHomeBtn style={{ right: '3%', bottom: '190rpx' }}></BackHomeBtn>
736
       </View>
778
       </View>
737
 
779
 
738
     );
780
     );

+ 111
- 38
src/onlineSelling/pages/raiseMoney/index.scss 查看文件

162
         margin-top: 36px;
162
         margin-top: 36px;
163
     }
163
     }
164
   }
164
   }
165
-  .result{
166
-    background-color: #fff;
167
-    height: 88vh;
168
-    width: 100vw;
169
-    position: relative;
170
-    text-align: center;
171
-    padding-top: 19vh;
172
-    font-weight: 300;
173
-    .result-img{
174
-      width:168px;
175
-      height:168px;
176
-    }
177
-    .status{
178
-      font-size: 34px;
179
-      color: #333;
180
-      line-height: 1.8;
181
-    }
182
-    .tip{
183
-      font-size: 30px;
184
-      color: #999;
185
-      padding: 0 100px;
165
+}
166
+.result{
167
+  background-color: #fff;
168
+  height: 88vh;
169
+  width: 100vw;
170
+  position: relative;
171
+  text-align: center;
172
+  padding-top: 19vh;
173
+  font-weight: 300;
174
+  .result-img{
175
+    width:168px;
176
+    height:168px;
177
+  }
178
+  .status{
179
+    font-size: 34px;
180
+    color: #333;
181
+    line-height: 1.8;
182
+  }
183
+  .tip{
184
+    font-size: 30px;
185
+    color: #999;
186
+    padding: 0 100px;
187
+  }
188
+  .last-tip{
189
+    color: #BB9C79;
190
+    font-size: 32px;
191
+    margin-top: 50px;
192
+    padding: 0 100px;
193
+  }
194
+ .look-btn{
195
+   width: 690px;
196
+   height:94px;
197
+   background:rgba(187,156,121,1);
198
+   border-radius:10px;
199
+   color: #fff;
200
+   font-size: 36px;
201
+   line-height: 94px;
202
+   position: absolute;
203
+   bottom: 1vh;
204
+   left: 30px;
205
+ }
206
+}
207
+.bottombar {
208
+  height: 164px;
209
+  box-shadow:0px 16px 48px 0px rgba(0, 0, 0, 0.12);
210
+  width: 100%;
211
+  padding: 0 35px;
212
+  overflow: hidden;
213
+  display: flex;
214
+  align-items: center;
215
+  position: fixed;
216
+  bottom: 0;
217
+  background-color: #fff;
218
+
219
+  .btn {
220
+    height: 88px;
221
+    flex: none;
222
+    border-radius: 10px;
223
+    line-height: 88px;
224
+    display: flex;
225
+    align-items: center;
226
+    justify-content: center;
227
+    background: #BB9C79;
228
+    color: #fff;
229
+    width: 24%;
230
+    margin-left: 4%;
231
+    font-size: 26px;
232
+  }
233
+  .bt-nav {
234
+  
235
+    &__item {
236
+      margin: 0;
237
+      padding: 0;
238
+      line-height: 1;
239
+      width: 25%;
240
+      box-sizing: border-box;
241
+      background: transparent;
242
+      border-radius: none;
243
+      height: 80px;
244
+      display: flex;
245
+      flex-direction: column;
246
+      justify-content: center;
247
+      align-items: center;
248
+      .text {
249
+        margin-top: 12px;
250
+        text-align: center;
251
+        font-size: 24px;
252
+        color: #a1a1a1;
253
+      }
186
     }
254
     }
187
-    .last-tip{
188
-      color: #BB9C79;
189
-      font-size: 32px;
190
-      margin-top: 50px;
191
-      padding: 0 100px;
255
+  
256
+    &__left {
257
+      width: 100%;
258
+      display: flex;
259
+      align-items: center;
260
+      // justify-content: space-between;
261
+      padding: 20px 0;
192
     }
262
     }
193
-   .look-btn{
194
-     width: 690px;
195
-     height:94px;
196
-     background:rgba(187,156,121,1);
197
-     border-radius:10px;
198
-     color: #fff;
199
-     font-size: 36px;
200
-     line-height: 94px;
201
-     position: absolute;
202
-     bottom: 1vh;
203
-     left: 30px;
204
-   }
263
+    
205
   }
264
   }
265
+
266
+}
267
+.certification-btn{
268
+  width: 690px;
269
+  line-height:90px;
270
+  background:rgba(187,156,121,1);
271
+  border-radius:10px;
272
+  font-size: 32px;
273
+  color: #fff;
274
+  text-align: center;
275
+  position: absolute;
276
+  bottom: 7vh;
277
+  left: 30px;
278
+
206
 }
279
 }

+ 137
- 0
src/onlineSelling/pages/raiseMoney/signResult.js 查看文件

1
+import Taro, { Component } from '@tarojs/taro'
2
+import { View, Block } from '@tarojs/components'
3
+import './index.scss'
4
+import ready from '@/utils/ready'
5
+import { connect, getStore } from '@tarojs/redux'
6
+import * as houseActions from '@/actions/house'
7
+import * as noticeType from '@/constants/common.js'
8
+import BackHomeBtn from '@/components/BackHomeBtn'
9
+import { transferImage } from '@/utils/tools'
10
+
11
+@connect(({ user, house }) => ({ ...user, house }), { ...houseActions })
12
+export default class signResult extends Component {
13
+  config = {
14
+    navigationBarTitleText: '签署结果'
15
+  }
16
+  state = {
17
+
18
+  }
19
+
20
+
21
+  componentWillMount() {
22
+    ready.queue(() => {
23
+
24
+
25
+    })
26
+  }
27
+
28
+
29
+  toRaiseProfile(id) {
30
+    const { userInfo: { miniApp: { tpls } } } = this.props
31
+    const tplId = (tpls.filter(x => x.tplType == noticeType.TPL_HOUSE && x.isSubscribe == true)[0] || {}).tplId
32
+
33
+    wx.requestSubscribeMessage({
34
+      tmplIds: [tplId],
35
+      success(res) {
36
+      },
37
+      fail(res) {
38
+
39
+      },
40
+      complete() {
41
+        Taro.navigateTo({
42
+          url: `/onlineSelling/pages/raiseProfile/index?id=${id}`
43
+        })
44
+      }
45
+    })
46
+  }
47
+
48
+  handleChatClick() {
49
+    const { userInfo: { miniApp: { tpls }, person: { personId, nickname, name } } } = this.props
50
+    const tplId = (tpls.filter(x => x.tplType == noticeType.TPL_NOTICE && x.isSubscribe == true)[0] || {}).tplId
51
+    wx.requestSubscribeMessage({
52
+      tmplIds: [tplId],
53
+      success(res) {
54
+      },
55
+      fail(res) {
56
+
57
+      },
58
+      complete() {
59
+        Taro.navigateTo({
60
+          url: `/pages/im/index?sendId=${personId}&sendName=${encodeURIComponent(name || nickname)}&receiverId=${consultant.id}&receiverName=${encodeURIComponent(consultant.name || consultant.nickname || consultant.userName)}`
61
+        })
62
+      }
63
+    })
64
+  }
65
+  toBuilding(buildingId) {
66
+    Taro.navigateTo({
67
+      url: `/pages/project/detail/index?id=${buildingId}`
68
+    })
69
+  }
70
+  toHouseList(id) {
71
+    Taro.navigateTo({
72
+      url: `/onlineSelling/pages/houseList/index?id=${id}`
73
+    })
74
+  }
75
+  renderBtn() {
76
+    const { raiseProfile = {}, record = {} } = this.state
77
+    const isOk = false
78
+    return (
79
+      <View className="bottombar">
80
+        <View className="bt-nav__left">
81
+          <Button class='bt-nav__item' onClick={() => this.toBuilding(raiseProfile.buildingId)}>
82
+            <Image src={transferImage(require('@/assets/news/property.png'))} style="width:42rpx;height:42rpx"></Image>
83
+            <Text className="text">查看项目</Text>
84
+          </Button>
85
+          <Button className='bt-nav__item' onClick={() => this.toHouseList(raiseProfile.salesBatchId)}>
86
+            <Image src={transferImage(require('../../assets/list.png'))} style="width:40rpx;height:40rpx" ></Image>
87
+            <Text className="text">房源列表</Text>
88
+          </Button>
89
+          {!isOk && <Button className='bt-nav__item' onClick={() => this.handleChatClick()}>
90
+            <Image src={transferImage(require('../../assets/consult.png'))} style="width:36rpx;height:40rpx"></Image>
91
+            <Text className="text">置业顾问</Text>
92
+          </Button>}
93
+          {isOk && <Button className='bt-nav__item' >
94
+            <Image src={transferImage(require('../../assets/see.png'))} style="width:42rpx;height:40rpx"></Image>
95
+            <Text className="text" style="color:#E4A938">查看合同</Text>
96
+          </Button>}
97
+          {isOk && <Button className='bt-nav__item' >
98
+            <Image src={transferImage(require('../../assets/download.png'))} style="width:42rpx;height:40rpx"></Image>
99
+            <Text className="text" style="color:#E4A938">下载合同</Text>
100
+          </Button>}
101
+
102
+        </View>
103
+        <Button className="btn" onClick={() => this.toRaiseProfile(record.raiseRecordId)}>
104
+          认筹单
105
+        </Button>
106
+      </View>
107
+    )
108
+  }
109
+
110
+  render() {
111
+    const isOk = false
112
+    const failInfo = { title: '合同签署失败', desc: '签署失败描述' }
113
+    const showIcon = isOk ? require('../../assets/success2.png') : require('../../assets/fail2.png')
114
+    const showTitle = isOk ? '恭喜已成功签署合同' : failInfo.title
115
+
116
+    return (
117
+      <View className="result">
118
+        <Image className="result-img" src={showIcon}></Image>
119
+
120
+        <View className="status" style={!isOk ? 'color:#F4333B' : 'color:#118EE9'}>{showTitle}</View>
121
+        {
122
+          !isOk && (
123
+            <Block>
124
+              <View className="tip" style="margin-top:10rpx">{(failInfo || {}).desc}</View>
125
+              <View className="tip" style="margin-top:10rpx">请到认筹单中尝试重新签署合同</View>
126
+              <View className="tip" style="margin-top:10rpx">或联系您的专属置业顾问</View>
127
+            </Block>
128
+          )
129
+        }
130
+        {this.renderBtn()}
131
+        <BackHomeBtn style={{ right: '3%', bottom: '190rpx' }}></BackHomeBtn>
132
+      </View>
133
+
134
+    )
135
+  }
136
+
137
+}