Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Hooke
/
lls_program
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
hookehuyr
2025-09-28 15:17:11 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
4ead53d3ec48ae906da525456107c10a87a1223e
4ead53d3
1 parent
83f983cd
feat(活动状态): 添加活动开始状态检查并更新相关逻辑
在活动状态API和页面逻辑中添加对活动开始状态的检查 更新按钮禁用状态、提示文本和点击处理逻辑
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
38 additions
and
7 deletions
src/api/map.js
src/pages/ActivitiesCover/index.vue
src/api/map.js
View file @
4ead53d
/*
* @Date: 2025-09-04 17:23:17
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2025-09-
17 14:36:35
* @LastEditTime: 2025-09-
28 15:12:11
* @FilePath: /lls_program/src/api/map.js
* @Description: 文件描述
*/
...
...
@@ -54,7 +54,8 @@ export const getPosterDetailAPI = (params) => fn(fetch.get(Api.GET_POSTER_DETAIL
* @returns {number} response.code - 响应状态码
* @returns {string} response.msg - 响应消息
* @returns {Object} response.data - 响应数据
* @returns {boolean} response.data.is_ended - 活动是否已经结束, 1 已结束, 0 未结束
* @returns {boolean} response.data.is_begin - 活动是否已经开始, true 已开始, false 未开始
* @returns {boolean} response.data.is_ended - 活动是否已经结束, true 已结束, false 未结束
*/
export
const
getActivityStatusAPI
=
(
params
)
=>
fn
(
fetch
.
get
(
Api
.
GET_ACTIVITY_STATUS
,
params
));
...
...
src/pages/ActivitiesCover/index.vue
View file @
4ead53d
...
...
@@ -54,9 +54,9 @@
type="primary"
size="large"
class="join-button"
:color="activityStatus.is_ended ? '#cccccc' : THEME_COLORS.PRIMARY"
:color="activityStatus.is_ended
|| !activityStatus.is_begin
? '#cccccc' : THEME_COLORS.PRIMARY"
:loading="isJoining || activityStatus.loading"
:disabled="activityStatus.is_ended"
:disabled="activityStatus.is_ended
|| !activityStatus.is_begin
"
@click="checkFamilyStatusAndJoinActivity"
>
{{ getButtonText() }}
...
...
@@ -209,6 +209,7 @@ const showLocationPrompt = ref(false) // 是否显示定位权限提示
// 活动状态相关
const activityStatus = ref({
is_begin: false, // 活动是否已开始
is_ended: false, // 活动是否已结束
loading: false // 是否正在加载活动状态
})
...
...
@@ -374,6 +375,11 @@ const getButtonText = () => {
return '活动已结束'
}
// 如果活动未开始,显示"活动未开始"
if (!activityStatus.value.is_begin) {
return '活动未开始'
}
// 如果没有加入家庭,显示"加入家庭"
if (!hasJoinedFamily.value) {
return '立即参加'
...
...
@@ -402,6 +408,24 @@ const getButtonText = () => {
* 检查用户是否加入家庭并处理参加活动按钮点击
*/
const checkFamilyStatusAndJoinActivity = async () => {
// 如果活动已结束,显示提示
if (activityStatus.value.is_ended) {
Taro.showToast({
title: '活动已结束',
icon: 'none'
})
return
}
// 如果活动未开始,显示提示
if (!activityStatus.value.is_begin) {
Taro.showToast({
title: '活动尚未开始,请耐心等待',
icon: 'none'
})
return
}
// 如果没有加入家庭,引导用户加入家庭
if (!hasJoinedFamily.value) {
Taro.showModal({
...
...
@@ -929,16 +953,22 @@ const fetchActivityStatus = async () => {
const { code, data } = await getActivityStatusAPI()
if (code === 1 && data) {
activityStatus.value.is_begin = Boolean(data.is_begin)
activityStatus.value.is_ended = Boolean(data.is_ended)
console.log('活动状态:', activityStatus.value.is_ended ? '已结束' : '进行中')
console.log('活动状态:', {
is_begin: activityStatus.value.is_begin ? '已开始' : '未开始',
is_ended: activityStatus.value.is_ended ? '已结束' : '进行中'
})
} else {
console.warn('获取活动状态失败:', data)
// 默认认为活动未结束,避免影响用户体验
// 默认认为活动未开始且未结束,避免影响用户体验
activityStatus.value.is_begin = false
activityStatus.value.is_ended = false
}
} catch (error) {
console.error('获取活动状态异常:', error)
// 默认认为活动未结束,避免影响用户体验
// 默认认为活动未开始且未结束,避免影响用户体验
activityStatus.value.is_begin = false
activityStatus.value.is_ended = false
} finally {
activityStatus.value.loading = false
...
...
Please
register
or
login
to post a comment