Browse Source

Merge branch 'main' of http://git.ycjcjy.com/marketing/miniapp into main

Your Name 3 years ago
parent
commit
90871be2ed

BIN
src/assets/index-icon18.png View File


BIN
src/assets/index-icon19.png View File


BIN
src/assets/mine-icon29.png View File


BIN
src/assets/mine-icon30.png View File


BIN
src/assets/mine-icon31.png View File


BIN
src/assets/mine-icon32.png View File


BIN
src/assets/mine-icon33.png View File


+ 2
- 0
src/components/ProjectItemCard/index.jsx View File

17
     <view className='components ProjectItemCard'>
17
     <view className='components ProjectItemCard'>
18
       <view className='Img' onClick={() => goto(Data)}>
18
       <view className='Img' onClick={() => goto(Data)}>
19
         <Image mode='scaleToFill' src={getImgURL(Data?.buildingListImg?.length ? Data.buildingListImg[0].url : null)} className='centerLabel'></Image>
19
         <Image mode='scaleToFill' src={getImgURL(Data?.buildingListImg?.length ? Data.buildingListImg[0].url : null)} className='centerLabel'></Image>
20
+        <Image mode='heightFix' className='Tips Vr' src={require('@/assets/index-icon18.png')} />
21
+        <Image mode='heightFix' className='Tips Video' src={require('@/assets/index-icon19.png')} />
20
       </view>
22
       </view>
21
       <view className='Name flex-h' onClick={() => goto(Data)}>
23
       <view className='Name flex-h' onClick={() => goto(Data)}>
22
         <view className='flex-item'>
24
         <view className='flex-item'>

+ 14
- 1
src/components/ProjectItemCard/style.scss View File

9
     overflow: hidden;
9
     overflow: hidden;
10
     background: #eee;
10
     background: #eee;
11
     border-radius: 8px;
11
     border-radius: 8px;
12
-    > image {
12
+    > image.centerLabel {
13
       width: 100%;
13
       width: 100%;
14
       height: 100%;
14
       height: 100%;
15
+      z-index: 1;
16
+    }
17
+    >.Tips {
18
+      width: 30px;
19
+      height: 30px;
20
+      display: block;
21
+      position: absolute;
22
+      z-index: 2;
23
+      bottom: 10px;
24
+      left: 18px;
25
+      &.Vr {
26
+        left: 58px;
27
+      }
15
     }
28
     }
16
   }
29
   }
17
   > .Name {
30
   > .Name {

+ 4
- 2
src/components/ProjectListItem/index.jsx View File

1
-import React, { useState, useEffect } from 'react'
2
-import './index.scss'
1
+
3
 import '@/assets/css/iconfont.css'
2
 import '@/assets/css/iconfont.css'
4
 import Taro from '@tarojs/taro'
3
 import Taro from '@tarojs/taro'
5
 import { Image } from '@tarojs/components'
4
 import { Image } from '@tarojs/components'
6
 import { getImgURL } from '@/utils/image'
5
 import { getImgURL } from '@/utils/image'
6
+import './index.scss'
7
 
7
 
8
 export default function ProjectListItem (props) {
8
 export default function ProjectListItem (props) {
9
   const { Data = {} } = props
9
   const { Data = {} } = props
13
       <view className='Img'>
13
       <view className='Img'>
14
         <view>
14
         <view>
15
           <Image mode='aspectFill' className='centerLabel' src={getImgURL(Data.buildingListImg?.length ? Data.buildingListImg[0].url : null)} />
15
           <Image mode='aspectFill' className='centerLabel' src={getImgURL(Data.buildingListImg?.length ? Data.buildingListImg[0].url : null)} />
16
+          <Image mode='heightFix' className='Tips Vr' src={require('@/assets/index-icon18.png')} />
17
+          <Image mode='heightFix' className='Tips Video' src={require('@/assets/index-icon19.png')} />
16
         </view>
18
         </view>
17
       </view>
19
       </view>
18
       <view className='flex-item'>
20
       <view className='flex-item'>

+ 14
- 1
src/components/ProjectListItem/index.scss View File

13
       position: relative;
13
       position: relative;
14
       overflow: hidden;
14
       overflow: hidden;
15
       border-radius: 8px;
15
       border-radius: 8px;
16
-      > image {
16
+      > image.centerLabel {
17
         width: 100%;
17
         width: 100%;
18
         height: 100%;
18
         height: 100%;
19
+        z-index: 1;
20
+      }
21
+      >.Tips {
22
+        width: 30px;
23
+        height: 30px;
24
+        display: block;
25
+        position: absolute;
26
+        z-index: 2;
27
+        bottom: 10px;
28
+        left: 10px;
29
+        &.Vr {
30
+          left: 50px;
31
+        }
19
       }
32
       }
20
     }
33
     }
21
   }
34
   }

+ 1
- 0
src/constants/api.js View File

24
 export const API_SURE_CHIP = resolvePath('marking/preparatory') // 确认认筹
24
 export const API_SURE_CHIP = resolvePath('marking/preparatory') // 确认认筹
25
 export const API_SURE_BUY = resolvePath('marking/commission') // 确认结佣
25
 export const API_SURE_BUY = resolvePath('marking/commission') // 确认结佣
26
 export const API_SURE_SIGN = resolvePath('marking/signatory') // 确认签约
26
 export const API_SURE_SIGN = resolvePath('marking/signatory') // 确认签约
27
+export const API_INVALID = resolvePath('marking/invalidCustomer') // 无效
27
 
28
 
28
 // 获取经纪人绑定楼盘列表
29
 // 获取经纪人绑定楼盘列表
29
 export const API_GET_AGENT_BUILDINGS = resolvePath('buildingChannel/buildings')
30
 export const API_GET_AGENT_BUILDINGS = resolvePath('buildingChannel/buildings')

+ 6
- 5
src/pages/index/specialPriceHouse/index.jsx View File

5
 import Disclaimer from '@/components/Disclaimer'
5
 import Disclaimer from '@/components/Disclaimer'
6
 import { getImgURL } from '@/utils/image'
6
 import { getImgURL } from '@/utils/image'
7
 import { formateLeftTime } from '@/utils/tools'
7
 import { formateLeftTime } from '@/utils/tools'
8
-import { useSelector } from 'react-redux'
9
 import { fetch } from '@/utils/request'
8
 import { fetch } from '@/utils/request'
10
 import { API_SPECIAL_ROOM_LIST } from '@/constants/api'
9
 import { API_SPECIAL_ROOM_LIST } from '@/constants/api'
11
 import '@/assets/css/iconfont.css'
10
 import '@/assets/css/iconfont.css'
15
 
14
 
16
 export default withLayout((props) => {
15
 export default withLayout((props) => {
17
   const { city } = props
16
   const { city } = props
18
-  
17
+
19
   const [PageList, setPageList] = useState([])
18
   const [PageList, setPageList] = useState([])
20
   const [IsPull, setPull] = useState(false)
19
   const [IsPull, setPull] = useState(false)
21
   const [pageNumber, setPageNumber] = useState(1)
20
   const [pageNumber, setPageNumber] = useState(1)
39
   }
38
   }
40
 
39
 
41
   const PageLoadMore = () => { // 页面上拉加载更多
40
   const PageLoadMore = () => { // 页面上拉加载更多
42
-    if(HasNextPage) {
41
+    if (HasNextPage) {
43
       setPageNumber(pageNumber + 1)
42
       setPageNumber(pageNumber + 1)
44
     }
43
     }
45
   }
44
   }
46
 
45
 
47
   useEffect(() => { // 下拉刷新触发
46
   useEffect(() => { // 下拉刷新触发
48
     if (IsPull) {
47
     if (IsPull) {
49
-      if(pageNumber === 1) {
48
+      if (pageNumber === 1) {
50
         GetPageList()
49
         GetPageList()
51
       } else {
50
       } else {
52
         setPageNumber(1)
51
         setPageNumber(1)
84
 
83
 
85
                 //
84
                 //
86
                 const specialRoomList = item.specialRoomList || []
85
                 const specialRoomList = item.specialRoomList || []
87
-                
86
+
88
                 return (
87
                 return (
89
                   <view key={item.buildingId}>
88
                   <view key={item.buildingId}>
90
                     <view className='Title'>
89
                     <view className='Title'>
98
                     <view className='InfoContent'>
97
                     <view className='InfoContent'>
99
                       <view className='Img' onClick={() => goto(item)}>
98
                       <view className='Img' onClick={() => goto(item)}>
100
                         <Image mode='scaleToFill' src={mainImg} className='centerLabel'></Image>
99
                         <Image mode='scaleToFill' src={mainImg} className='centerLabel'></Image>
100
+                        <Image mode='heightFix' className='Tips Vr' src={require('@/assets/index-icon18.png')} />
101
+                        <Image mode='heightFix' className='Tips Video' src={require('@/assets/index-icon19.png')} />
101
                       </view>
102
                       </view>
102
                       <view className='Name flex-h' onClick={() => goto(item)}>
103
                       <view className='Name flex-h' onClick={() => goto(item)}>
103
                         <view className='flex-item'>
104
                         <view className='flex-item'>

+ 14
- 1
src/pages/index/specialPriceHouse/index.scss View File

77
               overflow: hidden;
77
               overflow: hidden;
78
               background: #eee;
78
               background: #eee;
79
               border-radius: 8px;
79
               border-radius: 8px;
80
-              >image {
80
+              > image.centerLabel {
81
                 width: 100%;
81
                 width: 100%;
82
                 height: 100%;
82
                 height: 100%;
83
+                z-index: 1;
84
+              }
85
+              >.Tips {
86
+                width: 30px;
87
+                height: 30px;
88
+                display: block;
89
+                position: absolute;
90
+                z-index: 2;
91
+                bottom: 10px;
92
+                left: 18px;
93
+                &.Vr {
94
+                  left: 58px;
95
+                }
83
               }
96
               }
84
             }
97
             }
85
             >.Name {
98
             >.Name {

+ 36
- 13
src/pages/mine/components/ResidentListItem/index.jsx View File

1
-import React, { useState, useEffect } from 'react'
1
+
2
 import Taro from '@tarojs/taro'
2
 import Taro from '@tarojs/taro'
3
-import { Image } from '@tarojs/components'
3
+import { Image, Block } from '@tarojs/components'
4
 import { formatDate } from '@/utils/chatDate'
4
 import { formatDate } from '@/utils/chatDate'
5
+import { fetch } from '@/utils/request'
6
+import { API_INVALID } from '@/constants/api'
5
 import './index.scss'
7
 import './index.scss'
6
 
8
 
7
 export default function ResidentListItem (props) {
9
 export default function ResidentListItem (props) {
8
-  const { data = {} } = props
10
+  const { data = {}, change = () => { } } = props
11
+  const ToUnVisable = () => {
12
+    fetch({ url: API_INVALID, method: 'put', payload: { type: data.type, id: data.id } }).then(() => {
13
+      Taro.showToast({ title: '审核成功', icon: 'none', duration: 2000 })
14
+      change()
15
+    })
16
+  }
9
   return (
17
   return (
10
     <view className='components ResidentListItem'>
18
     <view className='components ResidentListItem'>
11
       <view className='flex-h'>
19
       <view className='flex-h'>
13
         <view className='flex-item'>
21
         <view className='flex-item'>
14
           <text>{data.name}</text>
22
           <text>{data.name}</text>
15
         </view>
23
         </view>
16
-        {
24
+        {/* {
17
           data.customerStatus - 0 === 1 &&
25
           data.customerStatus - 0 === 1 &&
18
           <text className='Status'>已报备</text>
26
           <text className='Status'>已报备</text>
19
-        }
27
+        } */}
20
         {
28
         {
21
           data.type === 'report' && (data.channelStatus - 0) === 1 &&
29
           data.type === 'report' && (data.channelStatus - 0) === 1 &&
22
           <text className='Status' onClick={() => { Taro.navigateTo({ url: `/pages/mine/sureVisit/index?id=${data.id}` }) }}>到访确认</text>
30
           <text className='Status' onClick={() => { Taro.navigateTo({ url: `/pages/mine/sureVisit/index?id=${data.id}` }) }}>到访确认</text>
29
         </view>
37
         </view>
30
         {
38
         {
31
           data.customerStatus - 0 === 1 &&
39
           data.customerStatus - 0 === 1 &&
32
-          <text className='Type'>报备</text>
40
+          <Block>
41
+            <Image mode='heightFix' src={require('@/assets/mine-icon29.png')}></Image>
42
+            <text className='Type'>报备</text>
43
+          </Block>
33
         }
44
         }
34
         {
45
         {
35
           data.customerStatus - 0 === 2 &&
46
           data.customerStatus - 0 === 2 &&
36
-          <text className='Type'>到访</text>
47
+          <Block>
48
+            <Image mode='heightFix' src={require('@/assets/mine-icon30.png')}></Image>
49
+            <text className='Type'>到访</text>
50
+          </Block>
37
         }
51
         }
38
         {
52
         {
39
           data.customerStatus - 0 === 3 &&
53
           data.customerStatus - 0 === 3 &&
40
-          <text className='Type'>认筹</text>
54
+          <Block>
55
+            <Image mode='heightFix' src={require('@/assets/mine-icon33.png')}></Image>
56
+            <text className='Type'>认筹</text>
57
+          </Block>
41
         }
58
         }
42
         {
59
         {
43
           data.customerStatus - 0 === 4 &&
60
           data.customerStatus - 0 === 4 &&
44
-          <text className='Type'>签约</text>
61
+          <Block>
62
+            <Image mode='heightFix' src={require('@/assets/mine-icon32.png')}></Image>
63
+            <text className='Type'>签约</text>
64
+          </Block>
45
         }
65
         }
46
         {
66
         {
47
           data.customerStatus - 0 === 5 &&
67
           data.customerStatus - 0 === 5 &&
48
-          <text className='Type'>结佣</text>
68
+          <Block>
69
+            <Image mode='heightFix' src={require('@/assets/mine-icon31.png')}></Image>
70
+            <text className='Type'>结佣</text>
71
+          </Block>
49
         }
72
         }
50
         {/* <Image mode='heightFix' src={require('@/assets/mine-icon27.png')}></Image> */}
73
         {/* <Image mode='heightFix' src={require('@/assets/mine-icon27.png')}></Image> */}
51
       </view>
74
       </view>
63
       </view>
86
       </view>
64
       <view className='Opt'>
87
       <view className='Opt'>
65
         {
88
         {
66
-          !(data.type === 'report' && data.channelStatus === 3) &&
89
+          !(data.type === 'report' && data.channelStatus - 0 === 3) &&
67
           <text className='active' onClick={() => { Taro.navigateTo({ url: `/pages/mine/changeVisit/index?id=${data.id}&name=${data.name}&buildingId=${data.buildingId}&type=${data.type}&channelId=${data.channelId}` }) }}>更新交易</text>
90
           <text className='active' onClick={() => { Taro.navigateTo({ url: `/pages/mine/changeVisit/index?id=${data.id}&name=${data.name}&buildingId=${data.buildingId}&type=${data.type}&channelId=${data.channelId}` }) }}>更新交易</text>
68
         }
91
         }
69
         {
92
         {
70
-          data.type === 'report' && data.channelStatus === 3 &&
71
-          <text>无效</text>
93
+          data.type === 'report' && data.channelStatus - 0 === 1 &&
94
+          <text onClick={ToUnVisable}>无效</text>
72
         }
95
         }
73
       </view>
96
       </view>
74
     </view>
97
     </view>

+ 3
- 0
src/pages/mine/myRecommendCode/index.config.js View File

1
+export default {
2
+  navigationBarTitleText: '我的推广码'
3
+}

+ 13
- 0
src/pages/mine/myRecommendCode/index.jsx View File

1
+// import { useState, useEffect } from 'react'
2
+import withLayout from '@/layout'
3
+import '@/assets/css/iconfont.css'
4
+import './index.scss'
5
+
6
+export default withLayout(() => {
7
+
8
+  return (
9
+    <view className='Page myRecommendCode'>
10
+      我的推广码
11
+    </view>
12
+  )
13
+})

+ 7
- 0
src/pages/mine/myRecommendCode/index.scss View File

1
+.Page.myRecommendCode {
2
+  background: #f8f8f8;
3
+  width: 100%;
4
+  height: 100%;
5
+  position: relative;
6
+  overflow: hidden;
7
+}

+ 9
- 1
src/pages/mine/residentManager/index.jsx View File

130
     setFilterData({ ...FilterData, keywords: e.detail.value })
130
     setFilterData({ ...FilterData, keywords: e.detail.value })
131
   }
131
   }
132
 
132
 
133
+  const ListChange = (index) => {
134
+    return () => {
135
+      let List = [...PageList]
136
+      List.splice(index, 1)
137
+      setPageList(List)
138
+    }
139
+  }
140
+
133
   return (
141
   return (
134
     <view className='Page residentManager flex-v'>
142
     <view className='Page residentManager flex-v'>
135
 
143
 
169
               <view className='List'>
177
               <view className='List'>
170
                 {
178
                 {
171
                   PageList.map((item, index) => (
179
                   PageList.map((item, index) => (
172
-                    <ResidentListItem data={item} key={`ResidentListItem-${index}`}></ResidentListItem>
180
+                    <ResidentListItem data={item} key={`ResidentListItem-${index}`} change={ListChange(index)}></ResidentListItem>
173
                   ))
181
                   ))
174
                 }
182
                 }
175
               </view>
183
               </view>

+ 1
- 0
src/pages/mine/tabData.js View File

32
       { name: '我的收藏', icon: require('../../assets/mine-icon13.png'), router: '/pages/mine/myCollect/index' }
32
       { name: '我的收藏', icon: require('../../assets/mine-icon13.png'), router: '/pages/mine/myCollect/index' }
33
     ],
33
     ],
34
     [
34
     [
35
+      { name: '成为驻场管理', icon: require('../../assets/mine-icon8.png'), router: '/pages/mine/toBeManager/index' },
35
       { name: '房贷计算器', icon: require('../../assets/mine-icon4.png'), router: '/pages/mine/mortgageCalc/index' },
36
       { name: '房贷计算器', icon: require('../../assets/mine-icon4.png'), router: '/pages/mine/mortgageCalc/index' },
36
       { name: '购房百科', icon: require('../../assets/mine-icon2.png'), router: '/pages/index/encyclopediasOfBuyHouse/index' },
37
       { name: '购房百科', icon: require('../../assets/mine-icon2.png'), router: '/pages/index/encyclopediasOfBuyHouse/index' },
37
       { name: '意见反馈', icon: require('../../assets/mine-icon16.png'), router: '/pages/mine/feedBack/index' }
38
       { name: '意见反馈', icon: require('../../assets/mine-icon16.png'), router: '/pages/mine/feedBack/index' }

+ 6
- 0
src/routes.js View File

253
   },
253
   },
254
 
254
 
255
   // 我的
255
   // 我的
256
+  {
257
+    name: '我的推广码',
258
+    page: 'pages/mine/myRecommendCode/index',
259
+    pkg: 'main',
260
+    type: 'mine',
261
+  },
256
   {
262
   {
257
     name: '房贷计算器',
263
     name: '房贷计算器',
258
     page: 'pages/mine/mortgageCalc/index',
264
     page: 'pages/mine/mortgageCalc/index',