xcx il y a 4 ans
Parent
révision
7bce925956
1 fichiers modifiés avec 41 ajouts et 41 suppressions
  1. 41
    41
      src/pages/HuoDong/HuoDongDetail/index.jsx

+ 41
- 41
src/pages/HuoDong/HuoDongDetail/index.jsx Voir le fichier

@@ -6,6 +6,7 @@ import { useModel } from '@/store'
6 6
 import Page from '@/layouts'
7 7
 import toolclass from '@/utils/toolclass.js'
8 8
 import { getShareObject } from '@/utils/share.js'
9
+import GetUserPhone from '@/components/GetUserPhone/index'
9 10
 import '@/assets/css/reset.less'
10 11
 import '@/assets/css/iconfont.less'
11 12
 import './index.less'
@@ -15,9 +16,11 @@ export default function HuoDongDetail () {
15 16
   const { user } = useModel('user')
16 17
   const [DataLock, setDataLock] = useState(false)
17 18
   const [HasJoin, setHasJoin] = useState(null)
18
-  const [IsSign, setIsSign] = useState(null)
19
+  const [HasSign, setHasSign] = useState(null)
20
+  const [CanJoin, setCanJoin] = useState(null)
19 21
   const [JoinBtnText, setJoinBtnText] = useState(null)
20 22
   const [JoinBtnStatus, setJoinBtnStatus] = useState(false)
23
+  const [ShowGetUserPhoneLayer, setShowGetUserPhoneLayer] = useState(false)
21 24
   const [CurrnetHuoDongId] = useState(Current.router.params.id) // 当前活动id
22 25
   const [ActivityDetail, setActivityDetail] = useState(null) // 活动详情
23 26
 
@@ -37,7 +40,7 @@ export default function HuoDongDetail () {
37 40
     if (ActivityDetail !== null) {
38 41
       ToSetJoinBtnText()
39 42
     }
40
-  }, [IsSign])
43
+  }, [HasJoin, CanJoin, HasSign, ActivityDetail])
41 44
 
42 45
   const GetActivityDetail = () => { // 获取活动详情
43 46
     request({ ...apis.getActivityDetail, args: { id: CurrnetHuoDongId } }).then((res) => {
@@ -48,54 +51,41 @@ export default function HuoDongDetail () {
48 51
 
49 52
   const CheckActivityJoin = () => { // 查询活动参加详情
50 53
     request({ ...apis.checkActivityJoin, args: { id: CurrnetHuoDongId } }).then((res) => {
51
-      setHasJoin(!!res.dynamic.isEnlist)
52
-      setIsSign(!!res.dynamic.isSign)
54
+      setHasJoin(!!res.dynamic.isSign)
55
+      setCanJoin(!!res.dynamic.isEnlist)
56
+      setHasSign(!!res.enlist.isCheckin)
53 57
     })
54 58
   }
55 59
 
56 60
   const ToSetJoinBtnText = () => {
57
-    let Now = Date.now()
58
-    let JoinStart = new Date(ActivityDetail.enlistStart).getTime()
59
-    let JoinEnd = new Date(ActivityDetail.enlistEnd).getTime()
60
-    let Start = new Date(ActivityDetail.startDate).getTime()
61
-    let End = new Date(ActivityDetail.endDate).getTime()
62
-
63
-    if (Now < JoinStart) {
64
-      setJoinBtnText(`未开始`)
65
-      return false
66
-    } else if (Now < JoinEnd) {
67
-      if (!HasJoin) {
68
-        setJoinBtnText(`立即参加`)
69
-        setJoinBtnStatus(true)
70
-      } else {
71
-        setJoinBtnText(`已报名`)
72
-      }
73
-      return false
74
-    } else if (Now < Start) {
75
-      if (!HasJoin) {
76
-        setJoinBtnText(`报名已截止`)
77
-      } else {
78
-        setJoinBtnText(`已报名`)
79
-      }
61
+    if (ActivityDetail.activityStatus - 0 === 2) {
62
+      setJoinBtnText(`已结束`)
80 63
       return false
81
-    } else if (Now < End) {
82
-      if (!HasJoin) {
83
-        setJoinBtnText(`活动已开始`)
84
-        return false
85
-      } else if (!IsSign) {
86
-        setJoinBtnText(`去签到`)
87
-        setJoinBtnStatus(true)
88
-        return false
89
-      } else {
64
+    } else {
65
+      if (HasSign) {
90 66
         setJoinBtnText(`已签到`)
91 67
         return false
68
+      } else {
69
+        if (HasJoin) {
70
+          if (ActivityDetail.activityStatus - 0 === 1) {
71
+            setJoinBtnText(`已报名`)
72
+          } else if (ActivityDetail.activityStatus - 0 === 0) {
73
+            setJoinBtnStatus(true)
74
+            setJoinBtnText(`去签到`)
75
+          }
76
+          return false
77
+        } else {
78
+          if (CanJoin) {
79
+            setJoinBtnStatus(true)
80
+            setJoinBtnText(`去报名`)
81
+            return false
82
+          } else {
83
+            setJoinBtnText(null)
84
+            return false
85
+          }
86
+        }
92 87
       }
93
-    } else if (Now >= End) {
94
-      setJoinBtnText(`已结束`)
95
-      return false
96 88
     }
97
-    setJoinBtnText(null)
98
-    return false
99 89
   }
100 90
 
101 91
   const ToJoin = () => { // 去报名
@@ -128,10 +118,20 @@ export default function HuoDongDetail () {
128 118
     })
129 119
   }
130 120
 
121
+  const showError = err => {
122
+    Taro.showModal({
123
+      title: '错误',
124
+      content: err,
125
+      showCancel: false
126
+    })
127
+  }
128
+
131 129
   return (
132 130
     <Page>
133 131
       <view className='HuoDongDetail'>
134 132
 
133
+        <GetUserPhone visible={ShowGetUserPhoneLayer} onError={err => showError(`授权手机失败: ${err}`)} onCancel={() => { }}></GetUserPhone>
134
+
135 135
         <view className='BannerLayer'></view>
136 136
         {
137 137
           ActivityDetail !== null &&