张延森 3 年前
父节点
当前提交
7919aafad6

+ 10
- 5
src/components/FixedConsultant/index.jsx 查看文件

1
 import { useState } from 'react'
1
 import { useState } from 'react'
2
+import classNames from 'classnames'
2
 import Taro from '@tarojs/taro'
3
 import Taro from '@tarojs/taro'
3
 import { Image } from '@tarojs/components'
4
 import { Image } from '@tarojs/components'
4
 import { getImgURL } from '@/utils/image'
5
 import { getImgURL } from '@/utils/image'
10
 
11
 
11
   const [Show, setShow] = useState(false)
12
   const [Show, setShow] = useState(false)
12
 
13
 
14
+  const toggleVisible = () => {
15
+    setShow(!Show)
16
+  }
17
+
13
   const handleChat = () => {
18
   const handleChat = () => {
14
     Taro.navigateTo({
19
     Taro.navigateTo({
15
       url: `/pages/chat/chatDetail/index?targetPerson=${consultantId}}`
20
       url: `/pages/chat/chatDetail/index?targetPerson=${consultantId}}`
26
   }
31
   }
27
 
32
 
28
   return !!consultantId && (
33
   return !!consultantId && (
29
-    <view className='components FixedCard'>
30
-      <view className='Icon' onClick={() => setShow(true)}>
34
+    <view className={classNames('components FixedCard', { spread: Show })}>
35
+      <view className='Icon' onClick={toggleVisible}>
31
         <Image mode='aspectFill' src={getImgURL(picture||avatar)}></Image>
36
         <Image mode='aspectFill' src={getImgURL(picture||avatar)}></Image>
32
       </view>
37
       </view>
33
-      <view className='Name'>
38
+      <view className='Name' onClick={toggleVisible}>
34
         <text>{name}</text>
39
         <text>{name}</text>
35
-        <text style={{display: Show ? 'block' : 'none'}}>{company}</text>
40
+        {/* <text style={{display: Show ? 'block' : 'none'}}>{company}</text> */}
36
       </view>
41
       </view>
37
       <text
42
       <text
38
         style={{display: Show ? 'inline-block' : 'none'}}
43
         style={{display: Show ? 'inline-block' : 'none'}}
49
       <text
54
       <text
50
         style={{display: Show ? 'inline-block' : 'none'}}
55
         style={{display: Show ? 'inline-block' : 'none'}}
51
         className='iconfont icon-guanbi Btn'
56
         className='iconfont icon-guanbi Btn'
52
-        onClick={() => setShow(false)}
57
+        onClick={toggleVisible}
53
       ></text>
58
       ></text>
54
 
59
 
55
       <text
60
       <text

+ 15
- 8
src/components/FixedConsultant/index.scss 查看文件

1
 .components.FixedCard {
1
 .components.FixedCard {
2
-  transition: all .2s ease-out;
3
-  -webkit-transition: all .2s ease-out;
2
+  transition: width .2s ease-out;
3
+  -webkit-transition: width .2s ease-out;
4
   position: fixed;
4
   position: fixed;
5
   right: 0;
5
   right: 0;
6
   background: #fff;
6
   background: #fff;
11
   font-size: 0;
11
   font-size: 0;
12
   white-space: nowrap;
12
   white-space: nowrap;
13
   border-radius: 94px 0 0 94px;
13
   border-radius: 94px 0 0 94px;
14
+  box-sizing: border-box;
15
+  width: 222rpx;
16
+
17
+  &.spread {
18
+    width: 452rpx;
19
+  }
20
+
14
   >view {
21
   >view {
15
     display: inline-block;
22
     display: inline-block;
16
     vertical-align: middle;
23
     vertical-align: middle;
34
         white-space: nowrap;
41
         white-space: nowrap;
35
         line-height: 32px;
42
         line-height: 32px;
36
         display: block;
43
         display: block;
37
-        &:last-child {
38
-          font-weight: normal;
39
-          font-size: 20px;
40
-          line-height: 1;
41
-          color: #202020;
42
-        }
44
+        // &:last-child {
45
+        //   font-weight: normal;
46
+        //   font-size: 20px;
47
+        //   line-height: 1;
48
+        //   color: #202020;
49
+        // }
43
       }
50
       }
44
     }
51
     }
45
   }
52
   }

+ 9
- 4
src/layout/index.js 查看文件

7
 import AuthAvatar from '@/components/Auth/AuthAvatar'
7
 import AuthAvatar from '@/components/Auth/AuthAvatar'
8
 import AuthPhone from '@/components/Auth/AuthPhone'
8
 import AuthPhone from '@/components/Auth/AuthPhone'
9
 import Spin from '@/components/Spin/Spin2'
9
 import Spin from '@/components/Spin/Spin2'
10
+import FixedConsultant from '@/components/FixedConsultant'
10
 import { ROLE_CODE } from '@/constants/user'
11
 import { ROLE_CODE } from '@/constants/user'
11
 import useAuth from './useAuth'
12
 import useAuth from './useAuth'
12
 import { routes } from '../routes'
13
 import { routes } from '../routes'
23
   const [authPhone, authAvatar] = useAuth(person, page)
24
   const [authPhone, authAvatar] = useAuth(person, page)
24
 
25
 
25
   const { id } = router.params
26
   const { id } = router.params
27
+  const showConsultant = page.shortcut && page.shortcut.consultant
26
 
28
 
27
   // 页面分享
29
   // 页面分享
28
   const [shareContent, setShareContent] = useState({})
30
   const [shareContent, setShareContent] = useState({})
80
       </Overlay>
82
       </Overlay>
81
       <Spin size={32} spinning={spinning} />
83
       <Spin size={32} spinning={spinning} />
82
       {
84
       {
83
-        person && person.personId
84
-        ? <ChildComponent
85
+        person && !!person.personId && (
86
+          <ChildComponent
85
             person={person}
87
             person={person}
86
             router={router}
88
             router={router}
87
             consultant={consultant}
89
             consultant={consultant}
90
             trackData={trackData}
92
             trackData={trackData}
91
             {...props}
93
             {...props}
92
             {...extInfo}
94
             {...extInfo}
93
-        />
94
-        : null
95
+          />
96
+        )
97
+      }
98
+      {
99
+        !!showConsultant && (<FixedConsultant consultant={consultant} />)
95
       }
100
       }
96
     </>
101
     </>
97
   )
102
   )

+ 1
- 1
src/pages/index/buildingDetail/components/BuildingDetailBanner/index.jsx 查看文件

10
 export default function BuildingDetailBanner (props) {
10
 export default function BuildingDetailBanner (props) {
11
   const { Info } = props
11
   const { Info } = props
12
   const { buildingImg, panoramaList, videoUrl, videoImage } = Info || {}
12
   const { buildingImg, panoramaList, videoUrl, videoImage } = Info || {}
13
-  const videoPoster = videoImage ? videoImage[0] : undefined
13
+  const videoPoster = videoImage ? videoImage[0].url : undefined
14
 
14
 
15
   const showPicBtn = buildingImg && buildingImg.length > 0
15
   const showPicBtn = buildingImg && buildingImg.length > 0
16
   const showVRBtn = panoramaList && panoramaList.length > 0
16
   const showVRBtn = panoramaList && panoramaList.length > 0

+ 0
- 6
src/pages/index/buildingDetail/components/DetailBottom/index.jsx 查看文件

92
               <Image mode='heightFix' src={require('@/assets/buildingDetail-icon1.png')}></Image>
92
               <Image mode='heightFix' src={require('@/assets/buildingDetail-icon1.png')}></Image>
93
               <text>一键带看</text>
93
               <text>一键带看</text>
94
             </view>
94
             </view>
95
-            <AuthRole role={ROLE_CODE.CONSULTANT}>
96
-              <view className='Item' onClick={handleRecommender}>
97
-                <Image mode='heightFix' src={require('@/assets/buildingDetail-icon2.png')}></Image>
98
-                <text>一键推荐</text>
99
-              </view>
100
-            </AuthRole>
101
           </AuthRole>
95
           </AuthRole>
102
         </view>
96
         </view>
103
         <view className='Btn'>
97
         <view className='Btn'>

+ 1
- 1
src/pages/index/buildingRules/index.jsx 查看文件

36
               </view>
36
               </view>
37
               <view>
37
               <view>
38
                 <text>&emsp;&emsp;以上价格仅供参考,具体一房一价的信息以售楼处展示为准。房屋位置交通、医疗、教育、商业等配套信息,来源于第三方不作为要约,仅供参考,双方具体权利义务应以法律规定及买卖合同约定为准。本平台对项目周边文化教育的介绍旨在提供相关信息1 意味着信息发布方对就学安排作出承诺。相关教育资首页信息存在调整的可能,应以政府教育主管部门门及办学颁布的政策规定为准。详情请仔细阅读</text>
38
                 <text>&emsp;&emsp;以上价格仅供参考,具体一房一价的信息以售楼处展示为准。房屋位置交通、医疗、教育、商业等配套信息,来源于第三方不作为要约,仅供参考,双方具体权利义务应以法律规定及买卖合同约定为准。本平台对项目周边文化教育的介绍旨在提供相关信息1 意味着信息发布方对就学安排作出承诺。相关教育资首页信息存在调整的可能,应以政府教育主管部门门及办学颁布的政策规定为准。详情请仔细阅读</text>
39
-                <text className='active'>《新联使用免责条款》</text>
39
+                <text className='active'>《新联使用免责条款》</text>
40
               </view>
40
               </view>
41
             </view>
41
             </view>
42
           </view>
42
           </view>

+ 1
- 1
src/pages/index/buildingTakeLook/index.jsx 查看文件

100
               </view>
100
               </view>
101
               <view>
101
               <view>
102
                 <text>&emsp;&emsp;以上价格仅供参考,具体一房一价的信息以售楼处展示为准。房屋位置交通、医疗、教育、商业等配套信息,来源于第三方不作为要约,仅供参考,双方具体权利义务应以法律规定及买卖合同约定为准。本平台对项目周边文化教育的介绍旨在提供相关信息1 意味着信息发布方对就学安排作出承诺。相关教育资首页信息存在调整的可能,应以政府教育主管部门门及办学颁布的政策规定为准。详情请仔细阅读</text>
102
                 <text>&emsp;&emsp;以上价格仅供参考,具体一房一价的信息以售楼处展示为准。房屋位置交通、医疗、教育、商业等配套信息,来源于第三方不作为要约,仅供参考,双方具体权利义务应以法律规定及买卖合同约定为准。本平台对项目周边文化教育的介绍旨在提供相关信息1 意味着信息发布方对就学安排作出承诺。相关教育资首页信息存在调整的可能,应以政府教育主管部门门及办学颁布的政策规定为准。详情请仔细阅读</text>
103
-                <text className='active'>《新联使用免责条款》</text>
103
+                <text className='active'>《新联使用免责条款》</text>
104
               </view>
104
               </view>
105
             </view>
105
             </view>
106
           </view>
106
           </view>

+ 1
- 1
src/pages/index/index.config.js 查看文件

1
 export default {
1
 export default {
2
-  navigationBarTitleText: '新联'
2
+  navigationBarTitleText: '新联'
3
 }
3
 }

+ 1
- 1
src/pages/index/specialPriceHouse/index.jsx 查看文件

103
               </view>
103
               </view>
104
               <view>
104
               <view>
105
                 <text>&emsp;&emsp;以上价格仅供参考,具体一房一价的信息以售楼处展示为准。房屋位置交通、医疗、教育、商业等配套信息,来源于第三方不作为要约,仅供参考,双方具体权利义务应以法律规定及买卖合同约定为准。本平台对项目周边文化教育的介绍旨在提供相关信息1 意味着信息发布方对就学安排作出承诺。相关教育资首页信息存在调整的可能,应以政府教育主管部门门及办学颁布的政策规定为准。详情请仔细阅读</text>
105
                 <text>&emsp;&emsp;以上价格仅供参考,具体一房一价的信息以售楼处展示为准。房屋位置交通、医疗、教育、商业等配套信息,来源于第三方不作为要约,仅供参考,双方具体权利义务应以法律规定及买卖合同约定为准。本平台对项目周边文化教育的介绍旨在提供相关信息1 意味着信息发布方对就学安排作出承诺。相关教育资首页信息存在调整的可能,应以政府教育主管部门门及办学颁布的政策规定为准。详情请仔细阅读</text>
106
-                <text className='active'>《新联使用免责条款》</text>
106
+                <text className='active'>《新联使用免责条款》</text>
107
               </view>
107
               </view>
108
             </view>
108
             </view>
109
           </view>
109
           </view>

+ 1
- 1
src/pages/index/webview/index.config.js 查看文件

1
 export default {
1
 export default {
2
-  navigationBarTitleText: '新联全景'
2
+  navigationBarTitleText: '新联全景'
3
 }
3
 }

+ 1
- 1
src/pages/mine/components/NeedLogin/index.jsx 查看文件

21
           </view>
21
           </view>
22
           <view>
22
           <view>
23
             <text>以上价格仅供参考,具体一房一价的信息以售楼处展示为准。房屋位置交通、医疗、教育、商业等配套信息,来源于第三方不作为要约,仅供参考,双方具体权利义务应以法律规定及买卖合同约定为准。本平台对项目周边文化教育的介绍旨在提供相关信息1 意味着信息发布方对就学安排作出承诺。相关教育资首页信息存在调整的可能,应以政府教育主管部门门及办学颁布的政策规定为准。详情请仔细阅读</text>
23
             <text>以上价格仅供参考,具体一房一价的信息以售楼处展示为准。房屋位置交通、医疗、教育、商业等配套信息,来源于第三方不作为要约,仅供参考,双方具体权利义务应以法律规定及买卖合同约定为准。本平台对项目周边文化教育的介绍旨在提供相关信息1 意味着信息发布方对就学安排作出承诺。相关教育资首页信息存在调整的可能,应以政府教育主管部门门及办学颁布的政策规定为准。详情请仔细阅读</text>
24
-            <text className='active'>《新联使用免责条款》</text>
24
+            <text className='active'>《新联使用免责条款》</text>
25
           </view>
25
           </view>
26
         </view>
26
         </view>
27
       </view>
27
       </view>

+ 0
- 4
src/pages/mine/myHomepage/index.jsx 查看文件

163
             <text>已经到底了~</text>
163
             <text>已经到底了~</text>
164
           </view>
164
           </view>
165
 
165
 
166
-          <view className='Share'>
167
-            <text onClick={() => { setShowPopup(true) }}>生成海报分享好友</text>
168
-          </view>
169
-
170
         </view>
166
         </view>
171
       </ScrollView>
167
       </ScrollView>
172
 
168
 

+ 8
- 0
src/routes.js 查看文件

10
     pkg: 'main',
10
     pkg: 'main',
11
     isTab: true,
11
     isTab: true,
12
     type: 'main',
12
     type: 'main',
13
+    shortcut: {
14
+      chat: false,
15
+      consultant: true,
16
+    },
13
     // auth: ['phone', 'avatar']
17
     // auth: ['phone', 'avatar']
14
   },
18
   },
15
   {
19
   {
81
     pkg: 'main',
85
     pkg: 'main',
82
     type: 'building',
86
     type: 'building',
83
     auth: ['phone', 'avatar'],
87
     auth: ['phone', 'avatar'],
88
+    shortcut: {
89
+      chat: false,
90
+      consultant: true,
91
+    },
84
   },
92
   },
85
   {
93
   {
86
     name: '全景看房',
94
     name: '全景看房',

+ 1
- 1
src/services/common.js 查看文件

24
  *
24
  *
25
  */
25
  */
26
 export const getMiniQrcode = payload =>
26
 export const getMiniQrcode = payload =>
27
-  fetch({ url: API_QRCODE, payload, method: "POST" });
27
+  fetch({ url: API_QRCODE, payload, method: "POST", showToast: false });
28
 
28
 
29
 /**
29
 /**
30
  * 获取二维码参数
30
  * 获取二维码参数