1002884655 4 лет назад
Родитель
Сommit
e42e0dbc32
45 измененных файлов: 1226 добавлений и 1004 удалений
  1. 11
    11
      project.config.json
  2. 1
    1
      src/components/ActivityListItem/index.jsx
  3. 1
    1
      src/components/NavHeader/index.jsx
  4. 1
    1
      src/components/NewsListItem/index.jsx
  5. 1
    1
      src/components/PrizeListItem/index.jsx
  6. 1
    1
      src/components/ScrollPage/index.jsx
  7. 3
    3
      src/components/Spin/index.jsx
  8. 1
    1
      src/components/TabPageCutNav/index.jsx
  9. 1
    1
      src/components/WuYeFuWu/index.jsx
  10. 16
    30
      src/components/WuYeFuWuItem/index.jsx
  11. 1
    1
      src/components/WuYeJiaoFei/index.jsx
  12. 3
    1
      src/components/demo/index.jsx
  13. 5
    3
      src/layouts/index.jsx
  14. 40
    37
      src/pages/FuLi/JiFenGuiZe/index.jsx
  15. 66
    63
      src/pages/FuLi/JiFenMingXi/index.jsx
  16. 4
    1
      src/pages/FuLi/ShangPinDuiHuan/index.jsx
  17. 26
    23
      src/pages/FuLi/ShangPinXiangQing/index.jsx
  18. 83
    52
      src/pages/FuLi/index.jsx
  19. 97
    39
      src/pages/HuoDong/HuoDongDetail/index.jsx
  20. 18
    15
      src/pages/HuoDong/ZiXunDetail/index.jsx
  21. 40
    37
      src/pages/HuoDong/index.jsx
  22. 16
    13
      src/pages/ShouYe/HuoDong/index.jsx
  23. 16
    13
      src/pages/ShouYe/ZiXun/index.jsx
  24. 1
    1
      src/pages/ShouYe/index.jsx
  25. 35
    32
      src/pages/WoDe/GeRenXinXi/index.jsx
  26. 7
    4
      src/pages/WoDe/TuiJianErWeiMa/index.jsx
  27. 7
    4
      src/pages/WoDe/TuiJianFenXiang/index.jsx
  28. 17
    14
      src/pages/WoDe/WoDeGongDan/index.jsx
  29. 17
    14
      src/pages/WoDe/WoDeHuoDong/index.jsx
  30. 17
    14
      src/pages/WoDe/WoDeJiaoFei/index.jsx
  31. 25
    22
      src/pages/WoDe/WoDeRenZheng/index.jsx
  32. 60
    57
      src/pages/WoDe/YeZhuRenZheng/index.jsx
  33. 116
    113
      src/pages/WoDe/YeZhuShenHe/index.jsx
  34. 60
    53
      src/pages/WoDe/index.jsx
  35. 65
    62
      src/pages/WuYe/BaoXiuDetail/index.jsx
  36. 64
    61
      src/pages/WuYe/BaoXiuFeiYong/index.jsx
  37. 16
    13
      src/pages/WuYe/BaoXiuQuYu/index.jsx
  38. 37
    20
      src/pages/WuYe/FuWuDetail/index.jsx
  39. 42
    2
      src/pages/WuYe/FuWuDetail/index.less
  40. 19
    16
      src/pages/WuYe/GongGaoDetail/index.jsx
  41. 71
    68
      src/pages/WuYe/JiaoFeiDetail/index.jsx
  42. 24
    21
      src/pages/WuYe/TianJiaBaoXiu/index.jsx
  43. 24
    21
      src/pages/WuYe/XiuGaiBaoXiu/index.jsx
  44. 38
    43
      src/pages/WuYe/index.jsx
  45. 12
    0
      src/utils/api.js

+ 11
- 11
project.config.json Просмотреть файл

@@ -5,30 +5,30 @@
5 5
 	"appid": "wxe44244d1a5ea3364",
6 6
 	"setting": {
7 7
 		"urlCheck": true,
8
+		"scopeDataCheck": false,
9
+		"coverView": true,
8 10
 		"es6": false,
9
-		"enhance": false,
10 11
 		"postcss": false,
12
+		"compileHotReLoad": false,
11 13
 		"preloadBackgroundData": false,
12 14
 		"minified": false,
15
+		"autoAudits": false,
13 16
 		"newFeature": false,
14
-		"coverView": true,
17
+		"uglifyFileName": false,
18
+		"uploadWithSourceMap": true,
19
+		"useIsolateContext": true,
15 20
 		"nodeModules": false,
16
-		"autoAudits": false,
21
+		"enhance": false,
22
+		"useCompilerModule": false,
23
+		"userConfirmedUseCompilerModuleSwitch": false,
17 24
 		"showShadowRootInWxmlPanel": true,
18
-		"scopeDataCheck": false,
19
-		"uglifyFileName": false,
20 25
 		"checkInvalidKey": true,
21 26
 		"checkSiteMap": true,
22
-		"uploadWithSourceMap": true,
23
-		"compileHotReLoad": false,
24 27
 		"babelSetting": {
25 28
 			"ignore": [],
26 29
 			"disablePlugins": [],
27 30
 			"outputPath": ""
28
-		},
29
-		"useIsolateContext": true,
30
-		"useCompilerModule": false,
31
-		"userConfirmedUseCompilerModuleSwitch": false
31
+		}
32 32
 	},
33 33
 	"compileType": "miniprogram",
34 34
 	"simulatorType": "wechat",

+ 1
- 1
src/components/ActivityListItem/index.jsx Просмотреть файл

@@ -41,6 +41,6 @@ export default function ActivityListItem (props) {
41 41
         </view>
42 42
         <text className={BtnStatus() === '未开始' || BtnStatus() === '去报名' ? 'active' : ''}>{BtnStatus()}</text>
43 43
       </view>
44
-    </view >
44
+    </view>
45 45
   )
46 46
 }

+ 1
- 1
src/components/NavHeader/index.jsx Просмотреть файл

@@ -9,7 +9,7 @@ export default function NavHeader (props) {
9 9
   const [MarginTop, setMarginTop] = useState(0)
10 10
   const [LineHeight, setLineHeight] = useState(0)
11 11
   const { BgColor = '#fff', IsFixed = false, Title = '香颂蔚澜' } = props
12
-  
12
+
13 13
   if (MarginTop === 0) {
14 14
     setMarginTop(Taro.getMenuButtonBoundingClientRect().top)
15 15
   }

+ 1
- 1
src/components/NewsListItem/index.jsx Просмотреть файл

@@ -21,6 +21,6 @@ export default function NewsListItem (props) {
21 21
         <text>{Data.newsName}</text>
22 22
         <text>于{Data.createDate}发布</text>
23 23
       </view>
24
-    </view >
24
+    </view>
25 25
   )
26 26
 }

+ 1
- 1
src/components/PrizeListItem/index.jsx Просмотреть файл

@@ -22,6 +22,6 @@ export default function PrizeListItem (props) {
22 22
           <view><text>积分</text></view>
23 23
         </view>
24 24
       </view>
25
-    </view >
25
+    </view>
26 26
   )
27 27
 }

+ 1
- 1
src/components/ScrollPage/index.jsx Просмотреть файл

@@ -5,7 +5,7 @@ import './index.less'
5 5
 
6 6
 export default function ScrollPage (props) {
7 7
 
8
-  const {IsPullDown = false, IsPullUp = false, HasMore = true, OnRefresh = () => {}, OnPullUp = () => {}} = props
8
+  const { IsPullDown = false, IsPullUp = false, HasMore = true, OnRefresh = () => { }, OnPullUp = () => { } } = props
9 9
 
10 10
   return (
11 11
     <view className='ScrollPage'>

+ 3
- 3
src/components/Spin/index.jsx Просмотреть файл

@@ -15,15 +15,15 @@ export default props => {
15 15
     <>
16 16
       {
17 17
         props.loading ? (
18
-          <View className="cubes-box">
19
-            <View className="cubes">
18
+          <View className='cubes-box'>
19
+            <View className='cubes'>
20 20
               {
21 21
                 new Array(cubeLen).fill(0).map((_, inx) => (
22 22
                   <View key={inx} class={`sk-cube sk-cube${inx + 1}`} style={cubeStyle}></View>
23 23
                 ))
24 24
               }
25 25
             </View>
26
-            <View className="cubes-tip" style={tipStyle}>{tipText}</View>
26
+            <View className='cubes-tip' style={tipStyle}>{tipText}</View>
27 27
           </View>
28 28
         ) : props.children
29 29
       }

+ 1
- 1
src/components/TabPageCutNav/index.jsx Просмотреть файл

@@ -19,6 +19,6 @@ export default function (props) {
19 19
           }
20 20
         </view>
21 21
       </view>
22
-    </view >
22
+    </view>
23 23
   )
24 24
 }

+ 1
- 1
src/components/WuYeFuWu/index.jsx Просмотреть файл

@@ -21,7 +21,7 @@ export default function WuYeFuWu () {
21 21
 
22 22
   return (
23 23
     <view className='WuYeFuWu'>
24
-      <ScrollPageRefresh ApiName={`getMessageList`} ListName={`list`} RequestUrlData={{ orgId: user.orgId }} Refresh={Refresh} Push={Push}>
24
+      <ScrollPageRefresh ApiName={`getWuYeFuWuList`} Refresh={Refresh} Push={Push}>
25 25
         {/* 大图 */}
26 26
         <view className='BigImg'>
27 27
           <image mode='aspectFill' src={null} className='centerLabel'></image>

+ 16
- 30
src/components/WuYeFuWuItem/index.jsx Просмотреть файл

@@ -1,37 +1,23 @@
1
-import React, { Component } from 'react'
1
+import React, { useState } from 'react'
2 2
 import Taro from '@tarojs/taro'
3
-import '../../assets/css/reset.less'
4
-import '../../assets/css/iconfont.less'
3
+import toolclass from '@/utils/toolclass.js'
4
+import '@/assets/css/reset.less'
5
+import '@/assets/css/iconfont.less'
5 6
 import './index.less'
6 7
 
7
-export default class WuYeFuWuItem extends Component {
8
+export default function WuYeFuWuItem (props) {
8 9
 
9
-  state = {
10
-    TestImg: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1606120989360&di=8610f1678b51e26de6d4c6af39d1cf63&imgtype=0&src=http%3A%2F%2Fattachments.gfan.com%2Fforum%2F201503%2F19%2F211608ztcq7higicydxhsy.jpg'
11
-  }
10
+  const { Data } = props
12 11
 
13
-  componentWillMount () { }
14
-
15
-  componentDidMount () { }
16
-
17
-  componentWillUnmount () { }
18
-
19
-  componentDidShow () { }
20
-
21
-  componentDidHide () { }
22
-
23
-  render () {
24
-    const { TestImg } = this.state
25
-    return (
26
-      <view className='WuYeFuWuItem flex-h' onClick={() => { Taro.navigateTo({ url: '/pages/WuYe/FuWuDetail/index' }) }}>
27
-        <view className='Img'>
28
-          <image mode='aspectFill' src={TestImg} className='centerLabel'></image>
29
-        </view>
30
-        <view className='flex-item'>
31
-          <text>业主收楼办理手续</text>
32
-          <text>于2019-12-12 14:20:30发布</text>
33
-        </view>
12
+  return (
13
+    <view className='WuYeFuWuItem flex-h' onClick={() => { Taro.navigateTo({ url: `/pages/WuYe/FuWuDetail/index?id=${Data.newsId}` }) }}>
14
+      <view className='Img'>
15
+        <image mode='aspectFill' src={Data.newsImg} className='centerLabel'></image>
16
+      </view>
17
+      <view className='flex-item'>
18
+        <text>{Data.newsName}</text>
19
+        <text>于{toolclass.FormatDate(Data.createDate)}发布</text>
34 20
       </view>
35
-    )
36
-  }
21
+    </view>
22
+  )
37 23
 }

+ 1
- 1
src/components/WuYeJiaoFei/index.jsx Просмотреть файл

@@ -6,7 +6,7 @@ import '@/assets/css/iconfont.less'
6 6
 import './index.less'
7 7
 
8 8
 export default function WuYeJiaoFei () {
9
-  
9
+
10 10
   const [PageList, setPageList] = useState([])
11 11
 
12 12
   const Refresh = (e) => { // 下拉刷新

+ 3
- 1
src/components/demo/index.jsx Просмотреть файл

@@ -6,8 +6,10 @@ import './index.less'
6 6
 export default function demo (props) {
7 7
 
8 8
   return (
9
-    <view className='demo'>
9
+    <Page>
10
+      <view className='demo'>
10 11
 
11 12
     </view>
13
+    </Page>
12 14
   )
13 15
 }

+ 5
- 3
src/layouts/index.jsx Просмотреть файл

@@ -17,7 +17,7 @@ const showError = err => {
17 17
   })
18 18
 }
19 19
 
20
-export default function(props) {
20
+export default function (props) {
21 21
   const [showAuthBasic, setShowAuthBasic] = useState(false)
22 22
   const [showAuthYeZhu, setShowAuthYeZhu] = useState(false)
23 23
   const [showAuthPhone, setShowAuthPhone] = useState(false)
@@ -32,7 +32,7 @@ export default function(props) {
32 32
   const needAuthBasic = (page.auth || []).indexOf('avatar') > -1
33 33
   const needAuthYeZhu = (page.auth || []).indexOf('yezhu') > -1
34 34
   const needAuthPhone = (page.auth || []).indexOf('phone') > -1
35
-  
35
+
36 36
   // 埋点
37 37
   useMountTrack()
38 38
 
@@ -82,7 +82,9 @@ export default function(props) {
82 82
     <Spin loading={loading}>
83 83
       <GetUserIcon visible={showAuthBasic} onError={err => showError(`授权头像失败: ${err}`)} />
84 84
       <GetUserPhone visible={showAuthPhone} onError={err => showError(`授权手机失败: ${err}`)} />
85
-      { props.children }
85
+      {
86
+        props.children
87
+      }
86 88
     </Spin>
87 89
   )
88 90
 }

+ 40
- 37
src/pages/FuLi/JiFenGuiZe/index.jsx Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 import React, { useState, useEffect } from 'react'
2 2
 import CustomHeader from '@/components/CustomHeader/index'
3 3
 import request, { apis } from '@/utils/request'
4
+import Page from '@/layouts'
4 5
 import '@/assets/css/reset.less'
5 6
 import '@/assets/css/iconfont.less'
6 7
 import './index.less'
@@ -20,47 +21,49 @@ export default function JiFenGuiZe () {
20 21
   }
21 22
 
22 23
   return (
23
-    <view className='JiFenGuiZe'>
24
-      <CustomHeader IsFixed={true} BgColor='none' Title='积分规则'></CustomHeader>
24
+    <Page>
25
+      <view className='JiFenGuiZe'>
26
+        <CustomHeader IsFixed={true} BgColor='none' Title='积分规则'></CustomHeader>
25 27
 
26
-      <view className='JiFenContent'>
27
-        <view>
28
-          <view className='Img'>
29
-            <image mode='widthFix' src='https://zhiyun-image.oss-cn-shanghai.aliyuncs.com/xiangsong/img.png'></image>
30
-          </view>
31
-          <view className='Title'>
32
-            <text>积分兑换时间</text>
33
-          </view>
34
-          <text>2020年11月30日09:00-2020年12月30日15:00</text>
35
-          <view className='Title'>
36
-            <text>积分兑换规则</text>
37
-          </view>
38
-          <text>1)积分仅兑换积分商城中的商品,不能折算现金;</text>
39
-          <text>2)兑换商品中所要求的积分需达到要求方可兑换;</text>
40
-          <text>3)兑换商品图片仅供参考,商品以实际领取为准。</text>
41
-          {
42
-            RuleList.length > 0 &&
43
-            <view className='RuleList'>
44
-              <view className='flex-h'>
45
-                <view className='flex-item'>
46
-                  <text style={{textAlign: 'center'}}>途径</text>
28
+        <view className='JiFenContent'>
29
+          <view>
30
+            <view className='Img'>
31
+              <image mode='widthFix' src='https://zhiyun-image.oss-cn-shanghai.aliyuncs.com/xiangsong/img.png'></image>
32
+            </view>
33
+            <view className='Title'>
34
+              <text>积分兑换时间</text>
35
+            </view>
36
+            <text>2020年11月30日09:00-2020年12月30日15:00</text>
37
+            <view className='Title'>
38
+              <text>积分兑换规则</text>
39
+            </view>
40
+            <text>1)积分仅兑换积分商城中的商品,不能折算现金;</text>
41
+            <text>2)兑换商品中所要求的积分需达到要求方可兑换;</text>
42
+            <text>3)兑换商品图片仅供参考,商品以实际领取为准。</text>
43
+            {
44
+              RuleList.length > 0 &&
45
+              <view className='RuleList'>
46
+                <view className='flex-h'>
47
+                  <view className='flex-item'>
48
+                    <text style={{ textAlign: 'center' }}>途径</text>
49
+                  </view>
50
+                  <view>分数</view>
47 51
                 </view>
48
-                <view>分数</view>
49
-              </view>
50
-              {
51
-                RuleList.map((item, index) => (
52
-                  <view className='flex-h' key={`RuleList-${index}`}>
53
-                    <view className='flex-item'>
54
-                      <text>{item.remark}</text>
52
+                {
53
+                  RuleList.map((item, index) => (
54
+                    <view className='flex-h' key={`RuleList-${index}`}>
55
+                      <view className='flex-item'>
56
+                        <text>{item.remark}</text>
57
+                      </view>
58
+                      <view>{item.pointsAmount}</view>
55 59
                     </view>
56
-                    <view>{item.pointsAmount}</view>
57
-                  </view>
58
-                ))
59
-              }
60
-            </view>
61
-          }
60
+                  ))
61
+                }
62
+              </view>
63
+            }
64
+          </view>
62 65
         </view>
63 66
       </view>
64
-    </view>
67
+    </Page>
65 68
   )
66 69
 }

+ 66
- 63
src/pages/FuLi/JiFenMingXi/index.jsx Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 import React, { useState } from 'react'
2 2
 import CustomHeader from '@/components/CustomHeader'
3 3
 import Taro from '@tarojs/taro'
4
+import Page from '@/layouts'
4 5
 import '@/assets/css/reset.less'
5 6
 import '@/assets/css/iconfont.less'
6 7
 import './index.less'
@@ -26,80 +27,82 @@ export default function JiFenMingXi (props) {
26 27
   }
27 28
 
28 29
   return (
29
-    <view className='JiFenMingXi flex-v'>
30
-      <CustomHeader IsFixed={true} BgColor='none' Title='积分明细'></CustomHeader>
31
-      <view className='TopContainer'>
32
-        <view className='centerLabel'>
33
-          <view className='flex-h'>
34
-            <view className='flex-item'>
35
-              <text>当前积分</text>
36
-              <text>300</text>
30
+    <Page>
31
+      <view className='JiFenMingXi flex-v'>
32
+        <CustomHeader IsFixed={true} BgColor='none' Title='积分明细'></CustomHeader>
33
+        <view className='TopContainer'>
34
+          <view className='centerLabel'>
35
+            <view className='flex-h'>
36
+              <view className='flex-item'>
37
+                <text>当前积分</text>
38
+                <text>300</text>
39
+              </view>
40
+              <text onClick={() => { Taro.navigateTo({ url: `/pages/FuLi/JiFenGuiZe/index` }) }}>积分规则</text>
41
+              <text className='iconfont iconjiantouright'></text>
37 42
             </view>
38
-            <text onClick={() => { Taro.navigateTo({ url: `/pages/FuLi/JiFenGuiZe/index` }) }}>积分规则</text>
39
-            <text className='iconfont iconjiantouright'></text>
40 43
           </view>
41 44
         </view>
42
-      </view>
43
-      <view className='NavList flex-h'>
44
-        {
45
-          NavList.map((item, index) => (
46
-            <view key={`Nav-${index}`} className='flex-item' onClick={CutNav(item)}>
47
-              <text className={CurrentNavId - 0 === item.id - 0 ? 'active' : ''}>{item.name}</text>
48
-            </view>
49
-          ))
50
-        }
51
-      </view>
52
-      <view className='flex-item'>
53
-        <view>
54
-          <scroll-view scroll-y='true' style='height: 100%;' refresher-enabled={true} onrefresherrefresh={OnRefresh} refresher-triggered={IsPull} refresher-background='none'>
55
-            <view className='List'>
45
+        <view className='NavList flex-h'>
46
+          {
47
+            NavList.map((item, index) => (
48
+              <view key={`Nav-${index}`} className='flex-item' onClick={CutNav(item)}>
49
+                <text className={CurrentNavId - 0 === item.id - 0 ? 'active' : ''}>{item.name}</text>
50
+              </view>
51
+            ))
52
+          }
53
+        </view>
54
+        <view className='flex-item'>
55
+          <view>
56
+            <scroll-view scroll-y='true' style='height: 100%;' refresher-enabled={true} onrefresherrefresh={OnRefresh} refresher-triggered={IsPull} refresher-background='none'>
57
+              <view className='List'>
56 58
 
57
-              {/* 全部 */}
58
-              {
59
-                CurrentNavId - 0 === 1 &&
60
-                PageList.map((item, index) => (
61
-                  <view className='flex-h' key={`List-${index}`}>
62
-                    <view className='flex-item'>
63
-                      <text>每日签到</text>
64
-                      <text>2018-01-01  18:00</text>
59
+                {/* 全部 */}
60
+                {
61
+                  CurrentNavId - 0 === 1 &&
62
+                  PageList.map((item, index) => (
63
+                    <view className='flex-h' key={`List-${index}`}>
64
+                      <view className='flex-item'>
65
+                        <text>每日签到</text>
66
+                        <text>2018-01-01  18:00</text>
67
+                      </view>
68
+                      <text>+10</text>
65 69
                     </view>
66
-                    <text>+10</text>
67
-                  </view>
68
-                ))
69
-              }
70
+                  ))
71
+                }
70 72
 
71
-              {/* 积分收入 */}
72
-              {
73
-                CurrentNavId - 0 === 2 &&
74
-                PageList.map((item, index) => (
75
-                  <view className='flex-h' key={`List-${index}`}>
76
-                    <view className='flex-item'>
77
-                      <text>每日签到</text>
78
-                      <text>2018-01-01  18:00</text>
73
+                {/* 积分收入 */}
74
+                {
75
+                  CurrentNavId - 0 === 2 &&
76
+                  PageList.map((item, index) => (
77
+                    <view className='flex-h' key={`List-${index}`}>
78
+                      <view className='flex-item'>
79
+                        <text>每日签到</text>
80
+                        <text>2018-01-01  18:00</text>
81
+                      </view>
82
+                      <text>+10</text>
79 83
                     </view>
80
-                    <text>+10</text>
81
-                  </view>
82
-                ))
83
-              }
84
+                  ))
85
+                }
84 86
 
85
-              {/* 积分支出 */}
86
-              {
87
-                CurrentNavId - 0 === 3 &&
88
-                PageList.map((item, index) => (
89
-                  <view className='flex-h' key={`List-${index}`}>
90
-                    <view className='flex-item'>
91
-                      <text>每日签到</text>
92
-                      <text>2018-01-01  18:00</text>
87
+                {/* 积分支出 */}
88
+                {
89
+                  CurrentNavId - 0 === 3 &&
90
+                  PageList.map((item, index) => (
91
+                    <view className='flex-h' key={`List-${index}`}>
92
+                      <view className='flex-item'>
93
+                        <text>每日签到</text>
94
+                        <text>2018-01-01  18:00</text>
95
+                      </view>
96
+                      <text className='active'>-10</text>
93 97
                     </view>
94
-                    <text className='active'>-10</text>
95
-                  </view>
96
-                ))
97
-              }
98
+                  ))
99
+                }
98 100
 
99
-            </view>
100
-          </scroll-view>
101
+              </view>
102
+            </scroll-view>
103
+          </view>
101 104
         </view>
102 105
       </view>
103
-    </view>
106
+    </Page>
104 107
   )
105 108
 }

+ 4
- 1
src/pages/FuLi/ShangPinDuiHuan/index.jsx Просмотреть файл

@@ -3,6 +3,7 @@ import Taro, { Current } from '@tarojs/taro'
3 3
 import request, { apis } from '@/utils/request'
4 4
 import { useModel } from '@/store'
5 5
 import { Input } from '@tarojs/components'
6
+import Page from '@/layouts'
6 7
 import '@/assets/css/reset.less'
7 8
 import '@/assets/css/iconfont.less'
8 9
 import './index.less'
@@ -42,7 +43,8 @@ export default function ShangPinDuiHuan () {
42 43
   }
43 44
 
44 45
   return (
45
-    <view className='ShangPinDuiHuan'>
46
+    <Page>
47
+      <view className='ShangPinDuiHuan'>
46 48
       <view className='Info'>
47 49
         <view className='Item flex-h'>
48 50
           <view className='Img'>
@@ -72,5 +74,6 @@ export default function ShangPinDuiHuan () {
72 74
         <text className={DataLock ? '' : 'active'} onClick={Submit}>{DataLock ? '正在提交...' : '确认兑换'}</text>
73 75
       </view>
74 76
     </view>
77
+    </Page>
75 78
   )
76 79
 }

+ 26
- 23
src/pages/FuLi/ShangPinXiangQing/index.jsx Просмотреть файл

@@ -2,6 +2,7 @@ import React, { useState, useEffect } from 'react'
2 2
 import Taro, { Current } from '@tarojs/taro'
3 3
 import request, { apis } from '@/utils/request'
4 4
 import { useModel } from '@/store'
5
+import Page from '@/layouts'
5 6
 import '@/assets/css/reset.less'
6 7
 import '@/assets/css/iconfont.less'
7 8
 import './index.less'
@@ -23,31 +24,33 @@ export default function ShangPinXiangQing () {
23 24
   }
24 25
 
25 26
   return (
26
-    <view className='ShangPinXiangQing'>
27
-      <view className='Info'>
28
-        <view className='Img'>
29
-          <image mode='aspectFill' src={GoodsDetail === null ? null : GoodsDetail.imgUrl} className='centerLabel'></image>
27
+    <Page>
28
+      <view className='ShangPinXiangQing'>
29
+        <view className='Info'>
30
+          <view className='Img'>
31
+            <image mode='aspectFill' src={GoodsDetail === null ? null : GoodsDetail.imgUrl} className='centerLabel'></image>
32
+          </view>
33
+          <view className='Title'>
34
+            <text>{GoodsDetail === null ? '' : GoodsDetail.goodsName}</text>
35
+          </view>
36
+          <view className='flex-h'>
37
+            <text>{GoodsDetail === null ? '' : GoodsDetail.pointPrice}</text>
38
+            <text className='flex-item'>积分</text>
39
+            <text>剩余数量</text>
40
+            <text>{GoodsDetail === null ? '' : GoodsDetail.inventory}</text>
41
+          </view>
30 42
         </view>
31
-        <view className='Title'>
32
-          <text>{GoodsDetail === null ? '' : GoodsDetail.goodsName}</text>
33
-        </view>
34
-        <view className='flex-h'>
35
-          <text>{GoodsDetail === null ? '' : GoodsDetail.pointPrice}</text>
36
-          <text className='flex-item'>积分</text>
37
-          <text>剩余数量</text>
38
-          <text>{GoodsDetail === null ? '' : GoodsDetail.inventory}</text>
39
-        </view>
40
-      </view>
41
-      <view className='Detail'>
42
-        <view className='Title'>
43
-          <view className='Line'></view>
44
-          <text>产品详情</text>
45
-          <image mode='widthFix' src={GoodsDetail === null ? null : GoodsDetail.detailImgUrl} style={{width: `100%`}}></image>
46
-        </view>
47
-        <view className='BottomBtn'>
48
-          <text className='active' onClick={() => { Taro.navigateTo({ url: `/pages/FuLi/ShangPinDuiHuan/index?id=${CurrnetId}` }) }}>立即兑换</text>
43
+        <view className='Detail'>
44
+          <view className='Title'>
45
+            <view className='Line'></view>
46
+            <text>产品详情</text>
47
+            <image mode='widthFix' src={GoodsDetail === null ? null : GoodsDetail.detailImgUrl} style={{ width: `100%` }}></image>
48
+          </view>
49
+          <view className='BottomBtn'>
50
+            <text className='active' onClick={() => { Taro.navigateTo({ url: `/pages/FuLi/ShangPinDuiHuan/index?id=${CurrnetId}` }) }}>立即兑换</text>
51
+          </view>
49 52
         </view>
50 53
       </view>
51
-    </view>
54
+    </Page>
52 55
   )
53 56
 }

+ 83
- 52
src/pages/FuLi/index.jsx Просмотреть файл

@@ -1,8 +1,10 @@
1
-import React, { useState } from 'react'
1
+import React, { useState, useEffect } from 'react'
2 2
 import Taro from '@tarojs/taro'
3 3
 import NavHeader from '@/components/NavHeader/index'
4 4
 import PrizeListItem from '@/components/PrizeListItem/index'
5 5
 import ScrollPageRefresh from '@/components/ScrollPageRefresh/index'
6
+import request, { apis } from '@/utils/request'
7
+import Page from '@/layouts'
6 8
 import { useModel } from '@/store'
7 9
 import '@/assets/css/reset.less'
8 10
 import '@/assets/css/iconfont.less'
@@ -10,9 +12,33 @@ import './index.less'
10 12
 
11 13
 export default function FuLi () {
12 14
 
13
-  const { user } = useModel('user')
15
+  const { user, setUser } = useModel('user')
16
+  const [DataLock, setDataLock] = useState(false)
14 17
   const [PageList, setPageList] = useState([])
15 18
 
19
+  useEffect(() => {
20
+    if (user !== null && user.havaSigned === undefined) {
21
+      request({ ...apis.getUserInfo }).then((res) => {
22
+        setUser({ ...user, ...res })
23
+      }).catch((res) => {
24
+        Taro.showToast({ title: res, icon: 'none' })
25
+      })
26
+    }
27
+  }, [])
28
+
29
+  const ToSign = () => { // 签到
30
+    if (DataLock || (user.havaSigned !== undefined && user.havaSigned - 0 === 1)) return
31
+    setDataLock(true)
32
+    request({ ...apis.userSign }).then(() => {
33
+      Taro.showToast({ title: '签到成功', icon: 'none' })
34
+      setUser({ ...user, havaSigned: 1 })
35
+      setDataLock(false)
36
+    }).catch((res) => {
37
+      Taro.showToast({ title: res, icon: 'none' })
38
+      setDataLock(false)
39
+    })
40
+  }
41
+
16 42
   const Refresh = (e) => { // 下拉刷新
17 43
     setPageList(e)
18 44
   }
@@ -22,75 +48,80 @@ export default function FuLi () {
22 48
   }
23 49
 
24 50
   return (
25
-    <view className='FuLi flex-v'>
26
-      <NavHeader BgColor='none' Title='福利' IsFixed={true}></NavHeader>
51
+    <Page>
52
+      <view className='FuLi flex-v'>
53
+        <NavHeader BgColor='none' Title='福利' IsFixed={true}></NavHeader>
27 54
 
28
-      {/* 顶部背景图 */}
29
-      <view className='TopBg'>
30
-        <image mode='aspectFill' src='https://zhiyun-image.oss-cn-shanghai.aliyuncs.com/xiangsong/bg.jpg' class='centerLabel'></image>
31
-      </view>
55
+        {/* 顶部背景图 */}
56
+        <view className='TopBg'>
57
+          <image mode='aspectFill' src='https://zhiyun-image.oss-cn-shanghai.aliyuncs.com/xiangsong/bg.jpg' class='centerLabel'></image>
58
+        </view>
32 59
 
33
-      {/* 正文 */}
34
-      <view className='flex-item'>
35
-        <view>
36
-          <ScrollPageRefresh ApiName={`getGoodsList`} Refresh={Refresh} Push={Push}>
37
-            <view className='FuLiContent'>
60
+        {/* 正文 */}
61
+        <view className='flex-item'>
62
+          <view>
63
+            <ScrollPageRefresh ApiName={`getGoodsList`} Refresh={Refresh} Push={Push}>
64
+              <view className='FuLiContent'>
38 65
 
39
-              {/* 用户面板 */}
40
-              <view className='UserTab'>
41
-                <view>
42
-                  <view className='Info flex-h'>
43
-                    <view className='Icon'>
66
+                {/* 用户面板 */}
67
+                <view className='UserTab'>
68
+                  <view>
69
+                    <view className='Info flex-h'>
70
+                      <view className='Icon'>
71
+                        {
72
+                          user !== null &&
73
+                          <image mode='aspectFill' src={user.avatarurl} class='centerLabel'></image>
74
+                        }
75
+                      </view>
76
+                      <view className='flex-item'>
77
+                        <text>{user === null ? '未登录' : user.nickname || '未授权用户信息'}</text>
78
+                        <text>积分{user === null ? '-' : user.points || 0}</text>
79
+                      </view>
44 80
                       {
45
-                        user !== null &&
46
-                        <image mode='aspectFill' src={user.avatarurl} class='centerLabel'></image>
81
+                        user.havaSigned !== undefined &&
82
+                        <text className={user.havaSigned - 0 === 1 ? '' : 'active'} onClick={ToSign}>{user.havaSigned - 0 === 1 ? '已签到' : '签到'}</text>
47 83
                       }
48 84
                     </view>
49
-                    <view className='flex-item'>
50
-                      <text>{user === null ? '未登录' : user.nickname || '未授权用户信息'}</text>
51
-                      <text>积分{user === null ? '-' : user.points || 0}</text>
52
-                    </view>
53
-                    <text className='active'>签到</text>
54
-                  </view>
55
-                  <view className='Rule flex-h'>
56
-                    <view className='flex-item' onClick={() => { Taro.navigateTo({ url: '/pages/FuLi/JiFenGuiZe/index' }) }}>
57
-                      <text className='iconfont iconjifen'></text>
58
-                      <text>积分规则</text>
59
-                    </view>
60
-                    <view className='flex-item' onClick={() => { Taro.navigateTo({ url: '/pages/FuLi/JiFenMingXi/index' }) }}>
61
-                      <text className='iconfont iconjifenguize'></text>
62
-                      <text>积分明细</text>
85
+                    <view className='Rule flex-h'>
86
+                      <view className='flex-item' onClick={() => { Taro.navigateTo({ url: '/pages/FuLi/JiFenGuiZe/index' }) }}>
87
+                        <text className='iconfont iconjifen'></text>
88
+                        <text>积分规则</text>
89
+                      </view>
90
+                      <view className='flex-item' onClick={() => { Taro.navigateTo({ url: '/pages/FuLi/JiFenMingXi/index' }) }}>
91
+                        <text className='iconfont iconjifenguize'></text>
92
+                        <text>积分明细</text>
93
+                      </view>
63 94
                     </view>
64 95
                   </view>
65 96
                 </view>
66
-              </view>
67 97
 
68
-              {/* 搜索框 */}
69
-              {/* <view className='SearchContainer'>
98
+                {/* 搜索框 */}
99
+                {/* <view className='SearchContainer'>
70 100
                 <view>
71 101
                   <text className='iconfont iconsousuo'></text>
72 102
                   <text>附近热搜:火锅</text>
73 103
                 </view>
74 104
               </view> */}
75 105
 
76
-              {/* 积分礼品列表 */}
77
-              <view className='PirzeList'>
78
-                {
79
-                  PageList.map((item, index) => (
80
-                    <view key={`PirzeListItem-${index}`}>
81
-                      <view>
82
-                        <PrizeListItem Data={item}></PrizeListItem>
106
+                {/* 积分礼品列表 */}
107
+                <view className='PirzeList'>
108
+                  {
109
+                    PageList.map((item, index) => (
110
+                      <view key={`PirzeListItem-${index}`}>
111
+                        <view>
112
+                          <PrizeListItem Data={item}></PrizeListItem>
113
+                        </view>
83 114
                       </view>
84
-                    </view>
85
-                  ))
86
-                }
87
-              </view>
115
+                    ))
116
+                  }
117
+                </view>
88 118
 
89
-            </view>
90
-          </ScrollPageRefresh>
119
+              </view>
120
+            </ScrollPageRefresh>
121
+          </view>
91 122
         </view>
92
-      </view>
93 123
 
94
-    </view>
124
+      </view>
125
+    </Page>
95 126
   )
96 127
 }

+ 97
- 39
src/pages/HuoDong/HuoDongDetail/index.jsx Просмотреть файл

@@ -3,6 +3,7 @@ import Taro, { Current } from '@tarojs/taro'
3 3
 import { RichText } from '@tarojs/components'
4 4
 import request, { apis } from '@/utils/request'
5 5
 import { useModel } from '@/store'
6
+import Page from '@/layouts'
6 7
 import toolclass from '@/utils/toolclass.js'
7 8
 import '@/assets/css/reset.less'
8 9
 import '@/assets/css/iconfont.less'
@@ -13,6 +14,9 @@ export default function HuoDongDetail () {
13 14
   const { user } = useModel('user')
14 15
   const [DataLock, setDataLock] = useState(false)
15 16
   const [HasJoin, setHasJoin] = useState(null)
17
+  const [IsSign, setIsSign] = useState(null)
18
+  const [JoinBtnText, setJoinBtnText] = useState(null)
19
+  const [JoinBtnStatus, setJoinBtnStatus] = useState(false)
16 20
   const [CurrnetHuoDongId] = useState(Current.router.params.id) // 当前活动id
17 21
   const [ActivityDetail, setActivityDetail] = useState(null) // 活动详情
18 22
 
@@ -20,6 +24,12 @@ export default function HuoDongDetail () {
20 24
     GetActivityDetail()
21 25
   }, [CurrnetHuoDongId])
22 26
 
27
+  useEffect(() => {
28
+    if (ActivityDetail !== null) {
29
+      SetJoinBtnText()
30
+    }
31
+  }, [IsSign])
32
+
23 33
   const GetActivityDetail = () => { // 获取活动详情
24 34
     request({ ...apis.getActivityDetail, args: { id: CurrnetHuoDongId } }).then((res) => {
25 35
       setActivityDetail(res)
@@ -29,12 +39,58 @@ export default function HuoDongDetail () {
29 39
 
30 40
   const CheckActivityJoin = () => { // 查询活动参加详情
31 41
     request({ ...apis.checkActivityJoin, args: { id: CurrnetHuoDongId } }).then((res) => {
32
-      setHasJoin(!!res.dynamic.isSign)
42
+      setHasJoin(!!res.dynamic.isEnlist)
43
+      setIsSign(!!res.dynamic.isSign)
33 44
     })
34 45
   }
35 46
 
47
+  const SetJoinBtnText = () => {
48
+    let Now = Date.now()
49
+    let JoinStart = new Date(ActivityDetail.enlistStart).getTime()
50
+    let JoinEnd = new Date(ActivityDetail.enlistEnd).getTime()
51
+    let Start = new Date(ActivityDetail.startDate).getTime()
52
+    let End = new Date(ActivityDetail.endDate).getTime()
53
+
54
+    if (Now < JoinStart) {
55
+      setJoinBtnText(`未开始`)
56
+      return false
57
+    } else if (Now < JoinEnd) {
58
+      if (!HasJoin) {
59
+        setJoinBtnText(`立即参加`)
60
+        setJoinBtnStatus(true)
61
+        return false
62
+      }
63
+      setJoinBtnText(`已报名`)
64
+      return false
65
+    } else if (Now < Start) {
66
+      if (!HasJoin) {
67
+        setJoinBtnText(`报名已截止`)
68
+        return false
69
+      }
70
+      setJoinBtnText(`已报名`)
71
+      return false
72
+    } else if (Now < End) {
73
+      if (!HasJoin) {
74
+        setJoinBtnText(`活动已开始`)
75
+        return false
76
+      } else if (!IsSign) {
77
+        setJoinBtnText(`去签到`)
78
+        setJoinBtnStatus(true)
79
+        return false
80
+      } else {
81
+        setJoinBtnText(`已签到`)
82
+        return false
83
+      }
84
+    } else if (Now >= End) {
85
+      setJoinBtnText(`已结束`)
86
+      return false
87
+    }
88
+    setJoinBtnText(null)
89
+    return false
90
+  }
91
+
36 92
   const ToJoin = () => { // 去报名
37
-    if (DataLock || ActivityDetail === null || HasJoin) return
93
+    if (DataLock || ActivityDetail === null || !JoinBtnStatus) return
38 94
     setDataLock(true)
39 95
     const { personId, phone, nickname, orgId } = user
40 96
     const { dynamicId } = ActivityDetail
@@ -64,47 +120,49 @@ export default function HuoDongDetail () {
64 120
   }
65 121
 
66 122
   return (
67
-    <view className='HuoDongDetail'>
123
+    <Page>
124
+      <view className='HuoDongDetail'>
68 125
 
69
-      <view className='BannerLayer'></view>
70
-      {
71
-        ActivityDetail !== null &&
72
-        <view className='Banner'>
73
-          <image mode='aspectFill' src={ActivityDetail.bannerListImg} className='centerLabel'></image>
74
-        </view>
75
-      }
76
-      {
77
-        ActivityDetail !== null &&
78
-        <view className='Info'>
79
-          <view className='MainInfo'>
80
-            <text className='Name'>{ActivityDetail.title}</text>
81
-            <text className='Tips'>{ActivityDetail.enlisted}人已报名</text>
82
-            <view className='flex-h'>
83
-              <text>活动时间:</text>
84
-              <view className='flex-item'>{toolclass.FormatDate(ActivityDetail.startDate)}<text>限{ActivityDetail.enlistNum}人</text></view>
85
-            </view>
86
-            <view className='flex-h'>
87
-              <text>活动地址:</text>
88
-              <view className='flex-item'>{ActivityDetail.address}</view>
89
-            </view>
90
-            <view className='flex-h'>
91
-              <text>报名截止:</text>
92
-              <view className='flex-item'>{toolclass.FormatDate(ActivityDetail.enlistEnd)}</view>
93
-            </view>
126
+        <view className='BannerLayer'></view>
127
+        {
128
+          ActivityDetail !== null &&
129
+          <view className='Banner'>
130
+            <image mode='aspectFill' src={ActivityDetail.bannerListImg} className='centerLabel'></image>
94 131
           </view>
132
+        }
133
+        {
134
+          ActivityDetail !== null &&
135
+          <view className='Info'>
136
+            <view className='MainInfo'>
137
+              <text className='Name'>{ActivityDetail.title}</text>
138
+              <text className='Tips'>{ActivityDetail.enlisted}人已报名</text>
139
+              <view className='flex-h'>
140
+                <text>活动时间:</text>
141
+                <view className='flex-item'>{toolclass.FormatDate(ActivityDetail.startDate)}<text>限{ActivityDetail.enlistNum}人</text></view>
142
+              </view>
143
+              <view className='flex-h'>
144
+                <text>活动地址:</text>
145
+                <view className='flex-item'>{ActivityDetail.address}</view>
146
+              </view>
147
+              <view className='flex-h'>
148
+                <text>报名截止:</text>
149
+                <view className='flex-item'>{toolclass.FormatDate(ActivityDetail.enlistEnd)}</view>
150
+              </view>
151
+            </view>
95 152
 
96
-          <view className='Desc'>
97
-            <text>活动介绍</text>
98
-            <RichText nodes={ActivityDetail.desc}></RichText>
99
-          </view>
153
+            <view className='Desc'>
154
+              <text>活动介绍</text>
155
+              <RichText nodes={ActivityDetail.desc}></RichText>
156
+            </view>
100 157
 
101
-          {
102
-            HasJoin !== null &&
103
-            <text className={HasJoin ? 'BottomBtn' : 'active BottomBtn'} onClick={ToJoin}>{HasJoin ? '已报名' : '立即参加'}</text>
104
-          }
158
+            {
159
+              HasJoin !== null &&
160
+              <text className={JoinBtnStatus ? 'active BottomBtn' : 'BottomBtn'} onClick={ToJoin}>{JoinBtnText}</text>
161
+            }
105 162
 
106
-        </view>
107
-      }
108
-    </view>
163
+          </view>
164
+        }
165
+      </view>
166
+    </Page>
109 167
   )
110 168
 }

+ 18
- 15
src/pages/HuoDong/ZiXunDetail/index.jsx Просмотреть файл

@@ -3,6 +3,7 @@ import Taro, { Current } from '@tarojs/taro'
3 3
 import request, { apis } from '@/utils/request'
4 4
 import { RichText } from '@tarojs/components'
5 5
 import toolclass from '@/utils/toolclass.js'
6
+import Page from '@/layouts'
6 7
 import '@/assets/css/reset.less'
7 8
 import '@/assets/css/iconfont.less'
8 9
 import './index.less'
@@ -28,21 +29,23 @@ export default function ZiXunDetail (props) {
28 29
   }
29 30
 
30 31
   return (
31
-    <view className='ZiXunDetail'>
32
-      {
33
-        NewsDetail !== null &&
34
-        <view>
35
-          <view className='Title'>
36
-            <text>{NewsDetail.newsName}</text>
32
+    <Page>
33
+      <view className='ZiXunDetail'>
34
+        {
35
+          NewsDetail !== null &&
36
+          <view>
37
+            <view className='Title'>
38
+              <text>{NewsDetail.newsName}</text>
39
+            </view>
40
+            <view className='flex-h'>
41
+              <text className='flex-item'>{toolclass.FormatDate(NewsDetail.createDate)}</text>
42
+              <text className='iconfont iconguankan'></text>
43
+              <text>{NewsDetail.pvNum || 0}</text>
44
+            </view>
45
+            <RichText nodes={NewsDetail.newsDetail}></RichText>
37 46
           </view>
38
-          <view className='flex-h'>
39
-            <text className='flex-item'>{toolclass.FormatDate(NewsDetail.createDate)}</text>
40
-            <text className='iconfont iconguankan'></text>
41
-            <text>{NewsDetail.pvNum || 0}</text>
42
-          </view>
43
-          <RichText nodes={NewsDetail.newsDetail}></RichText>
44
-        </view>
45
-      }
46
-    </view>
47
+        }
48
+      </view>
49
+    </Page>
47 50
   )
48 51
 }

+ 40
- 37
src/pages/HuoDong/index.jsx Просмотреть файл

@@ -4,6 +4,7 @@ import NavHeader from '@/components/NavHeader/index'
4 4
 import ActivityListItem from '@/components/ActivityListItem/index'
5 5
 import NewsListItem from '@/components/NewsListItem/index'
6 6
 import ScrollPageRefresh from '@/components/ScrollPageRefresh/index'
7
+import Page from '@/layouts'
7 8
 import '@/assets/css/reset.less'
8 9
 import '@/assets/css/iconfont.less'
9 10
 import './index.less'
@@ -38,49 +39,51 @@ export default function HuoDong () {
38 39
   }
39 40
 
40 41
   return (
41
-    <view className='HuoDong flex-v'>
42
-      <NavHeader BgColor='none' Title='活动' IsFixed={true}></NavHeader>
43
-      <TabPageCutNav List={NavList} CurrentNavId={CurrentNavId} NavChange={NavChange}></TabPageCutNav>
44
-      <view className='flex-item'>
45
-        <view>
46
-          {/* 活动 */}
47
-          {
48
-            CurrentNavId - 0 === 1 &&
49
-            <ScrollPageRefresh ApiName={`getActivityList`} ListName={`list`} Refresh={Refresh} Push={Push}>
50
-              <view className='Content Activity'>
51
-                {
52
-                  ActivityList.map((item, index) => (
53
-                    <view className='ListItem' key={`ActivityItem-${index}`}>
54
-                      <ActivityListItem Data={item}></ActivityListItem>
55
-                    </view>
56
-                  ))
57
-                }
58
-              </view>
59
-            </ScrollPageRefresh>
60
-          }
61
-
62
-          {/* 资讯 */}
63
-          {
64
-            CurrentNavId - 0 === 2 &&
65
-            <ScrollPageRefresh ApiName={`getNewsList`} Refresh={Refresh} Push={Push}>
66
-              <view className='Content News'>
67
-                <view className='BigImg'>
68
-                  <image mode='aspectFill' src={null} class='centerLabel'></image>
69
-                </view>
70
-                <view className='List'>
42
+    <Page>
43
+      <view className='HuoDong flex-v'>
44
+        <NavHeader BgColor='none' Title='活动' IsFixed={true}></NavHeader>
45
+        <TabPageCutNav List={NavList} CurrentNavId={CurrentNavId} NavChange={NavChange}></TabPageCutNav>
46
+        <view className='flex-item'>
47
+          <view>
48
+            {/* 活动 */}
49
+            {
50
+              CurrentNavId - 0 === 1 &&
51
+              <ScrollPageRefresh ApiName={`getActivityList`} ListName={`list`} Refresh={Refresh} Push={Push}>
52
+                <view className='Content Activity'>
71 53
                   {
72
-                    NewsList.map((item, index) => (
73
-                      <view className='ListItem' key={`NewsItem-${index}`}>
74
-                        <NewsListItem Data={item} ShowTips={index === 0}></NewsListItem>
54
+                    ActivityList.map((item, index) => (
55
+                      <view className='ListItem' key={`ActivityItem-${index}`}>
56
+                        <ActivityListItem Data={item}></ActivityListItem>
75 57
                       </view>
76 58
                     ))
77 59
                   }
78 60
                 </view>
79
-              </view>
80
-            </ScrollPageRefresh>
81
-          }
61
+              </ScrollPageRefresh>
62
+            }
63
+
64
+            {/* 资讯 */}
65
+            {
66
+              CurrentNavId - 0 === 2 &&
67
+              <ScrollPageRefresh ApiName={`getNewsList`} Refresh={Refresh} Push={Push}>
68
+                <view className='Content News'>
69
+                  <view className='BigImg'>
70
+                    <image mode='aspectFill' src={null} class='centerLabel'></image>
71
+                  </view>
72
+                  <view className='List'>
73
+                    {
74
+                      NewsList.map((item, index) => (
75
+                        <view className='ListItem' key={`NewsItem-${index}`}>
76
+                          <NewsListItem Data={item} ShowTips={index === 0}></NewsListItem>
77
+                        </view>
78
+                      ))
79
+                    }
80
+                  </view>
81
+                </view>
82
+              </ScrollPageRefresh>
83
+            }
84
+          </view>
82 85
         </view>
83 86
       </view>
84
-    </view>
87
+    </Page>
85 88
   )
86 89
 }

+ 16
- 13
src/pages/ShouYe/HuoDong/index.jsx Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 import React, { useState } from 'react'
2 2
 import ActivityListItem from '@/components/ActivityListItem/index'
3 3
 import ScrollPageRefresh from '@/components/ScrollPageRefresh/index'
4
+import Page from '@/layouts'
4 5
 import '@/assets/css/reset.less'
5 6
 import '@/assets/css/iconfont.less'
6 7
 import './index.less'
@@ -18,18 +19,20 @@ export default function ShouYeHuoDong () {
18 19
   }
19 20
 
20 21
   return (
21
-    <view className='ShouYeHuoDong'>
22
-      <ScrollPageRefresh ApiName={`getActivityList`} ListName={`list`} Refresh={Refresh} Push={Push}>
23
-        <view className='ShouYeHuoDongContent'>
24
-          {
25
-            PageList.map((item, index) => (
26
-              <view className='ListItem' key={`ActivityItem-${index}`}>
27
-                <ActivityListItem Data={item}></ActivityListItem>
28
-              </view>
29
-            ))
30
-          }
31
-        </view>
32
-      </ScrollPageRefresh>
33
-    </view >
22
+    <Page>
23
+      <view className='ShouYeHuoDong'>
24
+        <ScrollPageRefresh ApiName={`getActivityList`} ListName={`list`} Refresh={Refresh} Push={Push}>
25
+          <view className='ShouYeHuoDongContent'>
26
+            {
27
+              PageList.map((item, index) => (
28
+                <view className='ListItem' key={`ActivityItem-${index}`}>
29
+                  <ActivityListItem Data={item}></ActivityListItem>
30
+                </view>
31
+              ))
32
+            }
33
+          </view>
34
+        </ScrollPageRefresh>
35
+      </view>
36
+    </Page>
34 37
   )
35 38
 }

+ 16
- 13
src/pages/ShouYe/ZiXun/index.jsx Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 import React, { useState } from 'react'
2 2
 import NewsListItem from '@/components/NewsListItem/index'
3 3
 import ScrollPageRefresh from '@/components/ScrollPageRefresh/index'
4
+import Page from '@/layouts'
4 5
 import '@/assets/css/reset.less'
5 6
 import '@/assets/css/iconfont.less'
6 7
 import './index.less'
@@ -18,18 +19,20 @@ export default function ShouYeZiXun () {
18 19
   }
19 20
 
20 21
   return (
21
-    <view className='ShouYeZiXun'>
22
-      <ScrollPageRefresh ApiName={`getNewsList`} Refresh={Refresh} Push={Push}>
23
-        <view className='ShouYeHuoDongContent'>
24
-          {
25
-            PageList.map((item, index) => (
26
-              <view className='ListItem' key={`ActivityItem-${index}`}>
27
-                <NewsListItem Data={item} ShowTips={index === 0}></NewsListItem>
28
-              </view>
29
-            ))
30
-          }
31
-        </view>
32
-      </ScrollPageRefresh>
33
-    </view >
22
+    <Page>
23
+      <view className='ShouYeZiXun'>
24
+        <ScrollPageRefresh ApiName={`getNewsList`} Refresh={Refresh} Push={Push}>
25
+          <view className='ShouYeHuoDongContent'>
26
+            {
27
+              PageList.map((item, index) => (
28
+                <view className='ListItem' key={`ActivityItem-${index}`}>
29
+                  <NewsListItem Data={item} ShowTips={index === 0}></NewsListItem>
30
+                </view>
31
+              ))
32
+            }
33
+          </view>
34
+        </ScrollPageRefresh>
35
+      </view>
36
+    </Page>
34 37
   )
35 38
 }

+ 1
- 1
src/pages/ShouYe/index.jsx Просмотреть файл

@@ -262,7 +262,7 @@ export default function Index (props) {
262 262
           </view>
263 263
 
264 264
         </view>
265
-      </view >
265
+      </view>
266 266
     </Page>
267 267
   )
268 268
 }

+ 35
- 32
src/pages/WoDe/GeRenXinXi/index.jsx Просмотреть файл

@@ -1,4 +1,5 @@
1 1
 import React, { useState } from 'react'
2
+import Page from '@/layouts'
2 3
 import '@/assets/css/reset.less'
3 4
 import '@/assets/css/iconfont.less'
4 5
 import './index.less'
@@ -6,41 +7,43 @@ import './index.less'
6 7
 export default function GeRenXinXi (props) {
7 8
 
8 9
   return (
9
-    <view className='GeRenXinXi'>
10
-      <view className='Form'>
11
-        <view className='flex-h'>
12
-          <text className='flex-item'>头像</text>
13
-          <view className='UserIcon'>
14
-            <image mode='aspectFill' src={null}></image>
10
+    <Page>
11
+      <view className='GeRenXinXi'>
12
+        <view className='Form'>
13
+          <view className='flex-h'>
14
+            <text className='flex-item'>头像</text>
15
+            <view className='UserIcon'>
16
+              <image mode='aspectFill' src={null}></image>
17
+            </view>
18
+          </view>
19
+          <view className='flex-h'>
20
+            <text className='flex-item'>姓名</text>
21
+            <text>三十而已</text>
22
+          </view>
23
+          <view className='flex-h'>
24
+            <text className='flex-item'>性别</text>
25
+            <text>女</text>
26
+          </view>
27
+          <view className='flex-h'>
28
+            <text className='flex-item'>联系电话</text>
29
+            <text>13648041829</text>
15 30
           </view>
16 31
         </view>
17
-        <view className='flex-h'>
18
-          <text className='flex-item'>姓名</text>
19
-          <text>三十而已</text>
20
-        </view>
21
-        <view className='flex-h'>
22
-          <text className='flex-item'>性别</text>
23
-          <text>女</text>
24
-        </view>
25
-        <view className='flex-h'>
26
-          <text className='flex-item'>联系电话</text>
27
-          <text>13648041829</text>
28
-        </view>
29
-      </view>
30
-      <view className='Form'>
31
-        <view className='flex-h'>
32
-          <text className='flex-item'>身份</text>
33
-          <text>业主</text>
34
-        </view>
35
-        <view className='flex-h'>
36
-          <text className='flex-item'>联系电话</text>
37
-          <text>13648041829</text>
38
-        </view>
39
-        <view className='flex-h'>
40
-          <text>房产</text>
41
-          <text className='flex-item'>南京市雨花台区安德门大姐56号凤翔山庄3区1栋3单元3楼309</text>
32
+        <view className='Form'>
33
+          <view className='flex-h'>
34
+            <text className='flex-item'>身份</text>
35
+            <text>业主</text>
36
+          </view>
37
+          <view className='flex-h'>
38
+            <text className='flex-item'>联系电话</text>
39
+            <text>13648041829</text>
40
+          </view>
41
+          <view className='flex-h'>
42
+            <text>房产</text>
43
+            <text className='flex-item'>南京市雨花台区安德门大姐56号凤翔山庄3区1栋3单元3楼309</text>
44
+          </view>
42 45
         </view>
43 46
       </view>
44
-    </view>
47
+    </Page>
45 48
   )
46 49
 }

+ 7
- 4
src/pages/WoDe/TuiJianErWeiMa/index.jsx Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 import React, { useState } from 'react'
2 2
 import Taro from '@tarojs/taro'
3 3
 import CustomHeader from '@/components/CustomHeader/index'
4
+import Page from '@/layouts'
4 5
 import '@/assets/css/reset.less'
5 6
 import '@/assets/css/iconfont.less'
6 7
 import './index.less'
@@ -8,9 +9,11 @@ import './index.less'
8 9
 export default function TuiJianErWeiMa (props) {
9 10
 
10 11
   return (
11
-    <view className='TuiJianErWeiMa'>
12
-      <CustomHeader IsFixed={true} BgColor='none' Title='推荐二维码'></CustomHeader>
13
-      <image mode='widthFix' src='https://zhiyun-image.oss-cn-shanghai.aliyuncs.com/xiangsong/img2.jpg'></image>
14
-    </view>
12
+    <Page>
13
+      <view className='TuiJianErWeiMa'>
14
+        <CustomHeader IsFixed={true} BgColor='none' Title='推荐二维码'></CustomHeader>
15
+        <image mode='widthFix' src='https://zhiyun-image.oss-cn-shanghai.aliyuncs.com/xiangsong/img2.jpg'></image>
16
+      </view>
17
+    </Page>
15 18
   )
16 19
 }

+ 7
- 4
src/pages/WoDe/TuiJianFenXiang/index.jsx Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 import React, { useState } from 'react'
2 2
 import Taro from '@tarojs/taro'
3 3
 import CustomHeader from '@/components/CustomHeader/index'
4
+import Page from '@/layouts'
4 5
 import '@/assets/css/reset.less'
5 6
 import '@/assets/css/iconfont.less'
6 7
 import './index.less'
@@ -8,9 +9,11 @@ import './index.less'
8 9
 export default function TuiJianFenXiang (props) {
9 10
 
10 11
   return (
11
-    <view className='TuiJianFenXiang'>
12
-      <CustomHeader IsFixed={true} BgColor='none' Title='推荐分享'></CustomHeader>
13
-      <image mode='widthFix' src='https://zhiyun-image.oss-cn-shanghai.aliyuncs.com/xiangsong/img1.jpg'></image>
14
-    </view>
12
+    <Page>
13
+      <view className='TuiJianFenXiang'>
14
+        <CustomHeader IsFixed={true} BgColor='none' Title='推荐分享'></CustomHeader>
15
+        <image mode='widthFix' src='https://zhiyun-image.oss-cn-shanghai.aliyuncs.com/xiangsong/img1.jpg'></image>
16
+      </view>
17
+    </Page>
15 18
   )
16 19
 }

+ 17
- 14
src/pages/WoDe/WoDeGongDan/index.jsx Просмотреть файл

@@ -2,6 +2,7 @@ import React, { useState } from 'react'
2 2
 import ScrollPageRefresh from '@/components/ScrollPageRefresh'
3 3
 import WuYeBaoXiuItem from '@/components/WuYeBaoXiuItem'
4 4
 import { useModel } from '@/store'
5
+import Page from '@/layouts'
5 6
 import '@/assets/css/reset.less'
6 7
 import '@/assets/css/iconfont.less'
7 8
 import './index.less'
@@ -18,21 +19,23 @@ export default function WoDeGongDan () {
18 19
   const Push = (e) => { // 上拉加载
19 20
     setPageList(PageList.concat(e))
20 21
   }
21
-  
22
+
22 23
 
23 24
   return (
24
-    <view className='WoDeGongDan'>
25
-      <ScrollPageRefresh ApiName={`getGongDanList`} ListName={`pagelist`} RequestUrlData={{ orgId: user.orgId }} RequestParams={{ type: 2 }} Refresh={Refresh} Push={Push}>
26
-        <view className='Content Activity'>
27
-          {
28
-            PageList.map((item, index) => (
29
-              <view className='ListItem' key={`ActivityItem-${index}`}>
30
-                <WuYeBaoXiuItem Data={item}></WuYeBaoXiuItem>
31
-              </view>
32
-            ))
33
-          }
34
-        </view>
35
-      </ScrollPageRefresh>
36
-    </view>
25
+    <Page>
26
+      <view className='WoDeGongDan'>
27
+        <ScrollPageRefresh ApiName={`getGongDanList`} ListName={`pagelist`} RequestUrlData={{ orgId: user.orgId }} RequestParams={{ type: 2 }} Refresh={Refresh} Push={Push}>
28
+          <view className='Content Activity'>
29
+            {
30
+              PageList.map((item, index) => (
31
+                <view className='ListItem' key={`ActivityItem-${index}`}>
32
+                  <WuYeBaoXiuItem Data={item}></WuYeBaoXiuItem>
33
+                </view>
34
+              ))
35
+            }
36
+          </view>
37
+        </ScrollPageRefresh>
38
+      </view>
39
+    </Page>
37 40
   )
38 41
 }

+ 17
- 14
src/pages/WoDe/WoDeHuoDong/index.jsx Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 import React, { useState } from 'react'
2 2
 import ActivityListItem from '@/components/ActivityListItem/index'
3 3
 import ScrollPageRefresh from '@/components/ScrollPageRefresh/index'
4
+import Page from '@/layouts'
4 5
 import '@/assets/css/reset.less'
5 6
 import '@/assets/css/iconfont.less'
6 7
 import './index.less'
@@ -16,21 +17,23 @@ export default function WoDeHuoDong (props) {
16 17
   const Push = (e) => { // 上拉加载
17 18
     setPageList(PageList.concat(e))
18 19
   }
19
-  
20
+
20 21
 
21 22
   return (
22
-    <view className='WoDeHuoDong'>
23
-      <ScrollPageRefresh ApiName={`getActivityList`} RequestParams={{ mine: 1 }} Refresh={Refresh} Push={Push}>
24
-        <view className='Content Activity'>
25
-          {
26
-            PageList.map((item, index) => (
27
-              <view className='ListItem' key={`ActivityItem-${index}`}>
28
-                <ActivityListItem Data={item}></ActivityListItem>
29
-              </view>
30
-            ))
31
-          }
32
-        </view>
33
-      </ScrollPageRefresh>
34
-    </view>
23
+    <Page>
24
+      <view className='WoDeHuoDong'>
25
+        <ScrollPageRefresh ApiName={`getActivityList`} RequestParams={{ mine: 1 }} Refresh={Refresh} Push={Push}>
26
+          <view className='Content Activity'>
27
+            {
28
+              PageList.map((item, index) => (
29
+                <view className='ListItem' key={`ActivityItem-${index}`}>
30
+                  <ActivityListItem Data={item}></ActivityListItem>
31
+                </view>
32
+              ))
33
+            }
34
+          </view>
35
+        </ScrollPageRefresh>
36
+      </view>
37
+    </Page>
35 38
   )
36 39
 }

+ 17
- 14
src/pages/WoDe/WoDeJiaoFei/index.jsx Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 import React, { useState } from 'react'
2 2
 import ScrollPageRefresh from '@/components/ScrollPageRefresh'
3 3
 import WuYeJiaoFeiItem from '@/components/WuYeJiaoFeiItem'
4
+import Page from '@/layouts'
4 5
 import '@/assets/css/reset.less'
5 6
 import '@/assets/css/iconfont.less'
6 7
 import './index.less'
@@ -16,21 +17,23 @@ export default function WoDeJiaoFei () {
16 17
   const Push = (e) => { // 上拉加载
17 18
     setPageList(PageList.concat(e))
18 19
   }
19
-  
20
+
20 21
 
21 22
   return (
22
-    <view className='WoDeJiaoFei'>
23
-      <ScrollPageRefresh ApiName={`getActivityList`} RequestParams={{ mine: 1 }} Refresh={Refresh} Push={Push}>
24
-        <view className='Content Activity'>
25
-          {
26
-            PageList.map((item, index) => (
27
-              <view className='ListItem' key={`ActivityItem-${index}`}>
28
-                <WuYeJiaoFeiItem Data={item}></WuYeJiaoFeiItem>
29
-              </view>
30
-            ))
31
-          }
32
-        </view>
33
-      </ScrollPageRefresh>
34
-    </view>
23
+    <Page>
24
+      <view className='WoDeJiaoFei'>
25
+        <ScrollPageRefresh ApiName={`getActivityList`} RequestParams={{ mine: 1 }} Refresh={Refresh} Push={Push}>
26
+          <view className='Content Activity'>
27
+            {
28
+              PageList.map((item, index) => (
29
+                <view className='ListItem' key={`ActivityItem-${index}`}>
30
+                  <WuYeJiaoFeiItem Data={item}></WuYeJiaoFeiItem>
31
+                </view>
32
+              ))
33
+            }
34
+          </view>
35
+        </ScrollPageRefresh>
36
+      </view>
37
+    </Page>
35 38
   )
36 39
 }

+ 25
- 22
src/pages/WoDe/WoDeRenZheng/index.jsx Просмотреть файл

@@ -2,6 +2,7 @@ import React, { useState } from 'react'
2 2
 import ScrollPageRefresh from '@/components/ScrollPageRefresh'
3 3
 import toolclass from '@/utils/toolclass.js'
4 4
 import Taro from '@tarojs/taro'
5
+import Page from '@/layouts'
5 6
 import '@/assets/css/reset.less'
6 7
 import '@/assets/css/iconfont.less'
7 8
 import './index.less'
@@ -20,30 +21,32 @@ export default function WoDeRenZheng () {
20 21
 
21 22
 
22 23
   return (
23
-    <view className='WoDeRenZheng'>
24
-      <ScrollPageRefresh ApiName={`getOwnerVerifyList`} ListName={null} Refresh={Refresh} Push={Push}>
25
-        <view className='Content Activity'>
26
-          {
27
-            PageList.map((item, index) => (
28
-              <view className='ListItem' key={`RenZhengItem-${index}`} onClick={() => { Taro.navigateTo({ url: `/pages/WoDe/YeZhuShenHe/index?id=${item.id}` }) }}>
29
-                <text>{item.phaseName}{item.buildingName}{item.unitName}{item.levelName}{item.roomNoName}</text>
30
-                <view className='flex-h'>
31
-                  <view className='flex-item'>
32
-                    <text>业主:{item.ownerName} {item.phone}</text>
33
-                    <text>{toolclass.FormatDate(item.createDate)}</text>
34
-                  </view>
35
-                  <view>
36
-                    <text className={item.verifyStatus - 0 === 0 ? '' : item.verifyStatus - 0 === 1 ? 'Green' : 'Red'}>{item.verifyStatus - 0 === 0 ? '审核中' : item.verifyStatus - 0 === 1 ? '审核通过' : '审核未通过'}</text>
24
+    <Page>
25
+      <view className='WoDeRenZheng'>
26
+        <ScrollPageRefresh ApiName={`getOwnerVerifyList`} ListName={null} Refresh={Refresh} Push={Push}>
27
+          <view className='Content Activity'>
28
+            {
29
+              PageList.map((item, index) => (
30
+                <view className='ListItem' key={`RenZhengItem-${index}`} onClick={() => { Taro.navigateTo({ url: `/pages/WoDe/YeZhuShenHe/index?id=${item.id}` }) }}>
31
+                  <text>{item.phaseName}{item.buildingName}{item.unitName}{item.levelName}{item.roomNoName}</text>
32
+                  <view className='flex-h'>
33
+                    <view className='flex-item'>
34
+                      <text>业主:{item.ownerName} {item.phone}</text>
35
+                      <text>{toolclass.FormatDate(item.createDate)}</text>
36
+                    </view>
37
+                    <view>
38
+                      <text className={item.verifyStatus - 0 === 0 ? '' : item.verifyStatus - 0 === 1 ? 'Green' : 'Red'}>{item.verifyStatus - 0 === 0 ? '审核中' : item.verifyStatus - 0 === 1 ? '审核通过' : '审核未通过'}</text>
39
+                    </view>
37 40
                   </view>
38 41
                 </view>
39
-              </view>
40
-            ))
41
-          }
42
-          <view className='AddBtn'>
43
-            <text onClick={() => { Taro.navigateTo({ url: `/pages/WoDe/YeZhuRenZheng/index` }) }}>添加认证</text>
42
+              ))
43
+            }
44
+            <view className='AddBtn'>
45
+              <text onClick={() => { Taro.navigateTo({ url: `/pages/WoDe/YeZhuRenZheng/index` }) }}>添加认证</text>
46
+            </view>
44 47
           </view>
45
-        </view>
46
-      </ScrollPageRefresh>
47
-    </view>
48
+        </ScrollPageRefresh>
49
+      </view>
50
+    </Page>
48 51
   )
49 52
 }

+ 60
- 57
src/pages/WoDe/YeZhuRenZheng/index.jsx Просмотреть файл

@@ -2,6 +2,7 @@ import React, { useState, useEffect } from 'react'
2 2
 import { Input, Picker } from '@tarojs/components'
3 3
 import Taro from '@tarojs/taro'
4 4
 import request, { apis } from '@/utils/request'
5
+import Page from '@/layouts'
5 6
 import { useModel } from '@/store'
6 7
 import '@/assets/css/reset.less'
7 8
 import '@/assets/css/iconfont.less'
@@ -252,69 +253,71 @@ export default function YeZhuRenZheng () {
252 253
   }
253 254
 
254 255
   return (
255
-    <view className='YeZhuRenZheng'>
256
-      <view className='Form'>
257
-        <view className='flex-h'>
258
-          <text className='iconfont iconxingming'></text>
259
-          <Input className='flex-item' placeholder='请输入您的姓名' value={FormData.RealName} onInput={(e) => { setFormData({ ...FormData, RealName: e.detail.value }) }}></Input>
260
-        </view>
261
-        <view className='flex-h'>
262
-          <text className='iconfont iconshenfenzheng'></text>
263
-          <Input type='idcard' className='flex-item' placeholder='请输入您的身份证号码' value={FormData.IdCard} onInput={(e) => { setFormData({ ...FormData, IdCard: e.detail.value }) }}></Input>
264
-        </view>
265
-        <view className='flex-h'>
266
-          <text className='iconfont iconshouji'></text>
267
-          <Input type='idcard' className='flex-item' placeholder='请输入您的手机号码' value={FormData.Phone} onInput={(e) => { setFormData({ ...FormData, Phone: e.detail.value }) }}></Input>
268
-        </view>
269
-        <view className='flex-h'>
270
-          <text className='iconfont iconyanzhengma'></text>
271
-          <Input type='idcard' className='flex-item' placeholder='请输入验证码' value={PhoneCode} onInput={(e) => { setPhoneCode(e.detail.value) }}></Input>
272
-          <text className={CodeTimerNum - 0 === 60 ? 'active' : ''} onClick={ToGetPhoneCode}>{CodeTimerNum - 0 === 60 ? `获取验证码` : `${CodeTimerNum > 9 ? `${CodeTimerNum}s后再次获取` : `0${CodeTimerNum}s后再次获取`}`}</text>
273
-        </view>
274
-        <view className='flex-h'>
275
-          <text>期号</text>
276
-          <view className='flex-item'>
277
-            <Picker value={Level2Value} range-key='name' range={Level2List} onChange={Level2Change}>
278
-              <view className='PickerText'>{Level2List.length > 0 && Level2Value !== null ? Level2List[Level2Value].name : '请选择期号'}</view>
279
-            </Picker>
256
+    <Page>
257
+      <view className='YeZhuRenZheng'>
258
+        <view className='Form'>
259
+          <view className='flex-h'>
260
+            <text className='iconfont iconxingming'></text>
261
+            <Input className='flex-item' placeholder='请输入您的姓名' value={FormData.RealName} onInput={(e) => { setFormData({ ...FormData, RealName: e.detail.value }) }}></Input>
280 262
           </view>
281
-        </view>
282
-        <view className='flex-h'>
283
-          <text>楼栋</text>
284
-          <view className='flex-item'>
285
-            <Picker value={Level3Value} range-key='name' range={Level3List} onChange={Level3Change}>
286
-              <view className='PickerText'>{Level3List.length > 0 && Level3Value !== null ? Level3List[Level3Value].name : '请选择楼栋'}</view>
287
-            </Picker>
263
+          <view className='flex-h'>
264
+            <text className='iconfont iconshenfenzheng'></text>
265
+            <Input type='idcard' className='flex-item' placeholder='请输入您的身份证号码' value={FormData.IdCard} onInput={(e) => { setFormData({ ...FormData, IdCard: e.detail.value }) }}></Input>
288 266
           </view>
289
-        </view>
290
-        <view className='flex-h'>
291
-          <text>单元</text>
292
-          <view className='flex-item'>
293
-            <Picker value={Level4Value} range-key='name' range={Level4List} onChange={Level4Change}>
294
-              <view className='PickerText'>{Level4List.length > 0 && Level4Value !== null ? Level4List[Level4Value].name : '请选择单元'}</view>
295
-            </Picker>
267
+          <view className='flex-h'>
268
+            <text className='iconfont iconshouji'></text>
269
+            <Input type='idcard' className='flex-item' placeholder='请输入您的手机号码' value={FormData.Phone} onInput={(e) => { setFormData({ ...FormData, Phone: e.detail.value }) }}></Input>
296 270
           </view>
297
-        </view>
298
-        <view className='flex-h'>
299
-          <text>楼层</text>
300
-          <view className='flex-item'>
301
-            <Picker value={Level5Value} range-key='name' range={Level5List} onChange={Level5Change}>
302
-              <view className='PickerText'>{Level5List.length > 0 && Level5Value !== null ? Level5List[Level5Value].name : '请选择楼层'}</view>
303
-            </Picker>
271
+          <view className='flex-h'>
272
+            <text className='iconfont iconyanzhengma'></text>
273
+            <Input type='idcard' className='flex-item' placeholder='请输入验证码' value={PhoneCode} onInput={(e) => { setPhoneCode(e.detail.value) }}></Input>
274
+            <text className={CodeTimerNum - 0 === 60 ? 'active' : ''} onClick={ToGetPhoneCode}>{CodeTimerNum - 0 === 60 ? `获取验证码` : `${CodeTimerNum > 9 ? `${CodeTimerNum}s后再次获取` : `0${CodeTimerNum}s后再次获取`}`}</text>
304 275
           </view>
305
-        </view>
306
-        <view className='flex-h'>
307
-          <text>房号</text>
308
-          <view className='flex-item'>
309
-            <Picker value={Level6Value} range-key='name' range={Level6List} onChange={Level6Change}>
310
-              <view className='PickerText'>{Level6List.length > 0 && Level6Value !== null ? Level6List[Level6Value].name : '请选择房号'}</view>
311
-            </Picker>
276
+          <view className='flex-h'>
277
+            <text>期号</text>
278
+            <view className='flex-item'>
279
+              <Picker value={Level2Value} range-key='name' range={Level2List} onChange={Level2Change}>
280
+                <view className='PickerText'>{Level2List.length > 0 && Level2Value !== null ? Level2List[Level2Value].name : '请选择期号'}</view>
281
+              </Picker>
282
+            </view>
283
+          </view>
284
+          <view className='flex-h'>
285
+            <text>楼栋</text>
286
+            <view className='flex-item'>
287
+              <Picker value={Level3Value} range-key='name' range={Level3List} onChange={Level3Change}>
288
+                <view className='PickerText'>{Level3List.length > 0 && Level3Value !== null ? Level3List[Level3Value].name : '请选择楼栋'}</view>
289
+              </Picker>
290
+            </view>
291
+          </view>
292
+          <view className='flex-h'>
293
+            <text>单元</text>
294
+            <view className='flex-item'>
295
+              <Picker value={Level4Value} range-key='name' range={Level4List} onChange={Level4Change}>
296
+                <view className='PickerText'>{Level4List.length > 0 && Level4Value !== null ? Level4List[Level4Value].name : '请选择单元'}</view>
297
+              </Picker>
298
+            </view>
299
+          </view>
300
+          <view className='flex-h'>
301
+            <text>楼层</text>
302
+            <view className='flex-item'>
303
+              <Picker value={Level5Value} range-key='name' range={Level5List} onChange={Level5Change}>
304
+                <view className='PickerText'>{Level5List.length > 0 && Level5Value !== null ? Level5List[Level5Value].name : '请选择楼层'}</view>
305
+              </Picker>
306
+            </view>
307
+          </view>
308
+          <view className='flex-h'>
309
+            <text>房号</text>
310
+            <view className='flex-item'>
311
+              <Picker value={Level6Value} range-key='name' range={Level6List} onChange={Level6Change}>
312
+                <view className='PickerText'>{Level6List.length > 0 && Level6Value !== null ? Level6List[Level6Value].name : '请选择房号'}</view>
313
+              </Picker>
314
+            </view>
312 315
           </view>
313 316
         </view>
317
+        <view className='BottomBtn' onClick={Submit}>
318
+          <text>提交</text>
319
+        </view>
314 320
       </view>
315
-      <view className='BottomBtn' onClick={Submit}>
316
-        <text>提交</text>
317
-      </view>
318
-    </view>
321
+    </Page>
319 322
   )
320 323
 }

+ 116
- 113
src/pages/WoDe/YeZhuShenHe/index.jsx Просмотреть файл

@@ -3,6 +3,7 @@ import Taro, { Current } from '@tarojs/taro'
3 3
 import request, { apis } from '@/utils/request'
4 4
 import { useModel } from '@/store'
5 5
 import SlidePopup from '@/components/SlidePopup/index'
6
+import Page from '@/layouts'
6 7
 import '@/assets/css/reset.less'
7 8
 import '@/assets/css/iconfont.less'
8 9
 import './index.less'
@@ -41,15 +42,15 @@ export default function YeZhuShenHe () {
41 42
         if (res.confirm) {
42 43
           if (Detail.verifyStatus - 0 === 1) { // 删除审核通过的房产
43 44
             request({ ...apis.deletePassRenZheng, args: { id: CurrnetId } }).then((res) => {
44
-              Taro.showToast({title: '删除成功', icon: 'none'})
45
+              Taro.showToast({ title: '删除成功', icon: 'none' })
45 46
             }).catch((res) => {
46
-              Taro.showToast({title: res, icon: 'none'})
47
+              Taro.showToast({ title: res, icon: 'none' })
47 48
             })
48 49
           } else { // 删除审核中的房产
49 50
             request({ ...apis.deleteCheckingRenZheng, args: { id: CurrnetId } }).then((res) => {
50
-              Taro.showToast({title: '删除成功', icon: 'none'})
51
+              Taro.showToast({ title: '删除成功', icon: 'none' })
51 52
             }).catch((res) => {
52
-              Taro.showToast({title: res, icon: 'none'})
53
+              Taro.showToast({ title: res, icon: 'none' })
53 54
             })
54 55
           }
55 56
         }
@@ -58,133 +59,135 @@ export default function YeZhuShenHe () {
58 59
   }
59 60
 
60 61
   return (
61
-    <view className='YeZhuShenHe'>
62
-      {
63
-        Detail !== null &&
64
-        <view className='ShenHeContent'>
65
-
66
-          {/* 审核中 */}
67
-          {
68
-            Detail.verifyStatus - 0 === 0 &&
69
-            <view className='CheckStatus Checking'>
70
-              <view className='Status'>
71
-                <text className='iconfont iconshenhezhong'></text>
72
-                <text>审核中</text>
73
-                <text>请等待物业或户主审核</text>
74
-              </view>
75
-
76
-              <view className='Info'>
77
-                <view className='flex-h'>
78
-                  <text>身份:</text>
79
-                  <text className='flex-item'>户主</text>
62
+    <Page>
63
+      <view className='YeZhuShenHe'>
64
+        {
65
+          Detail !== null &&
66
+          <view className='ShenHeContent'>
67
+
68
+            {/* 审核中 */}
69
+            {
70
+              Detail.verifyStatus - 0 === 0 &&
71
+              <view className='CheckStatus Checking'>
72
+                <view className='Status'>
73
+                  <text className='iconfont iconshenhezhong'></text>
74
+                  <text>审核中</text>
75
+                  <text>请等待物业或户主审核</text>
80 76
                 </view>
81
-                <view className='flex-h'>
82
-                  <text>房产:</text>
83
-                  <text className='flex-item'>{Detail.phaseName} {Detail.buildingName} {Detail.unitName} {Detail.levelName} {Detail.roomNoName}</text>
77
+
78
+                <view className='Info'>
79
+                  <view className='flex-h'>
80
+                    <text>身份:</text>
81
+                    <text className='flex-item'>户主</text>
82
+                  </view>
83
+                  <view className='flex-h'>
84
+                    <text>房产:</text>
85
+                    <text className='flex-item'>{Detail.phaseName} {Detail.buildingName} {Detail.unitName} {Detail.levelName} {Detail.roomNoName}</text>
86
+                  </view>
84 87
                 </view>
85 88
               </view>
86
-            </view>
87
-          }
89
+            }
90
+
91
+            {/* 审核通过 */}
92
+            {
93
+              Detail.verifyStatus - 0 === 1 &&
94
+              <view className='CheckStatus Pass'>
95
+                <view className='Status'>
96
+                  <text className='iconfont iconyitongguo'></text>
97
+                  <text>审核通过</text>
98
+                </view>
88 99
 
89
-          {/* 审核通过 */}
90
-          {
91
-            Detail.verifyStatus - 0 === 1 &&
92
-            <view className='CheckStatus Pass'>
93
-              <view className='Status'>
94
-                <text className='iconfont iconyitongguo'></text>
95
-                <text>审核通过</text>
100
+                <view className='Info'>
101
+                  <view className='flex-h'>
102
+                    <text>身份:</text>
103
+                    <text className='flex-item'>户主</text>
104
+                  </view>
105
+                  <view className='flex-h'>
106
+                    <text>房产:</text>
107
+                    <text className='flex-item'>{Detail.phaseName} {Detail.buildingName} {Detail.unitName} {Detail.levelName} {Detail.roomNoName}</text>
108
+                  </view>
109
+                </view>
96 110
               </view>
111
+            }
112
+
113
+            {/* 审核未通过 */}
114
+            {
115
+              Detail.verifyStatus - 0 === 2 &&
116
+              <view className='CheckStatus NoPass'>
117
+                <view className='Status'>
118
+                  <text className='iconfont iconweitongguo'></text>
119
+                  <text>审核未通过</text>
120
+                </view>
97 121
 
98
-              <view className='Info'>
99
-                <view className='flex-h'>
100
-                  <text>身份:</text>
101
-                  <text className='flex-item'>户主</text>
122
+                <view className='Info'>
123
+                  <view className='flex-h'>
124
+                    <text>审核人</text>
125
+                    <text className='flex-item'>{Detail.verifyName || '-'}</text>
126
+                  </view>
127
+                  <view className='flex-h'>
128
+                    <text>原因</text>
129
+                    <text className='flex-item'>{Detail.remark || '-'}</text>
130
+                  </view>
102 131
                 </view>
103
-                <view className='flex-h'>
104
-                  <text>房产:</text>
105
-                  <text className='flex-item'>{Detail.phaseName} {Detail.buildingName} {Detail.unitName} {Detail.levelName} {Detail.roomNoName}</text>
132
+
133
+                <view className='Info'>
134
+                  <view className='flex-h'>
135
+                    <text>身份</text>
136
+                    <text className='flex-item'>户主</text>
137
+                  </view>
138
+                  <view className='flex-h'>
139
+                    <text>房产</text>
140
+                    <text className='flex-item'>{Detail.phaseName} {Detail.buildingName} {Detail.unitName} {Detail.levelName} {Detail.roomNoName}</text>
141
+                  </view>
106 142
                 </view>
107 143
               </view>
108
-            </view>
109
-          }
144
+            }
110 145
 
111
-          {/* 审核未通过 */}
112
-          {
113
-            Detail.verifyStatus - 0 === 2 &&
114
-            <view className='CheckStatus NoPass'>
115
-              <view className='Status'>
116
-                <text className='iconfont iconweitongguo'></text>
117
-                <text>审核未通过</text>
146
+            <view className='OtherTab'>
147
+              <view className='flex-h' onClick={() => { setShowPopup(true) }}>
148
+                <text className='flex-item'>联系物业</text>
149
+                <text className='iconfont iconjiantouright'></text>
118 150
               </view>
119
-
120
-              <view className='Info'>
121
-                <view className='flex-h'>
122
-                  <text>审核人</text>
123
-                  <text className='flex-item'>{Detail.verifyName || '-'}</text>
124
-                </view>
125
-                <view className='flex-h'>
126
-                  <text>原因</text>
127
-                  <text className='flex-item'>{Detail.remark || '-'}</text>
128
-                </view>
151
+              <view className='flex-h' onClick={Detele}>
152
+                <text className='flex-item'>删除当前资料</text>
153
+                <text className='iconfont iconjiantouright'></text>
129 154
               </view>
130
-
131
-              <view className='Info'>
132
-                <view className='flex-h'>
133
-                  <text>身份</text>
134
-                  <text className='flex-item'>户主</text>
135
-                </view>
136
-                <view className='flex-h'>
137
-                  <text>房产</text>
138
-                  <text className='flex-item'>{Detail.phaseName} {Detail.buildingName} {Detail.unitName} {Detail.levelName} {Detail.roomNoName}</text>
139
-                </view>
155
+              <view className='flex-h' onClick={() => { Taro.redirectTo({ url: `/pages/WoDe/YeZhuRenZheng/index` }) }}>
156
+                <text className='flex-item'>关联其他房产</text>
157
+                <text className='iconfont iconjiantouright'></text>
140 158
               </view>
141 159
             </view>
142
-          }
143
-
144
-          <view className='OtherTab'>
145
-            <view className='flex-h' onClick={() => { setShowPopup(true) }}>
146
-              <text className='flex-item'>联系物业</text>
147
-              <text className='iconfont iconjiantouright'></text>
148
-            </view>
149
-            <view className='flex-h' onClick={Detele}>
150
-              <text className='flex-item'>删除当前资料</text>
151
-              <text className='iconfont iconjiantouright'></text>
152
-            </view>
153
-            <view className='flex-h' onClick={() => { Taro.redirectTo({ url: `/pages/WoDe/YeZhuRenZheng/index` }) }}>
154
-              <text className='flex-item'>关联其他房产</text>
155
-              <text className='iconfont iconjiantouright'></text>
156
-            </view>
157
-          </view>
158 160
 
159
-          <view className='ContentBottom'></view>
161
+            <view className='ContentBottom'></view>
160 162
 
161
-        </view>
162
-      }
163
+          </view>
164
+        }
163 165
 
164 166
 
165
-      {/* 审核未通过 */}
166
-      {
167
-        Detail !== null && Status - 0 === 2 &&
168
-        <view className='BottomBtn'>
169
-          <text>重新认证</text>
170
-        </view>
171
-      }
167
+        {/* 审核未通过 */}
168
+        {
169
+          Detail !== null && Status - 0 === 2 &&
170
+          <view className='BottomBtn'>
171
+            <text>重新认证</text>
172
+          </view>
173
+        }
172 174
 
173
-      <SlidePopup Close={() => { setShowPopup(false) }} Show={ShowPopup}>
174
-        <view className='LianXiPopup'>
175
-          <text>联系物业</text>
176
-          <text>对此费用有疑问</text>
177
-          {
178
-            PhoneList.map((item, index) => (
179
-              <view className='flex-h' key={`PhoneList-${index}`} onClick={() => { Taro.makePhoneCall({ phoneNumber: item.tel }) }}>
180
-                <text className='flex-item'>{item.name}</text>
181
-                <text>{item.tel}</text>
182
-                <text className='iconfont icondianhua'></text>
183
-              </view>
184
-            ))
185
-          }
186
-        </view>
187
-      </SlidePopup>
188
-    </view>
175
+        <SlidePopup Close={() => { setShowPopup(false) }} Show={ShowPopup}>
176
+          <view className='LianXiPopup'>
177
+            <text>联系物业</text>
178
+            <text>对此费用有疑问</text>
179
+            {
180
+              PhoneList.map((item, index) => (
181
+                <view className='flex-h' key={`PhoneList-${index}`} onClick={() => { Taro.makePhoneCall({ phoneNumber: item.tel }) }}>
182
+                  <text className='flex-item'>{item.name}</text>
183
+                  <text>{item.tel}</text>
184
+                  <text className='iconfont icondianhua'></text>
185
+                </view>
186
+              ))
187
+            }
188
+          </view>
189
+        </SlidePopup>
190
+      </view>
191
+    </Page>
189 192
   )
190 193
 }

+ 60
- 53
src/pages/WoDe/index.jsx Просмотреть файл

@@ -3,6 +3,7 @@ import NavHeader from '@/components/NavHeader/index'
3 3
 import Taro from '@tarojs/taro'
4 4
 import request, { apis } from '@/utils/request'
5 5
 import { useModel } from '@/store'
6
+import Page from '@/layouts'
6 7
 import '@/assets/css/reset.less'
7 8
 import '@/assets/css/iconfont.less'
8 9
 import './index.less'
@@ -18,27 +19,28 @@ export default function WoDe () {
18 19
     { icon: 'iconfuwu1', name: '物业服务', id: 4, router: '/pages/WoDe/WoDeGongDan/index' }
19 20
   ])
20 21
   const [MoreUserTab] = useState([
21
-    { icon: 'iconerweima', name: '推荐二维码', id: 5, router: '/pages/WoDe/TuiJianErWeiMa/index' },
22
-    { icon: 'iconfenxiang', name: '推荐分享', id: 6, router: '/pages/WoDe/TuiJianFenXiang/index' },
22
+    // { icon: 'iconerweima', name: '推荐二维码', id: 5, router: '/pages/WoDe/TuiJianErWeiMa/index' },
23
+    // { icon: 'iconfenxiang', name: '推荐分享', id: 6, router: '/pages/WoDe/TuiJianFenXiang/index' },
23 24
     { icon: 'iconhuodong', name: '参与活动', id: 7, router: '/pages/WoDe/WoDeHuoDong/index' }
24 25
   ])
25 26
   const [DataLock, setDataLock] = useState(false)
26 27
 
27 28
   useEffect(() => {
28
-    // if (user !== null) {
29
-    //   request({ ...apis.getOwnerVerifyList }).then(() => {
30
-    //   }).catch((res) => {
31
-    //     Taro.showToast({ title: res, icon: 'none' })
32
-    //   })
33
-    // }
29
+    if (user !== null) {
30
+      request({ ...apis.getUserInfo }).then((res) => {
31
+        setUser({ ...user, ...res })
32
+      }).catch((res) => {
33
+        Taro.showToast({ title: res, icon: 'none' })
34
+      })
35
+    }
34 36
   }, [])
35 37
 
36 38
   const ToSign = () => { // 签到
37
-    if (DataLock) return
39
+    if (DataLock || (user.havaSigned !== undefined && user.havaSigned - 0 === 1)) return
38 40
     setDataLock(true)
39 41
     request({ ...apis.userSign }).then(() => {
40 42
       Taro.showToast({ title: '签到成功', icon: 'none' })
41
-      setUser({ ...user, isSignup: 1 })
43
+      setUser({ ...user, havaSigned: 1 })
42 44
       setDataLock(false)
43 45
     }).catch((res) => {
44 46
       Taro.showToast({ title: res, icon: 'none' })
@@ -56,55 +58,60 @@ export default function WoDe () {
56 58
   }
57 59
 
58 60
   return (
59
-    <view className='WoDe'>
60
-      <NavHeader BgColor='none' Title='我的' IsFixed={true}></NavHeader>
61
-      <scroll-view scroll-y='true' style='height: 100%;' refresher-enabled={true} onrefresherrefresh={OnRefresh} refresher-triggered={IsPull} refresher-background='#F35844'>
62
-        <view className='WoDeContent'>
61
+    <Page>
62
+      <view className='WoDe'>
63
+        <NavHeader BgColor='none' Title='我的' IsFixed={true}></NavHeader>
64
+        <scroll-view scroll-y='true' style='height: 100%;' refresher-enabled={true} onrefresherrefresh={OnRefresh} refresher-triggered={IsPull} refresher-background='#F35844'>
65
+          <view className='WoDeContent'>
63 66
 
64
-          {/* 顶部背景图 */}
65
-          <view className='TopBg'>
66
-            <view className='ColorBg'></view>
67
-            <view className='UserInfo flex-h'>
68
-              <view className='Icon' onClick={() => { Taro.navigateTo({ url: '/pages/WoDe/GeRenXinXi/index' }) }}>
69
-                <image mode='aspectFill' src={null} class='centerLabel'></image>
70
-              </view>
71
-              <view className='flex-item' onClick={() => { Taro.navigateTo({ url: '/pages/WoDe/GeRenXinXi/index' }) }}>
72
-                <text>{user.nickname || '暂未授权用户信息'}</text>
73
-                <text>{user.phone || '暂未授权手机号'}</text>
67
+            {/* 顶部背景图 */}
68
+            <view className='TopBg'>
69
+              <view className='ColorBg'></view>
70
+              <view className='UserInfo flex-h'>
71
+                <view className='Icon' onClick={() => { Taro.navigateTo({ url: '/pages/WoDe/GeRenXinXi/index' }) }}>
72
+                  <image mode='aspectFill' src={user.avatarurl} class='centerLabel'></image>
73
+                </view>
74
+                <view className='flex-item' onClick={() => { Taro.navigateTo({ url: '/pages/WoDe/GeRenXinXi/index' }) }}>
75
+                  <text>{user.nickname || '暂未授权用户信息'}</text>
76
+                  <text>{user.phone || '暂未授权手机号'}</text>
77
+                </view>
78
+                {
79
+                  user.havaSigned !== undefined &&
80
+                  <text onClick={ToSign}>{user.havaSigned - 0 === 1 ? '已签到' : '签到'}</text>
81
+                }
74 82
               </view>
75
-              <text onClick={ToSign}>{user.isSignup ? '已签到' : '签到'}</text>
76 83
             </view>
77
-          </view>
78 84
 
79
-          {/* 用户选项 */}
80
-          <view className='UserTab'>
81
-            {
82
-              UserTab.map((item, index) => (
83
-                <view key={`UserTab-${index}`} className='flex-h' onClick={() => { Taro.navigateTo({ url: item.router }) }}>
84
-                  <text className={`iconfont ${item.icon}`}></text>
85
-                  <view className='flex-h flex-item'>
86
-                    <text className='flex-item'>{item.name}</text>
87
-                    <text className='iconfont iconjiantouright'></text>
85
+            {/* 用户选项 */}
86
+            <view className='UserTab'>
87
+              {
88
+                UserTab.map((item, index) => (
89
+                  <view key={`UserTab-${index}`} className='flex-h' onClick={() => { Taro.navigateTo({ url: item.router }) }}>
90
+                    <text className={`iconfont ${item.icon}`}></text>
91
+                    <view className='flex-h flex-item'>
92
+                      <text className='flex-item'>{item.name}</text>
93
+                      <text className='iconfont iconjiantouright'></text>
94
+                    </view>
88 95
                   </view>
89
-                </view>
90
-              ))
91
-            }
92
-            <view className='Line'></view>
93
-            {
94
-              MoreUserTab.map((item, index) => (
95
-                <view key={`UserTab-${index}`} className='flex-h' onClick={() => { Taro.navigateTo({ url: item.router }) }}>
96
-                  <text className={`iconfont ${item.icon}`}></text>
97
-                  <view className='flex-h flex-item'>
98
-                    <text className='flex-item'>{item.name}</text>
99
-                    <text className='iconfont iconjiantouright'></text>
96
+                ))
97
+              }
98
+              <view className='Line'></view>
99
+              {
100
+                MoreUserTab.map((item, index) => (
101
+                  <view key={`UserTab-${index}`} className='flex-h' onClick={() => { Taro.navigateTo({ url: item.router }) }}>
102
+                    <text className={`iconfont ${item.icon}`}></text>
103
+                    <view className='flex-h flex-item'>
104
+                      <text className='flex-item'>{item.name}</text>
105
+                      <text className='iconfont iconjiantouright'></text>
106
+                    </view>
100 107
                   </view>
101
-                </view>
102
-              ))
103
-            }
104
-          </view>
108
+                ))
109
+              }
110
+            </view>
105 111
 
106
-        </view>
107
-      </scroll-view>
108
-    </view>
112
+          </view>
113
+        </scroll-view>
114
+      </view>
115
+    </Page>
109 116
   )
110 117
 }

+ 65
- 62
src/pages/WuYe/BaoXiuDetail/index.jsx Просмотреть файл

@@ -4,6 +4,7 @@ import request, { apis } from '@/utils/request'
4 4
 import { useModel } from '@/store'
5 5
 import toolclass from '@/utils/toolclass.js'
6 6
 import SlidePopup from '@/components/SlidePopup/index'
7
+import Page from '@/layouts'
7 8
 import '@/assets/css/reset.less'
8 9
 import '@/assets/css/iconfont.less'
9 10
 import './index.less'
@@ -30,44 +31,45 @@ export default function BaoXiuDetail () {
30 31
   }
31 32
 
32 33
   return (
33
-    <view className='BaoXiuDetail'>
34
+    <Page>
35
+      <view className='BaoXiuDetail'>
34 36
 
35
-      <view className='TopLine'></view>
37
+        <view className='TopLine'></view>
36 38
 
37
-      {/* 概况 */}
38
-      <view className='TopInfo'>
39
-        <view className='flex-h'>
40
-          <text className='flex-item'>{DetailInfo === null ? null : DetailInfo.ticketTitle}</text>
41
-          <text className='iconfont iconjiantouright'></text>
42
-        </view>
43
-        <view className='flex-h'>
44
-          <text className='flex-item'>报修单号</text>
45
-          <text>{DetailInfo === null ? null : DetailInfo.id}</text>
46
-        </view>
47
-        <view className='flex-h'>
48
-          <text className='flex-item'>报修时间</text>
49
-          <text>{DetailInfo === null ? null : toolclass.FormatDate(DetailInfo.createDate)}</text>
39
+        {/* 概况 */}
40
+        <view className='TopInfo'>
41
+          <view className='flex-h'>
42
+            <text className='flex-item'>{DetailInfo === null ? null : DetailInfo.ticketTitle}</text>
43
+            <text className='iconfont iconjiantouright'></text>
44
+          </view>
45
+          <view className='flex-h'>
46
+            <text className='flex-item'>报修单号</text>
47
+            <text>{DetailInfo === null ? null : DetailInfo.id}</text>
48
+          </view>
49
+          <view className='flex-h'>
50
+            <text className='flex-item'>报修时间</text>
51
+            <text>{DetailInfo === null ? null : toolclass.FormatDate(DetailInfo.createDate)}</text>
52
+          </view>
50 53
         </view>
51
-      </view>
52 54
 
53
-      {/* 详情 */}
54
-      <view className='Detail'>
55
-        <text>处理进度</text>
56
-        <view className='flex-h'>
57
-          <view className='Line'><view></view></view>
58
-          <view className='flex-item'>
59
-            <view>
60
-              {
61
-                DetailInfo !== null && DetailInfo.ticketRecordList !== null &&
62
-                DetailInfo.ticketRecordList.map((item, index) => (
63
-                  <view className='StepList' key={`StepList-${index}`}>
64
-                    <view className='Title flex-h'>
65
-                      <text className='flex-item Red'>{item.ticketStatusName}</text>
66
-                      <text>{toolclass.FormatDate(item.createDate)}</text>
67
-                    </view>
68
-                    <view className='Text'>{item.content}</view>
69
-                    {/* <view className='Text'>您的报修正在分配物业处理人员,若长时间无人处理,请联系物业。<text className='Blue'>物业电话薄</text><text className='Blue iconfont iconjiantouright'></text></view> */}
70
-                    {/* <view className='ImgList'>
55
+        {/* 详情 */}
56
+        <view className='Detail'>
57
+          <text>处理进度</text>
58
+          <view className='flex-h'>
59
+            <view className='Line'><view></view></view>
60
+            <view className='flex-item'>
61
+              <view>
62
+                {
63
+                  DetailInfo !== null && DetailInfo.ticketRecordList !== null &&
64
+                  DetailInfo.ticketRecordList.map((item, index) => (
65
+                    <view className='StepList' key={`StepList-${index}`}>
66
+                      <view className='Title flex-h'>
67
+                        <text className='flex-item Red'>{item.ticketStatusName}</text>
68
+                        <text>{toolclass.FormatDate(item.createDate)}</text>
69
+                      </view>
70
+                      <view className='Text'>{item.content}</view>
71
+                      {/* <view className='Text'>您的报修正在分配物业处理人员,若长时间无人处理,请联系物业。<text className='Blue'>物业电话薄</text><text className='Blue iconfont iconjiantouright'></text></view> */}
72
+                      {/* <view className='ImgList'>
71 73
                       <view></view>
72 74
                       <view></view>
73 75
                       <view></view>
@@ -75,40 +77,41 @@ export default function BaoXiuDetail () {
75 77
                       <view></view>
76 78
                       <view></view>
77 79
                     </view> */}
78
-                  </view>
79
-                ))
80
-              }
80
+                    </view>
81
+                  ))
82
+                }
83
+              </view>
81 84
             </view>
82 85
           </view>
83
-        </view>
84 86
 
85
-        {/* 更多操作 */}
86
-        <view className='BottomBtn active'>
87
-          <text onClick={() => { Taro.navigateTo({ url: `/pages/WuYe/BaoXiuFeiYong/index?id=${CurrnetBaoXiuId}` }) }}>费用详情</text>
88
-        </view>
87
+          {/* 更多操作 */}
88
+          <view className='BottomBtn active'>
89
+            <text onClick={() => { Taro.navigateTo({ url: `/pages/WuYe/BaoXiuFeiYong/index?id=${CurrnetBaoXiuId}` }) }}>费用详情</text>
90
+          </view>
89 91
 
90
-        {/* 更多操作 */}
91
-        <view className='BottomBtn'>
92
-          <text onClick={() => { setShowPopup(true) }}>与物业沟通</text>
92
+          {/* 更多操作 */}
93
+          <view className='BottomBtn'>
94
+            <text onClick={() => { setShowPopup(true) }}>与物业沟通</text>
95
+          </view>
93 96
         </view>
94
-      </view>
95 97
 
96
-      <SlidePopup Close={() => { setShowPopup(false) }} Show={ShowPopup}>
97
-        <view className='LianXiPopup'>
98
-          <text>联系物业</text>
99
-          <text>对此费用有疑问</text>
100
-          {
101
-            PhoneList.map((item, index) => (
102
-              <view className='flex-h' key={`PhoneList-${index}`} onClick={() => { Taro.makePhoneCall({ phoneNumber: item.tel }) }}>
103
-                <text className='flex-item'>{item.name}</text>
104
-                <text>{item.tel}</text>
105
-                <text className='iconfont icondianhua'></text>
106
-              </view>
107
-            ))
108
-          }
109
-        </view>
110
-      </SlidePopup>
98
+        <SlidePopup Close={() => { setShowPopup(false) }} Show={ShowPopup}>
99
+          <view className='LianXiPopup'>
100
+            <text>联系物业</text>
101
+            <text>对此费用有疑问</text>
102
+            {
103
+              PhoneList.map((item, index) => (
104
+                <view className='flex-h' key={`PhoneList-${index}`} onClick={() => { Taro.makePhoneCall({ phoneNumber: item.tel }) }}>
105
+                  <text className='flex-item'>{item.name}</text>
106
+                  <text>{item.tel}</text>
107
+                  <text className='iconfont icondianhua'></text>
108
+                </view>
109
+              ))
110
+            }
111
+          </view>
112
+        </SlidePopup>
111 113
 
112
-    </view>
114
+      </view>
115
+    </Page>
113 116
   )
114 117
 }

+ 64
- 61
src/pages/WuYe/BaoXiuFeiYong/index.jsx Просмотреть файл

@@ -2,6 +2,7 @@ import React, { useState } from 'react'
2 2
 import Taro, { Current } from '@tarojs/taro'
3 3
 import SlidePopup from '@/components/SlidePopup/index'
4 4
 import UploadImg from '@/components/UploadImg/index'
5
+import Page from '@/layouts'
5 6
 import '@/assets/css/reset.less'
6 7
 import '@/assets/css/iconfont.less'
7 8
 import './index.less'
@@ -17,77 +18,79 @@ export default function BaoXiuFeiYong () {
17 18
   }
18 19
 
19 20
   return (
20
-    <view className='BaoXiuFeiYong'>
21
+    <Page>
22
+      <view className='BaoXiuFeiYong'>
21 23
 
22
-      {/* 费用信息 */}
23
-      <view className='Info'>
24
-        <view>
25
-          <text>1栋3单元2楼-3楼走廊声控灯出现故障</text>
26
-          <view className='flex-h'>
27
-            <text className='flex-item'>报修类型</text>
28
-            <text>公共区域问题</text>
29
-          </view>
30
-          <view className='flex-h'>
31
-            <text className='flex-item'>报修单号</text>
32
-            <text>201810120020</text>
33
-          </view>
34
-          <view className='flex-h'>
35
-            <text className='flex-item'>报修时间</text>
36
-            <text>2018-10-12 18:00</text>
37
-          </view>
38
-          <view className='flex-h'>
39
-            <text className='flex-item'>报修进度</text>
40
-            <text>已修缮</text>
41
-          </view>
42
-          <view className='flex-h'>
43
-            <text className='flex-item'>处理人</text>
44
-            <text>郭培军</text>
45
-          </view>
46
-          <view className='flex-h'>
47
-            <text className='flex-item'>报修费用</text>
48
-            <text className='Red'>¥150</text>
24
+        {/* 费用信息 */}
25
+        <view className='Info'>
26
+          <view>
27
+            <text>1栋3单元2楼-3楼走廊声控灯出现故障</text>
28
+            <view className='flex-h'>
29
+              <text className='flex-item'>报修类型</text>
30
+              <text>公共区域问题</text>
31
+            </view>
32
+            <view className='flex-h'>
33
+              <text className='flex-item'>报修单号</text>
34
+              <text>201810120020</text>
35
+            </view>
36
+            <view className='flex-h'>
37
+              <text className='flex-item'>报修时间</text>
38
+              <text>2018-10-12 18:00</text>
39
+            </view>
40
+            <view className='flex-h'>
41
+              <text className='flex-item'>报修进度</text>
42
+              <text>已修缮</text>
43
+            </view>
44
+            <view className='flex-h'>
45
+              <text className='flex-item'>处理人</text>
46
+              <text>郭培军</text>
47
+            </view>
48
+            <view className='flex-h'>
49
+              <text className='flex-item'>报修费用</text>
50
+              <text className='Red'>¥150</text>
51
+            </view>
49 52
           </view>
53
+          <view className='InfoBottom'></view>
50 54
         </view>
51
-        <view className='InfoBottom'></view>
52
-      </view>
53 55
 
54
-      <view className='BottomBtn'>
55
-        <text className='active' onClick={() => { setPopupType(1); setShowPopup(true) }}>我要缴费</text>
56
-        <text onClick={() => { setPopupType(2); setShowPopup(true) }}>线下缴费</text>
57
-      </view>
56
+        <view className='BottomBtn'>
57
+          <text className='active' onClick={() => { setPopupType(1); setShowPopup(true) }}>我要缴费</text>
58
+          <text onClick={() => { setPopupType(2); setShowPopup(true) }}>线下缴费</text>
59
+        </view>
58 60
 
59
-      {/* 弹窗 */}
60
-      <SlidePopup Close={SlidePopupClose} Show={ShowPopup}>
61
+        {/* 弹窗 */}
62
+        <SlidePopup Close={SlidePopupClose} Show={ShowPopup}>
61 63
 
62
-        {/* 线上缴费 */}
63
-        {
64
-          PopupType - 0 === 1 &&
65
-          <view className='JiaoFeiPopup XianShang'>
66
-            <view className='Price'>立即支付<text>150</text>元</view>
67
-            <view className='flex-h'>
68
-              <text className='iconfont iconweixinzhifu'></text>
69
-              <text className='flex-item'>微信支付</text>
70
-              <text className='iconfont icongou'></text>
71
-            </view>
72
-            <view className='Btn'>
73
-              <text>去付款</text>
64
+          {/* 线上缴费 */}
65
+          {
66
+            PopupType - 0 === 1 &&
67
+            <view className='JiaoFeiPopup XianShang'>
68
+              <view className='Price'>立即支付<text>150</text>元</view>
69
+              <view className='flex-h'>
70
+                <text className='iconfont iconweixinzhifu'></text>
71
+                <text className='flex-item'>微信支付</text>
72
+                <text className='iconfont icongou'></text>
73
+              </view>
74
+              <view className='Btn'>
75
+                <text>去付款</text>
76
+              </view>
74 77
             </view>
75
-          </view>
76
-        }
78
+          }
77 79
 
78
-        {/* 线下缴费 */}
79
-        {
80
-          PopupType - 0 === 2 &&
81
-          <view className='JiaoFeiPopup XianXia'>
82
-            <text>上传线下支付凭证</text>
83
-            <view className='UploadContainer'>
84
-              <UploadImg></UploadImg>
80
+          {/* 线下缴费 */}
81
+          {
82
+            PopupType - 0 === 2 &&
83
+            <view className='JiaoFeiPopup XianXia'>
84
+              <text>上传线下支付凭证</text>
85
+              <view className='UploadContainer'>
86
+                <UploadImg></UploadImg>
87
+              </view>
85 88
             </view>
86
-          </view>
87
-        }
89
+          }
88 90
 
89
-      </SlidePopup>
91
+        </SlidePopup>
90 92
 
91
-    </view>
93
+      </view>
94
+    </Page>
92 95
   )
93 96
 }

+ 16
- 13
src/pages/WuYe/BaoXiuQuYu/index.jsx Просмотреть файл

@@ -1,5 +1,6 @@
1 1
 import React, { useState } from 'react'
2 2
 import Taro from '@tarojs/taro'
3
+import Page from '@/layouts'
3 4
 import '@/assets/css/reset.less'
4 5
 import '@/assets/css/iconfont.less'
5 6
 import './index.less'
@@ -13,20 +14,22 @@ export default function WuYeBaoXiuQuYu () {
13 14
   ])
14 15
 
15 16
   return (
16
-    <view className='WuYeBaoXiuQuYu'>
17
-      {
18
-        TypeList.map((item, index) => (
19
-          <view key={`WuYeBaoXiuQuYu-${index}`}>
20
-            <view onClick={() => { Taro.redirectTo({ url: `/pages/WuYe/TianJiaBaoXiu/index?type=${item.id}` }) }}>
21
-              <view>
22
-                <text className={`iconfont ${item.icon}`}></text>
23
-                <text>{item.name}</text>
17
+    <Page>
18
+      <view className='WuYeBaoXiuQuYu'>
19
+        {
20
+          TypeList.map((item, index) => (
21
+            <view key={`WuYeBaoXiuQuYu-${index}`}>
22
+              <view onClick={() => { Taro.redirectTo({ url: `/pages/WuYe/TianJiaBaoXiu/index?type=${item.id}` }) }}>
23
+                <view>
24
+                  <text className={`iconfont ${item.icon}`}></text>
25
+                  <text>{item.name}</text>
26
+                </view>
27
+                <text>{item.desc}</text>
24 28
               </view>
25
-              <text>{item.desc}</text>
26 29
             </view>
27
-          </view>
28
-        ))
29
-      }
30
-    </view>
30
+          ))
31
+        }
32
+      </view>
33
+    </Page>
31 34
   )
32 35
 }

+ 37
- 20
src/pages/WuYe/FuWuDetail/index.jsx Просмотреть файл

@@ -1,29 +1,46 @@
1
-import React, { Component } from 'react'
2
-import '../../../assets/css/reset.less'
3
-import '../../../assets/css/iconfont.less'
1
+import React, { useState, useEffect } from 'react'
2
+import Taro, { Current } from '@tarojs/taro'
3
+import { RichText } from '@tarojs/components'
4
+import request, { apis } from '@/utils/request'
5
+import toolclass from '@/utils/toolclass.js'
6
+import Page from '@/layouts'
7
+import '@/assets/css/reset.less'
8
+import '@/assets/css/iconfont.less'
4 9
 import './index.less'
5 10
 
6
-export default class WuYeFuWuDetail extends Component {
11
+export default function WuYeFuWuDetail () {
7 12
 
8
-  state = {
9
-  }
10
-
11
-  componentWillMount () {
12
-  }
13
-
14
-  componentDidMount () { }
13
+  const [CurrnetId] = useState(Current.router.params.id) // 当前id
14
+  const [DetailInfo, setDetailInfo] = useState(null) // 详情
15 15
 
16
-  componentWillUnmount () { }
16
+  useEffect(() => {
17
+    GetDetail()
18
+  }, [CurrnetId])
17 19
 
18
-  componentDidShow () { }
19
-
20
-  componentDidHide () { }
20
+  const GetDetail = () => { // 获取详情
21
+    request({ ...apis.getWuYeFuWuDetail, args: { id: CurrnetId } }).then((res) => {
22
+      setDetailInfo(res)
23
+    })
24
+  }
21 25
 
22
-  render () {
23
-    return (
26
+  return (
27
+    <Page>
24 28
       <view className='WuYeFuWuDetail'>
25
-
29
+        {
30
+          DetailInfo !== null &&
31
+          <view>
32
+            <view className='Title'>
33
+              <text>{DetailInfo.newsName}</text>
34
+            </view>
35
+            <view className='flex-h'>
36
+              <text className='flex-item'>{toolclass.FormatDate(DetailInfo.createDate)}</text>
37
+              <text className='iconfont iconguankan'></text>
38
+              <text>{DetailInfo.pvNum || 0}</text>
39
+            </view>
40
+            <RichText nodes={DetailInfo.newsDetail}></RichText>
41
+          </view>
42
+        }
26 43
       </view>
27
-    )
28
-  }
44
+    </Page>
45
+  )
29 46
 }

+ 42
- 2
src/pages/WuYe/FuWuDetail/index.less Просмотреть файл

@@ -1,6 +1,46 @@
1 1
 .WuYeFuWuDetail {
2 2
   width: 100%;
3
-  height: 100%;
3
+  min-height: 100vh;
4 4
   position: relative;
5
-  background: #f8f8f8;
5
+
6
+  >view {
7
+    position: relative;
8
+    overflow: hidden;
9
+    padding: 0 30px;
10
+    >.Title {
11
+      position: relative;
12
+      overflow: hidden;
13
+  
14
+      >text {
15
+        width: 100%;
16
+        display: block;
17
+        font-size: 34px;
18
+        color: #333;
19
+        line-height: 40px;
20
+        text-align: center;
21
+        margin-top: 40px;
22
+      }
23
+    }
24
+  
25
+    >.flex-h {
26
+      align-items: center;
27
+      margin-top: 20px;
28
+  
29
+      >text {
30
+        font-size: 24px;
31
+        color: #999;
32
+        line-height: 48px;
33
+        margin-left: 10px;
34
+  
35
+        &:first-child {
36
+          margin-left: 0;
37
+        }
38
+  
39
+        &.iconfont {
40
+          color: #F35844;
41
+          font-size: 40px;
42
+        }
43
+      }
44
+    }
45
+  }
6 46
 }

+ 19
- 16
src/pages/WuYe/GongGaoDetail/index.jsx Просмотреть файл

@@ -4,6 +4,7 @@ import request, { apis } from '@/utils/request'
4 4
 import { RichText } from '@tarojs/components'
5 5
 import { useModel } from '@/store'
6 6
 import toolclass from '@/utils/toolclass.js'
7
+import Page from '@/layouts'
7 8
 import '@/assets/css/reset.less'
8 9
 import '@/assets/css/iconfont.less'
9 10
 import './index.less'
@@ -25,24 +26,26 @@ export default function WuYeGongGaoDetail () {
25 26
   }
26 27
 
27 28
   return (
28
-    <view className='WuYeGongGaoDetail'>
29
-      <view className='Title'>
30
-        <text>{DetailInfo === null ? null : DetailInfo.announcementTitle}</text>
31
-      </view>
32
-      <view className='flex-h'>
33
-        <view className='flex-item'>
34
-          <text>{DetailInfo === null ? null : DetailInfo.createUser}</text>
35
-          <text>{DetailInfo === null ? null : toolclass.FormatDate(DetailInfo.createDate)}</text>
29
+    <Page>
30
+      <view className='WuYeGongGaoDetail'>
31
+        <view className='Title'>
32
+          <text>{DetailInfo === null ? null : DetailInfo.announcementTitle}</text>
36 33
         </view>
37
-        <view>
38
-          <text className='iconfont iconguankan'></text>
39
-          <text>{DetailInfo === null ? null : DetailInfo.viewCount}</text>
34
+        <view className='flex-h'>
35
+          <view className='flex-item'>
36
+            <text>{DetailInfo === null ? null : DetailInfo.createUser}</text>
37
+            <text>{DetailInfo === null ? null : toolclass.FormatDate(DetailInfo.createDate)}</text>
38
+          </view>
39
+          <view>
40
+            <text className='iconfont iconguankan'></text>
41
+            <text>{DetailInfo === null ? null : DetailInfo.viewCount}</text>
42
+          </view>
43
+        </view>
44
+        <view className='Desc'>
45
+          <RichText nodes={DetailInfo === null ? null : DetailInfo.announcementContent}></RichText>
46
+          <image mode='widthFix' src={DetailInfo === null ? null : DetailInfo.announcementCarouselImg}></image>
40 47
         </view>
41 48
       </view>
42
-      <view className='Desc'>
43
-        <RichText nodes={DetailInfo === null ? null : DetailInfo.announcementContent}></RichText>
44
-        <image mode='widthFix' src={DetailInfo === null ? null : DetailInfo.announcementCarouselImg}></image>
45
-      </view>
46
-    </view>
49
+    </Page>
47 50
   )
48 51
 }

+ 71
- 68
src/pages/WuYe/JiaoFeiDetail/index.jsx Просмотреть файл

@@ -1,6 +1,7 @@
1 1
 import React, { useState } from 'react'
2 2
 import Taro, { Current } from '@tarojs/taro'
3 3
 import SlidePopup from '@/components/SlidePopup/index'
4
+import Page from '@/layouts'
4 5
 import '@/assets/css/reset.less'
5 6
 import '@/assets/css/iconfont.less'
6 7
 import './index.less'
@@ -14,80 +15,82 @@ export default function JiaoFeiDetail () {
14 15
   const CurrnetJiaoFeiId = Current.router.params.id
15 16
 
16 17
   return (
17
-    <view className='JiaoFeiDetail'>
18
-      <view className='DetailContainer'>
19
-        <view className='Info'>
20
-          <view className='flex-h'>
21
-            <text className='flex-item'>物业费</text>
22
-            <text>2020/06/08  0:00截止</text>
23
-          </view>
24
-          <view className='Detail'>
25
-            <view className='Title flex-h'>
26
-              <text className='flex-item'>缴费金额</text>
27
-              <text className='Num'>300</text>
28
-              <text>元</text>
29
-            </view>
30
-            <text>2020年5月物业管理费</text>
31
-            <view className='Line flex-h'>
32
-              <text>垃圾费:</text>
33
-              <text className='flex-item'>100元</text>
34
-            </view>
35
-            <view className='Line flex-h'>
36
-              <text>绿地维护费:</text>
37
-              <text className='flex-item'>100元</text>
18
+    <Page>
19
+      <view className='JiaoFeiDetail'>
20
+        <view className='DetailContainer'>
21
+          <view className='Info'>
22
+            <view className='flex-h'>
23
+              <text className='flex-item'>物业费</text>
24
+              <text>2020/06/08  0:00截止</text>
38 25
             </view>
39
-            <view className='Line flex-h'>
40
-              <text>公摊电费:</text>
41
-              <text className='flex-item'>100元</text>
26
+            <view className='Detail'>
27
+              <view className='Title flex-h'>
28
+                <text className='flex-item'>缴费金额</text>
29
+                <text className='Num'>300</text>
30
+                <text>元</text>
31
+              </view>
32
+              <text>2020年5月物业管理费</text>
33
+              <view className='Line flex-h'>
34
+                <text>垃圾费:</text>
35
+                <text className='flex-item'>100元</text>
36
+              </view>
37
+              <view className='Line flex-h'>
38
+                <text>绿地维护费:</text>
39
+                <text className='flex-item'>100元</text>
40
+              </view>
41
+              <view className='Line flex-h'>
42
+                <text>公摊电费:</text>
43
+                <text className='flex-item'>100元</text>
44
+              </view>
42 45
             </view>
43 46
           </view>
47
+          <view className='InfoBottom'></view>
48
+        </view>
49
+        <view className='BottomContainer'>
50
+          <text onClick={() => { setPopupType(2); setShowPopup(true) }}>对费用有疑问?</text>
51
+          <text onClick={() => { setPopupType(1); setShowPopup(true) }}>立即缴费</text>
44 52
         </view>
45
-        <view className='InfoBottom'></view>
46
-      </view>
47
-      <view className='BottomContainer'>
48
-        <text onClick={() => { setPopupType(2); setShowPopup(true) }}>对费用有疑问?</text>
49
-        <text onClick={() => { setPopupType(1); setShowPopup(true) }}>立即缴费</text>
50
-      </view>
51 53
 
52
-      {/* 弹窗 */}
53
-      <SlidePopup Close={() => { setShowPopup(false); setPopupType(0) }} Show={ShowPopup}>
54
-        {
55
-          PopupType - 0 === 1 &&
56
-          <view className='JiaoFeiPopup'>
57
-            <view className='Price'>立即支付<text>150</text>元</view>
58
-            <view className='flex-h'>
59
-              <text className='iconfont iconweixinzhifu'></text>
60
-              <text className='flex-item'>微信支付</text>
61
-              <text className='iconfont icongou'></text>
54
+        {/* 弹窗 */}
55
+        <SlidePopup Close={() => { setShowPopup(false); setPopupType(0) }} Show={ShowPopup}>
56
+          {
57
+            PopupType - 0 === 1 &&
58
+            <view className='JiaoFeiPopup'>
59
+              <view className='Price'>立即支付<text>150</text>元</view>
60
+              <view className='flex-h'>
61
+                <text className='iconfont iconweixinzhifu'></text>
62
+                <text className='flex-item'>微信支付</text>
63
+                <text className='iconfont icongou'></text>
64
+              </view>
65
+              <view className='Btn'>
66
+                <text>去付款</text>
67
+              </view>
62 68
             </view>
63
-            <view className='Btn'>
64
-              <text>去付款</text>
69
+          }
70
+          {
71
+            PopupType - 0 === 2 &&
72
+            <view className='LianXiPopup'>
73
+              <text>联系物业</text>
74
+              <text>对此费用有疑问</text>
75
+              <view className='flex-h'>
76
+                <text className='flex-item'>物业电话</text>
77
+                <text>17826982167</text>
78
+                <text className='iconfont icondianhua'></text>
79
+              </view>
80
+              <view className='flex-h'>
81
+                <text className='flex-item'>门卫电话</text>
82
+                <text>17826982167</text>
83
+                <text className='iconfont icondianhua'></text>
84
+              </view>
85
+              <view className='flex-h'>
86
+                <text className='flex-item'>物业领导</text>
87
+                <text>17826982167</text>
88
+                <text className='iconfont icondianhua'></text>
89
+              </view>
65 90
             </view>
66
-          </view>
67
-        }
68
-        {
69
-          PopupType - 0 === 2 &&
70
-          <view className='LianXiPopup'>
71
-            <text>联系物业</text>
72
-            <text>对此费用有疑问</text>
73
-            <view className='flex-h'>
74
-              <text className='flex-item'>物业电话</text>
75
-              <text>17826982167</text>
76
-              <text className='iconfont icondianhua'></text>
77
-            </view>
78
-            <view className='flex-h'>
79
-              <text className='flex-item'>门卫电话</text>
80
-              <text>17826982167</text>
81
-              <text className='iconfont icondianhua'></text>
82
-            </view>
83
-            <view className='flex-h'>
84
-              <text className='flex-item'>物业领导</text>
85
-              <text>17826982167</text>
86
-              <text className='iconfont icondianhua'></text>
87
-            </view>
88
-          </view>
89
-        }
90
-      </SlidePopup>
91
-    </view>
91
+          }
92
+        </SlidePopup>
93
+      </view>
94
+    </Page>
92 95
   )
93 96
 }

+ 24
- 21
src/pages/WuYe/TianJiaBaoXiu/index.jsx Просмотреть файл

@@ -2,6 +2,7 @@ import React, { useState } from 'react'
2 2
 import Taro, { Current } from '@tarojs/taro'
3 3
 import { Input, Textarea } from '@tarojs/components'
4 4
 import request, { apis } from '@/utils/request'
5
+import Page from '@/layouts'
5 6
 import '@/assets/css/reset.less'
6 7
 import '@/assets/css/iconfont.less'
7 8
 import './index.less'
@@ -82,29 +83,31 @@ export default function WuYeTianJiaBaoXiu () {
82 83
   }
83 84
 
84 85
   return (
85
-    <view className='WuYeTianJiaBaoXiu'>
86
-      <view className='Form'>
87
-        <Input placeholder='简述你的想法' onInput={TitleChange} value={Title}></Input>
88
-        <Textarea placeholder='描述问题详情,以便我们更好的相处' onInput={DescChange} value={Desc}></Textarea>
89
-      </view>
90
-      <view className='Photo'>
91
-        <view className='Add' onClick={AddImg}>
92
-          <view className='centerLabel'>
93
-            <text className='iconfont iconxiangji'></text>
94
-            <text>添加图片</text>
95
-          </view>
86
+    <Page>
87
+      <view className='WuYeTianJiaBaoXiu'>
88
+        <view className='Form'>
89
+          <Input placeholder='简述你的想法' onInput={TitleChange} value={Title}></Input>
90
+          <Textarea placeholder='描述问题详情,以便我们更好的相处' onInput={DescChange} value={Desc}></Textarea>
96 91
         </view>
97
-        {
98
-          PhotoUrl !== null &&
99
-          <view className='PhotoItem'>
100
-            <text className='iconfont iconshanchu' onClick={DeleteItem}></text>
101
-            <image mode='aspectFit' src={PhotoUrl}></image>
92
+        <view className='Photo'>
93
+          <view className='Add' onClick={AddImg}>
94
+            <view className='centerLabel'>
95
+              <text className='iconfont iconxiangji'></text>
96
+              <text>添加图片</text>
97
+            </view>
102 98
           </view>
103
-        }
104
-      </view>
105
-      <view className='Btn'>
106
-        <text onClick={Send}>确认发送</text>
99
+          {
100
+            PhotoUrl !== null &&
101
+            <view className='PhotoItem'>
102
+              <text className='iconfont iconshanchu' onClick={DeleteItem}></text>
103
+              <image mode='aspectFit' src={PhotoUrl}></image>
104
+            </view>
105
+          }
106
+        </view>
107
+        <view className='Btn'>
108
+          <text onClick={Send}>确认发送</text>
109
+        </view>
107 110
       </view>
108
-    </view>
111
+    </Page>
109 112
   )
110 113
 }

+ 24
- 21
src/pages/WuYe/XiuGaiBaoXiu/index.jsx Просмотреть файл

@@ -3,6 +3,7 @@ import Taro, { Current } from '@tarojs/taro'
3 3
 import { Input, Textarea } from '@tarojs/components'
4 4
 import request, { apis } from '@/utils/request'
5 5
 import { useModel } from '@/store'
6
+import Page from '@/layouts'
6 7
 import '@/assets/css/reset.less'
7 8
 import '@/assets/css/iconfont.less'
8 9
 import './index.less'
@@ -94,29 +95,31 @@ export default function WuYeXiuGaiBaoXiu () {
94 95
   }
95 96
 
96 97
   return (
97
-    <view className='WuYeXiuGaiBaoXiu'>
98
-      <view className='Form'>
99
-        <Input placeholder='简述你的想法' onInput={TitleChange} value={DetailInfo === null ? null : DetailInfo.ticketTitle}></Input>
100
-        <Textarea placeholder='描述问题详情,以便我们更好的相处' onInput={DescChange} value={DetailInfo === null ? null : DetailInfo.ticketContent}></Textarea>
101
-      </view>
102
-      <view className='Photo'>
103
-        <view className='Add' onClick={AddImg}>
104
-          <view className='centerLabel'>
105
-            <text className='iconfont iconxiangji'></text>
106
-            <text>添加图片</text>
107
-          </view>
98
+    <Page>
99
+      <view className='WuYeXiuGaiBaoXiu'>
100
+        <view className='Form'>
101
+          <Input placeholder='简述你的想法' onInput={TitleChange} value={DetailInfo === null ? null : DetailInfo.ticketTitle}></Input>
102
+          <Textarea placeholder='描述问题详情,以便我们更好的相处' onInput={DescChange} value={DetailInfo === null ? null : DetailInfo.ticketContent}></Textarea>
108 103
         </view>
109
-        {
110
-          PhotoUrl !== null &&
111
-          <view className='PhotoItem'>
112
-            <text className='iconfont iconshanchu' onClick={DeleteItem}></text>
113
-            <image mode='aspectFit' src={PhotoUrl}></image>
104
+        <view className='Photo'>
105
+          <view className='Add' onClick={AddImg}>
106
+            <view className='centerLabel'>
107
+              <text className='iconfont iconxiangji'></text>
108
+              <text>添加图片</text>
109
+            </view>
114 110
           </view>
115
-        }
116
-      </view>
117
-      <view className='Btn'>
118
-        <text onClick={Send}>确认修改</text>
111
+          {
112
+            PhotoUrl !== null &&
113
+            <view className='PhotoItem'>
114
+              <text className='iconfont iconshanchu' onClick={DeleteItem}></text>
115
+              <image mode='aspectFit' src={PhotoUrl}></image>
116
+            </view>
117
+          }
118
+        </view>
119
+        <view className='Btn'>
120
+          <text onClick={Send}>确认修改</text>
121
+        </view>
119 122
       </view>
120
-    </view>
123
+    </Page>
121 124
   )
122 125
 }

+ 38
- 43
src/pages/WuYe/index.jsx Просмотреть файл

@@ -5,15 +5,15 @@ import WuYeGongGao from '@/components/WuYeGongGao/index'
5 5
 import WuYeFuWu from '@/components/WuYeFuWu/index'
6 6
 import WuYeBaoXiu from '@/components/WuYeBaoXiu/index'
7 7
 import WuYeJiaoFei from '@/components/WuYeJiaoFei/index'
8
+import Page from '@/layouts'
8 9
 import '@/assets/css/reset.less'
9 10
 import '@/assets/css/iconfont.less'
10 11
 import './index.less'
11 12
 
12
-export default function WuYe (props) {
13
+export default function WuYe () {
13 14
 
14 15
   const [NavList] = useState([{ name: '公告', id: 1 }, { name: '服务', id: 2 }, { name: '报修', id: 3 }, { name: '缴费', id: 4 }])
15 16
   const [CurrentNavId, setCurrentNavId] = useState(1)
16
-  const [IsPull, setIsPull] = useState(false)
17 17
 
18 18
   const NavChange = (e) => {
19 19
     return () => {
@@ -21,52 +21,47 @@ export default function WuYe (props) {
21 21
     }
22 22
   }
23 23
 
24
-  const OnRefresh = () => {
25
-    setIsPull(true)
26
-    window.setTimeout(() => {
27
-      setIsPull(false)
28
-    }, 1000)
29
-  }
30
-
31 24
   return (
32
-    <view className='WuYe flex-v'>
33
-      <NavHeader Title='物业' BgColor='none' IsFixed={true}></NavHeader>
34
-      <TabPageCutNav List={NavList} CurrentNavId={CurrentNavId} NavChange={NavChange}></TabPageCutNav>
35
-      <view className='flex-item'>
36
-        <view>
37
-          {/* 公告 */}
38
-          {
39
-            CurrentNavId - 0 === 1 &&
40
-            <view className='Content GongGao'>
41
-              <WuYeGongGao></WuYeGongGao>
42
-            </view>
43
-          }
25
+    <Page>
26
+      <view className='WuYe flex-v'>
27
+        <NavHeader Title='物业' BgColor='none' IsFixed={true}></NavHeader>
28
+        <TabPageCutNav List={NavList} CurrentNavId={CurrentNavId} NavChange={NavChange}></TabPageCutNav>
29
+        <view className='flex-item'>
30
+          <view>
31
+            {/* 公告 */}
32
+            {
33
+              CurrentNavId - 0 === 1 &&
34
+              <view className='Content GongGao'>
35
+                <WuYeGongGao></WuYeGongGao>
36
+              </view>
37
+            }
44 38
 
45
-          {/* 服务 */}
46
-          {
47
-            CurrentNavId - 0 === 2 &&
48
-            <view className='Content FuWu'>
49
-              <WuYeFuWu></WuYeFuWu>
50
-            </view>
51
-          }
39
+            {/* 服务 */}
40
+            {
41
+              CurrentNavId - 0 === 2 &&
42
+              <view className='Content FuWu'>
43
+                <WuYeFuWu></WuYeFuWu>
44
+              </view>
45
+            }
52 46
 
53
-          {/* 报修 */}
54
-          {
55
-            CurrentNavId - 0 === 3 &&
56
-            <view className='Content BaoXiu'>
57
-              <WuYeBaoXiu></WuYeBaoXiu>
58
-            </view>
59
-          }
47
+            {/* 报修 */}
48
+            {
49
+              CurrentNavId - 0 === 3 &&
50
+              <view className='Content BaoXiu'>
51
+                <WuYeBaoXiu></WuYeBaoXiu>
52
+              </view>
53
+            }
60 54
 
61
-          {/* 缴费 */}
62
-          {
63
-            CurrentNavId - 0 === 4 &&
64
-            <view className='Content JiaoFei'>
65
-              <WuYeJiaoFei></WuYeJiaoFei>
66
-            </view>
67
-          }
55
+            {/* 缴费 */}
56
+            {
57
+              CurrentNavId - 0 === 4 &&
58
+              <view className='Content JiaoFei'>
59
+                <WuYeJiaoFei></WuYeJiaoFei>
60
+              </view>
61
+            }
62
+          </view>
68 63
         </view>
69 64
       </view>
70
-    </view>
65
+    </Page>
71 66
   )
72 67
 }

+ 12
- 0
src/utils/api.js Просмотреть файл

@@ -1,6 +1,18 @@
1 1
 const prefix = `${HOST}/api/wx`
2 2
 
3 3
 const $api = {
4
+  getUserInfo: { // 获取用户信息
5
+    method: 'get',
6
+    url: `${prefix}/user/info`
7
+  },
8
+  getWuYeFuWuDetail: { // 获取物业服务详情
9
+    method: 'get',
10
+    url: `${prefix}/property-news/:id`
11
+  },
12
+  getWuYeFuWuList: { // 获取物业服务列表
13
+    method: 'get',
14
+    url: `${prefix}/property-news`
15
+  },
4 16
   uploadImage: { // 上传图片
5 17
     method: 'post',
6 18
     url: `${prefix}/image`