Browse Source

静态页面

xcx 4 years ago
parent
commit
6ec6c54694

+ 303
- 373
package-lock.json
File diff suppressed because it is too large
View File


+ 1
- 0
package.json View File

@@ -41,6 +41,7 @@
41 41
     "@tarojs/runtime": "3.0.14",
42 42
     "@tarojs/taro": "3.0.14",
43 43
     "fast-deep-equal": "^3.1.3",
44
+    "node-sass": "^5.0.0",
44 45
     "react": "^16.10.0",
45 46
     "react-dom": "^16.10.0"
46 47
   },

+ 1
- 1
src/app.config.js View File

@@ -1,7 +1,7 @@
1 1
 export default {
2 2
   pages: [
3
-    'pages/ShouYe/index', // tab-首页
4 3
     'pages/ShouYe/HuoDong/index', // 首页-活动
4
+    'pages/ShouYe/index', // tab-首页
5 5
     'pages/ShouYe/ZiXun/index', // 首页-资讯
6 6
 
7 7
     'pages/WuYe/index', // tab-物业

+ 29
- 0
src/components/ScrollPage/index.css View File

@@ -0,0 +1,29 @@
1
+.ScrollPage {
2
+  width: 100%;
3
+  height: 100%;
4
+  position: relative;
5
+  overflow: hidden;
6
+}
7
+.ScrollPage .ScrollPageContent {
8
+  width: 100%;
9
+  position: relative;
10
+  overflow: hidden;
11
+  min-height: 100%;
12
+  z-index: 2;
13
+}
14
+.ScrollPage .ScrollPageContent > .ScrollPageBottom {
15
+  width: 100%;
16
+  height: 80px;
17
+}
18
+.ScrollPage .LoadMoreText {
19
+  width: 100%;
20
+  display: block;
21
+  position: relative;
22
+  overflow: hidden;
23
+  text-align: center;
24
+  z-index: 1;
25
+  font-size: 28px;
26
+  color: #999;
27
+  line-height: 80px;
28
+  margin-top: -80px;
29
+}

+ 23
- 0
src/components/ScrollPage/index.jsx View File

@@ -0,0 +1,23 @@
1
+import React, { useState } from 'react'
2
+import '@/assets/css/reset.less'
3
+import '@/assets/css/iconfont.less'
4
+import './index.less'
5
+
6
+export default function ScrollPage (props) {
7
+
8
+  const {IsPullDown = false, IsPullUp = false, HasMore = true, OnRefresh = () => {}, OnPullUp = () => {}} = props
9
+
10
+  return (
11
+    <view className='ScrollPage'>
12
+      <scroll-view scroll-y='true' style='height: 100%;' refresher-enabled={true} onrefresherrefresh={OnRefresh} onscrolltolower={OnPullUp} refresher-triggered={IsPullDown} refresher-background='none'>
13
+        <view className='ScrollPageContent'>
14
+          {
15
+            props.children
16
+          }
17
+          <view className='ScrollPageBottom'></view>
18
+        </view>
19
+        <text className='LoadMoreText'>{IsPullUp ? '正在加载更多...' : HasMore ? '上拉加载更多' : '已经到底了~'}</text>
20
+      </scroll-view>
21
+    </view>
22
+  )
23
+}

+ 31
- 0
src/components/ScrollPage/index.less View File

@@ -0,0 +1,31 @@
1
+.ScrollPage {
2
+  width: 100%;
3
+  height: 100%;
4
+  position: relative;
5
+  overflow: hidden;
6
+
7
+  .ScrollPageContent {
8
+    width: 100%;
9
+    position: relative;
10
+    overflow: hidden;
11
+    min-height: 100%;
12
+    z-index: 2;
13
+    >.ScrollPageBottom {
14
+      width: 100%;
15
+      height: 80px;
16
+    }
17
+  }
18
+
19
+  .LoadMoreText {
20
+    width: 100%;
21
+    display: block;
22
+    position: relative;
23
+    overflow: hidden;
24
+    text-align: center;
25
+    z-index: 1;
26
+    font-size: 28px;
27
+    color: #999;
28
+    line-height: 80px;
29
+    margin-top: -80px;
30
+  }
31
+}

+ 39
- 44
src/pages/ShouYe/HuoDong/index.jsx View File

@@ -1,54 +1,49 @@
1
-import React, { Component } from 'react'
2
-import ActivityListItem from '../../../components/ActivityListItem/index'
3
-import '../../../assets/css/reset.less'
4
-import '../../../assets/css/iconfont.less'
1
+import React, { useState } from 'react'
2
+import ActivityListItem from '@/components/ActivityListItem/index'
3
+import ScrollPage from '@/components/ScrollPage/index'
4
+import '@/assets/css/reset.less'
5
+import '@/assets/css/iconfont.less'
5 6
 import './index.less'
6 7
 
7
-export default class ShouYeHuoDong extends Component {
8
+export default function ShouYeHuoDong (props) {
8 9
 
9
-  state = {
10
-    ActivityList: ['', '', '', '', '', '', '', ''],
11
-    IsPull: false
12
-  }
13
-
14
-  componentWillMount () { }
15
-
16
-  componentDidMount () { }
17
-
18
-  componentWillUnmount () { }
10
+  const [ActivityList, setActivityList] = useState(['', '', '', '', '', '', ''])
11
+  const [IsPullDown, setIsPullDown] = useState(false)
12
+  const [IsPullUp, setIsPullUp] = useState(false)
13
+  const [HasMore, setHasMore] = useState(true)
19 14
 
20
-  componentDidShow () { }
21
-
22
-  componentDidHide () { }
15
+  const OnRefresh = () => { // 页面下拉刷新
16
+    setIsPullDown(true)
17
+    window.setTimeout(() => {
18
+      setIsPullUp(false)
19
+      setHasMore(true)
20
+      setIsPullDown(false)
21
+    }, 1000)
22
+  }
23 23
 
24
-  OnRefresh () { // 页面下拉刷新
25
-    this.setState({
26
-      IsPull: true
27
-    }, () => {
24
+  const OnPullUp = () => { // 页面上拉加载
25
+    if (HasMore && !IsPullUp) {
26
+      setIsPullUp(true)
28 27
       window.setTimeout(() => {
29
-        this.setState({
30
-          IsPull: false
31
-        })
28
+        setIsPullUp(false)
29
+        setHasMore(false)
32 30
       }, 1000)
33
-    })
31
+    }
34 32
   }
35 33
 
36
-  render () {
37
-    const { IsPull, ActivityList } = this.state
38
-    return (
39
-      <view className='ShouYeHuoDong'>
40
-        <scroll-view scroll-y='true' style='height: 100%;' refresher-enabled={true} onrefresherrefresh={this.OnRefresh.bind(this)} refresher-triggered={IsPull} refresher-background='none'>
41
-          <view className='ShouYeHuoDongContent'>
42
-            {
43
-              ActivityList.map((item, index) => (
44
-                <view className='ListItem' key={`ActivityItem-${index}`}>
45
-                  <ActivityListItem Data={item}></ActivityListItem>
46
-                </view>
47
-              ))
48
-            }
49
-          </view>
50
-        </scroll-view>
51
-      </view >
52
-    )
53
-  }
34
+  return (
35
+    <view className='ShouYeHuoDong'>
36
+      <ScrollPage IsPullDown={IsPullDown} IsPullUp={IsPullUp} HasMore={HasMore} OnRefresh={OnRefresh} OnPullUp={OnPullUp}>
37
+        <view className='ShouYeHuoDongContent'>
38
+          {
39
+            ActivityList.map((item, index) => (
40
+              <view className='ListItem' key={`ActivityItem-${index}`}>
41
+                <ActivityListItem Data={item}></ActivityListItem>
42
+              </view>
43
+            ))
44
+          }
45
+        </view>
46
+      </ScrollPage>
47
+    </view >
48
+  )
54 49
 }

+ 5
- 1
src/pages/ShouYe/index.jsx View File

@@ -57,6 +57,10 @@ export default function Index(props) {
57 57
     }, 1000)
58 58
   }
59 59
 
60
+  const OnPullUp = () => {
61
+    // console.log(111)
62
+  }
63
+
60 64
   return (
61 65
     <Page>
62 66
       <view className='ShouYe flex-v'>
@@ -73,7 +77,7 @@ export default function Index(props) {
73 77
 
74 78
           {/* 正文 */}
75 79
           <view className='PageContainer'>
76
-            <scroll-view scroll-y='true' style='height: 100%;' refresher-enabled={true} onrefresherrefresh={OnRefresh} refresher-triggered={IsPull} refresher-background='#f35844'>
80
+            <scroll-view scroll-y='true' style='height: 100%;' refresher-enabled={true} onscrolltolower={OnPullUp} onrefresherrefresh={OnRefresh} refresher-triggered={IsPull} refresher-background='#f35844'>
77 81
               <view className='Content'>
78 82
 
79 83
                 {/* 背景图 */}