xujing 5 лет назад
Родитель
Сommit
a6bf4b15bc
11 измененных файлов: 391 добавлений и 49 удалений
  1. 2
    0
      src/app.js
  2. Двоичные данные
      src/onlineSelling/assets/consult.png
  3. Двоичные данные
      src/onlineSelling/assets/list.png
  4. Двоичные данные
      src/onlineSelling/assets/loading.gif
  5. Двоичные данные
      src/onlineSelling/assets/project.png
  6. Двоичные данные
      src/onlineSelling/assets/see.png
  7. Двоичные данные
      src/onlineSelling/assets/sign.png
  8. 88
    0
      src/onlineSelling/pages/raiseMoney/Certification.js
  9. 53
    11
      src/onlineSelling/pages/raiseMoney/index.js
  10. 111
    38
      src/onlineSelling/pages/raiseMoney/index.scss
  11. 137
    0
      src/onlineSelling/pages/raiseMoney/signResult.js

+ 2
- 0
src/app.js Просмотреть файл

@@ -130,6 +130,8 @@ class App extends Component {
130 130
         pages: [
131 131
           'pages/houseList/index',
132 132
           'pages/raiseMoney/index',
133
+          'pages/raiseMoney/signResult',
134
+          'pages/raiseMoney/Certification',
133 135
           'pages/live/index',
134 136
           'pages/help/index',
135 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 Просмотреть файл

@@ -0,0 +1,88 @@
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,11 +14,12 @@ import Captcha from './Captcha'
14 14
 import { raiseOrder, cancelOrder, queryPreselectionRecord, raiseOffline } from '@/services/project'
15 15
 import { getCodeMessage, checkCaptcha } from '@/services/getCode'
16 16
 import { checkRaise } from '@/services/house'
17
-import { checkIDCard, isEmpty } from '@/utils/tools'
17
+import { checkIDCard, isEmpty, transferImage } from '@/utils/tools'
18 18
 import ContactConsultant from '../../components/ContactConsultant'
19 19
 import RadioList from './RadioList'
20 20
 import * as noticeType from '@/constants/common.js'
21 21
 import { UPDATE_USER_INFO } from '@/constants/user'
22
+import BackHomeBtn from '@/components/BackHomeBtn'
22 23
 
23 24
 const getRaiseProfile = ({ salesBatchId, raiseRecordId }) => {
24 25
   const queryString = [
@@ -47,7 +48,7 @@ export default class raiseMoney extends Component {
47 48
     navigationBarTitleText: '认筹确认'
48 49
   }
49 50
   state = {
50
-    current: 0,
51
+    current: 4,
51 52
     inputName: '',
52 53
     raiseProfile: undefined,  // 认筹主记录
53 54
     record: {},               // 认筹单
@@ -454,7 +455,7 @@ export default class raiseMoney extends Component {
454 455
           )
455 456
         }
456 457
         <View className="center-title">{payTip}</View>
457
-        <RichText  nodes={showProtocal || ''} />
458
+        <RichText nodes={showProtocal || ''} />
458 459
       </ScrollView >
459 460
     )
460 461
   }
@@ -696,8 +697,46 @@ export default class raiseMoney extends Component {
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 738
   renderResult() {
700
-    const { raiseProfile = {}, record = {}, failInfo, payType } = this.state
739
+    const { failInfo, payType } = this.state
701 740
     const isOk = !failInfo
702 741
     const showIcon = isOk ? require('../../assets/success2.png') : require('../../assets/fail2.png')
703 742
     const showTitle = isOk ? '提交成功' : failInfo.title
@@ -706,16 +745,18 @@ export default class raiseMoney extends Component {
706 745
       <View className="result">
707 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 751
           isOk &&
713 752
           (
714 753
             <Block>
715
-              <View className="tip" style="margin-bottom:10rpx">详情请查看认筹单</View>
754
+              <View className="tip" style="margin:16rpx 0">详情请查看认筹单</View>
716 755
               {payType === 'onLine' && <Block>
717 756
                 <View className="tip">支付结果请留意微信支付通知</View>
718
-              </Block>}
757
+                <View style="font-size: 30rpx;color: #E4A938;line-height:2">为保障您的权益,请签署认筹合同!</View>
758
+              </Block>
759
+              }
719 760
               {payType === 'offLine' && <Block>
720 761
                 <View className="tip" style="margin-bottom:10rpx">后台已收到认筹申请,您尚未付款!</View>
721 762
                 <View className="tip">请尽快联系您的专属置业顾问缴纳定金</View>
@@ -727,12 +768,13 @@ export default class raiseMoney extends Component {
727 768
         {
728 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 773
           record.raiseRecordId &&
734 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 778
       </View>
737 779
 
738 780
     );

+ 111
- 38
src/onlineSelling/pages/raiseMoney/index.scss Просмотреть файл

@@ -162,45 +162,118 @@
162 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 Просмотреть файл

@@ -0,0 +1,137 @@
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
+}