|
@@ -6,23 +6,26 @@ import Taro from '@tarojs/taro'
|
6
|
6
|
import { View } from '@tarojs/components';
|
7
|
7
|
import Card from '../index/components/Card'
|
8
|
8
|
import { getResourceList } from '@/services/home'
|
|
9
|
+import MasonryLayout from '@/components/MasonryLayout';
|
9
|
10
|
import NoData from '@/components/NoData'
|
10
|
11
|
import List from '@/components/List';
|
11
|
12
|
import withLayout from '@/layouts'
|
12
|
13
|
import './searchResult.less'
|
13
|
14
|
|
14
|
15
|
|
|
16
|
+const listStyle = { height: '100%' }
|
15
|
17
|
|
16
|
18
|
export default withLayout((props) => {
|
17
|
19
|
const { router, person, location } = props
|
18
|
20
|
const { q } = props.router.params
|
19
|
21
|
|
|
22
|
+ const [listData, setListData] = useState({ list: [], rfTimes: 0 })
|
|
23
|
+
|
20
|
24
|
// 横向tab
|
21
|
25
|
const [activeTab, setActiveTab] = useState(0)
|
22
|
|
- const [queryParams, setQueryParams] = useState({ q: q, location: location, pageNum: 1, pageSize: 10, typeId: '' })
|
|
26
|
+ const [queryParams, setQueryParams] = useState({ q: q, location, pageNum: 1, pageSize: 10, typeId: '' })
|
|
27
|
+ const rfTimes = useRef(0)
|
23
|
28
|
|
24
|
|
- // 获取资源表信息
|
25
|
|
- const [alllist, setAllList] = useState([])
|
26
|
29
|
const tabs = [
|
27
|
30
|
{
|
28
|
31
|
title: '全部',
|
|
@@ -54,6 +57,17 @@ export default withLayout((props) => {
|
54
|
57
|
}
|
55
|
58
|
}
|
56
|
59
|
|
|
60
|
+ const handleDataChange = (value, e) => {
|
|
61
|
+ if (e.paramsChanged) {
|
|
62
|
+ rfTimes.current += 1
|
|
63
|
+ //如果context有的话代表他滚动了 那么切换tab页就置顶
|
|
64
|
+ if (listRef.current?.context) {
|
|
65
|
+ listRef.current.context.scrollTo({ top: 0 })
|
|
66
|
+ }
|
|
67
|
+ }
|
|
68
|
+ setListData({ list: value, rfTimes: rfTimes.current })
|
|
69
|
+ }
|
|
70
|
+
|
57
|
71
|
const onSearch = () => {
|
58
|
72
|
// 用绝对路径
|
59
|
73
|
Taro.navigateTo({ url: '/pages/search/search' });
|
|
@@ -82,23 +96,23 @@ export default withLayout((props) => {
|
82
|
96
|
>
|
83
|
97
|
</mp-tabs>
|
84
|
98
|
</view>
|
85
|
|
- <View style={{ flex: 'auto', overflow: 'hidden', position: 'relative' }}>
|
|
99
|
+ <View style={{ flex:1, overflow: 'hidden'}}>
|
86
|
100
|
<List
|
87
|
|
- style={{ height: '100%' }}
|
|
101
|
+ ref={listRef}
|
|
102
|
+ style={listStyle}
|
88
|
103
|
request={getResourceList}
|
89
|
104
|
params={queryParams}
|
90
|
|
- onDataChange={setAllList}
|
91
|
105
|
refresherEnabled={false}
|
|
106
|
+ onDataChange={handleDataChange}
|
|
107
|
+ noData={<NoData />}
|
92
|
108
|
>
|
93
|
|
- {
|
94
|
|
- alllist.length == 0 ?
|
95
|
|
- <NoData /> :
|
96
|
|
- <view className='waterfall'>
|
97
|
|
- {
|
98
|
|
- alllist.map((item) => <Card key={item.resourceNo} item={item} />)
|
99
|
|
- }
|
100
|
|
- </view>
|
101
|
|
- }
|
|
109
|
+ <view style={{ padding: '30rpx 15rpx' }}>
|
|
110
|
+ <MasonryLayout
|
|
111
|
+ itemKey='resourceNo'
|
|
112
|
+ listData={listData}
|
|
113
|
+ render={(item) => <Card key={item.resourceNo} item={item} />}
|
|
114
|
+ />
|
|
115
|
+ </view>
|
102
|
116
|
</List>
|
103
|
117
|
</View>
|
104
|
118
|
</view>
|