修改活动报名按钮状态,报修添加小区参数;访客返回数据

This commit is contained in:
zhouyanli
2026-06-24 09:06:10 +08:00
parent d5cacf4087
commit a501524646
9 changed files with 82 additions and 21 deletions

View File

@@ -119,10 +119,11 @@
<view class="record-user">
<view class="user-avatar">
<uni-icons type="person" size="20" color="#999"></uni-icons>
<!-- <image :src="record.userAvatar" mode="aspectFill"></image> -->
</view>
<view class="user-info">
<view class="user-name">微信用户</view>
<view class="record-time">{{ record.time }}</view>
<view class="user-name">{{record.userNickname || '微信用户'}}</view>
<view class="record-time">{{ record.createTime }}</view>
<view class="record-content">{{ record.content }}</view>
<!-- 图片展示 -->
<view v-if="record.images && record.images.length > 0" class="record-images">
@@ -149,9 +150,18 @@
<!-- 底部操作栏 -->
<view class="bottom-bar">
<!-- 活动已结束且未报名显示不可点击的结束按钮 -->
<button
v-if="isActivityEnded && !hasSigned && activeTab === 'detail'"
class="action-btn ended-btn"
disabled
>
报名已结束
</button>
<!-- 未报名状态显示报名按钮 -->
<button
v-if="!hasSigned && activeTab === 'detail'"
v-if="!isActivityEnded && !hasSigned && activeTab === 'detail'"
class="action-btn signup-btn"
@tap="handleSignup"
>
@@ -209,7 +219,7 @@
</template>
<script setup>
import { ref, onMounted } from 'vue'
import { ref, onMounted, computed } from 'vue'
import {onLoad,onUnload} from '@dcloudio/uni-app'
import moment from 'moment'
import {getActivityDetails,confirmResident,cancelActivity,getActivityLive} from '../api/api.js'
@@ -226,6 +236,15 @@ const navTitle = ref('')
const curActivityId = ref('') // 当前活动的id
const activityConent = ref({}) // 获取详情数据
// 判断活动是否已结束
const isActivityEnded = computed(() => {
// 优先使用后端返回的状态字段status: '2' 或 statusText: '已结束'
if (activityConent.value.status === '2' || activityConent.value.statusText === '已结束') return true
// 备选:通过 endTime 时间判断
if (!activityConent.value.applyDeadline) return false
return moment().isAfter(moment(activityConent.value.applyDeadline))
})
// 实况记录数据
const liveRecords = ref([
// {
@@ -262,13 +281,13 @@ onLoad((option) =>{
// 2. 初始化数据
if (curActivityId.value) {
getActivityDetailsData(curActivityId.value) // 获取活动详情
getLiveActivityList() // 获取实况列表
// getLiveActivityList() // 获取实况列表
}
// 3. 监听实况列表刷新事件
uni.$on('refreshLiveList', () => {
getLiveActivityList()
})
// uni.$on('refreshLiveList', () => {
// getLiveActivityList()
// })
})
// 获取列表详情
@@ -294,9 +313,13 @@ const getActivityDetailsData = async (id) =>{
}
}
// 切换选项卡
const switchTab = (tab) => {
activeTab.value = tab
if (tab === 'status') {
getLiveActivityList()
}
}
// 返回上一页
@@ -434,7 +457,7 @@ const liveClick = () =>{
// ---------
onUnload(() => {
uni.$off('refreshLiveList')
// uni.$off('refreshLiveList')
})
// 显示提示信息
@@ -759,6 +782,12 @@ const showToastMessage = (message) => {
box-shadow: 0 4rpx 20rpx rgba(0, 122, 255, 0.2);
}
.ended-btn {
background: linear-gradient(135deg, #ccc 0%, #999 100%);
color: #fff;
opacity: 0.7;
}
/* 模态框 */
.modal {
display: none;