张延森 il y a 3 ans
Parent
révision
7919aafad6

+ 10
- 5
src/components/FixedConsultant/index.jsx Voir le fichier

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

+ 15
- 8
src/components/FixedConsultant/index.scss Voir le fichier

@@ -1,6 +1,6 @@
1 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 4
   position: fixed;
5 5
   right: 0;
6 6
   background: #fff;
@@ -11,6 +11,13 @@
11 11
   font-size: 0;
12 12
   white-space: nowrap;
13 13
   border-radius: 94px 0 0 94px;
14
+  box-sizing: border-box;
15
+  width: 222rpx;
16
+
17
+  &.spread {
18
+    width: 452rpx;
19
+  }
20
+
14 21
   >view {
15 22
     display: inline-block;
16 23
     vertical-align: middle;
@@ -34,12 +41,12 @@
34 41
         white-space: nowrap;
35 42
         line-height: 32px;
36 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 Voir le fichier

@@ -7,6 +7,7 @@ import Loading from '@/components/Loading'
7 7
 import AuthAvatar from '@/components/Auth/AuthAvatar'
8 8
 import AuthPhone from '@/components/Auth/AuthPhone'
9 9
 import Spin from '@/components/Spin/Spin2'
10
+import FixedConsultant from '@/components/FixedConsultant'
10 11
 import { ROLE_CODE } from '@/constants/user'
11 12
 import useAuth from './useAuth'
12 13
 import { routes } from '../routes'
@@ -23,6 +24,7 @@ export default (ChildComponent) => (props) => {
23 24
   const [authPhone, authAvatar] = useAuth(person, page)
24 25
 
25 26
   const { id } = router.params
27
+  const showConsultant = page.shortcut && page.shortcut.consultant
26 28
 
27 29
   // 页面分享
28 30
   const [shareContent, setShareContent] = useState({})
@@ -80,8 +82,8 @@ export default (ChildComponent) => (props) => {
80 82
       </Overlay>
81 83
       <Spin size={32} spinning={spinning} />
82 84
       {
83
-        person && person.personId
84
-        ? <ChildComponent
85
+        person && !!person.personId && (
86
+          <ChildComponent
85 87
             person={person}
86 88
             router={router}
87 89
             consultant={consultant}
@@ -90,8 +92,11 @@ export default (ChildComponent) => (props) => {
90 92
             trackData={trackData}
91 93
             {...props}
92 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 Voir le fichier

@@ -10,7 +10,7 @@ const getImage = item => getImgURL(item.image || item.coverImg || item.url || it
10 10
 export default function BuildingDetailBanner (props) {
11 11
   const { Info } = props
12 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 15
   const showPicBtn = buildingImg && buildingImg.length > 0
16 16
   const showVRBtn = panoramaList && panoramaList.length > 0

+ 0
- 6
src/pages/index/buildingDetail/components/DetailBottom/index.jsx Voir le fichier

@@ -92,12 +92,6 @@ export default function DetailBottom (props) {
92 92
               <Image mode='heightFix' src={require('@/assets/buildingDetail-icon1.png')}></Image>
93 93
               <text>一键带看</text>
94 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 95
           </AuthRole>
102 96
         </view>
103 97
         <view className='Btn'>

+ 1
- 1
src/pages/index/buildingRules/index.jsx Voir le fichier

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

+ 1
- 1
src/pages/index/buildingTakeLook/index.jsx Voir le fichier

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

+ 1
- 1
src/pages/index/index.config.js Voir le fichier

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

+ 1
- 1
src/pages/index/specialPriceHouse/index.jsx Voir le fichier

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

+ 1
- 1
src/pages/index/webview/index.config.js Voir le fichier

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

+ 1
- 1
src/pages/mine/components/NeedLogin/index.jsx Voir le fichier

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

+ 0
- 4
src/pages/mine/myHomepage/index.jsx Voir le fichier

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

+ 8
- 0
src/routes.js Voir le fichier

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

+ 1
- 1
src/services/common.js Voir le fichier

@@ -24,7 +24,7 @@ export const getPreloadData = payload =>
24 24
  *
25 25
  */
26 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
  * 获取二维码参数