Browse Source

静态页面

1002884655 3 years ago
parent
commit
e9ba6d90c9

+ 2
- 2
config/dev.js View File

3
     NODE_ENV: '"development"'
3
     NODE_ENV: '"development"'
4
   },
4
   },
5
   defineConstants: {
5
   defineConstants: {
6
-    // HOST: '"https://xlk.njyz.tech"',
7
-    HOST: '"http://127.0.0.1:8081"',
6
+    HOST: '"https://xlk.njyz.tech"',
7
+    // HOST: '"http://127.0.0.1:8081"',
8
     WSS_HOST: '"wss://xlk.njyz.tech"',
8
     WSS_HOST: '"wss://xlk.njyz.tech"',
9
     OSS_PATH: '"https://zhiyun-image.oss-accelerate.aliyuncs.com/"',
9
     OSS_PATH: '"https://zhiyun-image.oss-accelerate.aliyuncs.com/"',
10
     OSS_FAST_PATH: '"https://zhiyun-image.oss-accelerate.aliyuncs.com/"',
10
     OSS_FAST_PATH: '"https://zhiyun-image.oss-accelerate.aliyuncs.com/"',

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

121
 // channel
121
 // channel
122
 export const API_CHANNEL_REPORT = resolvePath('channel/report')
122
 export const API_CHANNEL_REPORT = resolvePath('channel/report')
123
 
123
 
124
+// 驻场
125
+export const API_MANAGE_CUSTOMER_LIST = resolvePath('marking/customers')
126
+
124
 // report
127
 // report
128
+export const API_REPORT_CUETOMER = resolvePath('customer/manualReport ')
125
 export const API_REPORT_LIST = resolvePath('myReport')
129
 export const API_REPORT_LIST = resolvePath('myReport')
126
 export const API_REPORT_CLIENT = resolvePath('customer/report')
130
 export const API_REPORT_CLIENT = resolvePath('customer/report')
127
 export const API_RECOMMEND_GET = resolvePath('customer/recommend/get')
131
 export const API_RECOMMEND_GET = resolvePath('customer/recommend/get')

+ 39
- 21
src/pages/index/brandDetail/index.jsx View File

4
 import { ScrollView, Image } from '@tarojs/components'
4
 import { ScrollView, Image } from '@tarojs/components'
5
 import ProjectListItem from '@/components/ProjectListItem/index'
5
 import ProjectListItem from '@/components/ProjectListItem/index'
6
 import { queryBrandInfo } from '@/services/common';
6
 import { queryBrandInfo } from '@/services/common';
7
-import { getItemList } from '@/services/item';
8
 import { getImgURL } from '@/utils/image'
7
 import { getImgURL } from '@/utils/image'
8
+import { fetch } from '@/utils/request'
9
+import { API_ITEMS_LIST } from '@/constants/api'
9
 import '@/assets/css/iconfont.css'
10
 import '@/assets/css/iconfont.css'
10
 import ColumnTitle from '../components/ColumnTitle/index'
11
 import ColumnTitle from '../components/ColumnTitle/index'
11
 import './index.scss'
12
 import './index.scss'
13
 export default withLayout((props) => {
14
 export default withLayout((props) => {
14
   const { router } = props
15
   const { router } = props
15
   const { id } = router.params
16
   const { id } = router.params
16
-
17
-  const [ProjectList, setProjectList] = useState([{}, {}])
17
+  
18
+  const [PageList, setPageList] = useState([])
19
+  const [IsPull, setPull] = useState(false)
20
+  const [pageNumber, setPageNumber] = useState(1)
21
+  const [HasNextPage, setHasNextPage] = useState(true)
18
   const [brandInfo, setBrandInfo] = useState({})
22
   const [brandInfo, setBrandInfo] = useState({})
19
 
23
 
20
-  const getList = (params) => {
21
-    Taro.showLoading()
22
-    getItemList({
23
-      brandId: id,
24
-      ...(params || {}),
25
-    }).then((res) => {
26
-      const { records } = res
27
-      setProjectList(records || {})
28
-      Taro.hideLoading()
29
-    }).catch((err) => {
30
-      console.error(err)
31
-      Taro.hideLoading()
24
+  useEffect(() => {
25
+    GetPageList()
26
+  }, [pageNumber])
27
+
28
+  const PageRefresh = () => { // 页面下拉刷新回调
29
+    setPull(true)
30
+  }
31
+
32
+  const GetPageList = () => {
33
+    setHasNextPage(false)
34
+    fetch({ url: API_ITEMS_LIST, method: 'get', payload: { pageNumber, pageSize: 10 } }).then((res) => {
35
+      setPageList(pageNumber === 1 ? res.records || [] : PageList.concat(res.records || []))
36
+      setHasNextPage(res.current < res.pages)
37
+      setPull(false)
32
     })
38
     })
33
   }
39
   }
34
 
40
 
41
+  const PageLoadMore = () => { // 页面上拉加载更多
42
+    if(HasNextPage) {
43
+      setPageNumber(pageNumber + 1)
44
+    }
45
+  }
46
+
47
+  useEffect(() => { // 下拉刷新触发
48
+    if (IsPull) {
49
+      if(pageNumber === 1) {
50
+        GetPageList()
51
+      } else {
52
+        setPageNumber(1)
53
+      }
54
+    }
55
+  }, [IsPull])
56
+
35
   useEffect(() => {
57
   useEffect(() => {
36
     if (id) {
58
     if (id) {
37
       queryBrandInfo(id).then((res) => {
59
       queryBrandInfo(id).then((res) => {
38
         setBrandInfo(res || {})
60
         setBrandInfo(res || {})
39
-      }).catch((err) => {
40
-        console.error(err)
41
       })
61
       })
42
-
43
-      getList({ pageNumber: 1 })
44
     }
62
     }
45
   }, [id])
63
   }, [id])
46
 
64
 
47
   return (
65
   return (
48
     <view className='brandDetail'>
66
     <view className='brandDetail'>
49
-      <ScrollView scroll-y>
67
+      <ScrollView scroll-y refresher-enabled refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} onscrolltolower={PageLoadMore} refresher-background='#fff'>
50
         <view className='Content'>
68
         <view className='Content'>
51
 
69
 
52
           {/* 主图 */}
70
           {/* 主图 */}
69
             <ColumnTitle Name='在售项目' Icon='icon-aixin' ShowMore ToMore={() => { Taro.navigateTo({ url: `/pages/index/buildingList/index` }) }}></ColumnTitle>
87
             <ColumnTitle Name='在售项目' Icon='icon-aixin' ShowMore ToMore={() => { Taro.navigateTo({ url: `/pages/index/buildingList/index` }) }}></ColumnTitle>
70
             <view className='ProjectList'>
88
             <view className='ProjectList'>
71
               {
89
               {
72
-                ProjectList.map((item, index) => (
90
+                PageList.map((item, index) => (
73
                   <ProjectListItem Data={item} key={`ProjectListItem-${index}`}></ProjectListItem>
91
                   <ProjectListItem Data={item} key={`ProjectListItem-${index}`}></ProjectListItem>
74
                 ))
92
                 ))
75
               }
93
               }

+ 45
- 34
src/pages/mine/addCustomer/index.jsx View File

1
 import { useState, useEffect } from 'react'
1
 import { useState, useEffect } from 'react'
2
 import withLayout from '@/layout'
2
 import withLayout from '@/layout'
3
-import { ScrollView, Input, Image, Picker } from '@tarojs/components'
3
+import { ScrollView, Input, Image, Picker, Block } from '@tarojs/components'
4
 import '@/assets/css/iconfont.css'
4
 import '@/assets/css/iconfont.css'
5
 import { useSelector } from 'react-redux'
5
 import { useSelector } from 'react-redux'
6
 import { fetch } from '@/utils/request'
6
 import { fetch } from '@/utils/request'
7
-import { API_ITEMS_LIST, API_CARDS_LIST, API_REPORT_CLIENT, API_RECOMENT_CLIENT, API_CHANNEL_REPORT } from '@/constants/api'
7
+import { API_ITEMS_LIST, API_CARDS_LIST, API_REPORT_CUETOMER, API_RECOMENT_CLIENT, API_CHANNEL_REPORT } from '@/constants/api'
8
 import Taro from '@tarojs/taro'
8
 import Taro from '@tarojs/taro'
9
 import './index.scss'
9
 import './index.scss'
10
 
10
 
12
 
12
 
13
 export default withLayout((props) => {
13
 export default withLayout((props) => {
14
 
14
 
15
-  const { type } = props
15
+  const { router } = props
16
+  const { type } = router.params
16
   const user = useSelector(state => state.user)
17
   const user = useSelector(state => state.user)
17
   const [PersonId, setPersonId] = useState(null)
18
   const [PersonId, setPersonId] = useState(null)
18
   const [BuildingName, setBuildingName] = useState(null)
19
   const [BuildingName, setBuildingName] = useState(null)
47
   useEffect(() => {
48
   useEffect(() => {
48
     if (CanSubmit) {
49
     if (CanSubmit) {
49
       let url = null
50
       let url = null
50
-      if(type === 'consultant') { // 置业顾问
51
-        url = API_REPORT_CLIENT
52
-      } else if(type === 'customer') { // 普通客户
51
+      if (type === 'consultant') { // 置业顾问
52
+        url = API_REPORT_CUETOMER
53
+      } else if (type === 'customer') { // 普通客户
53
         url = API_RECOMENT_CLIENT
54
         url = API_RECOMENT_CLIENT
54
       } else { // 经纪人
55
       } else { // 经纪人
55
         url = API_CHANNEL_REPORT
56
         url = API_CHANNEL_REPORT
56
       }
57
       }
57
-      const params = { ...FormData, sex: SexId, intention: BuildingId, realtyConsultant: CardId }
58
+      let params = {}
59
+      if(type === 'consultant') {
60
+        params = { name: FormData.name, phone: FormData.phone, sex: SexId }
61
+      } else {
62
+        params = { ...FormData, sex: SexId, intention: BuildingId, realtyConsultant: CardId }
63
+      }
58
       fetch({ url, method: 'post', payload: params }).then(() => {
64
       fetch({ url, method: 'post', payload: params }).then(() => {
59
         Taro.showToast({ title: '添加成功', icon: 'none' })
65
         Taro.showToast({ title: '添加成功', icon: 'none' })
60
         Taro.navigateBack({ delta: 1 })
66
         Taro.navigateBack({ delta: 1 })
129
       Taro.showToast({ title: '请填写正确的客户电话', icon: 'none' })
135
       Taro.showToast({ title: '请填写正确的客户电话', icon: 'none' })
130
       return false
136
       return false
131
     }
137
     }
132
-    if (BuildingId === null) {
138
+    if (BuildingId === null && type !== 'consultant') {
133
       Taro.showToast({ title: '请选择客户的意向楼盘', icon: 'none' })
139
       Taro.showToast({ title: '请选择客户的意向楼盘', icon: 'none' })
134
       return false
140
       return false
135
     }
141
     }
168
             <text className='iconfont icon-jiantoudown'></text>
174
             <text className='iconfont icon-jiantoudown'></text>
169
           </view>
175
           </view>
170
 
176
 
171
-          <text>意向楼盘</text>
172
-          <view className='FormLine flex-h'>
173
-            <view className='flex-item'>
174
-              <Picker range-key='name' onChange={PickerChange} value={0} range={BuildingList}>
175
-                <text>{BuildingName || '请选择'}</text>
176
-              </Picker>
177
-            </view>
178
-          </view>
179
-
180
-          <text>内场接待(选填)</text>
181
-          <view className='FormLine flex-h'>
182
-            <view className='flex-item'>
183
-              <Picker range-key='name' onChange={CardPickerChange} value={0} range={CardList}>
184
-                <text>{CardName || '请选择'}</text>
185
-              </Picker>
186
-            </view>
187
-            <Image mode='heightFix' src={defaultSpecialImage}></Image>
188
-            <text>选择</text>
189
-          </view>
190
-
191
-          <text>备注</text>
192
-          <view className='FormLine flex-h'>
193
-            <view className='flex-item'>
194
-              <Input placeholder='补充说明(选填)' data-type='describe' onInput={FormInput.bind(this)}></Input>
195
-            </view>
196
-          </view>
177
+          {
178
+            type !== 'consultant' &&
179
+            <Block>
180
+              <text>意向楼盘</text>
181
+              <view className='FormLine flex-h'>
182
+                <view className='flex-item'>
183
+                  <Picker range-key='name' onChange={PickerChange} value={0} range={BuildingList}>
184
+                    <text>{BuildingName || '请选择'}</text>
185
+                  </Picker>
186
+                </view>
187
+              </view>
188
+
189
+              <text>内场接待(选填)</text>
190
+              <view className='FormLine flex-h'>
191
+                <view className='flex-item'>
192
+                  <Picker range-key='name' onChange={CardPickerChange} value={0} range={CardList}>
193
+                    <text>{CardName || '请选择'}</text>
194
+                  </Picker>
195
+                </view>
196
+                <Image mode='heightFix' src={defaultSpecialImage}></Image>
197
+                <text>选择</text>
198
+              </view>
199
+
200
+              <text>备注</text>
201
+              <view className='FormLine flex-h'>
202
+                <view className='flex-item'>
203
+                  <Input placeholder='补充说明(选填)' data-type='describe' onInput={FormInput.bind(this)}></Input>
204
+                </view>
205
+              </view>
206
+            </Block>
207
+          }
197
 
208
 
198
           <view className='Btn'>
209
           <view className='Btn'>
199
             <text onClick={ToSubmit}>提交</text>
210
             <text onClick={ToSubmit}>提交</text>

+ 9
- 11
src/pages/mine/components/MyCustomerListItem/index.jsx View File

1
-import React, { useState, useEffect } from 'react'
2
-import './index.scss'
1
+
2
+import { Image } from '@tarojs/components'
3
 import Taro from '@tarojs/taro'
3
 import Taro from '@tarojs/taro'
4
+import './index.scss'
4
 
5
 
5
 export default function MyCustomerListItem (props) {
6
 export default function MyCustomerListItem (props) {
6
-  const { Data = {} } = props
7
+  const { data = {} } = props
7
   return (
8
   return (
8
-    <view className='components MyCustomerListItem flex-h' onClick={() => { Taro.navigateTo({ url: `/pages/mine/myCustomerDetail/index?id=${Data.id}` }) }}>
9
+    <view className='components MyCustomerListItem flex-h' onClick={() => { Taro.navigateTo({ url: `/pages/mine/myCustomerDetail/index?id=${data.customerId}` }) }}>
9
       <view className='Img'>
10
       <view className='Img'>
10
-        {
11
-          Data.img &&
12
-          <Image mode='aspectFill' className='centerLabel' src={Data.img || null} />
13
-        }
11
+        <Image mode='scaleToFill' src={data.avatarurl}></Image>
14
       </view>
12
       </view>
15
       <view className='flex-item'>
13
       <view className='flex-item'>
16
         <view className='Name flex-h'>
14
         <view className='Name flex-h'>
17
-          <text className='flex-item'>徐慧慧</text>
15
+          <text className='flex-item'>{data.name}</text>
18
           <text>11/11 15:12:58收回</text>
16
           <text>11/11 15:12:58收回</text>
19
         </view>
17
         </view>
20
         <view className='Time flex-h'>
18
         <view className='Time flex-h'>
21
-          <text className='flex-item'>136 **** 9434</text>
22
-          <text>跟进状态</text>
19
+          <text className='flex-item'>{data.phone}</text>
20
+          <text>{data.status === 0 ? '' : data.status === 1 ? '报备' : data.status === 2 ? '到访' : data.status === 3 ? '认筹' : '签约'}</text>
23
         </view>
21
         </view>
24
       </view>
22
       </view>
25
     </view>
23
     </view>

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

1
 import React, { useState, useEffect } from 'react'
1
 import React, { useState, useEffect } from 'react'
2
-import './index.scss'
3
 import Taro from '@tarojs/taro'
2
 import Taro from '@tarojs/taro'
4
 import { Image } from '@tarojs/components'
3
 import { Image } from '@tarojs/components'
4
+import './index.scss'
5
 
5
 
6
 export default function ResidentListItem (props) {
6
 export default function ResidentListItem (props) {
7
-  const { Data = {} } = props
7
+  const { data = {} } = props
8
   return (
8
   return (
9
     <view className='components ResidentListItem'>
9
     <view className='components ResidentListItem'>
10
       <view className='flex-h'>
10
       <view className='flex-h'>
25
         <view className='flex-item'>
25
         <view className='flex-item'>
26
           <text>136****9434</text>
26
           <text>136****9434</text>
27
         </view>
27
         </view>
28
-        <Image mode='heightFix' src={require('../../../../assets/mine-icon27.png')}></Image>
28
+        <Image mode='heightFix' src={require('@/assets/mine-icon27.png')}></Image>
29
         <text className='Type'>结佣</text>
29
         <text className='Type'>结佣</text>
30
       </view>
30
       </view>
31
       <view className='flex-h'>
31
       <view className='flex-h'>

+ 46
- 13
src/pages/mine/myCustomer/index.jsx View File

1
-import React, { useState, useEffect } from 'react'
1
+import { useState, useEffect } from 'react'
2
 import withLayout from '@/layout'
2
 import withLayout from '@/layout'
3
-import './index.scss'
4
 import { ScrollView } from '@tarojs/components'
3
 import { ScrollView } from '@tarojs/components'
5
 import '@/assets/css/iconfont.css'
4
 import '@/assets/css/iconfont.css'
5
+import { useSelector } from 'react-redux'
6
+import { fetch } from '@/utils/request'
7
+import { API_CLIENT_LIST } from '@/constants/api'
8
+import './index.scss'
6
 import MyCustomerListItem from '../components/MyCustomerListItem/index'
9
 import MyCustomerListItem from '../components/MyCustomerListItem/index'
7
 
10
 
8
-export default withLayout((props) => {
9
-
10
-  // const [PageProps] = useState(props)
11
-  const [PageList, setPageList] = useState(['', '', '', '', '', '', '', '', '', '', '', '', ''])
11
+export default withLayout(() => {
12
+  
13
+  const user = useSelector(state => state.user)
14
+  const [PageList, setPageList] = useState([])
12
   const [IsPull, setPull] = useState(false)
15
   const [IsPull, setPull] = useState(false)
13
-  const [PullTimer, setPullTimer] = useState(null)
16
+  const [PersonId, setPersonId] = useState(null)
17
+  const [pageNumber, setPageNumber] = useState(1)
18
+  const [HasNextPage, setHasNextPage] = useState(true)
19
+
20
+  useEffect(() => {
21
+    if(user?.userInfo?.person?.personId) {
22
+      setPersonId(user.userInfo.person.personId)
23
+    }
24
+  }, [user])
25
+
26
+  useEffect(() => {
27
+    if(PersonId) {
28
+      GetPageList()
29
+    }
30
+  }, [pageNumber, PersonId])
14
 
31
 
15
   const PageRefresh = () => { // 页面下拉刷新回调
32
   const PageRefresh = () => { // 页面下拉刷新回调
16
     setPull(true)
33
     setPull(true)
17
   }
34
   }
18
 
35
 
36
+  const GetPageList = () => {
37
+    setHasNextPage(false)
38
+    fetch({ url: API_CLIENT_LIST, method: 'get', payload: { customerId: PersonId, pageNumber, pageSize: 10 } }).then((res) => {
39
+      setPageList(pageNumber === 1 ? res.records || [] : PageList.concat(res.records || []))
40
+      setHasNextPage(res.current < res.pages)
41
+      setPull(false)
42
+    })
43
+  }
44
+
45
+  const PageLoadMore = () => { // 页面上拉加载更多
46
+    if(HasNextPage) {
47
+      setPageNumber(pageNumber + 1)
48
+    }
49
+  }
50
+
19
   useEffect(() => { // 下拉刷新触发
51
   useEffect(() => { // 下拉刷新触发
20
     if (IsPull) {
52
     if (IsPull) {
21
-      clearTimeout(PullTimer)
22
-      setPullTimer(setTimeout(() => {
23
-        setPull(false)
24
-      }, 2000))
53
+      if(pageNumber === 1) {
54
+        GetPageList()
55
+      } else {
56
+        setPageNumber(1)
57
+      }
25
     }
58
     }
26
   }, [IsPull])
59
   }, [IsPull])
27
 
60
 
46
       <view className='flex-item'>
79
       <view className='flex-item'>
47
         <view>
80
         <view>
48
 
81
 
49
-          <ScrollView scroll-y={true} refresher-enabled={true} refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#fff'>
82
+          <ScrollView scroll-y refresher-enabled refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} onscrolltolower={PageLoadMore} refresher-background='#fff'>
50
             <view className='PageContent'>
83
             <view className='PageContent'>
51
               <view className='List'>
84
               <view className='List'>
52
                 {
85
                 {
53
                   PageList.map((item, index) => (
86
                   PageList.map((item, index) => (
54
                     <view>
87
                     <view>
55
-                      <MyCustomerListItem Data={item} key={`MyCustomerListItem-${index}`}></MyCustomerListItem>
88
+                      <MyCustomerListItem data={item} key={`MyCustomerListItem-${index}`}></MyCustomerListItem>
56
                     </view>
89
                     </view>
57
                   ))
90
                   ))
58
                 }
91
                 }

+ 83
- 24
src/pages/mine/residentManager/index.jsx View File

1
 import { useState, useEffect } from 'react'
1
 import { useState, useEffect } from 'react'
2
 import withLayout from '@/layout'
2
 import withLayout from '@/layout'
3
-import { ScrollView, Image } from '@tarojs/components'
3
+import { ScrollView, Input } from '@tarojs/components'
4
 import '@/assets/css/iconfont.css'
4
 import '@/assets/css/iconfont.css'
5
+import { useSelector } from 'react-redux'
6
+import { fetch } from '@/utils/request'
7
+import { API_MANAGE_CUSTOMER_LIST } from '@/constants/api'
5
 import './index.scss'
8
 import './index.scss'
6
 import ResidentListItem from '../components/ResidentListItem/index'
9
 import ResidentListItem from '../components/ResidentListItem/index'
7
 
10
 
8
 export default withLayout(() => {
11
 export default withLayout(() => {
12
+  // const [FilterMenu] = useState([
13
+  //   { name: '报备', id: 1 },
14
+  //   { name: '到访', id: 2 },
15
+  //   { name: '认筹', id: 3 },
16
+  //   { name: '认购', id: 4 },
17
+  //   { name: '签约', id: 5 },
18
+  //   { name: '报备无效', id: 6 },
19
+  //   { name: '报备过期', id: 7 }
20
+  // ])
21
+  // const [CurrentFilterMenuId, setCurrentFilterMenuId] = useState(null)
9
 
22
 
10
-  const [PageList, setPageList] = useState(['', '', '', '', '', '', '', '', '', '', '', '', ''])
23
+  // const CutFilter = (item) => {
24
+  //   return () => {
25
+  //     setCurrentFilterMenuId(item.id === CurrentFilterMenuId ? null : item.id)
26
+  //   }
27
+  // }
28
+
29
+  const user = useSelector(state => state.user)
30
+  const [PageList, setPageList] = useState([])
11
   const [IsPull, setPull] = useState(false)
31
   const [IsPull, setPull] = useState(false)
12
-  const [PullTimer, setPullTimer] = useState(null)
13
-  const [FilterMenu] = useState([
14
-    { name: '报备', id: 1 },
15
-    { name: '到访', id: 2 },
16
-    { name: '认筹', id: 3 },
17
-    { name: '认购', id: 4 },
18
-    { name: '签约', id: 5 },
19
-    { name: '报备无效', id: 6 },
20
-    { name: '报备过期', id: 7 }
21
-  ])
22
-  const [CurrentFilterMenuId, setCurrentFilterMenuId] = useState(null)
32
+  const [PersonId, setPersonId] = useState(null)
33
+  const [pageNumber, setPageNumber] = useState(1)
34
+  const [HasNextPage, setHasNextPage] = useState(true)
35
+  const [FilterData, setFilterData] = useState({})
36
+
37
+  useEffect(() => {
38
+    if (user?.userInfo?.person?.personId) {
39
+      setPersonId(user.userInfo.person.personId)
40
+    }
41
+  }, [user])
42
+
43
+  useEffect(() => {
44
+    if (PersonId) {
45
+      GetPageList()
46
+    }
47
+  }, [pageNumber, PersonId])
48
+
49
+  useEffect(() => {
50
+    if(FilterData.keywords) {
51
+      if(pageNumber === 1) {
52
+        GetPageList()
53
+      } else {
54
+        setPageNumber(2)
55
+      }
56
+    }
57
+  }, [FilterData])
58
+
59
+  // useEffect(() => {
60
+  //   if(CurrentFilterMenuId) {
61
+  //     if(pageNumber === 1) {
62
+  //       GetPageList()
63
+  //     } else {
64
+  //       setPageNumber(1)
65
+  //     }
66
+  //   }
67
+  // }, [CurrentFilterMenuId])
23
 
68
 
24
   const PageRefresh = () => { // 页面下拉刷新回调
69
   const PageRefresh = () => { // 页面下拉刷新回调
25
     setPull(true)
70
     setPull(true)
26
   }
71
   }
27
 
72
 
28
-  const CutFilter = (item) => {
29
-    return () => {
30
-      setCurrentFilterMenuId(item.id === CurrentFilterMenuId ? null : item.id)
73
+  const GetPageList = () => {
74
+    setHasNextPage(false)
75
+    fetch({ url: API_MANAGE_CUSTOMER_LIST, method: 'get', payload: { customerId: PersonId, pageNumber, pageSize: 10, ...FilterData, buildingId: user.userInfo.person.buildingId } }).then((res) => {
76
+      setPageList(pageNumber === 1 ? res.records || [] : PageList.concat(res.records || []))
77
+      setHasNextPage(res.current < res.pages)
78
+      setPull(false)
79
+    })
80
+  }
81
+
82
+  const PageLoadMore = () => { // 页面上拉加载更多
83
+    if (HasNextPage) {
84
+      setPageNumber(pageNumber + 1)
31
     }
85
     }
32
   }
86
   }
33
 
87
 
34
   useEffect(() => { // 下拉刷新触发
88
   useEffect(() => { // 下拉刷新触发
35
     if (IsPull) {
89
     if (IsPull) {
36
-      clearTimeout(PullTimer)
37
-      setPullTimer(setTimeout(() => {
38
-        setPull(false)
39
-      }, 2000))
90
+      if (pageNumber === 1) {
91
+        GetPageList()
92
+      } else {
93
+        setPageNumber(1)
94
+      }
40
     }
95
     }
41
   }, [IsPull])
96
   }, [IsPull])
42
 
97
 
98
+  const SearchConfirm = (e) => {
99
+    setFilterData({ ...FilterData, keywords: e.detail.value })
100
+  }
101
+
43
   return (
102
   return (
44
     <view className='Page residentManager flex-v'>
103
     <view className='Page residentManager flex-v'>
45
 
104
 
46
       <view className='Search'>
105
       <view className='Search'>
47
         <view>
106
         <view>
48
           <text className='iconfont icon-sousuo'></text>
107
           <text className='iconfont icon-sousuo'></text>
49
-          <text>请输入关键字搜索</text>
108
+          <Input confirm-type='search' placeholder='请输入关键字搜索' onConfirm={SearchConfirm} onscrolltolower={PageLoadMore}></Input>
50
         </view>
109
         </view>
51
       </view>
110
       </view>
52
 
111
 
55
           <ScrollView scroll-y refresher-enabled refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#fff'>
114
           <ScrollView scroll-y refresher-enabled refresher-triggered={IsPull} onrefresherrefresh={PageRefresh} refresher-background='#fff'>
56
             <view className='PageContent'>
115
             <view className='PageContent'>
57
 
116
 
58
-              <view className='Filter'>
117
+              {/* <view className='Filter'>
59
                 <text>筛选条件</text>
118
                 <text>筛选条件</text>
60
                 <view>
119
                 <view>
61
                   {
120
                   {
70
                     ))
129
                     ))
71
                   }
130
                   }
72
                 </view>
131
                 </view>
73
-              </view>
132
+              </view> */}
74
 
133
 
75
               <view className='List'>
134
               <view className='List'>
76
                 {
135
                 {
77
                   PageList.map((item, index) => (
136
                   PageList.map((item, index) => (
78
-                    <ResidentListItem Data={item} key={`ResidentListItem-${index}`}></ResidentListItem>
137
+                    <ResidentListItem data={item} key={`ResidentListItem-${index}`}></ResidentListItem>
79
                   ))
138
                   ))
80
                 }
139
                 }
81
               </view>
140
               </view>

+ 12
- 8
src/pages/mine/residentManager/index.scss View File

11
       position: relative;
11
       position: relative;
12
       overflow: hidden;
12
       overflow: hidden;
13
       background: #f8f8f8;
13
       background: #f8f8f8;
14
-      border-radius: 44px;
14
+      border-radius: 80px;
15
       text-align: center;
15
       text-align: center;
16
       font-size: 0;
16
       font-size: 0;
17
       white-space: nowrap;
17
       white-space: nowrap;
18
       >text {
18
       >text {
19
         display: inline-block;
19
         display: inline-block;
20
         vertical-align: middle;
20
         vertical-align: middle;
21
+        font-size: 24px;
22
+        color: #666;
23
+        line-height: 80px;
24
+      }
25
+      >input {
26
+        display: inline-block;
27
+        vertical-align: middle;
28
+        width: 200px;
21
         font-size: 20px;
29
         font-size: 20px;
22
-        color: #999;
23
-        margin-left: 8px;
24
-        line-height: 44px;
25
-        &:first-child {
26
-          margin-left: 0;
27
-          font-size: 28px;
28
-        }
30
+        margin-left: 10px;
31
+        height: 80px;
32
+        text-align: left;
29
       }
33
       }
30
     }
34
     }
31
   }
35
   }